КПК

Показати повну версію : Як працювати з EMMC + тонкощі найки.


Igor1031
16.03.2024, 16:12
eMMC (embedded Multimedia Memory Card)-це по суті пристрій, де інтерфейсний контролер суміщений з флеш-пам'яттю (nand-конструкції). Крім функції забезпечення інтерфейсу, контролер самостійно здійснює виправлення помилок і управління поганими блоками в nand пам'яті. Нижче, для розуміння, розміщена внутрішня спрощена структура еММС.

[Ссылки могут видеть только зарегистрированные и активированные пользователи]
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

ROM1-Main User Datа, іноді називається Userdata;
ROM2 - Boot Partition 1 (Boot1);
ROM3 - Boot Partition 2 (Boot2);
ROM4-так іноді називають розділ GP1 (General Partition)

Розділ ROM1 є основним з розділів в який пишуться дані (прошивка), і містить в собі всі розділи, сформовані за допомогою таблиці розділів.

ROM2, 3 (Boot1,2) є розділами в якому зберігається Завантажувач, що відправляється в процесор (наприклад, MTK (Mediatek), Exynox (Samsung)), або звідки процесор сам його бере (Intel, HiSilicon)

Rpmb-захищений від прямого читання/запису розділ, призначений для зберігання даних, до яких повинен бути утруднений доступ ззовні. Дані в цьому розділі доступні тільки через Процесор пристрою, який отримує в нього доступ використовує ключ, що містить З собі SN процесора і ще якісь дані. Для роботи з цим розділом в процесорах міститься спеціальний блок, який шифрує дані і працює з цим розділом, попередньо узгодивши ключі з мікросхемою, в якій їх ще немає. Достовірних даних про можливість працювати з цей розділом минаючи процесор, невідомо.

Розділи GP1-GP4, це розділи, які створюються за рахунок початку розділу ROM1 і фізично розташовуються на його місці, зменшуючи собою розмір ROM1. На даний момент такі розділи, а точніше один (GP1) створюються в пристроях, зібраних на процесорах Intel (але не на всіх, зокрема на платформі CloverView).

Розміри ROM2 / 3 / RPMB можна змінити тільки на EMMC Samsung до ревізії Extended CSD v1.8 (MMC v 5.1), в інших випадках їх розмір залишається таким, яким його задали на заводі. У більшості випадків розмір не має значення, тому як зазвичай завантажувачі рідко перевищують розмір 512Kb. Але є апарати, які використовують RPMB і відмовляються працювати з мікросхемами, які призначені для апаратів з процесорами Tegra (Nvidia), в яких зазвичай конфігурується розмір rpmb рівним нулю

Також для процесорів MTK зі scatter файлами перших версій (наприклад, для процесорів MT6589), сума розмірів ROM2/3/RPMB не може бути більше початку розділу MBR, який повинен бути записаний за адресою вказаною в scatter, який для MT6589 процесора дорівнює 0x600000 (6MB). Тому eMMC з розмірами ROM2/3/RPMB 2/2/2MB або 2/2/0,5 MB буде працювати з MT6589, а з розмірами ROM2 / 3 / RPMB 4/4/4 вже не буде.

Розділ (и) GP1 створюються на всіх типах eMMC, що підтримують General Partition Configuring, одноразово. При цьому спостерігалися проблеми зі створенням розділів GP1-GP4 на мікросхемах Toshiba.