TI中文支持网
TI专业的中文技术问题搜集分享网站

UBOOT 烧写地址的问题

自己移植好了 在 AM3354 板子上(自己定制的板子),uboot 的分区为:

#define MTDPARTS_DEFAULT "mtdparts=nand.0:" \
"128k(SPL)," \
"128k(SPL.backup1)," \
"128k(SPL.backup2)," \
"128k(SPL.backup3)," \
"1920k(u-boot)," \
"128k(u-boot-env)," \
"5m(kernel)," \
"-(rootfs)"

通过两种不同的地址,烧写 u-boot.img ,得到不同的结果。

方式一 :

mmc rescan; mw.b 0x82000000 0xFF 0x20000; fatload mmc 0 0x82000000 MLO;nand erase 0x0 0x20000;nand write.i 0x82000000 0x0 0x20000;   // 烧写  spl

mmc rescan;mw.b 0x82000000 0xFF 0x40000; fatload mmc 0 0x82000000 u-boot.img; nand erase 0xC0000 0x100000; nand write.i 0x82000000 0xC0000 0x100000;   // 少些 u-boot.img

这种方式,是讲 u-boot.img 写入到 0xC0000  开始的地址。可以成功启动,也能引导内核,一点问题都没有。可是,查看 uboot 的分区 :

U-Boot# mtdparts

device nand0 <nand.0>, # parts = 8
#: name size offset mask_flags
0: SPL 0x00020000 0x00000000 0
1: SPL.backup1 0x00020000 0x00020000 0
2: SPL.backup2 0x00020000 0x00040000 0
3: SPL.backup3 0x00020000 0x00060000 0
4: u-boot 0x001e0000 0x00080000 0
5: u-boot-env 0x00020000 0x00260000 0
6: kernel 0x00500000 0x00280000 0
7: rootfs 0x3f880000 0x00780000 0

active partition: nand0,0 – (SPL) 0x00020000 @ 0x00000000

defaults:
mtdids : nand0=nand.0
mtdparts: mtdparts=nand.0:128k(SPL),128k(SPL.backup1),128k(SPL.backup2),128k(SPL.backup3),1920k(u-boot),128k(u-boot-env),5m(kernel),-(rootfs)

可见,UBOOT 的分区,是在 0x00080000 地址,并不是 0xC0000 。

方式 二 :

因为从上面的启动信息查看,知道 UBOOT 的分区信息,将 uboot.ing 烧写到 0x00080000 地址 :

mc rescan;mw.b 0x82000000 0xFF 0x200000; fatload mmc 0 0x82000000 u-boot.img; nand erase 0x80000 0x200000; nand write 0x82000000 0x80000 0x200000;

可是,这种情况的时候,完全不能启动 uboot,UBOOT 打印了 :

U-Boot SPL 2014.10 (Jan 23 2017 – 13:57:54)  

之后,就不再进行了。

我的问题是,按照 UBOOT 的正确的分区的地址,也就是 0x80000 ,进行烧写,不能成功启动。反而,uboot 的分区地址,向后 256 K,也就是0xC0000  进行烧写 u-boot.img 就没有问题。

                                                                                                                                                  求知识

                                                                                                                                                   求分享

user4725089:

回复 Steven Liu1:

嗯,谢谢,确实是这样。我修改了 UBOOT 的分区,但是这些分区表中的定义地址,是被明确写死的,我并没有做全部修改,才导致的。谢谢

赞(0)
未经允许不得转载:TI中文支持网 » UBOOT 烧写地址的问题
分享到: 更多 (0)