top

Что такое eMMC

  • Jovani
J
Jovani
Команда форума
  • 4 Окт 2008
eMMC (embedded Multimedia Memory Card) - это по сути устройство, где интерфейсный контроллер совмещен с флэш-памятью (NAND-конструкции). Помимо функции обеспечения интерфейса, контроллер самостоятельно осуществляет исправление ошибок и управление плохими блоками в NAND памяти. Ниже, для понимания, размещена внутренняя упрощенная структура еММС.

внутренняя упрощенная структура eMMC


eMMC с точки зрения устройства памяти содержит в себе:
  • 4 основных раздела (ROM1, ROM2, ROM3, RPMB),
  • до 4 разделов GP (GP1-GP4),
  • регистры конфигурации Extended CSD (ExtCSD)


Память в eMMC


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,5MB будет работать с MT6589, а с размерами ROM2/3/RPMB 4/4/4 уже не будет.

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


Примеры чипов eMMC в телевизорах:
  • Samsung KLM4G1FEPD-B031
  • Samsung KLM8G1GETF-B041
  • Hynix H26M41204HPR
  • Hynix H26M31003GMR
  • Toshiba THGBMAG5A1JBAIR
  • ToshibaTHGBMG5D1LBAIL
 
  • Like
BarsukovLab, 1андрей11, khalid и еще 6