Redfern89
@Redfern89
Пишу код под МК AVR, начинающий сисадмин

Как собрать u-boot?

Всем доброго времени суток! Прикупил Orange PI 3 LTS, решил пересобрать загрузчик для своего дистрибутива (уже был опыт с Orangre PI PC (Allwinner H3)). В сей плате установлен Allwinner H6. Значит, что я делал.

# Клонируем репозиторий u-boot 2022.07 (Armbian успешно стартует с этой версией)
git clone https://github.com/u-boot/u-boot -b v2022.07

# Применяем патч для Orange PI 3 LTS
wget "https://raw.githubusercontent.com/armbian/build/d4d04b69780f585bdc5fb0592647ca5115599165/patch/u-boot/u-boot-sunxi/board_orangepi3-lts/0001-add-orange-pi-3-lts-support.patch"
git apply 0001-add-orange-pi-3-lts-support.patch

# Сборка
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- orangepi_3_lts_defconfig
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- -j6

# Запись загрузчика
dd if=u-boot/u-boot-sunxi-with-spl.bin of=/dev/loop0 bs=1024 seek=8


Затем получившийся образ записывался на SD-карту и вот что я получал в итоге
U-Boot SPL 2022.07-dirty (Nov 23 2022 - 18:08:52 -0500)
DRAM: 4096 MiB
Trying to boot from MMC1


и все.. дальше ничего нету.. Куда копать? Что смотреть? От куда взялось DRAM: 4096MiB, когда там 2048?
  • Вопрос задан
  • 1100 просмотров
Решения вопроса 1
Redfern89
@Redfern89 Автор вопроса
Пишу код под МК AVR, начинающий сисадмин
В общем решился вопрос.. На будущее, если кто-то еще такой-же отбитый на всю голову - вот решение, которое помогло мне:

# Клонируем arm-trusted-firmware
git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git

# Переходим в директорию
cd trusted-firmware-a

# Собираем (вот тут меня и ждали грабли, ибо сборка все время вылетала с ошибкой 
# RWX permissions что-то там. Решилось тупым отключением предупреждений в секции LDFLAGS)
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_a64 LDFLAGS=--no-warn-rwx-segments

# Собираем u-boot по прежней схеме, но с указанием того самого BL31
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- orangepi_3_lts_defconfig
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- BL31=../trusted-firmware-a/build/sun50i_h6/release/bl31.bin
 -j6


Вот после включения arm trusted firmware - все ожило! :))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@SergeyNovak
Из описания не ясно куда подключен loop0:

dd if=u-boot/u-boot-sunxi-with-spl.bin of=/dev/loop0 bs=1024 seek=8

А в целом, на ARM такие проблемы обычно из-за того, что нужно подобрать или подготовить DTB/DTS. Именно в нем описывается и количество памяти.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы