GSM Форум - GSMForum.SU  

Вернуться   GSM Форум - GSMForum.SU > Форумы поддержки оборудования > Программаторы от Z3X > Z3x Easy-Jtag

Z3x Easy-Jtag Форум поддержки программатора Z3x Easy-Jtag Box

Ответ
 
Опции темы Оценить тему Опции просмотра
Старый 01.03.2014, 21:03   #1
fedja
Почетный пользователь
 
Регистрация: 14.02.2007
Адрес: 127.0.0.1
Сообщений: 1,213
Поблагодарил: 1,256
Поблагодарили 3,295 раз за 871 сообщений
Репа: 1513
Общий ликбез по eMMC/moviNAND проблемам. ( в разработке )

1. Что такое eMMC и когда он появился

Декабря, 2006 года организации MultiMediaCard Association (MMCA) и JEDEC Solid State Technology Association (JEDEC) объявили о принятии стандарта на встраиваемую флешь-память. Этот вид продукции выделен в отдельную товарную категорию, за которой закреплена торговая марка eMMC. Основой для стандарта стала спецификация MMC. Напомним, начало сотрудничества между MMCA и JEDEC в области стандартизации было обозначено соглашением, заключенным ранее в текущем году. Стандарт eMMC – первый результат сотрудничества.
eMMC определяет архитектуру, состоящую из интерфейса MMC, флэш-памяти и контроллера. Все компоненты eMMC должны находиться в компактном корпусе типа BGA. Таким образом, стандарт фактически объединил спецификации MMC System Specification v4.1/4.2 и JEDEC BGA. Максимальная скорость интерфейса – 52 Мб/с, напряжение – 1,8 или 3,3 В. Другими словами, память eMMC рассчитана на широкий круг приложений, включая потребительскую электронику, беспроводные устройства, системы навигации и промышленной автоматики.

2. Интерфейс работы с eMMC.

eMMC память по подключению мало отличается от простой MMC карты , известны даже случаи успешной подмены чипа eMMC обычной SD-MMC картой * . Общая структура eMMC/MMC чипа ниже :


Основные выводы карточки:
GND / VSS - земля для сигналов и питания
VCC - питание карточки ( ядро контроллера , внутренний RAM и NAND ) Минимальное напряжение 2.8V , максимальное 3.6V.
VCCQ - питание IO линий ( опорное напряжение на транзисторах линий D0..D7 CMD CLK) Допустимые значения 1.8 ... 3.3V.
CLK - сигнал тактования карты
CMD - двух направления линия передачи команд
D0..D7 - 3х режимная шина передачи данных режимы передачи - 1бит , 4бита , 8бит ( чем шире , тем быстрее)
nRST - линия сброса карты - очень необязательная - но используется в системах с NVIDIA TEGRA.

Схема подключения питания к карточке :

*Замена eMMC карты микро SD картой возможна только в случае корректной поддержки процессором режима передачи данных по одной линии,
вернее автоматическим распознаванием такой конфигурации а также фактом отсутствия SDRAM в корпусе вместе с eMMC


3. Режимы работы карточки

3.1 SPI Legacy режим - использовался в MMC и особо древних eMMC. Теперь его нету потому описывать не буду и не хочу )))

Если кому хочется почтать , то почитать про это можно сдесь

3.2 MultiMediaCard bus protocol - Двухнаправленый Скоростной Протокол ( основной )

После power-on сброса, хост девайс должен инициализировать карту специальным алгоритмом
передачи сообщений MultiMediaCard протокола. Каждое сообщение представляет один из следующих элементов:

- команда: команда - набор данных, который запускает операцию. Команда посылается от хоста к карте.
Команда посылается последовательно по линии CMD.
- ответ: ответ - набор данных, который посылается от карты к хосту как ответ на посланную
команду. Ответ передается последовательно по линии CMD.
- данные: данные могут быть передаваться из карты в хост или наоборот. Данные передаются через линии DAT0..DAT7.
Количество линий данных, использованных для передачи данных, может быть 1(DAT0), 4(DAT0-DAT3) или 8(DAT0-DAT7).

