README.md

    Boot Loader for Repka Pi

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

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

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

    Утилита Версия
    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
      
    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 3:

    docker/build-pi3.sh
    

    Для Repka Pi 4:

    docker/build-pi4.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 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

    Конвейеры
    0 успешных
    0 с ошибкой