Rockchip · AI & Linux Hub

Android и BSP

Ошибки обновления прошивки Rockchip: Boot Code, IDB, NAND и EMMC

Ошибки обновления прошивки Rockchip: Boot Code, IDB, NAND и EMMC — V1.2

· ArmSoM Editorial · Rockchip source documentation · 13 мин чтения

Справочный материал для ArmSoM: полное техническое содержание RK Firmware Upgrade Failure Analysis 1.2. Единственный источник — китайский PDF на25 страницах; английский, русский и немецкий переведены полностью, все используют45 исходных рисунков. Журналы, сравнение бинарных файлов, платы и осциллограммы сохранены в оригиналах; неразборчивые символы не выдуманы. Читаемый batch-код и последняя таблица питания также переписаны текстом. Примеры относятся к старым SoC/инструментам, не испытаниям ArmSoM. Проверяйте аппаратуру, BSP, datasheet памяти и цепочку загрузки.

Границы и вопросы источника

  • Это рекомендации диагностики, не доказательство неисправности по одному сообщению. Сохраните журналы, проверьте прошивку/питание, затем исследуйте факты. Перепайка требует квалификации.
  • Repair, стирание IDB, перепрошивка и запись misc разрушают данные/загрузочное состояние. Сначала резервная копия, точная цель и размер раздела. Для secure boot нужна подписанная прошивка, не обход проверки.
  • Pin38-VCC, подтяжки10K и EXT CSD179/167/162 относятся лишь к подходящим компонентам/платформам. RTS_n, DATO, RK3329 отмечены как сомнительные написания; не определяйте соединения по опечатке.
  • Таблицы ID исторические, не полный список. После D3 стоит разделитель без второго значения — ID не выдуман.00/FF трактуются только в контексте источника, не заменяют электрическую проверку.
  • На странице25 таблица только изображением; сохранена и переписана: Ta=25°C при3.3V, VCC2.7V–3.6V, пульсации60mV peak-to-peak. Диапазоны текста100-300mA/100-700uA не равны гарантиям для показанного отдельного типа.
  • Третий batch-скриншот страницы17 обрезан справа в оригинале. Команда восстановлена по предыдущему и явной замене-RK29→-RK30; изображения сохранены. Времена журналов сохранены как контекст; дата обложки, контакты и история удалены. Прошивка, стирание, регистры и аппаратные операции не выполнялись.

1. Обзор

На производстве и при разработке часто возникают ошибки обновления прошивки. Руководство собирает типовые проблемы и способы диагностики. Инструменты меняются, поэтому точные сообщения могут отличаться, но для одного типа ошибки обычно похожи.

2. Типовые ошибки и анализ

2.1. Ошибка загрузки Boot Code

Сообщение производственного инструмента:

Исходный снимок или диаграмма, страница PDF 2, рисунок 1

Сообщение инструмента разработки:

Исходный снимок или диаграмма, страница PDF 2, рисунок 2

Файл журнала в каталоге log производственного инструмента:

Исходный снимок или диаграмма, страница PDF 3, рисунок 3

Файл журнала в каталоге log инструмента разработки:

Исходный снимок или диаграмма, страница PDF 3, рисунок 4

Возможные причины:

  1. Плохое качество сигнала USB.

  2. Дефекты пайки SoC или питания.

  3. Проблемы DDR.

  4. Недостаточное питание.

  5. Неподписанная прошивка на устройстве с secure boot.

Диагностика:

  1. Проверьте пайку инструментом тестирования DDR.

  2. Используйте короткий качественный кабель USB 2.0 и задний USB-порт ПК.

  3. Проверьте наличие и параметры ESD-компонентов USB.

  4. Измерьте напряжение и пульсации питания USB.

  5. Проверьте параллельную прокладку USB и других трасс на соседних слоях.

  6. Проверьте номиналы резисторов и конденсаторов SoC/USB.

  7. Используйте предусмотренный платой внешний источник или батарею.

  8. Устройствам secure boot нужна соответствующая правильно подписанная прошивка.

2.2. Тест устройства не проходит после загрузки Boot Code

Сообщение производственного инструмента:

Исходный снимок или диаграмма, страница PDF 4, рисунок 5

Сообщение инструмента разработки:

Исходный снимок или диаграмма, страница PDF 4, рисунок 6

Журнал производственного инструмента:

Исходный снимок или диаграмма, страница PDF 5, рисунок 7

Журнал инструмента разработки:

Исходный снимок или диаграмма, страница PDF 5, рисунок 8

