Адрес загрузки ядра Zynq Linux - PullRequest
0 голосов
/ 07 ноября 2018

Я хочу собрать Linux для Zed Board. Когда я просматриваю файл zynq-common.h в каталоге u-boot / include / configs, я вижу, что kernel_load_address равен 0x02080000.

Почему адрес загрузки ядра 0x02080000? Какова логика этого?

Я использую версию 2018.01. Значение, которое я упомянул, равно «kernel_load_address = 0x2080000» в CONFIG_EXTRA_ENV_SETTINGS

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Значение, которое я упомянул, равно "kernel_load_address = 0x2080000" в CONFIG_EXTRA_ENV_SETTINGS

Эта конкретная переменная среды не является основной версией U-Boot. Итак, по-видимому, вы используете пользовательскую версию.

Использование этой переменной env может найти образ ядра с помощью команды ввода в основной памяти. Поскольку это плата ARM, образ ядра будет zImage или uImage (который будет содержать zImage).
ZImage способен распаковывать себя и перемещать образ ядра по правильному адресу загрузки для фактического выполнения.
Этот конечный адрес загрузки обычно является началом физической памяти плюс 0x8000. См https://stackoverflow.com/questions/31725605/buhttps://stackoverflow.com/questions/31725605/building-kernel-uimage-using-loadaddrilding-kernel-uimage-using-loadaddr

Поскольку ядро ​​будет перемещено во время распаковки, этот промежуточный адрес памяти, используемый U-boot для чтения в сжатом образе ядра, не имеет решающего значения. Код распаковки, прикрепленный к zImage, не зависит от позиции, поэтому загрузка zImage в память является гибкой. Пока zImage находится в памяти выше, чем фактический адрес загрузки ядра, проблем нет (т. Е. Дополнительное перемещение).

0 голосов
/ 08 ноября 2018

Не думаю, что это фактический адрес загрузки. UBoot должен загрузить его до 0x8000 по умолчанию. Это можно изменить, но вы не захотите делать это через заголовочные файлы.

(Вам не нужно смотреть на эти файлы, особенно не изменять их.)

Если вы хотите собрать ядро ​​для zedboard, я рекомендую придерживаться любого из этих руководств: https://wiki.analog.com/resources/eval/user-guides/ad-fmcomms2-ebz/software/linux/zynq_2014r2 https://highlevel -synthesis.com / 2016/10/31 /, как к компиляции Xilinx-Linux-ядро-для-zynq /

Вам также понадобятся наборы инструментов от Xilinx, если вы не хотите собирать ядро ​​на платформе, что займет 4-6 и более часов (я должен был сделать это раньше, не весело).

...