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 uboot 移植

Other Parts Discussed in Thread: AM3354, BIOSLINUXMCSDK, OMAP-L138

1、我从网站上下载到最新的sdk,因为手头没有调试器,所以用的是linux编译下载uboot,现在uboot在sd卡中可以正常启动,因为内核尚未完善,没有测试内核启动。也可以写入到nand flash中,但是从nand flash启动时,ais文件可以加载,但是好像是在循环不停的重复启动spl,请问这种情况需要配置什么参数

2、请问哪里可以下载到早期版本的omapl138的sdk?因为之前am3354开发使用的是3.12版本的内核,想减少重复学习工作。

  • 1.这个问题可能是RBL的ECC layout和uboot的ECC layout不一致引起的。RBL认为每16个字节的前6个字节是可以任意使用,后面的10个字节需要放ECC (Each segment of spare bytes contains 6 test bytes and 10 ECC bytes.), 而UBOOT和LINUX是按照OOB区域前24个字节随意使用,后面40字节放ECC来使用的,两者对不上,所以RBL读NAND的ECC校验不过,导致UBOOT烧写UBOOT自身失败。

    请尝试参考下面的wiki网站修改。
    http://processors.wiki.ti.com/index.php/DM365_Nand_ECC_layout


    2. 老版本的mcsdk,可以到下面的网站下载。
    http://www.ti.com/tool/bioslinuxmcsdk

  • 1、因为sdk是最新的,uboot版本是2017.01,所以这个问题好像是修复过了。早上我测试的时候发现spl中加载nand中的uboot是正常加载的,返回值也是正确的,然后image_entry后并没有运行起来,所以应该不是这个问题导致的;

  • 是否按照下面网站上的步骤操作的?
    http://processors.wiki.ti.com/index.php/Linux_Core_U-Boot_User%27s_Guide#NAND_Boot

  • 1、我刚才用printf打印了启动区域内存的数据,sd卡启动和nand启动时,相应内存中的数据是不同的,nand中包含了个应该文件头的描述字段,有没有可能是因为这个导致启动出问题;

    2、因为uboot编译过程中产生了较多的ais和bin等文件。包括根目录下和spl目录下有多个文件,因此不太确定是用那个文件进去;

  • If you want to load and run U-Boot from NAND the first step is insuring that the appropriate U-boot files are loaded in the correct partition. For AM335x, AM437x, DRA7x devices this means writing the file MLO to the NAND's SPL partition. For OMAP-L138 device, write the .ais image to the NAND's partition. For all devices this requires writing u-boot.img to the NAND's U-Boot partition.

    Note: The NAND partition of OMAP-L138 is different from other devices, please use the following commands to program the NAND

    我理解的意思是ais文件烧写在nand的0x20000位置,还需要再烧写uboot到其他地方么?