Загрузчик U-Boot

К СВЕДЕНИЮ

Репозиторий с загрузичком U-Boot для Repka Pi 3/Repka Pi 4/Repka Pi 5 доступен по ссылке: repka-os_boot-loader

Данный репозиторий предназначен для сборки загрузчика под одноплатные компьютеры Repka Pi 3, Repka Pi 4 и Repka Pi 5. Репозиторий включает в себя несколько git-подмодулей, которые используются для конкретного одноплатного компьютера:

Git-подмодуль Repka Pi 3 Repka Pi 4 Repka Pi 5
ARM Trusted Firmware (ATF) Используется Используется Не используется
ARM Trusted Firmware-A 2.13 Не используется Не используется Используется
Гипервизор для работы с PCIe (aw-el2-barebone) Не используется Используется Не используется
rkbin Не используется Не используется Используется
U-Boot версии v2020.04-rc3 Не используется Используется Не используется
U-Boot версии v2022.04 Используется Не используется Не используется
U-Boot версии v2025.10 Не используется Не используется Используется

Версии необходимых утилит для сборки:

Утилита Версия
git 2.43.0
Docker Engine 28.0.1
GNU Make 4.3

Примечание: Сборка осуществлялась на ОС Linux Ubuntu 24.04 с архитектурой x86_64.

Сборка #

Для сборки прошивки необходимо выполнить следующие команды:

  1. Скачать все подмодули с помощью команды:

    git submodule update --init --recursive
    
  2. Запустить сборку с помощью команды:

    Для Repka Pi 3:

    make REPKA_MODEL=pi3 build-loader
    

    Для Repka Pi 4:

    make REPKA_MODEL=pi4 build-loader
    

    Для Repka Pi 5:

    make REPKA_MODEL=pi5 build-loader
    
  3. После успешной сборки появится директория src-<REPKA_MODEL> в корне репозитория.

    Для Repka Pi 3:

    src-pi3
     ├── overlays (директория с оверлеями для Repka Pi 3)
     │ ├── 1008GHz.dtbo
     │ ├── 1200GHz.dtbo
     │ ├── 1368GHz.dtbo
     │ ├── 1416GHz.dtbo
     │ ├── i2c1.dtbo
     │ ├── i2c1-fast-mode.dtbo
     │ ├── i2c2.dtbo
     │ ├── i2c2-fast-mode.dtbo
     │ ├── i2s.dtbo
     │ ├── i2s_pcm5102.dtbo
     │ ├── i2s_pcm5122.dtbo
     │ ├── i2s_wm8960.dtbo
     │ ├── profile-ver1.3.dtbo
     │ ├── profile-ver1.4-1.6-active.dtbo
     │ ├── profile-ver1.4-1.6-passive.dtbo
     │ ├── pwm0.dtbo
     │ ├── spi0_can.dtbo
     │ ├── spi0.dtbo
     │ ├── spi1.dtbo
     │ ├── s_uart.dtbo
     │ └── uart2.dtbo
     ├── repka-pi.dtb (основное дерево устройств для Repka Pi 3)
     └── spl
       ├── u-boot-sunxi-with-spl.bin (загрузчик с включенным логированием в UART0)
       └── u-boot-sunxi-with-spl-silent.bin (загрузчик с тихим режимом)
    

    Для Repka Pi 4:

    src-pi4
     ├── overlays (директория с оверлеями для Repka Pi 4)
     │ ├── i2c1.dtbo
     │ ├── i2c1-fast-mode.dtbo
     │ ├── i2c2.dtbo
     │ ├── i2c2-fast-mode.dtbo
     │ ├── i2c3.dtbo
     │ ├── i2c3-fast-mode.dtbo
     │ ├── i2s.dtbo
     │ ├── i2s_pcm5102.dtbo
     │ ├── i2s_pcm5122.dtbo
     │ ├── spi0.dtbo
     │ ├── s_uart.dtbo
     │ ├── uart3.dtbo
     │ └── w1_gpio.dtbo
     ├── repka-pi.dtb (основное дерево устройств для Repka Pi 4)
     └── spl
       ├── u-boot-sunxi-with-spl.bin (загрузчик с включенным логированием в UART0)
       └── u-boot-sunxi-with-spl-silent.bin (загрузчик с тихим режимом)
    

    Для Repka Pi 5:

    src-pi5
     ├── overlays (директория создается на этапе сборки)
     └── spl
       └── u-boot-rockchip.bin (итоговый загрузчик для платформы RK3588)
    

