This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
用创龙的OMAPL138-EVM开发板,想在u-boot烧写u-boot.ais到nand flash,无法从nand flash启动。用创龙提供的nand-write.out通过ccs烧写u-boot.ais后就能启动。但是查看hawkboard写着可以通过u-boot烧写u-boot.ais到nand flash,请问要怎么修改才能在u-boot烧写u-boot.ais到nand flash,然后能从nand flash启动?
hawkboard 在网上的烧写步骤是:
After booting the u-boot over UART as mentioned above,
hawkboard.org > setenv serverip 172.24.156.199 hawkboard.org > setenv ipaddr 172.24.190.58
hawkboard.org > tftpboot 0xc0700000 u-boot_nand_ais.bin TFTP from server 172.24.156.199; our IP address is 172.24.190.58 Filename 'u-boot_nand_ais.bin'. Load address: 0xc0700000 Loading: ################################################################# ################# done Bytes transferred = 414988 (6550c hex)
hawkboard.org > nand erase NAND erase: device 0 whole chip OK
hawkboard.org > nand write.e 0xc0700000 0x20000 0x70000
NAND write: device 0 offset 0x20000, size 0x70000 458752 bytes written: OK hawkboard.org >
如果你是通过AISGEN工具产生的AIS格式的UBOOT文件,从芯片内部的RBL启动时,RBL默认的NAND的OOB区域的ECC LAYOUT和UBOOT中的ECC LAYOUT是不通的
这个具体的不同在TI的网站上是可以搜到的,我记得大概是RBL认为每16个字节的前6个字节是可以任意使用,后面的10个字节需要放ECC,以此循环4次使用共64字节
而UBOOT和LINUX是按照OOB区域前24个字节随意使用,后面40字节放ECC来使用的,所以两者对不上,所以RBL读NAND的ECC校验不过,导致UBOOT烧写UBOOT自身失败
以上关于ECC LAYOUT的描述不保证准确,我不记得具体的位置,总之你上TI的WIKI搜下,有具体的说明
我当时调这个的时候很费事,因为你改了UBOOT的ECC LAYOUT,就导致UBOOT烧写LINUX和文件系统不对了,所以还要改LINUX的ECC LAYOUT
改完还会遇到UBOOT和LINUX的NAND坏块表位置和当前ECC LAYOUT冲突,改法也差不多