Это справочный материал платформы для адаптации ArmSoM, полностью основанный на единственном китайском документе Rockchip_Developer_Guide_SD_Boot_CN.pdf (RK-KF-YF-171, V1.3.1, 17 страниц). Английского PDF нет; английская, русская и немецкая версии полностью переведены с китайского. Все версии используют исходные китайские иллюстрации; URL изображений немецкой и английской версий совпадают. Поле версии продукта в оригинале пустое; версии SDK/BSP и ядра не указаны. Раздел 4 перечисляет только поддержку IDB/BCB по SoC, а не подтверждает работу всех плат ArmSoM. Проверьте SoC платы, подключение и питание SD, приоритет загрузки, SDK/BSP, pre-loader/SPL/U-Boot, recovery и SDDiskTool. Аппаратные испытания не выполнялись; процедуры и примеры взяты из оригинала, а не из тестов ArmSoM.
Создание карты и обновление перезаписывают выбранную SD-карту или хранилище устройства. Сначала создайте резервную копию и проверьте устройство. Создание карт, форматирование и обновление не выполнялись. Версия v1.53 на снимках не соответствует требованию v1.67 для BCB.
Редакторские примечания · ArmSoM Docs · Rockchip U-Boot
Обзор
В статье рассмотрены варианты использования SD-карт Rockchip: создание прошивки, подготовка карт разного назначения, размещение прошивки на карте и последовательность загрузки. Материал помогает инженерам разбирать проблемы при работе с SD-картами.
1. Типы карт
Rockchip различает обычные SD-карты, карты обновления, загрузочные карты и карты восстановления. Утилита создания диска обновления Rockchip записывает update.img на SD-карту для подготовки нужного типа карты.
| Тип карты | Функция |
|---|---|
| Обычная SD-карта | Обычный накопитель |
| Карта обновления SD | Загружает recovery с SD; recovery обновляет хранилище устройства прошивкой с SD |
| Загрузочная SD-карта | Устройство загружается непосредственно с SD |
| Карта восстановления SD | Копирует прошивку с SD в хранилище устройства начиная с pre-loader |
2. Подготовка прошивки
update.img — пакет полного комплекта прошивки Rockchip. Кроме самой прошивки он содержит данные проверки целостности и другую служебную информацию, упрощая обновление всего комплекта.
Rockchip предоставляет специальный инструмент для создания update.img. В Rockchip SDK откройте каталог RKTools/linux/Linux_Pack_Firmware/rockdev/, показанный ниже.

Каталог упаковки прошивки — Китайский оригинал, стр. PDF 4
backupimage/
Image/
AFPTool.exe
baseparamer.img
mkupdate.bat
package-file
recover-script
RKImageMaker.exe
update.img
update-script
Отредактируйте package-file, чтобы сформировать нужный update.img. Содержимое приведено ниже; код со страниц 4–5 PDF объединён.
# NAME Relative path
#
#HWDEF HWDEF
package-file package-file
bootloader Image/MiniLoaderAll.bin
parameter Image/parameter.txt
uboot Image/uboot.img
trust Image/trust.img
misc Image/misc.img
resource Image/resource.img
kernel Image/kernel.img
boot Image/boot.img
#recovery Image/recovery.img
#system Image/system.img
#vendor Image/vendor.img
#oem Image/oem.img
# baseparamer Image/baseparamer.img
# 要写入backup分区的文件就是自身(update.img)
# SELF 是关键字,表示升级文件(update.img)自身
# 在生成升级文件时,不加入SELF文件的内容,但在头部信息中有记录
# 在解包升级文件时,不解包SELF文件的内容。
# RESERVED不打包backup
backup backupimage/backup.img
update-script update-script
recover-script recover-script
Комментарии поясняют: SELF обозначает сам файл обновления update.img для backup. При создании пакета содержимое SELF не включается, но сведения о нём записываются в заголовок; при распаковке SELF не извлекается. RESERVED не упаковывает backup.
Для добавления файла укажите имя и путь прошивки. Чтобы исключить компонент, поставьте # перед его именем. Запустите mkupdate.bat для создания update.img.
3. Работа с утилитой
3.1 Обычные SD-карты
Обычная SD-карта используется так же, как на ПК: как обычное хранилище в U-Boot и ядре. Подготавливать её этой утилитой не требуется.
3.2 SD-карты обновления
Карта обновления создаётся утилитой RK и обновляет систему в локальном хранилище, например eMMC или NAND flash, без ПК и сети. Загрузочный код записывается в зарезервированную область SD-карты, прошивка копируется в видимый раздел. При загрузке контроллера с карты загрузочный код и код обновления записывают прошивку в основное локальное хранилище. Также поддерживаются тестирование PCBA и копирование файлов Demo, что позволяет обновлять устройства без ПК и повышает производительность производства. Порядок создания приведён ниже.