Краткий алгоритм сборки загрузчика в контейнере #

Более подробно алгоритм сборки можно изучить в скрипте, который находится по пути:

Для Repka Pi 3:

docker/build-pi3.sh

Для Repka Pi 4:

docker/build-pi4.sh

Для Repka Pi 5:

docker/build-pi5.sh

Алгоритм для Repka Pi 3 #

  1. Сборка arm-trusted-firmware с включенным режимом логирования.
  2. Сборка U-Boot (внутри которого собирается дерево устройств и необходимые оверлеи) с включенным режимом логирования.
  3. Сборка arm-trusted-firmware с тихим режимом.
  4. Сборка U-Boot с тихим режимом.
  5. Помещение всех собранных файлов в директорию src-pi3 (которая связана с хостовой машиной).

Алгоритм для Repka Pi 4 #

  1. Сборка arm-trusted-firmware с включенным режимом логирования.
  2. Сборка гипервизора aw-el2-barebone с включенным режимом логирования.
  3. Сборка U-Boot (внутри которого собирается дерево устройств и необходимые оверлеи) с включенным режимом логирования.
  4. Сборка arm-trusted-firmware с тихим режимом.
  5. Сборка гипервизора aw-el2-barebone с тихим режимом.
  6. Сборка U-Boot с тихим режимом.
  7. Помещение всех собранных файлов в директорию src-pi4 (которая связана с хостовой машиной).

Алгоритм для Repka Pi 5 #

  1. Сборка Trusted Firmware-A 2.13 (bl31) для платформы rk3588.
  2. Подготовка бинарного DDR/TPL-файла из rkbin.
  3. Сборка U-Boot v2025.10 с конфигурацией repka-pi5-rk3588_defconfig.
  4. Помещение итогового файла u-boot-rockchip.bin в директорию src-pi5/spl (которая связана с хостовой машиной).

Как записать загрузчик на Repka Pi 3 / Repka Pi 4 / Repka Pi 5 #

Repka Pi 3 / Repka Pi 4 #

  1. В первую очередь необходимо скопировать содержимое директории src-<REPKA_MODEL>/spl в директорию /boot/spl на Repka Pi.
  2. Далее есть два варианта записи:
    • Запись через dd (для загрузчика с режимом логирования):

      dd if=/boot/spl/u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8 strconv=notrunc
      
    • Запись через dd (для загрузчика с тихим режимом):

      dd if=/boot/spl/u-boot-sunxi-with-spl-silent.bin of=/dev/mmcblk0 bs=1024 seek=8 strconv=notrunc
      
    • Запись через утилиту repka-config:

      repka-config
      

      И далее перейти в раздел "DL3 Boot Message" для Repka Pi 3 или для Repka Pi 4.

Repka Pi 5 #

  1. Необходимо использовать файл src-pi5/spl/u-boot-rockchip.bin.

  2. Для записи загрузчика на SD-карту или eMMC используйте команду:

    dd if=src-pi5/spl/u-boot-rockchip.bin of=/dev/mmcblk0 bs=512 seek=64 conv=fsync,notrunc
    
  3. Для платформы pi5 в текущем репозитории собирается один вариант загрузчика без отдельного "silent"-образа.


21 просмотров0 комментариев
0

Комментарии (0)

Для участия в обсуждении Вы должны быть авторизованным пользователем
Разделы

Навигация

ВойтиРегистрация