Справочный материал для ArmSoM по единственному китайскому источнику Rockchip Parameter File Format 1.4 (2018.1, 5 страниц), сохранённому полностью в технической части. Английский источник не предоставлен; английская, русская и немецкая статьи переведены с китайского, все четыре используют два исходных рисунка. Аппаратная проверка не проводилась; совместимость с другими SoC или платами ArmSoM не заявляется. Проверьте SDK, цепочку загрузки, накопитель и разметку платы. Прошивка и переразметка могут удалить данные: сначала сделайте копию.
Внутренние расхождения: раздел 3.6 указывает ATAG 0x60000800, оба рисунка — 0x00200800. Заголовок 3.7 содержит MACHINE 3226, рисунки и список RK3326 — 3326. Сохранены оба варианта без заявления о проверке. updata.img — написание источника; сверяйте имя пакета SDK. MB/KB сохранены, расчёты используют 512 Bytes/sector. Адреса рисунка GPT отличаются от традиционного примера, смешивать их нельзя. androidboot.selinux=permissive на рисунке — исторический пример, не рекомендация безопасности для производства.
1. Обзор
Платформы Rockchip Android используют файл parameter для версии прошивки, разделов накопителя и других системных параметров. Изменяйте этот критически важный файл только после изучения каждого поля: неверная конфигурация может нарушить работу системы. Размер файла не должен превышать 64KB.
Источник перечисляет RK3066, RK3168, RK3188, RK3288, RK312X, RK3036, RK3399, RK3368, RK322X, RK3328, RK3326 и другие SoC.
2. Примеры файлов parameter
Исходные рисунки показывают GPT и традиционную разметку cmdline. Файлы различаются между проектами и платформами; поля объясняются на примере RK3326. Код рисунков также переписан ниже; переносы CMDLINE объединены в логические строки.

FIRMWARE_VER:8.1
MACHINE_MODEL:RK3326
MACHINE_ID:007
MANUFACTURER:rk3326
MAGIC:0x5041524B
ATAG:0x00200800
MACHINE:3326
CHECK_MASK:0x80
TYPE:GPT
CMDLINE:mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00002000@0x00006000(trust),0x00002000@0x00008000(misc),0x00008000@0x0000a000(resource),0x00010000@0x00012000(kernel),0x00010000@0x00022000(boot),0x00020000@0x00032000(recovery),0x00038000@0x00052000(backup),0x00002000@0x0008a000(security),0x00100000@0x0008c000(cache),0x00400000@0x0018c000(system),0x00008000@0x0058c000(metadata),0x00080000@0x00594000(vendor),0x00080000@0x00614000(oem),0x00000400@0x00694000(frp),-@0x00694400(userdata:grow)