Возможные причины:

  1. Компоненты DDR или разводка DDR; источник считает их наиболее вероятными.

  2. Плохой сигнал USB.

  3. Неверный usbplug при упаковке miniloader в U-Boot.

Диагностика:

  1. Проверьте пайку DDR тестовым инструментом.

  2. Проверьте разводку DDR на нарушение правил.

  3. При подтверждённой неисправности замените DDR.

  4. Проверки USB — раздел 2.1.

  5. Подключите UART и выясните, дошёл ли CPU до DDR или usbplug.

2.3. Подготовка IDB: пайка NAND FLASH или EMMC

Производственный инструмент сообщает об ошибке подготовки IDB:

Исходный снимок или диаграмма, страница PDF 6, рисунок 9

Журнал производственного инструмента:

Исходный снимок или диаграмма, страница PDF 6, рисунок 10

Инструмент разработки сообщает об ошибке записи ID_BLOCK:

Исходный снимок или диаграмма, страница PDF 7, рисунок 11

Журнал сообщает, что NAND FLASH не найдена и запись ID_BLOCK не удалась.

Возможные причины:

  1. Плохая пайка NAND FLASH/EMMC.

  2. Неподдерживаемая NAND FLASH.

  3. Дефекты платы.

  4. Неверное питание FLASH VCCQ.

  5. Неверный FLASH SEL на стороне AP.

  6. Отсутствуют подтяжки CMD и D0 EMMC.

Диагностика:

  1. Проверьте плату и восстановите пайку NAND FLASH/EMMC квалифицированным способом.

  2. Сверьте схему и datasheet NAND, особенно вывод 38. По источнику, большинству Toshiba, Sandisk и Samsung там нужен VCC, другим — нет. Это историческое обобщение: определяющими являются datasheet и корпус конкретного компонента.

  3. Для неподдерживаемой NAND получите соответствующее обновление драйвера через поддержку изготовителя и проверьте список поддерживаемых компонентов.

  4. UART-журнал помогает проверить пайку. Исправная NAND выводит FLASH ID, как ниже. В описанном пути загрузки EMMC обычно не выводит FLASH ID.

Исходный снимок или диаграмма, страница PDF 8, рисунок 12

Первый байт FLASH ID определяет изготовителя:

ID Изготовитель
2C Micron
AD Hynix
45 Sandisk
89 Intel
EC Samsung
98 Toshiba
00 NAND FLASH не подключена
FF NAND FLASH не подключена
Другие значения Плохая пайка или неподдерживаемая NAND FLASH.

Второй байт обозначает ёмкость; типовые значения источника:

ID Ёмкость
75 32MB
76 64MB
78、79、F1、D1 128MB
DA、71 256MB
DC 512MB
D3、 1GB
D5、48 2GB
D7、68 4GB
D9、88、DE、3A、64 8GB
3C、A8、84 16GB
Другие значения Плохая пайка или неподдерживаемая NAND FLASH.

Примеры диагностики:

  1. Следующий журнал источник связывает с плохой пайкой NAND FLASH или EMMC.

Исходный снимок или диаграмма, страница PDF 9, рисунок 13

  1. Установлены две NAND, но система видит четыре. Источник указывает на плохую пайку CS.

Исходный снимок или диаграмма, страница PDF 10, рисунок 14

  1. Две NAND установлены и найдены, но ID неверны: первый байт 2c — Micron, второй 8C вместо ожидаемого здесь 88. Источник делает вывод о пайке. Не считайте любой отсутствующий в таблице ID неисправным без datasheet.

Исходный снимок или диаграмма, страница PDF 10, рисунок 15

2.4. Ошибка записи IDB

Производственный инструмент сообщает об ошибке записи ID_BLOCK:

Исходный снимок или диаграмма, страница PDF 11, рисунок 16

Ошибка ID_BLOCK в инструменте разработки:

Исходный снимок или диаграмма, страница PDF 11, рисунок 17

Журнал разработки сообщает об ошибке сравнения:

Исходный снимок или диаграмма, страница PDF 12, рисунок 18

Журнал производственного инструмента:

Исходный снимок или диаграмма, страница PDF 12, рисунок 19

В каталоге LOG также появляются бинарные файлы:

Исходный снимок или диаграмма, страница PDF 12, рисунок 20

Сравните бинарным инструментом файлы с одинаковым префиксом и суффиксами «flash» и «file», например:

Исходный снимок или диаграмма, страница PDF 13, рисунок 21

В примере один или несколько отличающихся битов указывают на DDR. См. 2.2; это диагностический признак, не самостоятельное доказательство.

