1 шаг. Boot ROM #
Boot ROM — это первый код, который исполняется процессором (для Repka Pi 3 - Allwinner H5 и для Repka Pi 4 - Allwinner H6) сразу после его включения. Этот код записан в энергонезависимую память микроконтроллера или процессора и не может быть изменён пользователем. Основная задача этого шага:
- Инициализация минимального набора оборудования, такого как тактовые генераторы и базовая память.
- Определение источника загрузки (eMMC, SD-карта и т.д.).
- Загрузка и передача управления вторичному загрузчику (обычно SPL).
2 шаг. SPL #
SPL — это облегчённая версия загрузчика (часто часть U-Boot), созданная для работы с ограниченными ресурсами системы на начальном этапе. Основная задача этого шага:
- Инициализация большего объёма памяти (например, DRAM).
- Загрузка следующего этапа загрузчика (обычно полноценного U-Boot) в оперативную память.
- Передача управления U-Boot.
3 шаг. U-Boot #
U-Boot (Universal Boot Loader) — это полноценный загрузчик с расширенным функционалом. Он поддерживает работу с множеством файловых систем, сетевую загрузку и гибкую конфигурацию. Основная задача этого шага:
- Завершение инициализации оборудования, включая настройки процессора, устройств ввода-вывода, сети и периферии.
- Загрузка ядра Linux и передачу ему управления.
4 шаг. Ядро Linux #
Ядро Linux — это основная часть операционной системы, которая управляет оборудованием и предоставляет интерфейс для работы пользовательских приложений. Основная задача этого шага:
- Инициализация всех драйверов оборудования.
- Монтирование корневой файловой системы.
- Запуск процессов пользовательского пространства, начиная с init-системы (например, systemd, init, или их аналоги).