По каждой линии данных за один такт CLK , данные могут передаваться по одному биту (1X скорость передач данных) или двумя битами ( двойная плотность передачи данных).
Данный протокол является основным рабочим протоколом. Большая часть чипсетов ( Qualcomm , NVIDIA , OMAP ) используют его даже для BOOT. Исключение составляют BRCM и EXYNOS о них ниже.

3.3 BOOT Режим (хитро****пый режим, когда загрузку бута в процессор производит карта BOOT_CONFIG в extCSD не нулевой)
Для начала операции загрузки , ХОСТ должен держать CMD линию в низком уровне на протяжении минимум 74 такта CLK
после включения питания или операции сброса командной cmd1. eMMC распознает
последовательность и начинает подготовку загрузочных данных внутри. ( BOOT1 , BOOT2 или MAIN раздел в зависимости от бита BOOT CFG
Операция загрузки заключается в отправке загрузочных данных на хост по DAT
линиям последовательно на большой скорости . ХОСТ должен удерживать линию CMD в низком уровне , чтобы получить все данные BOOT.
Установка регистра PARTITION_CONFIG позволяет eMMC карте получать подтверждение загрузки ;
Такая схема популярна для процессоров EXYNOS всех поколений и большинства Broadcomm.

Таким образом может возникать ситуация - когда телефон показывает логотип или входит в boot, но
карта остается после процедуры boot в повисшем состоянии ( GT-I9300 VTU00M ) Такую ситуацию легко
проанализировать даже без eMMC бокса - пример i9300. Инструменты
Паяльник
Любой бокс USB-UART
Putty или Hyperterminal
Распиновка:
AP_TXD = Z3X-BOX PIN3 ( RJ45 )
AP_RXD = 3X-BOX PIN2 ( RJ45 )
GND= Z3X-BOX PIN7,8 ( RJ45 )




Такую eMMC вылечить невозможно , хотя телефон будет заходить в бут и показывать лого.
Лог при подключении такой карты покажет следующую запись:
Can't Init EMMC !!! ( Ready Condition TIMEOUT! )
Если видим такое - смело меняем карту.


3.4 Аварийные режимы работы карты :


**************************************************************************************************** *************

4. Организация данных в eMMC карте


4.1 Аппаратные разделы



Обычно eMMC содержит следующие разделы:

BOOT1,2 Раздел , которых хранит boot и его копию (1-2Мб) Но не обязательно бут находится именно там.
RMP Раздел - Шифрованный раздел - доступ к нему возможен только с ключем. Активно используется в SGH-i9505 и подобных
девайсах для предотвращения понижения бутов. Потому даже если записать при помощи JTAG более низкой версии - девайс
не включится.
USER AREA - Пользовательский раздел - занимает львиную долю eMMC
в свою очередь USER AREA может делится на 4 хардварных раздела GP0 GP1 GP2 GP3
но на практике такого раздела я еще не встречал :-) Данный раздел может быть отформатирован
в стандарте MBR или GPT а также в собственном формате NVIDIA.

4.2 Служебная информация

Состоит из четырех блоков данных, не входящих в логические разделы - хотя они находятся в внутреннем NAND накопителе.
Большая часть значений в служебке Read Only , часть OTP , и только несколько параметров разрешено править в период жизни eMMC карты

CID (Card identification data): содержит данные, по которым можно идентифицировать карту памяти (серийный номер, ID производителя, дату изготовления и т.д.) Длинна 16 байт
CSD (Card-specific data): содержит всевозможную информацию о карте памяти (от размера сектора карты памяти до потребления в режиме чтения/записи). Длинна 16 байт

Важными областями в CSD являются
PERM_WRITE_PROTECT - Постоянная защита от записи / стирания.
TMP_WRITE_PROTECT - Защита от записи / стирания до перезагрузки карты.