Исходный снимок или диаграмма, страница PDF 13, рисунок 22

Много отличающихся битов в примерах обычно указывает на NAND. Источник предлагает повторить обновление. Сильные пульсации питания или отсутствие фильтрующих конденсаторов дают тот же симптом. Если питание нормально, а повторения не помогают, после подтверждения диагноза замените NAND.

Исходный снимок или диаграмма, страница PDF 13, рисунок 23

2.5. Ошибка загрузки прошивки

Производственный инструмент сообщает об ошибке загрузки прошивки:

Исходный снимок или диаграмма, страница PDF 14, рисунок 24

Журнал: WriteLBA failed, код (-3).

Исходный снимок или диаграмма, страница PDF 14, рисунок 25

Журнал: ReadLBA failed, код (-4).

Исходный снимок или диаграмма, страница PDF 14, рисунок 26

Источник связывает оба случая с прерыванием USB. Проверки — в 2.1.

Журнал: RKA_File_Check failed.

Исходный снимок или диаграмма, страница PDF 15, рисунок 27

В каталоге журнала два файла: предназначенные для записи данные и ошибочно прочитанные из flash.

Исходный снимок или диаграмма, страница PDF 15, рисунок 28

Сравните файлы. Один или несколько отличающихся битов указывают на DDR; см. 2.2.

Исходный снимок или диаграмма, страница PDF 16, рисунок 29

Исходный снимок или диаграмма, страница PDF 16, рисунок 30

При множестве отличающихся битов источник подозревает NAND и предлагает «Repair» производственного инструмента либо «Erase IDB» инструмента разработки перед прошивкой. Это может уничтожить данные и загрузочные метаданные: сначала резервная копия и проверка устройства. Исходные кнопки сохранены ниже.

Исходный снимок или диаграмма, страница PDF 16, рисунок 31

Повторно прошивайте только после выбранного восстановления/стирания и проверок.

Причиной также бывают пульсации или отсутствие фильтрации NAND. Если проверка питания и повторная прошивка не помогают, замените NAND после диагностики.

Исходный снимок или диаграмма, страница PDF 16, рисунок 32

Сообщения и журналы разработки аналогичны производственным; анализ тот же.

2.6. Ошибка проверки чипа

Проверка чипа обычно не проходит, когда прошивка не соответствует SoC. При разработке возможен неверный параметр упаковки. По источнику, инструмент разработки не проверяет чип: неверная прошивка не загрузится либо вернётся в режим обновления. Нужна корректная прошивка.

Исходный снимок или диаграмма, страница PDF 17, рисунок 33

Пример для RK30 ошибочно упакован как RK29. Откройте mkupdate.bat и исправьте параметр чипа.

Исходный снимок или диаграмма, страница PDF 17, рисунок 34

Afptool -pack ./ Image\update.img
RKImageMaker.exe -RK29 RK30xxLoader(L)_V1.20.bin Image\update.img update.img -os_type:androidos
rem update.img is new format, Image\update.img is old format, so delete older format
del Image\update.img
pause

В данном примере RK30 измените параметр RKImageMaker.exe на -RK30.

Исходный снимок или диаграмма, страница PDF 17, рисунок 35

Afptool -pack ./ Image\update.img
RKImageMaker.exe -RK30 RK30xxLoader(L)_V1.20.bin Image\update.img update.img -os_type:androidos
rem update.img is new format, Image\update.img is old format, so delete older format
del Image\update.img
pause

Подробности — в документах каталога инструмента создания прошивки.

3. Другие проблемы

3.1. После перезагрузки остаётся режим обновления

Случай 1: после инструмента разработки устройство не запускается, по USB видно обновление. Ниже UART-журнал.

Исходный снимок или диаграмма, страница PDF 18, рисунок 36

Читаемые ключевые состояния последовательного порта (фрагмент; полный журнал остаётся на оригинальном снимке):

unsigned!
SecureBootEn = 0
Boot ver: 2012-11-13#1.20
Error: Invaid tag(0x00000000)!
Load failed!
Begin recover...
GetRemapTbl flag = 1
Error: Invaid tag(0x00000000) in backup!
Start RockUsb...
2900305 UsbConnected

Источник объясняет это записью misc.img без recovery.img.

Исходный снимок или диаграмма, страница PDF 19, рисунок 37

Решение: повторно запишите recovery.img. Источник также описывает запись файла больше 32KB в misc для удаления команд; это разрушительная операция, неприменимая вслепую к новым разметкам.

