为什么EmbeddedLinuxBeginnerSGuide的image中 uboot一定要放在fat32分区,不能跟preloader一起放在raw分区?

发布时间 2023-12-18 16:27:42作者: Doreen的FPGA自留地

按照按照  (https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide)制作了一个image, 然后按照 https://www.cnblogs.com/DoreenLiu/p/17903782.html 将相关文件都打包到一个.img文件里面去。

其实最开始研发给我的Makefile内容是这样(这个是RD 用于制作LXDE image的, 这个image 的uboot就可以放在raw 分区):

 

但是这样生成是image文件boot不起来, 中途会卡住。

为什么EmbeddedLinuxBeginnerSGuide的image中 uboot一定要放在fat32分区,不能跟preloader一起放在raw分区?

其实我们返回去查看生成u-boot.scr的boot.script 文件可以看到内容如下:

echo -- Programming FPGA --
fatload mmc 0:1 $fpgadata soc_system.rbf;
fpga load 0 $fpgadata $filesize;
run bridge_enable_handoff;

echo -- Setting Env Variables --
setenv fdtimage soc_system.dtb;
setenv mmcroot /dev/mmcblk0p2;
setenv mmcload 'mmc rescan;${mmcloadcmd} mmc 0:${mmcloadpart} ${loadaddr} ${bootimage};${mmcloadcmd} mmc 0:${mmcloadpart} ${fdtaddr} ${fdtimage};';
setenv mmcboot 'setenv bootargs console=ttyS0,115200 root=${mmcroot} rw rootwait; bootz ${loadaddr} - ${fdtaddr}';

run mmcload;
run mmcboot;