vault backup: 2026-05-01 17:07:28
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
#DeviceTree #Boot #Linux
|
||||
## Hardware starting. Процесс запуска и инициализации
|
||||
Далее описан процесс запуска и инициализации оборудования следующих уровней:
|
||||
Firmware layer
|
||||
Hardware descriptional layer
|
||||
kernal initialization stage
|
||||
|
||||
1. Power On
|
||||
2. Starting GPU on SoC
|
||||
3. ROM внутри Video Core начинает выполнение.
|
||||
4. GPU читает SD карту (загружаются)
|
||||
Файлы расположены в `/boot или /firmware/boot`
|
||||
1. ==bootcode.bin== - FirstStage Bootloader.
|
||||
Он инициализирует SDRAM и загружает прошивку start.elf
|
||||
2. ==start.elf== - Second Stage Bootloader
|
||||
Инициализирует систему и загружает ядро линукс, управляет памятью
|
||||
3. ==config.txt== - файл конфигурации
|
||||
Основной конфигурационный файл системы, считываемый GPU используемый для настройки оборудования
|
||||
4. ==cmdline.txt==
|
||||
файл конфигурации, передаваемый ядру линукс при загрузке
|
||||
5. ==device tree== - подгружается дерево устройств. (файлы *dtb)
|
||||
Передается в kernel. Хранятся в каталоге boot / firmware / overlays
|
||||
5. Только после этого GPU включает ARM CPU
|
||||
6. ARM начинает выполнение linux kernal
|
||||
|
||||
## Device tree - Описание аппаратной конфигурации.
|
||||
[Device Tree wiki](https://www.altlinux.org/Device_Tree)
|
||||
Device Tree — это **описание аппаратной конфигурации конкретной платы**.
|
||||
Применяется GPU до запуска ядра.
|
||||
Device Tree Overlays - фрагмент device tree, или слой абстракции который:
|
||||
добавляет новое устройство
|
||||
включает отключенный контроллер
|
||||
меняет параметры существующего узла
|
||||
|
||||
Пример изменения конфигурации DT без перекомпиляции ядра
|
||||
Открыть config.txt и добавить `dtoverlay=i2c-rtc,ds3231`
|
||||
|
||||
Что происходит:
|
||||
1. GPU загрузит основной DTB
|
||||
2. GPU применит overlay
|
||||
3. GPU передаст модифицированный DT ядру
|
||||
4. Ядро увидит новое устройство
|
||||
5. Драйвер RTC автоматически загрузится
|
||||
|
||||
Если удалить узел устройства (например SPI) из Device Tree то ядро просто не создаст SPI контроллер.
|
||||
|
||||
[[Linux - Commands]]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user