你好:
我们现在想通过PCIe加载ARM的u-boot、内核及文件系统。目前u-boot通过PCIe加载后已能正常启动运行,但是将linux内核及文件系统通过PCIe加载后一直停留在Starting kernel . . .这里,感觉像是根文件系统挂载不成功。
希望你们能提供相关的支持,或者提供其他加载linux内核及文件系统方式的建议
谢谢
Allen35065:
你先用JTAG或者其它方式保证你用的uboot能够启动kernel,还没有到挂载根文件系统的时候。
Feng Lin6:
回复 Allen35065:
Allen Yin,你好:
我的u-boot是通过这个命令git clone git://git.ti.com/keystone-linux/u-boot.git u-boot-keystone下载的,
内核是git clone git://git.ti.com/keystone-linux/linux.git linux-keystone;使用CCS下载u-boot是可以正常启动内核的。
我现在将u-boot、内核和文件系统通过PCIe下载到DDR后就卡到这个位置,应该是内核不能解压缩。通过PCIe下载内核和根文件系统需要哪儿些具体的操作?
谢谢
Feng Lin6:
回复 Allen35065:
Allen Yin,你好:
通过PCIe将内核和根文件系统直接下载到DDR中的方案是否可行?你们有成功的案例给我们借鉴吗?
谢谢
Allen35065:
回复 Feng Lin6:
我们没有做过PCIe boot内核的demo,原理上应该可行,你看看uboot的启动参数是否正确,像uart的端口号和速率;
uboot一般设定是通过tftp或者nand读取kernel,你可能需要修改uboot让它能够从PCIe端口获取到kernel。
Feng Lin6:
回复 Allen35065:
谢谢你的及时回复!
我现在是这样做的:
1.通过PCIe下载DDR初始化的代码到DSP Core0,
2.通过PCIe下载u-boot.bin到MSMC(u-boot代码删除了DDR初始化部分)
3.通过PCIe下载根文件系统、k2hk-evm.dtb、skern-keystone-evm.bin和内核(uImage)到DDR中,
4.让DSP core0发起IPC中断来唤醒ARM core0,
5.在u-boot倒计时3秒时,按回车
6.模仿CCS加载u-boot和内核的方法输入了下面的命令
(1)setenv bootargs 'console=ttyS0,115200n8 rootwait=1 earlyprintk rdinit=/sbin/init rw root=/dev/ram0 initrd=0x802000000,38M'
saveenv
(2)mon_install 0x0c5f0000
(3)bootm 0x88000000 – 0x87000000
这样的方式是否可行?如果不可行,我们就换nand或者tftp的方式来做。
谢谢!
Allen35065:
回复 Feng Lin6:
u-boot里需要通过初始化DDR3的过程获得DDR3的大小以及相关参数来做后面的代码重定位,你删除了DDR初始化的部分,那uboot里用来计算重定位的参数还正确吗?可以打印出来看看,还有你的根文件系统是38M的大小吗?Skern应该装载到mon_install的地址上