Если выставлен флаг постоянной защиты у рабочего аппарата - он будет включатся и работать
но все изменения будут обнулятся после следующей перезагрузки. При этом девайс прошивается
и Odinom и через JTAG. Такой Samsung один раз мне приносили на ремонт )

OCR (Operation Conditions Register): содержит напряжения питания карты памяти, тип питания карты памяти, статус процесса инициализации карты.



extCSD (Extended Card-specific data) содержит всевозможную информацию о карте памяти , которая не влезла в CSD. Длинна 512 байт.


extCSD Достаточно длинный регистр - но основная его часть ReadOnly - никогда не меняются и прописаны еще на заводе. Хочу обратить внимание
на значения , которые меняются и наиболее важны для пользователей, котрые к примеру заменили неисправную eMMC на чистую.




BOOT_CONFIG 1 R/W [179] 0x0 - Конфигурация загрузки ( Какой физический раздел отвечает за загрузку ТА ).
BOOT_BUS_WIDTH 1 R/W [177] 0x0 Ширина шины данных во время загрузки.

Если данные регистры не прописаны должным образом - телефон не сможет загрузится с такой eMMC.


4.3 Софтовые разделы (то что находится в аппаратном разделе USER AREA)


Тут уже все зависит от процессора , производителя итп - для примера табличка разделов от американца i535


4.3.1 MBR Формат разметки
Итак, MBR это первый сектор жесткого диска. Точнее это нулевой сектор, при использовании LBA (Logical Block Addressing) сектора индексируются одним числом, начиная с нуля. MBR eMMC содержит:
Таблицу разделов (64 байт)
Сигнатуру диска
Размер таблицы разделов в MBR таков, что его хватает только на четыре раздела. Если необходимо больше разделов, прибегают к трюку:
один из разделов сам делится на разделы и, соответственно, содержит свой собственный MBR в начале своей области данных.
Так-же ограничения MBR приводят к тому, что раздел не может быть более 2 терабайт. Таким образом , если разделов на eMMC много,
то в "дарках между разделами" необходимо распределить данные таблиц по 512 байт для каждых трех разделов. Потому иногда недостаточно восстановить
сами разделы для успешного подъема кирпичика. Такэе у разделов нет имёе - только 16битные ID

4.3.2 GPT Формат разметки
GUID Partition Table, аббр. GPT — стандарт формата размещения таблиц разделов на физическом жестком диске.
Он является частью Расширяемого микропрограммного интерфейса (англ. Extensible Firmware Interface, EFI) — стандарта,
предложенного Intel на смену BIOS. EFI использует GPT там, где BIOS использует Главную загрузочную запись (англ. Master Boot Record, MBR).
Он более ёмкий и надежный так как GPT таблички дублируются в начале и в конце eMMC диска. Также каждый раздел может иметь
UNICODE Имя.

4.3.3 NVIDIA BCT Формат разметки

Всем , кто мучается с ACER A100 A500 , HTC One X следует читать первым делом.
NVIDIA как всегда отличилась своими фирменными решениями по хранению данных.
Особенности TEGRA:

BOOT1 и BOOT2 являются частью адресного пространства тегры. Другими словами, если на карте
буты по 2Мб - то 0x000000 USER AREA будет 4-мегабайтом по логике TEGRA - потому при замене
и просто переливании DATA следите за размером бутов на флешке - инфографика позже.


В данный момент собираю информацию про него... Помощь приветствуется.

5. Основные проблемы eMMC карточек

Сообщество разработчиков cyanogen mod выделили и систематизировали наиболее популярные проблемы ,
которые возникают у eMMC устройств одного популярного производителя. Причиной такого количества багов является сырая релизация
контроллера VHX и VFX_U.