Создание карты обновления — Китайский оригинал, стр. PDF 6
- Выберите съёмный диск.
- Выберите режим: Обновление прошивки.
- Выберите прошивку для записи.
- Нажмите «Начать создание».
Настройки показаны на иллюстрации.
Настройки показаны на иллюстрации. Если карта обновления уже подготовлена и требуется заменить только прошивку и файлы demo, выполните следующие действия:
- Скопируйте прошивку в корень SD-карты и переименуйте в
sdupdate.img. - Скопируйте файлы demo в каталог
Demoв корне карты.
Карта обновления — без GPT
| Смещение | Область данных |
|---|---|
| сектор 0 | MBR |
| сектор 64-4M | IDBLOCK(признак загрузки = 0) |
| 4M-8M | Parameter |
| 12M-16M | uboot |
| 16M-20M | trust |
| …… | misc(BCB содержит recovery\n–rk_fwupdate\n) |
| …… | resource |
| …… | kernel |
| …… | recovery |
| Оставшееся пространство | Fat32 для update.img |
Карта обновления — GPT
| Смещение | Область данных |
|---|---|
| сектор 0 | MBR |
| сектор 1-34 | Таблица разделов GPT |
| сектор 64-4M | IDBLOCK(признак загрузки = 0) |
| 4M-8M | Parameter |
| …… | uboot |
| …… | trust |
| …… | misc |
| …… | resource |
| …… | kernel |
| …… | recovery |
| Оставшееся пространство | Fat32 для update.img |
3.3 Загрузочные SD-карты
Загрузочная карта создаётся утилитой RK и позволяет запускать систему прямо с SD-карты. Это упрощает замену вновь собранной прошивки без записи во встроенное хранилище; карта может служить и основным накопителем. Основные назначения — загрузка с SD и тестирование PCBA. Тестирование PCBA является функцией recovery и доступно как на картах обновления, так и на загрузочных картах. Порядок создания приведён ниже.

Создание загрузочной карты — Китайский оригинал, стр. PDF 8
- Выберите съёмный диск.
- Выберите режим: Загрузка SD.
- Выберите прошивку для записи.
- Нажмите «Начать создание».
Настройки показаны на иллюстрации.
Загрузочная карта — без GPT
| Смещение | Область данных |
|---|---|
| сектор 0 | MBR |
| сектор 64-4M | IDBLOCK(признак загрузки = 1) |
| 4M-8M | Parameter |
| 8M-12M | uboot |
| 12M-16M | trust |
| …… | misc |
| …… | resource |
| …… | boot |
| …… | kernel |
| …… | recovery |
| …… | system |
| …… | user |
Загрузочная карта — GPT
| Смещение | Область данных |
|---|---|
| сектор 0 | MBR |
| сектор 1-34 | Таблица разделов GPT |
| сектор 64-4M | IDBLOCK(признак загрузки = 1) |
| …… | uboot |
| …… | Boot |
| …… | trust |
| …… | resource |
| …… | kernel |
| …… | recovery |
| …… | system |
| …… | vendor |
| …… | oem |
| …… | user |
| Последние 33 сектора | Резервная GPT |
3.4 SD-карты восстановления
Карта восстановления действует подобно карте обновления, но обновление выполняет SD-код в pre-loader (miniloader). Утилита сначала записывает загрузочный код в зарезервированную область, затем копирует прошивку в видимый раздел. При загрузке контроллера с SD код обновляет основное локальное хранилище. Главная задача — восстановление устройства с повреждённой прошивкой. Порядок создания приведён ниже.

