Как установить u-boot env автоматически из установленной u-boot в NAND? - PullRequest
0 голосов
/ 09 мая 2020

В моей NAND есть два раздела u-boot:

0: boot 0x00400000 0x00000000 0

1: ubootenv 0x00100000 0x00400000 0

Я определил bootaugs и bootcmd в #define CONFIG_EXTRA_ENV_SETTINGS файла заголовка платы, построил u = boot и установил u-boot в загрузочный раздел NAND, но во время загрузки NAND, которая не устанавливает автоматически bootaugs и bootcmd в раздел ubootenv, если CONFIG_EXTRA_ENV_SETTINGS не может использоваться для установки загрузки параметры автоматически, чем это полезно? Как я могу автоматически установить параметры u-boot для загрузки NAND без ручной настройки в u-boot?

Спасибо.

С уважением

1 Ответ

0 голосов
/ 11 мая 2020

Метод-1: Вы можете установить среду в файле "./include/env_default.h" в пределах области DEFAULT_ENV_INSTANCE_EMBEDDED и в качестве члена массива const uchar default_environment [] в проекте U-boot. Вот пример.

#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

Метод 2: 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
...