Kou*_*sha 5 linux bootloader u-boot
我对这两个文件的启动配置非常困惑.他们似乎在做同样的事情,我不明白为什么我需要或者.
如果我使用uEnv.txt,我将其设置为
bootargs=console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10 ${extra}
aload_script=fatload mmc 0 0x43000000 script.bin;
aload_kernle=fatload mmc 0 0x48000000 uImage; bootm 0x43000000 - 0x48000000;
uenvcmd=setenv run aload_script aload_kernel
Run Code Online (Sandbox Code Playgroud)
或者,我可以创建boot.cmd:
setenv bootargs console=console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10 ${extra}
fatload mmc 0 0x43000000 script.bin
fatload mmc 0 0x48000000 uImage
bootm 0x48000000
Run Code Online (Sandbox Code Playgroud)
他们都工作......
好吧,他们确实有不同的角色:
很明显,您可以在脚本文件中设置环境值,因此功能重叠。
但是,如果您只想设置一些 env 值(例如用于板 ID),那么使用 uEnv.txt 是最简单的方法。
小智 6
它非常依赖于平台.要查看控制启动过程的内容,请在内核启动开始之前进入u-boot提示符(命中串口).然后
printenv
Run Code Online (Sandbox Code Playgroud)
将展示环境.以下是sunxi/u-boot环境的摘录,其命令依次尝试不同的fatload源,直到一个工作
bootscr=boot.scr
bootenv=uEnv.txt
loadbootscr=fatload mmc 0 ${scriptaddr} ${bootscr} || ext2load mmc 0 ${scriptaddr} ${bootscr} || ext2load mmc 0 ${scriptaddr} boot/${bootscr}
loadbootenv=fatload mmc 0 ${scriptaddr} ${bootenv} || ext2load mmc 0 ${scriptaddr} ${bootenv} || ext2load mmc 0 ${scriptaddr} boot/${bootenv}
boot_mmc=fatload mmc 0 0x43000000 script.bin && fatload mmc 0 0x48000000 ${kernel} && watchdog 0 && bootm 0x48000000
bootcmd=if run loadbootenv; then \
echo Loaded environment from ${bootenv}; \
env import -t ${scriptaddr} ${filesize}; \
Run Code Online (Sandbox Code Playgroud)
...更多选项如下
默认环境在每个平台U-Boot源中进行硬编码.