leksel20 Опубликовано 11 часов назад Опубликовано 11 часов назад Марка и полная модель телевизора: DEXP 40FCS1 Main Board (маркировка платы): MB-M9256-PW-BL, Платформа / шассиM9256, загрузочная платформа 9TH Матрица (Panel) T-Con: C400Y23-M8 Что уже проверено: При прошивки новой EMMC конфиги выставлены записан BOOT родной в User записан PARTITIONS MBOOT и MPOOL, не прописывает RPMB Точный состав телевизора по фото и предоставленным логам Процессор SoCMediaTek MT9638 Заводская маркировка SoC Начинается с MT9638...; полный суффикс на фото читается недостаточно чётко Родная eMMC Samsung KLM8G1GETF-B041 Идентификатор eMMC Samsung 8GTF4R Номинальный объём eMMC 88 ГБ Фактический объём USER7,287,28 ГиБ Версия eMMCMMC 5.15.1, поддержка HS200/HS400 Матрица в сборе / Open Cell Module C400Y23-M8 Дополнительный номер матрицы FCM8T01HS01 Номер разработки/платы матрицы JUC5.872.10099864 Серийный номер модуля 8220076305MD0QG306270819 Загрузчик MStar/MediaTek U-Boot 2011.06 Защищённая средаARM Trusted Firmware/OP-TEE, используется RPMB Краткая строка состава DEXP 40FCS1 Main: MB-M9256-PW-BL SoC: MediaTek MT9638 eMMC: Samsung KLM8G1GETF-B041, 8 GB, MMC 5.1 Panel/Module: C400Y23-M8 Cell/Panel code: FCM8T01HS01 Panel platform number: JUC5.872.10099864 Boot platform: 9TH, MStar/MediaTek, OP-TEE + RPMB Данные именно родной eMMC Модель: Samsung KLM8G1GETF-B041 Внутреннее имя: 8GTF4R CID: 150100384754463452061663BAE82A6F Серийный номер: 1663BAE8 Дата производства: февраль 2023 USER: 0x01D2000000 — 7.28 ГиБ BOOT1: 0x00400000 — 4 МиБ BOOT2: 0x00400000 — 4 МиБ RPMB: 0x00080000 — 512 КиБ RPMB counter: 934 Загрузка: BOOT1 PARTITION_CONFIG: 0x08 BOOT_BUS_WIDTH: 0x0A RST_N_FUNCTION: 0x01 Что нельзя определить по этим фотографиям На предоставленных снимках не видны или недостаточно читаются: точная маркировка оперативной памяти DDR; модель тюнера; модель Wi‑Fi-модуля; маркировка LED-планок подсветки; точная маркировка аудиоусилителя; полный суффикс процессора после MT9638; Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума. Войти или Регистрация Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума. Войти или Регистрация Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума. Войти или Регистрация Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума. Войти или Регистрация Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума. Войти или Регистрация
Kenotronbot Опубликовано 11 часов назад Опубликовано 11 часов назад По приведённым данным телевизор определяется так: DEXP 40FCS1 Основная плата: MB-M9256-PW-BL SoC: MediaTek/MStar MT9638 eMMC: Samsung KLM8G1GETF-B041, 8 ГБ Модуль панели: C400Y23-M8 Панельный код: FCM8T01HS01 Родная eMMC — Samsung KLM8G1GETF-B041, внутреннее обозначение 8GTF4R, объём 7,28 ГиБ. В родной памяти присутствуют: USER — 7,28 ГиБ BOOT1 — 4 МиБ BOOT2 — 4 МиБ RPMB — 512 КиБ Родная eMMC не была в состоянии EOL. Износ по отчёту UFPI — примерно 50–60%, поэтому её необходимо использовать как источник полного дампа. Что видно по неисправности После установки новой eMMC загрузка начинается, но останавливается на защищённой загрузке: optee teeloader entry Load armfw failed! RPMBKey is not written! Anti rollback check failed! ... Optee OS is not running!!! Главная ошибка здесь: Load armfw failed! Сообщения: RPMBKey is not written! Anti rollback check failed! в данном случае, скорее всего, являются следствием того, что не запустился armfw/OP-TEE. Пока OP-TEE не стартует, система не может нормально проверить Anti-Rollback и выполнить работу с RPMB. То есть начинать нужно не с попытки отдельно записать RPMB, а с восстановления полного загрузочного комплекта. Что было сделано неправильно или недостаточно Вы указали, что на новую eMMC были записаны: BOOT; PARTITIONS; MBOOT; MPOOL. Этого может быть недостаточно. В телевизорах на этой платформе критические файлы могут находиться: в BOOT1; в BOOT2; в начале или конце USER; в специальных физических разделах; внутри контейнеров MBOOT, MPOOL, ARMFW, TEE, OPTEE, CKB, RELOADER; по фиксированным адресам, а не только в логических разделах. Кроме того, файл под названием BOOT не всегда является полным образом eMMC-раздела BOOT1. Нельзя автоматически считать, что его достаточно записать в BOOT1 или BOOT2. Правильный порядок ремонта 1. Сначала проверить родную eMMC Старую eMMC нужно установить обратно и проверить: определяется ли она UFPI; читается ли USER; читаются ли BOOT1 и BOOT2; можно ли считать EXT_CSD; запускается ли телевизор со старой eMMC хотя бы до прежней неисправности. Нужно сохранить с родной микросхемы: Полный USER BOOT1 BOOT2 EXT_CSD Информацию о разделах Показанный в сообщении дамп размером 512 байт — это только начало USER. Это не полный дамп и по нему нельзя восстановить содержимое eMMC. В начале родного USER почти всё заполнено нулями, поэтому наличие нулей в первых 512 байтах не говорит о том, что память пустая или неисправная. 2. Считать полный USER Необходимо считать весь раздел: USER = 0x01D2000000 Это примерно 7,28 ГиБ. Желательно выполнить чтение два раза и сравнить файлы по контрольной сумме. Если два чтения отличаются, родная eMMC уже имеет ошибки чтения и сначала нужно заниматься получением стабильного дампа. Особенно важно сохранить области, где могут находиться: MBOOT MPOOL ARMFW TEE/OPTEE RELOADER CKB ENV PARTITIONS Нельзя ограничиваться только теми разделами, которые UFPI показывает в удобном списке. 3. Отдельно считать BOOT1 и BOOT2 С родной eMMC нужно получить отдельные образы: BOOT1 — 4 МиБ BOOT2 — 4 МиБ Их необходимо сохранить с исходными размерами и без преобразования. Затем проверить, какой из разделов действительно используется при загрузке. В отчёте родной eMMC указано: PARTITION_CONFIG = 0x08 Загрузка с BOOT1 BOOT_BUS_WIDTH = 0x0A RST_N_FUNCTION = 0x01 Следовательно, основным загрузочным разделом является BOOT1. Но это не отменяет необходимости сохранить и проверить BOOT2, потому что некоторые сервисные программы называют разделы не так, как они фактически используются контроллером. 4. Сравнить EXT_CSD старой и новой eMMC До записи необходимо сохранить EXT_CSD родной микросхемы, а после установки новой — считать EXT_CSD новой. Сравнить прежде всего: PARTITION_CONFIG BOOT_BUS_WIDTH RST_N_FUNCTION BOOT_SIZE_MULT RPMB_SIZE_MULT USER area size PARTITIONING_SUPPORT DEVICE_TYPE OCR/напряжения Для новой eMMC конфигурация должна соответствовать родной: PARTITION_CONFIG = 0x08 BOOT_BUS_WIDTH = 0x0A RST_N_FUNCTION = 0x01 Осторожно: часть полей EXT_CSD является однократно программируемой или необратимой. Нельзя без необходимости выполнять PARTITION_SETTING_COMPLETED и менять размер физических разделов. Если новая eMMC уже была переразмечена неправильным способом, сначала нужно проверить, не были ли необратимо изменены поля EXT_CSD. 5. Записать полный образ, а не отдельные файлы Если родная eMMC читается, правильный вариант такой: Записать полный образ USER родной eMMC в USER новой. Записать оригинальный BOOT1 в BOOT1. Записать оригинальный BOOT2 в BOOT2. Выставить параметры EXT_CSD по родной микросхеме. Выполнить чтение назад и сравнить записанные области. После записи необходимо проверить, что: ARMFW действительно присутствует; его адрес и размер совпадают с родной eMMC; не перепутаны логические и физические разделы; BOOT1 не записан вместо BOOT2 или наоборот; образ не был обрезан; UFPI не пропустил скрытые разделы. Что проверить именно по armfw Ошибка: Load armfw failed! может быть вызвана несколькими причинами: Вариант 1 — armfw не записан Самый вероятный вариант при записи только PARTITIONS, MBOOT и MPOOL. Вариант 2 — armfw записан не туда Файл может находиться не в обычном логическом разделе, а по физическому адресу в USER либо в одном из загрузочных разделов. Вариант 3 — записан неполный или неподходящий образ Например, образ может быть от другой версии платы, другой панели или другой ревизии прошивки. Вариант 4 — неверная конфигурация eMMC Если контроллер стартует не с того загрузочного раздела или с неправильной шириной шины, он может видеть eMMC, но не находить корректный загрузочный контейнер. Вариант 5 — ошибка чтения новой eMMC или пайки Нужно проверить осциллографом или хотя бы тестированием на пониженной скорости: CLK; CMD; DAT0; DAT1–DAT7; питание VCC; питание VCCQ; RST_n. Для диагностики сначала лучше использовать: 1-bit режим низкая частота без HS400 После стабильного запуска можно переходить к штатному режиму. Что делать с RPMB RPMB не является обычным файловым разделом. С родной eMMC указано: RPMB counter = 934 RPMB size = 512 КиБ Это говорит о том, что RPMB родной микросхемы уже использовался. Нельзя: записать старый RPMB обычным дампом; вручную установить счётчик 934; скопировать RPMB через обычное чтение USER; записать случайный RPMB-ключ; многократно экспериментировать с записью ключа. RPMB-ключ записывается один раз. Если записать неправильный ключ, заменить его стандартными средствами уже нельзя. На некоторых прошивках ключ RPMB при первом запуске пустой eMMC записывается автоматически через OP-TEE. На других телевизорах требуется заводская персонализация или сервисный пакет. Поэтому сначала нужно добиться, чтобы в логе исчезли: Load armfw failed! Optee OS is not running!!! И чтобы появилась нормальная инициализация OP-TEE. Только после этого можно оценивать, записался ли RPMB автоматически. Что проверить после записи полного дампа После замены eMMC и записи полного образа проверить UART. Нормальный промежуточный результат Должно исчезнуть: Load armfw failed! и не должно быть: Optee OS is not running!!! Если останется только: RPMBKey is not written! то нужно выяснять процедуру персонализации RPMB для этой конкретной прошивки. Если снова появится: Load armfw failed! значит проблема ещё находится до RPMB: отсутствует нужный раздел; неверный адрес armfw; неверный BOOT1; неправильный PARTITION_CONFIG; повреждён образ; новая eMMC неправильно сконфигурирована; используется прошивка не от этой платы. По CID В предоставленном UART-логе CID отображён в разбитом по словам виде: 0x002AE8BA 0x63160652 0x34465447 0x38000115 По этим четырём строкам нельзя надёжно подтвердить полное совпадение CID с родной eMMC без знания формата вывода конкретной программы UFPI и порядка байтов. Родной CID из отчёта: 150100384754463452061663BAE82A6F Нужно получить отдельный отчёт UFPI по новой eMMC и сравнить: полный CID; модель; серийный номер; дату производства; EXT_CSD. Важно понимать, что обычная eMMC не позволяет штатной командой изменить заводской CID. Если программатор показывает функцию изменения CID, необходимо проверить, действительно ли она поддерживается именно этим чипом, а не только изменяет данные в конфигурации программатора. Практический вывод В вашем случае я бы выполнял ремонт в следующем порядке: Вернуть родную eMMC. Считать полностью USER, BOOT1, BOOT2, EXT_CSD. Повторить чтение и проверить совпадение контрольных сумм. На новой eMMC проверить состояние EXT_CSD. Записать полный USER родной eMMC. Записать оригинальные BOOT1 и BOOT2. Восстановить загрузочную конфигурацию: PARTITION_CONFIG = 0x08 BOOT_BUS_WIDTH = 0x0A RST_N_FUNCTION = 0x01 Проверить запись чтением назад. Первый запуск выполнить на пониженной скорости eMMC, если есть сомнения в пайке или сигнале. Посмотреть новый UART-лог. Только после запуска armfw/OP-TEE заниматься RPMB. Если родная eMMC читается нестабильно или полный дамп отсутствует, восстановление одной записью MBOOT, MPOOL и PARTITIONS не гарантирует результат. В этом случае потребуется подходящая сервисная прошивка именно для связки: DEXP 40FCS1 MB-M9256-PW-BL MT9638 C400Y23-M8 / FCM8T01HS01 А если прошивка использует заводской уникальный RPMB-ключ, то окончательное восстановление может быть возможно только через оригинальную плату, заводскую персонализацию или сервисный режим производителя. Онлайн поддержка в Гостевой чат - 24 часа!
verniy68 Опубликовано 10 часов назад Опубликовано 10 часов назад 59 минут назад, leksel20 сказал: При прошивки новой EMMC конфиги выставлены какая eMMC установлена? считывай и показывай что выставлено(конфиг) в новой eMMC где верификация считанного? - в логе не вижу
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Это очень просто!
РегистрацияВойти
Уже есть аккаунт? Войти в систему.
Войти