Случай 2: источник называет RK3329 и RK3368, где без trust.img возможен отказ запуска. Запишите соответствующий trust.img. RK3329 сохранено как в источнике и требует проверки платформы.

3.2. EMMC не загружается при включении

Источник связывает это прежде всего с RK3188, PX3, PX2, RK3066, RK3168 после обновления loader или установки заранее прошитой памяти. Проверки:

  1. Проверьте схему/разводку. CMD и DATA0-DATA7 требуют подтяжек; источник рекомендует 10K. Проверьте пайку. Не проводите сигналы EMMC через NC-выводы.

  2. Измерьте осциллографом включение. CMD должен подниматься одновременно с VCCQ EMMC. При более позднем CMD часть EMMC не загружается.

Исходный снимок или диаграмма, страница PDF 20, рисунок 38

  1. Проверьте выбросы CMD/CLK. Они мешают запуску части EMMC. Источник наблюдал это у RK3066 с PMU TI и предлагает изменить последовательность питания.

Исходный снимок или диаграмма, страница PDF 20, рисунок 39

  1. Проверьте выбросы CMD, CLK, DATA; возможно последовательное согласование. Сильный звон CLK в примере может вызвать логические ошибки.

Исходный снимок или диаграмма, страница PDF 21, рисунок 40

  1. Проверьте пульсации VCC и подходящие фильтрующие конденсаторы.

  2. Для заранее прошитой памяти проверьте EXT CSD.

EXT CSD источника: байт179 = 0x08 (boot1 без ACK); байт167 = 0x1F; байт162 = 0x01 (reset pin). Остальные значения — по умолчанию. Это настройки конкретной платформы, не универсальная инструкция; некоторые изменения могут быть необратимы.

Для RK312X, RK3228, RK3366, RK3288, RK3399 остановку в MASKROM после прошивки источник обычно связывает с неверным соединением отдельных D0-D7 EMMC.

3.3. EMMC не загружается после сброса

Проверьте соединение EMMC_PWEN SoC с выводом EMMC, названным в источнике RTS_n. Сверьте настоящее имя по схеме/datasheet; возможная опечатка не должна определять соединение.

Для предварительной прошивки RK3188, PX3, PX2, RK3066, RK3168 источник требует EXTCSD162 = 0x01.

3.4. Задержка до LOADER на EMMC

Источник объясняет задержку входом BOOTROM в поиск NAND на несколько секунд. Проверки:

  1. Проверьте схему/разводку, подтяжки CMD и DATA0-DATA7 (рекомендовано10K), пайку. Не используйте NC для трассировки EMMC. В примере DATA6 проходит через NC, что замедляет запуск.

Исходный снимок или диаграмма, страница PDF 22, рисунок 41

  1. Измерьте DATA0-DATA7 при включении (источник пишет DATO). В этом примере фронт DATA должен быть короче2us. Рисунок2 увеличивает красный овал рисунка1 для измерения.

Рисунок1:

Исходный снимок или диаграмма, страница PDF 23, рисунок 42

Рисунок2: увеличенный фронт сигнала.

Исходный снимок или диаграмма, страница PDF 23, рисунок 43

3.5. Ошибки чтения/записи EMMC в Android

Возможные причины:

  1. Недостаточное VCC/VCCQ с провалом напряжения при работе.

  2. Плохая разводка и сильные помехи.

Меры устранения:

  1. Проверьте влияние внешней активности, например Wi-Fi, на питание EMMC; источник рекомендует отдельное питание.
  2. Измерьте bus timing осциллографом. В примере недостаточный hold time на спаде CLK в режиме DDR может вызвать логическую ошибку.

Исходный снимок или диаграмма, страница PDF 24, рисунок 44

3.6. Потребление EMMC

Источник указывает100-300mA при чтении/записи и100-700uA в ожидании. Влияют режим скорости, частота/ёмкость EMMC, напряжение интерфейса, температура, технология изготовителя и подтяжки. Ниже пример одного неуказанного EMMC, не универсальный предел.

Исходный снимок или диаграмма, страница PDF 25, рисунок 45

Ta=25°C @3.3V

Режим Максимум/типовое Единица
Автосон 350 uA
Сон (CMD5) 200 максимум;130 типовое uA
Чтение: обычная скорость 100 mA
Чтение: высокая скорость 200 mA
Запись: обычная скорость 100 mA
Запись: высокая скорость 200 mA

VCC:2.7V–3.6V; максимальные пульсации60mV peak-to-peak.

Rockchip · ArmSoM

Другие статьи по теме → · Учебные маршруты →