Создание карты восстановления — Китайский оригинал, стр. PDF 10
- Выберите съёмный диск.
- Выберите режим: Загрузка SD и Восстановление.
- Выберите прошивку для записи.
- Нажмите «Начать создание».
Настройки показаны на иллюстрации.
Карта восстановления — без GPT
| Смещение | Область данных |
|---|---|
| сектор 0 | MBR |
| сектор 64-4M | IDBLOCK(признак загрузки = 2) |
| 4M-8M | Parameter |
| 8M-12M | uboot |
| 12M-16M | trust |
| …… | misc |
| …… | resource |
| …… | boot |
| …… | kernel |
| …… | recovery |
| …… | system |
| …… | user |
Карта восстановления — GPT
| Смещение | Область данных |
|---|---|
| сектор 0 | MBR |
| сектор 1-34 | Таблица разделов GPT |
| сектор 64-4M | IDBLOCK(признак загрузки = 2) |
| …… | uboot |
| …… | Boot |
| …… | trust |
| …… | resource |
| …… | kernel |
| …… | recovery |
| …… | system |
| …… | vendor |
| …… | oem |
| …… | user |
| Последние 33 сектора | Резервная GPT |
4. Признаки карт
Для разных функций на SD-карте записываются соответствующие признаки. Если начальное магическое число сектора 64 равно 0xFCDC8C3B, карта считается специальной и устройство загружается из записанной на ней прошивки; иначе она обрабатывается как обычная карта. Признак типа карты находится по смещению «сектор 64 + 616bytes» и принимает три значения:
| Признак | Тип карты |
|---|---|
| 0 | Карта обновления или теста PCBA |
| 1 | Загрузочная карта |
| 2 | Карта восстановления |
Запись idb block flag имеет следующие недостатки:
- Это несовместимое решение, специфичное для RK.
- Возникает проблема безопасности: запись признака при создании карты нарушает целостность idb block.
- Новые idb block не резервируют место для признака; резервирование всё равно приводило бы к перечисленным проблемам.
Для решения этих проблем RK использует Android BCB: в поле recovery записывается recovery\n--rk_fwupdate\n как признак перехода к обновлению с SD. Поддержка двух механизмов приведена ниже.
| Платформа | idb block flag | Android BCB |
|---|---|---|
| rk3588 | ✓ | |
| rk3568/rk3566 | ✓ | |
| rv1126/rv1109 | ✓ | ✓ |
| rk3399 | ✓ | ✓ |
| rk3368 | ✓ | ✓ |
| rk3328 | ✓ | ✓ |
| rk3326 | ✓ | ✓ |
| rk3308 | ✓ | ✓ |
| rk3288 | ✓ | ✓ |
| rk3229 | ✓ | ✓ |
| rk3128 | ✓ | ✓ |
| rk3126 | ✓ | ✓ |
По мере обновления платформ и инструментов запись idb block flag будет постепенно отменяться. Для механизма Android BCB требуется SDDiskTool v1.67 или новее.
5. Анализ загрузки
Загрузка с SD состоит из этапа pre-loader/SPL и этапа U-Boot. pre-loader и U-Boot обнаруживают SD-карту, проверяют Startup Flag в её IDB Block и выполняют соответствующую функцию. SPL назначает SD-карте наивысший приоритет загрузки: если на ней есть загрузочная прошивка, она загружается и запускается в первую очередь.
5.1 Загрузка pre-loader

Исходная схема pre-loader — Китайский оригинал, стр. PDF 13
Текстовое пояснение схемы: maskrom → pre-loader → поиск накопителей. Если SD-карты нет или магическое число сектора 64 не равно 0xFCDC8C3B, выполняется обычная загрузка. Иначе проверяется признак «сектор 64 + 616bytes»: 0 — карта обновления/теста PCBA, 1 — загрузочная карта; в обоих случаях прошивка читается с SD и запускается UBOOT. При 2 выбирается карта восстановления и прошивка обновляется в loader.
5.2 Загрузка SPL

Схема SPL из исходного векторного рисунка — Китайский оригинал, стр. PDF 14
Start → SPL → поиск накопителей. При отсутствии SD-карты выполняется поиск других накопителей. Если карта есть, но загрузочной прошивки нет, также ищутся другие накопители. Если прошивка есть, запускается следующий этап → End.
5.3 Загрузка U-Boot

Схема U-Boot, первая часть — Китайский оригинал, стр. PDF 16

Схема U-Boot, продолжение на следующей странице PDF — Китайский оригинал, стр. PDF 17
Узлы и ветви схемы:
- Start → Uboot → поиск накопителей. Если SD нет, проверяются другие накопители.
- При наличии SD проверяется магическое число в начале сектора 64:
0xFCDC8C3B. Если оно совпадает, проверяется равенство признака 616bytes нулю; иначе проверяются другие накопители. - Если магическое число не равно
0xFCDC8C3B, проверяются0x534e4b52и0x534e5252; при несовпадении проверяются другие накопители. - Для старого магического числа с признаком 0 либо одного из новых чисел текущим устройством назначается SD.
- В cmdline добавляется
sdfwupdate→ из misc определяется режим recovery → проверяется, равно ли поле recovery в BCB строкеrecovery\n--rk_fwupdate\n. Если нет, проверяются другие накопители. - При совпадении продолжение схемы снова добавляет
sdfwupdateв cmdline, затем загружает recovery и переходит в этот режим → End. Повторный узел сохранён из оригинала; фактическое поведение следует сверить с используемой веткой U-Boot.
5.4 recovery и PCBA
Подробности оригинал отсылает к Rockchip Recovery 用户操作指南 V1.03.pdf — руководству пользователя Rockchip Recovery. Этот документ не входил в исходные материалы данной статьи.
6. Важные замечания
- Для формата без GPT в U-Boot необходима настройка
CONFIG_RKPARM_PARTITION. - При создании карты обновления
update.imgдолжен содержатьMiniloaderAll.bin,parameter.txt,uboot.img,trust.img,misc.img,resource.imgиrecovery.img; иначе при записи появится ошибка записи MBR. НаписаниеMiniloaderAll.binотличается регистром отMiniLoaderAll.binв разделе 2. Оба варианта сохранены по оригиналу; проверьте фактическое имя файла.
