Skip to content

WolfGuy001/Repka-Uboot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published