Инструменты пользователя

Инструменты сайта


boards:nms-sm-rk3588:u-boot:start

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
boards:nms-sm-rk3588:u-boot:start [2025/10/14 10:03] – создано Артем Слеповboards:nms-sm-rk3588:u-boot:start [2025/10/14 10:12] (текущий) – [Файл extlinux.conf] Артем Слепов
Строка 1: Строка 1:
-====== Описание загрузчика NMS-SM-RK3588-U-Boot ====== +====== Описание загрузчика NMS-SM-RK3588-U-Boot ====== 
 +===== Назначение  =====
  
 NMS-SM-RK3588-U-Boot — это программный компонент, предназначенный для подготовки аппаратной платформы и загрузки основной операционной системы. NMS-SM-RK3588-U-Boot — это программный компонент, предназначенный для подготовки аппаратной платформы и загрузки основной операционной системы.
Строка 6: Строка 7:
  
 1. Инициализация аппаратуры 1. Инициализация аппаратуры
 +  * Настраивает контроллеры памяти (DRAM, SRAM, Flash);
 +  * Конфигурирует тактирование (PLL, clock tree);
 +  * Инициализирует UART, SPI, I²C, GPIO, сетевые интерфейсы;
 +  * Подготавливает устройства хранения (eMMC, SD, SATA SSD  и т.п.).
  
-Настраивает контроллеры памяти (DRAM, SRAM, Flash); 
-Конфигурирует тактирование (PLL, clock tree); 
-Инициализирует UART, SPI, I²C, GPIO, сетевые интерфейсы; 
-Подготавливает устройства хранения (eMMC, SD, SATA SSD и т.п.). 
 2. Загрузка операционной системы 2. Загрузка операционной системы
 +  * Находит и загружает ядро ОС и корневую файловую систему;
 +  * Передаёт ядру параметры (адреса памяти, командную строку, DTB);
 +  * Запускает ядро на выполнение.
  
-Находит и загружает ядро ОС и корневую файловую систему; 
-Передаёт ядру параметры (адреса памяти, командную строку, DTB); 
-Запускает ядро на выполнение. 
 3. Поддержка различных источников загрузки 3. Поддержка различных источников загрузки
 +  * Может загружать ОС из Flash, SD-карты, eMMC, USB, сети (TFTP/NFS) и т.д.;
 +  * Позволяет выбрать порядок загрузки (boot sequence).
  
-Может загружать ОС из Flash, SD-карты, eMMC, USB, сети (TFTP/NFSи т.д.; +4.  Интерактивная оболочка (CLI
-Позволяет выбрать порядок загрузки (boot sequence). +  * Через консоль UART можно выполнять команды вручную; 
-4. Интерактивная оболочка (CLI)+  * Настраивать переменные окружения апример, bootcmd, bootargs); 
 +  * Отлаживать систему на ранних стадиях запуска.
  
-Через консоль UART можно выполнять команды вручную; 
-Настраивать переменные окружения (например, bootcmd, bootargs); 
-Отлаживать систему на ранних стадиях запуска. 
 5. Обновление и отладка 5. Обновление и отладка
 +  * Позволяет обновлять прошивку по сети или с USB;
 +  * Используется для диагностики оборудования на ранних этапах
 +
 +
 +===== U-boot-2024  =====
 +Прямая ссылка на Git с системой сборки: https://github.com/inmys/buildroot-external-inmys/tree/nms-sm-rk3588
 +
 +U-boot для RK3588 можно собрать  с помощью Buildroot по[[https://wiki.inmys.ru/boards:nms-sm-rk3588:buildroot:start| инструкции по сборке]]
 +
 +U-boot может загружаться либо с SD, либо с eMMC. Приоритет bootrom на EMMC. Приоритет нашего u-boot на SD.
 +
 +Релиз доступен по ссылке: https://disk.360.yandex.ru/d/WtPLuyHF6YF9fQ
 +
 +Релиз собран с поддержкой:
 +  * ethernet (X7,X8 - cmd: "ping")
 +  * usb (X11 cmd: "usb start")
 +  * sata (m.2 на нижней части платы: X9: cmd: "scsi scan")
 +  * pci (X33-pcie3, X19-pcie2: cmd: "pci enum;pci")
 +  * sdcard(X5 : cmd: "mmc dev 1;mmc info")
 +  * saveenv(сохраняет переменные окружения в eMMC)
 +Прошивать на SDcard или eMMC так:
 +<code>
 +dd if=u-boot-rockchip.bin of=/dev/XXX seek=64
 +</code>
 +
 +U-boot переходит к загрузке ОС командой<code>
 +bootflow scan
 +</code>
 +Команда ожидает extlinux.conf файл носителях, которые определены в переменной окружения: <code>
 +boot_targets=mmc1 mmc0 nvme scsi usb pxe dhcp spi
 +</code>
 +  * mmc1 - SD на плате SM-EVM
 +  * mmc0 - eMMC на модуле SMARC
 +  * scsi - SATA M2 диск на плате SM-EVM
 +
 +Таким образом, если нужно переопределить порядок загрузки, небходимо изменить порядок носителей в переменной окружения boot_targets.
 +
 +Например, чтобы загружать Linux с SATA:
 +<code>
 +setenv boot_targets "scsi mmc1 mmc0 nvme usb pxe dhcp spi"
 +saveenv
 +</code>
 +
 +
 +==== Файл extlinux.conf ====
 +Пример конфигурационного файла для загрузки Buildroot-сборки:
 +<code>
 +TIMEOUT 3
 +DEFAULT main
 +#MENU TITLE Boot menu
 +
 +label main
 +        kernel /Image
 +        fdt /rk3588-inmys-smarc-evm.dtb
 +        initrd /rootfs.cpio.gz
 + append earlycon=uart8250,mmio32,0xfeb50000 console=ttyS2,1500000 root=PARTUUID=31474154-01 rootwait
 +</code>
 +
  
-Позволяет обновлять прошивку по сети или с USB; 
-Используется для диагностики оборудования на ранних этапах 
boards/nms-sm-rk3588/u-boot/start.1760436208.txt.gz · Последнее изменение: 2025/10/14 10:03 — Артем Слепов