U-boot tftp ramdisk Плохая ловушка при загрузке больших rootfs - PullRequest
0 голосов
/ 06 января 2020

Я загружаю ядро ​​на мою плату с образом виртуального диска u-boot размером 39,8 МБ. Это успешно загружается. Когда я пытаюсь использовать другой образ u-boot, имеющий размер 74,7 МБ, адрес загрузки изменения виртуального диска и его выдачи

'Загрузка Ramdisk в ff8c0000, конец 03fffd63 ... Bad Trap в P C: 7fef8cb0'

и плата зависает с '### ERROR ### Пожалуйста, СБРОСИТЕ плату ###'

Команды, которые я использую для загрузки с tftp:

tftp 30000000 uImage.bin
tftp 32000000 DTB.dtb
tftp 40000000 rootfs.ext2.gz.u-boot
bootm 30000000 40000000 32000000

Я также пробовал разные адреса tftp. Сценарий остается прежним.

Как я могу решить эту ситуацию?

Редактировать: полный журнал консоли:

=> bootm 30000000 40000000 32000000 ВНИМАНИЕ: настройка доступной памяти на 30000000

Загрузка ядра из Legacy Image на 30000000 ...

Имя изображения: Linux -4.19.26 + gc0c2141

Тип изображения: PowerP C Linux Изображение ядра (сжатое gzip)

Размер данных: 7140198 Байт = 6,8 МБ

Адрес загрузки: 00000000

Точка входа: 00000000

Проверка контрольной суммы ... OK

Загрузка init Ramdisk из Legacy Image на 40000000 ...

Имя изображения: core-image-x11-t1042d4rdb-64b-20

Тип изображения: PowerP C Linux Образ RAMDisk (без сжатия)

Размер данных: 74710371 байт = 71,2 МБ

Адрес загрузки: 00000000

Точка входа: 00000000

Проверка контрольной суммы ... OK

Свернутый блоб дерева устройств на 32000000

Загрузка с использованием BLOB-объекта fdt на 0x32000000

Распаковка образа ядра ... OK

Загрузка Рамдиск к ff8c0000, конец 03fffd63 ... Плохая ловушка в P C: 7fef8cb0, SR: 0

NIP: 7FEF8CB0 XER: 20000000 LR: 7FF16C60 REGS: 7faedae0 TRAP: 0d00 DAR: FFFFEFF * 10 *

МСР: 00021200 ЕЕ: 0 PR: 0 FP: 0 МЕ: 1 ИК / ДР: 00

GPR00: 00000003 7FAEDBD0 7FAEDE98 FF8C0000 4073F038 0473FD60 FFFFF000 5E2AE23B GPR08: DE633873 00000020 00000001 7FAEDBE0 7FFCB808 08200800 7FAF52E8 00000000 GPR16: 00000000 00000000 306CF3A6 30000000 00000001 30000040 00000000 7FF957A8 GPR24: 7FAF533 C 7FFCB6F C 7FFCB718 40000040 04000000 7FFCB6F8 7FF78540 0473FD63 Вызов трассировку: 7FFCB6F8 7FF176CC 7FF0D9D4 7FEFA26 C 7FF1B088 7FF0BC44 7FF0BE08 7FF0C3B8 7FF1A664 7FF09CD C 7FF0CCC4 7FF4FF3 C 7FF0D1D0 7FEF1040 Исключение в ядре ПК 7fef8cb0 сигнал 0

ОШИБКА ### Пожалуйста, СБРОСИТЕ плату ###

Ответы [ 2 ]

0 голосов
/ 09 января 2020

Насколько я понял, адрес в

'Плохая ловушка при P C: 7fef8cb0'

7fef8cb0 почти равен 1,998995945 ГБ и Начальный адрес Ramdisk, кажется, ff8c0000, который почти равен 3,992919922 ГБ.

Почему в U-boot столько памяти для образа виртуального диска ~ 70 МБ?

0 голосов
/ 07 января 2020

Вы загружаете образ ядра в 0x30000000. После этого вы загружаете дерево устройств по адресу 0x30000000.

0x32000000 - 0x30000000 = 0x2000000 = 33554432

Таким образом, при загрузке дерева устройств вы перезаписываете образ ядра.

Если область между 0x3f000000 и 0x40000000 не используется в противном случае, выбор 0x3f000000 для дерева устройств должен решить вашу проблему.

...