Какова структура файла прошивки u-boot? ( ARM универсальный пб )

Я работаю над созданием файла, который я могу загрузить с опцией -kernel qemu. Я в основном возражаю, что файл конфигурации u-boot, который я нашел, должен быть размещен где-то в файле. Этот файл должен содержать двоичный файл u-boot, ядро ​​​​freebsd и RTOS для запуска (так что я могу выбрать, какое ядро ​​загружать, или провести экспериментальную разработку при загрузке двух ОС одновременно — например, FreeBSD загружается с помощью u-boot, а затем FreeBSD загружает FreeRTOS на 2-м ядре — так называемый ASMP). Кажется, что нет инструментов, чтобы сделать это автоматически (я имею в виду поддержку нескольких ядер в одном файле прошивки). Поэтому мне нужно знать, как устроен файл флэш-памяти u-boot, чтобы создать свой собственный и передать его qemu, эмулирующему am universalpb.

qemu-system-arm -M versatilepb -m 128M -nographic -kernel myflashfile

person csstudent    schedule 04.05.2016    source источник


Ответы (1)


Таким образом, ответ здесь частично зависит от платы, которую вы эмулируете с помощью QEMU. Далее, к сожалению, universalpb был удален из основной ветки U-Boot некоторое время назад (а поскольку это ARM926EJS, это не идеальное ядро ​​для ASMP, вместо него вы можете попробовать vexpress a9). Теперь, после всего сказанного, вы хотите, чтобы -pflash передал двоичный файл, содержимое которого вы контролируете как параллельное флэш-устройство, используемое машиной. И вы размещаете это так, как вам нравится, поскольку вы все еще используете -kernel u-boot.bin для загрузки машины. Однако вам может быть проще использовать -tftp /some/dir и вместо этого загружать файлы по сети.

person Tom Rini    schedule 04.05.2016
comment
Я знаю, что последняя версия QEMU не поддерживает эту плату. Вы имеете в виду, что vexpress a9 имеет лучшие свойства для реализации ASMP или ARM926EJS не хватает некоторых функций? Я знаю, что могу использовать сеть, но это не относится к вопросу. Я не понимаю, что вы имеете в виду в предложении между двумя упомянутыми вещами - a9 и сетью. - person csstudent; 05.05.2016
comment
@csstudent Том имеет в виду, что обычно проще запустить TFTP-сервер на вашем хост-компьютере и передать файлы напрямую через эмулируемый сетевой интерфейс, чем упаковывать их в образы, чтобы затем подключать к эмулируемому диску / флэш-памяти / любым другим устройствам хранения. . И, во-вторых, если вы хотите попробовать запустить 2 ОС одновременно, то однопроцессорная машина по своей сути, вероятно, не лучший выбор для цели — конкретная функциональность, которой не хватает Versatile PB/ARM9, — это многопроцессорность любого типа. ;) - person Notlikethat; 05.05.2016