分配更大的u-boot映像

时间:2018-07-06 17:05:34

标签: linux-kernel environment-variables bootloader u-boot beagleboard

我正在编译自己的内核和引导加载程序(U-boot)。我添加了一堆新的环境变量,但是U-boot不再加载了(只是不加载内存中的任何内容)。我正在使用Pocketbeagle并从SD卡启动。因此,我正在编辑/ include / configs /中的文件“ am335x_evm.h”。

我正在尝试以一种方式分配U-boot,使其具有更多的环境变量空间,并且可以成功从内存中加载,但是我一直无法这样做。据我了解,默认情况下,它会为U-boot env变量分配128kb的内存。由于添加了很多,所以我试图将其大小从128kb增加到512kb。

我将以下行(从128kb更改为512kb):

#define CONFIG_ENV_SIZE         (512 << 10)

(顺便说一句,谁知道为什么将它向左移10位?)

我还将CONFIG_ENV_OFFSET和CONFIG_ENV_OFFSET_REDUND更改为:

#define CONFIG_ENV_OFFSET       (1152 << 10) /* Originally 768 KiB in */
#define CONFIG_ENV_OFFSET_REDUND    (1664 << 10) /* Originally 896 KiB in */

然后在编译新的U-boot之后,我格式化SD卡并插入新的内核和U-boot。

我首先擦除分区:

export DISK=/dev/mmcblk0
sudo dd if=/dev/zero of=${DISK} bs=1M count=10

然后我通过执行以下操作来转移U-boot:

sudo dd if=./u-boot/MLO of=${DISK} count=1 seek=1 bs=512k
sudo dd if=./u-boot/u-boot.img of=${DISK} count=2 seek=1 bs=576k

然后我通过执行以下操作来创建分区布局:

sudo sfdisk ${DISK} <<-__EOF__
4M,,L,*
__EOF__

然后我添加内核,二进制树,内核模块等...当尝试引导并读取串行端口时,我什么也没得到。 U-boot无法从SD卡加载任何内容。我究竟做错了什么?如果您能指出我的问题所在,以及究竟该怎么做以增加大小并正确分配所有内容,我将不胜感激。

0 个答案:

没有答案