1. Скомпилируйте инструмент fw_printenv.
Выполните команду по исходному пути uboot, а затем сгенерируйте исполняемый файл fw_printenv в папке Tools/env.
. /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabimake env
2. Настройте файл fw_env.config.
Измените файл fw_env.config в разделе Tools/env в исходном каталоге uboot в соответствии с разделом mtd, расположением и размером переменных среды UBOOT и т. д. См. инструкции в файле fw_env.config и файле /tools/env/README. файл для конкретных модификаций.
Среди них смещение устройства, размер Env и размер сектора Flash должны соответствовать соответственно трем определениям макросов CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE и CONFIG_ENV_SECT_SIZE в файле include/configs/xxxx.h в каталоге исходного кода U-Boot.
vi include/configs/mx6ul_14x14_evk.h
В качестве примера возьмем тест 256nand:
CONFIG_ENV_OFFSET = 0x600000
ONFIG_ENV_SECT_SIZE = 0x20000
Откройте инструменты/env/fw_env.config и внесите изменения, как показано на следующих рисунках:
В качестве примера возьмем тест 1gnand:
CONFIG_ENV_OFFSET = 0x1000000
ONFIG_ENV_SECT_SIZE = 0x20000
номер модели nand MT29F8G08ABACA
Обратитесь к руководству, чтобы изменить значение ENV_SECT_SIZE на 256 КБ.
Откройте инструменты/env/fw_env.config и внесите изменения, как показано на следующих рисунках:
номер модели nand MT29F8G08ABABA
Обратитесь к руководству, чтобы изменить значение ENV_SECT_SIZE на 512 КБ.
Откройте инструменты/env/fw_env.config и внесите изменения, как показано на следующих рисунках:
3. Скопируйте файл
Скопируйте инструменты/env/fw_env.config в путь /etc платы разработки;
Скопируйте инструменты/env/fw_printenv в корневую файловую систему платы разработки по пути /usr/bin.
И создайте мягкую ссылку на fw_setenv ln -s /usr/bin/fw_printenv /usr/bin/fw_setenv
4. Чтение и запись теста переменной среды.
Чтение среды:
Запишите переменную среды:
Фаза uboot была изменена синхронно.
5. Проблемы и решения
Проблема: make env сообщает об ошибке в исходном коде uboot.
Решение: закомментируйте CC в Makefile верхнего уровня и используйте переменную среды в CC.
Первоначально опубликовано на www.forlinx.net.