我按照文档http://processors.wiki.ti.com/index.php/Linux_Core_U-Boot_User%27s_Guide上面顺序执行命令
U-Boot # mmc rescan U-Boot # nand erase.chip U-Boot # load mmc 0 0x81000000 MLO U-Boot # nand write 0x81000000 NAND.SPL U-Boot # nand write 0x81000000 NAND.SPL.backup1 U-Boot # nand write 0x81000000 NAND.SPL.backup2 U-Boot # nand write 0x81000000 NAND.SPL.backup3 U-Boot # load mmc 0 0x81000000 u-boot.img U-Boot # nand write 0x81000000 NAND.u-boot U-Boot # load mmc 0 0x81000000 zImage U-Boot # nand write 0x81000000 NAND.kernel U-Boot # run findfdt U-Boot # load mmc 0 0x81000000 $fdtfile U-Boot # nand write 0x81000000 NAND.u-boot-spl-os U-Boot # saveenv
在到U-Boot # load mmc 0 0x81000000 zImage 就出现问题
reading zImage
** Unable to read file zImage **
请问各位前辈,这个问题应该怎么解决,还有一点不明白的是,写到nand里面的内核镜像文件和文件系统是不是用的就是SD卡里面的,还需要其他的setenv么?
Sean:
补充一下,用的是SDK07.00
Jian Zhou:
回复 Sean:
如果是SDK07的话,因为是3.12的内核,要把zImage和dts写到文件系统的boot文件夹里
Sean:
回复 Jian Zhou:
感谢您的回复,zImage和dts是在文件系统的boot文件夹里,那在写到nand的时候应该怎么做?
Jian Zhou:
回复 Sean:
应该是烧写完U-boot之后,直接去烧写带zImage和dts的文件系统到下一个分区
Sean:
回复 Jian Zhou:
感谢您的回复,请问要怎么烧写文件系统呢,我在文档上面没有找到
Jian Zhou:
回复 Sean:
把文件系统打包以后,比如做成ubi文件系统,然后直接用Uboot的烧写命令烧写就可以了啊
leo chen:
回复 Jian Zhou:
写nand主要是写文件系统
然后是更新文件系统中boot目录下的文件
Steven Liu1:
回复 Sean:
一样的处理模式,只是地址空间不一样。
device nand0 <nand0>, # parts = 8#: namesizeoffsetmask_flags0: NAND.SPL0x000200000x0000000001: NAND.SPL.backup10x000200000x0002000002: NAND.SPL.backup20x000200000x0004000003: NAND.SPL.backup30x000200000x0006000004: NAND.u-boot0x001e00000x0008000005: NAND.u-boot-env0x000200000x0026000006: NAND.kernel0x005000000x002800000 7: NAND.file-system 0x0f880000 0x00780000 0可以参考:http://processors.wiki.ti.com/index.php/Linux_Core_U-Boot_User%27s_Guide#Using_NAND
Yaoming Qin:
你的sd卡上有zImage吗?
Sean:
回复 Yaoming Qin:
感谢您的回复,确实是没有放在./boot下面,而是在./rootfs/boot,现在可以烧进去了,还想请教一下,u-boot从nand启动,需要改代码吗,setenv要设置哪些参数,要不要指定什么编译选项?还有内核,要不要修改? (am335x GPEVM SDK07.00)