Модель карты l ("имя") Версия Проблема
KYL00M 0x15 (Samsung) Все версии Выход из строя девайса ( кирпич ) #Samsung eMMC secure erase bug
KYL00M 0x15 (Samsung) Все версии Частичная(полная) потеря данных #Samsung eMMC wear leveling data corruption bug
M8G2FA 0x15 (Samsung) Все версии Выход из строя девайса ( кирпич ) #Samsung eMMC secure erase bug
M8G2FA 0x15 (Samsung) Все версии Частичная(полная) потеря данных #M8G2FA "P17 corruption" bug
MAG2GA 0x15 (Samsung) Все версии Выход из строя девайса ( кирпич ) #MAG2GA TRIM bug
MAG4FA 0x15 (Samsung) Все версии Выход из строя девайса ( кирпич ) #Samsung eMMC secure erase bug
MAG4FA 0x15 (Samsung) Все версии Частичная(полная) потеря данных #Samsung eMMC wear leveling data corruption bug
MBG8FA 0x15 (Samsung) Все версии Выход из строя девайса ( кирпич ) #Samsung eMMC secure erase bug
MCGAFA 0x15 (Samsung) Все версии Выход из строя девайса ( кирпич ) #Samsung eMMC secure erase bug
VAL00M 0x15 (Samsung) Все версии Выход из строя девайса ( кирпич ) #Samsung eMMC secure erase bug
VTU001 0x15 (Samsung) Все версии Выход из строя девайса ( кирпич ) #VTU00M random bricking bug
VYL00M 0x15 (Samsung) Все версии Выход из строя девайса ( кирпич ) #Samsung eMMC secure erase bug
VYL00M 0x15 (Samsung) Все версии Частичная(полная) потеря данных #Samsung eMMC wear leveling data corruption bug
VZL00M 0x15 (Samsung) Все версии Выход из строя девайса ( кирпич ) #Samsung eMMC secure erase bug



Итак - топ по поломкам у нас возглавляет VTU00M (MoviNAND VTU00M (16GB) eMMC)

По состоянию можно разделить несколько степеней поломаности :

1. Ready Condition TIMEOUT! Карта не выходит в рабочий режим.
Особенности:
Ошибка софта : [COLOR="#FF0000"]Can't Init EMMC !!! ( Ready Condition TIMEOUT! )
Телефон при этом бутается но висит на лого.
Софтовый ремонт не возможен т.к. карта не отвечает ни на одну команду.
Вывод: Поможет только замена eMMC 100%

2. EMMC NAME: 000000

Примерный лог софта:
Код:
EMMC CSD 902701320F5903FFF6DBFFEF8A404023
EMMC Manufacturer ID: 0015 , OEM ID: 0100
EMMC Date: 05/2005 FW rev.0x56
EMMC NAME: 000000 , S/N: 537986854
EMMC ROM1 (Main User Data) Capacity: 16384 MB (High Density Card)
EMMC ROM2 (Boot Partition 1) Capacity: 512 kB
EMMC ROM3 (Boot Partition 2) Capacity: 512 kB
EMMC RPMB (Replay Protected Memory Block) Capacity: 128 kB
Особенности:
Флешка читатся , трется , и пишется - данные при чтении мусор.
Телефон при этом не бутается прошивка через SD дает ошибку
Софтовый ремонт пока возможен ,возможно при обновлении прошивки
eeprom карты обнулится - работаем в данном направлении -
нужно насобирать как можно больше прошивок карт.

Вывод: Ложим на полочку весь аппарат либо меняем eMMC - старую не выбрасываем.


3. Wear Leveling Bug ( VTU00M С прошивкой от 05/2012 FW rev.0xf1)

Ошибка вызвана повреждением таблицы выравнивания износа. Карта при этом читается
но пишется очень долго или не пишется вообще.

