0

我的 NAND 中有两个 u-boot 分区:

0:启动 0x00400000 0x00000000 0

1:ubootenv 0x00100000 0x00400000 0

我在板头文件的#define CONFIG_EXTRA_ENV_SETTINGS 中定义了 bootaugs 和 bootcmd,构建了 u=boot 并将 u-boot 安装到 NAND 引导分区,但是在 NAND 引导期间,如果 CONFIG_EXTRA_ENV_SETTINGS 不会自动设置 bootaugs 和 bootcmd 到 ubootenv 分区不能用来自动设置开机参数,有什么用?如何在不手动设置u-boot的情况下为NAND boot自动设置u-boot参数?

谢谢你。

亲切的问候

4

1 回答 1

0

方法一:可以在DEFAULT_ENV_INSTANCE_EMBEDDED范围内的文件“./include/env_default.h”中设置环境,并作为项目U-boot中数组const uchar default_environment[]的成员。这是一个例子。

#ifdef DEFAULT_ENV_INSTANCE_EMBEDDED

const uchar default_environment[] = {
#define IP "10.1.1.245"
#define N_MSK "255.255.255.0"
#define S_IP "10.1.1.159"

"ipaddr="IP"\0"
"netmask="N_MSK"\0"
"serverip="S_IP"\0"
}
#endif

方法二:U-boot 提供了另一种永久设置环境变量的方法。这里的思路是在 U-boot 提示符中设置变量,然后保存到 U-boot 环境分区。在每次启动时,将从 U-boot 环境中调用变量。这是程序。

=> env set net_args "setenv bootargs console=ttyO0,115200 root=/dev/nfs ip=10.1.1.245 nfsroot=10.1.1.169:/nfsroot_am335,v3,tcp"
=> env set net_boot "run ld_lnx_tftp; run net_args; bootz ${loadaddr} - ${fdtaddr}"
=> env save
于 2020-05-11T14:25:40.657 回答