的U-boot。 BeagleBone Black。 Micro SD卡

时间:2015-04-18 15:16:41

标签: embedded-linux u-boot

关于U-boot如何在BeagleBone Black上运行,我有一系列问题。一切都从本教程开始,介绍如何使用micro SD卡(uSD)作为额外存储。

uSD as extra storage on BBB.

目前我的设置看起来像这样。

$ fdisk -l
Disk /dev/mmcblk0: 7948 MB, 7948206080 bytes #uSD
        Device Boot  Start      End  Blocks Id  System
/dev/mmcblk0p1        2048   198655   98304  e  W95 FAT16 (LBA)
/dev/mmcblk0p2      198656 15523839 7662592 83  Linux

Disk /dev/mmcbk1: 3867 MB, 3867148288 bytes #eMMC
        Device Boot Start     End  Blocks Id System
/dev/mmcblk1p1    *  2048  198655   98304  e W95 FAT16 (LBA)
/dev/mmcblk1p2     198656 7553023 3677184 83 Linux

所以,如果我没有错,这就是发生的事情。

Boot sequence.
    1.The BBB is powered.
    2.The U-boot is loaded from the eMMC(/dev/mmcblk1p1)
    3.The U-boot searches for uEnv.txt file within the uSD(/dev/mmcblk0p1) and loads it.
    ...... We will retake from here.

/dev/mmcblk0p1我有一个uEnv.txt文件,看起来像这样。

mmcdev=1
bootpart=1:2
mmcroot=/dev/mmcblk1p2 ro
optargs=quiet

/dev/mmcblk1p1中我有默认的uEnv.txt文件,在某些时候会有这样的行。

loadkernel=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${kernel_file}
loadinitrd=load mmc ${mmcdev}:${mmcpart} ${initrd_addr} ${initrd_file}; setenv initrd_size ${filesize}
.......
mmcargs=setenv bootargs console=tty0 console=${console} ${optargs} ${kms_force_mode} root=${mmcroot} rootfstype=${mmcrootfstype} ${systemd}

我们可以看到如何使用$ {mmcdev},$ {mmcroot},$ {optargs},尽管它们没有在文件中定义,它们是uSD uEnv.txt定义的。

Question 1.
    ¿Does this mean that both uEnv.txt files are loaded?

重新启动启动顺序。

Boot sequence.
    4.The U-boot searches for uEnv.txt file within the eMMC(/dev/mmcblk1p1) and loads it.
    5.The Linux kernel is loaded.

如果没有uSD,$ {mmcdev},$ {mmcroot},$ {optargs}参数都没有定义,至少不在uEnv.txt中。

Question 2.   
    ¿Where do the default values come?

现在真正困扰我的部分。在另一块板上,有一个看起来像这样的eMMC uEnv.txt文件。

optargs=quiet drm.debug=7 capemgr.enable_partno=BB-UART2,BB-UART1

没有uSD,电路板可以正常启动。

Question 3.   
    How is that even posible?

1 个答案:

答案 0 :(得分:-1)

问题的答案应该在您的电路板配置文件中。具体来说,定义' CONFIG_EXTRA_ENV_SETTINGS' - "将其定义为包含任意数量的空终止字符串(变量=值对),这些字符串将成为编译到启动映像中的默认环境的一部分。&#34 ; (来自u-boot README文件)