Chinaunix首页 | 论坛 | 博客
  • 博客访问: 162037
  • 博文数量: 109
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 147
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-23 16:12
文章分类

全部博文(109)

文章存档

2015年(109)

我的朋友

分类: 嵌入式

2015-02-12 15:56:07

原文地址:MPCB启动 作者:1032120121

一.需要修改下面的地方btk内存测试和hv_l1boot才能执行成功
mpcb的内存条I2C地址为0x51(0 slot),0x52(1 slot),0x53(3 slot),deamo板是0x50(0 slot)以此类推,所以为了顺应测试代码和hv_l1boot执行,需要将hv下文件i2c_acc.h中
#define I2C_ROM_ADDR(n)  (0xA0 | ((n) << 1)) 修改为
#define I2C_ROM_ADDR(n)  (0xA0 | ((n + 1) << 1))
或将mshim_acc.c的line 636处I2C_ROM_ADDR宏修改为0xA0 + ((2 * portnum + 1) << 1,以避免其他I2C操作受到影响。
注:此时tools/btk下config_TILEmpcbpro-36.py文件内存条0的i2c地址为0x51,以此类推。

二.下面的操作主要是替代使用btk进行串口下载映像,而是首先通过串口下载带有烧写flash工具和mboot.bootrom映像的vmlinux-mpcbpro36.bootrom,进入操作系统后使用sromboot.bin工具烧写mboot.bootrom到flash,之后切换跳线使cpu从flash启动,进入到mboot,在mboot中设置使用gbe接口和tftp从主机下载vmlinux,实现快速下载。
需要注意的地方有:
1 关于mboot启动是串口不能输入只能输出的解决方法:
 (1)在加电之前首先启动minicom;(2)mboot启动时不允许输入任何字符;(3)进入mboot命令行或shell后可以输入回车

2 为了通过mboot引导操作系统,hvc文件中ARGS必须加入nosmp,目的是在引导操作系统时,禁止除boot以外的所有cpu,防止由于多于1个cpu工>作下引导操作系统出错。

3 由于TILExpress-64板卡的gbe0接交换芯片,mpcb的gbe0接BCM5461PHY芯片,gbe1接交换芯片,所以在hv源代码的xgbe的驱动接口函数xgbe_pwrite()中进行gbe接口phy芯片的检测时,没有找到针对mpcb所接phy的类型,所以可以手动修改在找不到phy类型的情况下也进行自适应配置并继续执行程序。
修改文件hv/drivers/xgbe/ipp.c的gbe_do_link_config(),在phytype变量查找的最后添加auto_negotiate = 1;并注销掉错误报告。修改后的mboot程序在插入网线后ifconfig状态为RUNNING.

4 在mboot命令行下或者在mboot/Makefile文件中通过-hvx参数指定的TLR相关参数为传递给linux内核的启动参数,在mboot下不起作用。

5 修改linux源代码目录下的content.txt文件,增加file选项包含sromboot.bin和mboot.bootrom,接着编译vmlinux。
  使用sromboot.bin烧写mboot.bootrom的方法是:
  sromboot.bin --install-booter mboot.bootrom --yes
  sromboot.bin --install mboot.bootrom



阅读(775) | 评论(0) | 转发(0) |
0

上一篇:MPCB驱动开发

下一篇:SPI总线接口编程配置

给主人留下些什么吧!~~