U-Boot: Loop Variable через пользовательское пространство

Во время выполнения MLO я создаю переменную, значение которой я хочу сделать доступной для приложений пользовательского пространства в Android. Как этого достичь?

Одним из способов было бы записать содержимое переменной во внешнюю память и позволить ей считаться процессом пользовательского пространства. Однако мне нужно убедиться, что во время загрузки никакой другой процесс не перезаписывает адрес.

Знаете ли вы какие-либо другие способы, ATAG? Если можно использовать ATAG, как это сделать? Нужно ли разрабатывать модуль ядра?

ура

1 ответ

Из пользовательского пространства linux вы можете получить информацию из переменных среды U-Boot, используя приложение "fw_printenv". Во время выполнения U-Boot вы должны "setenv variablename value", а затем saveenv.

Ваш U-Boot MLO будет нуждаться в настройках CONFIG для включения команд env. MLO обычно хочет (и нуждается) в небольшом коде, команды env увеличат код, что может стать препятствием.

На стороне Linux вам понадобится настроить fw_printenv для памяти вашей конкретной цели. Это можно сделать во время выполнения, см. Fw_env.config. Вы можете получить целевой исполняемый файл, встроенный в u-boot/tools/env/. Это предполагает, что Android переносит механизмы Linux в этой области; Я не знаком с деталями платформы Android.

Другие вопросы по тегам