Найти в Дзене
Forlinx Embedded

Шаги по чтению и изменению переменных среды U-Boot на этапе ядра

Оглавление

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

-2

Откройте инструменты/env/fw_env.config и внесите изменения, как показано на следующих рисунках:

-3

В качестве примера возьмем тест 1gnand:

-4

CONFIG_ENV_OFFSET = 0x1000000

ONFIG_ENV_SECT_SIZE = 0x20000

-5

номер модели nand MT29F8G08ABACA

-6

Обратитесь к руководству, чтобы изменить значение ENV_SECT_SIZE на 256 КБ.

-7

Откройте инструменты/env/fw_env.config и внесите изменения, как показано на следующих рисунках:

-8

номер модели nand MT29F8G08ABABA

-9

Обратитесь к руководству, чтобы изменить значение ENV_SECT_SIZE на 512 КБ.

-10

Откройте инструменты/env/fw_env.config и внесите изменения, как показано на следующих рисунках:

-11

3. Скопируйте файл

Скопируйте инструменты/env/fw_env.config в путь /etc платы разработки;

Скопируйте инструменты/env/fw_printenv в корневую файловую систему платы разработки по пути /usr/bin.

И создайте мягкую ссылку на fw_setenv ln -s /usr/bin/fw_printenv /usr/bin/fw_setenv

4. Чтение и запись теста переменной среды.

Чтение среды:

-12

Запишите переменную среды:

-13

Фаза uboot была изменена синхронно.

-14

5. Проблемы и решения

Проблема: make env сообщает об ошибке в исходном коде uboot.

-15

Решение: закомментируйте CC в Makefile верхнего уровня и используйте переменную среды в CC.

-16

Первоначально опубликовано на www.forlinx.net.

Managing U-Boot Environment Variables on a Development Board - Blog - Forlinx Embedded Technology Co., Ltd.