一.需要修改下面的地方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
阅读(815) | 评论(0) | 转发(0) |