FIRMWARE_VER:8.1
MACHINE_MODEL:RK3326
MACHINE_ID:007
MANUFACTURER:rk3326
MAGIC:0x5041524B
ATAG:0x00200800
MACHINE:3326
CHECK_MASK:0x80
CMDLINE:console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.veritymode=/dev/block/rknand_metadata androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(misc),0x00008000@0x00008000(resource),0x00010000@0x00010000(kernel),0x00010000@0x00020000(boot),0x00020000@0x00030000(recovery),0x00038000@0x00050000(backup),0x00002000@0x00088000(security),0x00100000@0x0008a000(cache),0x00400000@0x0018a000(system),0x00008000@0x0058a000(metadata),0x00080000@0x00592000(vendor),0x00080000@0x00612000(oem),0x00000400@0x00692000(frp),-@0x00692400(userdata)
3. Описание полей
3.1. FIRMWARE_VER:8.1
Версия прошивки; используется при упаковке образа, названного в источнике updata.img. Инструмент обновления определяет по ней версию прошивки.
3.2. MACHINE_MODEL:RK3326
Модель устройства при упаковке updata.img; проект может изменить её для отображения в инструменте обновления. При обновлении через recovery она может применяться для проверки соответствия прошивки.
3.3. MACHINE_ID:007
Идентификатор разработки продукта из букв и цифр, используемый при упаковке updata.img. Разные проекты используют разные ID для определения модели; recovery также может проверять соответствие прошивки.
3.4. MANUFACTURER: rk3326
Информация производителя при упаковке updata.img; её можно менять для отображения инструментом обновления.
3.5. MAGIC: 0x5041524B
Магическое число MAGIC изменять нельзя. Некоторые новые AP используют DTS и больше не используют это поле, но для совместимости удалять или менять его нельзя.
3.6. ATAG: 0x60000800
ATAG изменять нельзя. Некоторые новые APs используют DTS и больше не используют поле, однако для совместимости оно должно оставаться неизменным.
3.7. MACHINE: 3226
Используется для идентификации ядром; значение должно соответствовать ядру и не должно произвольно меняться. Коды источника приведены ниже.
RK29xx: MACHINE:2929
RK292x: MACHINE:2928
RK3066: MACHINE:3066
RK3326: MACHINE:3326
3.8. CHECK_MASK: 0x80
Зарезервированное поле; не изменять.
3.9. TYPE: GPT
Указывает, что определения разделов CMDLINE используются для создания GPT. Согласно источнику, в этом режиме сам файл parameter не записывается в NVM, например NAND или EMMC.
3.10. CMDLINE
console=ttyFIQ0 androidboot.console=ttyFIQ0 задаёт последовательную консоль.
В initrd=0x62000000,0x00800000 первое значение — адрес загрузки boot.img в SDRAM, второе — размер ramdisk. Источник сообщает, что на тот момент размер ramdisk не ограничивался.
androidboot.xxx используется при запуске Android; некоторые платформы задают его в DTS ядра. Обычно следует сохранять значения выпущенного SDK.
Определения разделов MTD
mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(misc),0x00008000@0x00008000(resource),0x00010000@0x00010000(kernel),0x00010000@0x00020000(boot),0x00020000@0x00030000(recovery),0x00038000@0x00050000(backup),0x00002000@0x00088000(security),0x00100000@0x0008a000(cache),0x00400000@0x0018a000(system),0x00008000@0x0058a000(metadata),0x00080000@0x00592000(vendor),0x00080000@0x00612000(oem),0x00000400@0x00692000(frp),-@0x00692400(userdata)
-
Для совместимости описанные AP Rockchip используют идентификатор
rk29xxnand. -
В
0x00002000@0x00008000(boot)до@указан размер, после — начало, в скобках — имя раздела. Единица — sector, 1 sector = 512 Bytes. boot начинается с 0x8000 sectors, размер — 0x2000 sectors: «4MB» источника, то есть 4 MiB. -
Для производительности начало разделов выравнивается по 32KB (64 sectors), размер также кратен 32KB.
-
Обновление образами sparse стирает данные. Для лучшей совместимости рекомендуется выравнивание разделов по 4MB и размер, кратный 4MB.
-
В GPT адреса parameter являются фактическими логическими адресами LBA. uboot по адресу 0x4000 записывается на EMMC и NAND по тому же адресу 0x4000. Последний раздел должен иметь параметр grow: инструмент выделяет ему всё оставшееся место.
| Имя | Адрес parameter | Логический адрес EMMC | Логический адрес NAND | Размер |
|---|---|---|---|---|
| GPT | – | 0 | 0 | 32KB |
| LOADER | – | 0x40 | 0x40 | 4MB-32KB |
| Резерв | – | 0x2000 | 0x2000 | 4MB |
| UBOOT | 0x4000 | 0x4000 | 0x4000 | 4MB |
| TRUST | 0x6000 | 0x6000 | 0x6000 | 4MB |
- Традиционный cmdline резервирует первые 0–4MB EMMC для loader, поэтому к адресам parameter добавляется 4MB (0x2000 sectors). uboot с определением 0x2000 записывается в EMMC по 0x4000, как в примере GPT. Для совместимости со старыми изделиями NAND использует адрес напрямую: 0x2000 записывается по 0x2000, в отличие от GPT.
| Имя | Адрес parameter | Логический адрес EMMC | Логический адрес NAND | Размер |
|---|---|---|---|---|
| Резерв | – | 0 | 0 | 32KB |
| LOADER | – | 0x40 | 0x40 | 4MB-32KB |
| parameter | – | 0x2000 | 0x0 | 4MB |
| UBOOT | 0x2000 | 0x4000 | 0x2000 | 4MB |
| TRUST | 0x4000 | 0x6000 | 0x4000 | 4MB |
Устройства NAND FLASH могут записывать loader по 0x40 в той же области 4MB, что и parameter. По источнику, действительные данные размещены раздельно и не перекрываются. Это не гарантирует безопасность произвольной разметки.
4. Частые проблемы и решения
На странице 5 присутствует только заголовок без вопросов и ответов. Отсутствующий текст не выдуман.
