Как установить u-boot env автоматически из установленной u-boot в NAND?
В моей NAND есть два раздела u-boot:
0: загрузка 0x00400000 0x00000000 0
1: ubootenv 0x00100000 0x00400000 0
Я определил bootaugs и bootcmd в #define CONFIG_EXTRA_ENV_SETTINGS файла заголовка платы, построил u=boot и установил u-boot в загрузочный раздел NAND, но во время загрузки NAND, который не устанавливает автоматически загрузочные файлы и bootcmd в раздел ubootenv, если CONFIG_EXTRA_ENV_SETTINGS нельзя использовать для автоматической установки параметров загрузки, чем это полезно? Как я могу автоматически установить параметры u-boot для загрузки NAND без ручной настройки в u-boot?
Спасибо.
С уважением
1 ответ
Метод 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