Код:
EMMC Manufacturer ID: 0015 , OEM ID: 0100
EMMC Date: 05/2012 FW rev.0xf1
EMMC NAME: VTU00M , S/N: 4206691564
EMMC ROM1 (Main User Data) Capacity: 15028 MB (High Density Card)
EMMC ROM2 (Boot Partition 1) Capacity: 2048 kB
EMMC ROM3 (Boot Partition 2) Capacity: 2048 kB
EMMC RPMB (Replay Protected Memory Block) Capacity: 128 kB
4. "Product Name : Отсутствует" , "Висяк на лого" "ReadOnly eMMC" "не бутается после установки новой карты"

Данные ошибки относятся к софтовым - часто помогает восстановление бута - но в некоторых случаях
SD Boot не сможет восстановить зону Product Name или снять защиту от записи.
Лог карты :




P.S Пока статья "в разработке" прошу не пинать за грамотность и логику изложения - я надеюсь сформирую тут полный FAQ за недельку.
P.P.S Настоятельно прошу комментировать и поправлять мои проезды - если вы их увидите
P.P.P.S Статья основана на следующих документах
http://rere.qmqm.pl/~mirq/JESD84-A44.pdf
http://wiki.cyanogenmod.org/w/EMMC_Bugs
http://www.jedec.org/sites/default/f...ictor_Tsai.pdf
http://www.ebv.com/fileadmin/design_..._Booti ng.pdf
http://web3032.sh1.magic2008.cn.m1.m...4131450191.pdf
http://nv-tegra.nvidia.com/gitweb/?p...ef24b3;hb=HEAD

Автор статьи NoName® из Z3X-team, и с его разрешения статью перенес и сюда, по мере возможности статья будет дополняться

ИСТОЧНИК
Миниатюры
Нажмите на изображение для увеличения
Название: MMC.jpg
Просмотров: 0
Размер:	44.9 Кб
ID:	117280  Нажмите на изображение для увеличения
Название: w6a.png
Просмотров: 0
Размер:	133.7 Кб
ID:	117281  Нажмите на изображение для увеличения
Название: emmc_part.png
Просмотров: 0
Размер:	14.1 Кб
ID:	117282  Нажмите на изображение для увеличения
Название: SIDCSD.gif
Просмотров: 0
Размер:	30.6 Кб
ID:	117283  Нажмите на изображение для увеличения
Название: extCSD_Important.png
Просмотров: 0
Размер:	64.2 Кб
ID:	117284  Нажмите на изображение для увеличения
Название: SGS3_partition_table4.jpg
Просмотров: 0
Размер:	127.0 Кб
ID:	117285  

Последний раз редактировалось fedja; 02.03.2014 в 11:53.
fedja вне форума   Ответить с цитированием Вверх
Следующие 40 пользователей поблагодарили fedja за это сообщение:
ADR86 (11.09.2018), alex_7519 (11.05.2014), azim2005 (13.12.2014), azis29 (04.03.2014), babu123 (26.04.2017), BURZUM (02.03.2014), g1101 (10.08.2017), gaz2402 (03.03.2014), granet (01.08.2016), idler_new (28.12.2017), ilyaiii (01.02.2015), Jagger (02.03.2014), killbugs (19.11.2017), kirill@88 (01.05.2016), KonstantinVoskr (02.03.2014), kurbatic (02.04.2017), Le0n35 (13.02.2017), lex69 (07.01.2017), madfighter (28.03.2014), Major999 (01.03.2014), Merdoc (29.04.2019), mobil_lg (02.03.2014), mster (03.03.2014), Sardorbek5 (21.09.2018), sas!ha (06.06.2014), shulz (01.03.2014), slavkinj (06.07.2016), smarttool (13.05.2014), swing (08.10.2016), TShaManV (30.03.2018), ttrs42 (12.07.2016), VASILILYAI (23.10.2017), VictorMan2 (29.03.2017), vm7 (29.02.2016), yurii-62 (02.03.2014), ZArchi (01.03.2014), zioom (13.09.2014), БОРИСЫЧ (02.03.2021), Саша6898 (29.03.2014), чайник (08.04.2014)
Ответ

Опции темы
Опции просмотра Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 15:07. Часовой пояс GMT +3.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot