Программа проверки памяти Emmc

Обновлено: 21.11.2024

Я хочу протестировать сегменты памяти eMMC для чтения и записи. Ниже приведены мои настройки.

<р>1. Иметь пользовательскую плату с AM335x, TI SDK 7.0.

<р>2. Загрузить eMMC и файловую систему из сети через загрузку TFTP.

Можем ли мы протестировать eMMC, например разбиение на разделы, чтение/запись сегмента памяти из пользовательского приложения с запущенным ядром Linux.

Да, можно. Вот примеры действий по разделению eMMC, флэш-ядра и u-boot:

    Предположим, что eMMC — это /dev/mmcblk1. Отформатируйте его следующим образом:
    1.01. fdisk /dev/mmcblk1
    1.02. o - очищает существующие разделы
    1.03. p - это список всех таблиц разделов на карте (не должно быть ни одной)
    1.04. n - создать новый раздел
    1.05. p - основной раздел
    1.06. 1 - номер раздела
    1.07. 2048 - значение по умолчанию для первого сектора
    1.08. +16M - размер последнего сектора/раздела
    1.09. t - изменить тип раздела (выбрать раздел 1)
    1.10. e - изменить тип раздела на "W95 FAT16 (LBA)"
    1.11. a - установить загрузочный флаг для выбранного раздела (выбрать раздел 1)
    1.12. n - создать новый раздел
    1.13. p - основной раздел
    1.14. 2 - номер раздела
    1.15. нажмите Enter, чтобы выбрать значение по умолчанию (следующее доступное) для первого сектора
    1.16. нажмите Enter, чтобы выбрать значение по умолчанию (последнее) для последнего сектора
    1.17. p - список всех таблиц разделов на карте (должно быть две)
    1.18. w - записать все вышеуказанные изменения на диск
    1.19. umount /dev/mmcblk1p1 — если смонтирован
    1.20. mkfs.vfat -F 16 /dev/mmcblk1p1 - отформатировать первый раздел
    1.21. umount /dev/mmcblk1p2 — если смонтирован
    1.22. mkfs.ext4 /dev/mmcblk1p2 — отформатировать второй раздел

Скопируйте файлы в первый раздел:
2.1. загрузка mkdir
2.2. смонтировать загрузочный файл /dev/mmcblk1p1
2.3. cp /media/mmcblk0p1/boot
2.4. синхронизация
2.5. размонтировать загрузчик

Извлеките корневую файловую систему во второй раздел:
3.1. корень mkdir
3.2. монтировать /dev/mmcblk1p2 в корень
3.3. tar -xf /tisdk-rootfs-image-am335x-evm.tar.gz -C root
3.4. синхронизация
3.5. размонтировать корень

Спасибо за участие. Я не хочу запускать Uboot и ядро ​​из eMMC. Просто хочу получить доступ к необработанной eMMC и выполнить несколько тестов цикла чтения/записи.

Можем ли мы получить доступ к eMMC, написав прикладной уровень?

Да, вы можете разбивать, форматировать, читать и записывать так же, как на SD-карту.

Я следую вашей процедуре форматирования eMMC, но столкнулся с некоторыми проблемами.

Вот дамп моей таблицы разделов:

Команда (m для справки): p

Диск /dev/mmcblk0: 3867 МБ, 3867148288 байт
4 головки, 16 секторов на дорожку, 118016 цилиндров, всего 7553024 сектора
Единицы измерения = секторы 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный / оптимальный): 512 байт / 512 байт
Идентификатор диска: 0xdbf06a20

Идентификатор стартовых и конечных блоков загрузки устройства
/dev/mmcblk0p1 * 2048 34815 16384 e W95 FAT16 (LBA)
/dev/mmcblk0p2 34816 7553023 3759104 83 Linux

Команда (м для справки):

Кажется, все в порядке, но если я проверяю таблицу разделов с помощью sfdisk, я получаю следующие ошибки:

Должен ли я использовать определенную геометрию диска? головки, сектора/дорожки, цилиндры?

Все предложения приветствуются,

Должен ли я настроить предложенную геометрию?

Вот мой новый раздел:

Диск /dev/mmcblk0: 3867 МБ, 3867148288 байт
255 головок, 63 сектора на дорожку, 470 цилиндров, всего 7553024 сектора
Единицы = секторы 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный / оптимальный): 512 байт / 512 байт
Идентификатор диска: 0x00000000

Я все еще испытываю те же проблемы:

Кто-нибудь знает, как правильно настроить таблицу разделов?

Приведенное выше описание применимо только к пустой неформатированной карте памяти eMMC. Вы пробовали удалить все разделы и начать сначала? Также не забывайте, что изменения fdisk не применяются, пока вы явно не запишете их в eMMC (подкоманда fdisk "w").

Да, я использую пустую eMMC.
Я сделал несколько попыток с fdisk и sfdisk, сейчас я использую следующий скрипт, чтобы сделать процесс повторяемым:

sfdisk -D -H 255 -S 63 -C $ЦИЛИНДРЫ --force -uM $MMC_DEV
,64,0x0C,*
,256,,
,256,, < бр />. -
ЭОФ
>

если я прочитаю таблицу разделов с помощью fdisk и sfdik, я получу другой результат, что для меня очень странно.

Команда (m для справки): p

Диск /dev/mmcblk0: 3867 МБ, 3867148288 байт
255 головок, 63 сектора на дорожку, 470 цилиндров, всего 7553024 сектора
Единицы = секторы 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный / оптимальный): 512 байт / 512 байт
Идентификатор диска: 0x00000000

Device Boot Start End Blocks Id System
/dev/mmcblk0p1 * 63 144584 72261 c W95 FAT32 (LBA)
/dev/mmcblk0p2 144585 674729 265072+ 83 Linux
/dev/mmcblk0p3 674730 1204874 265072+ 83 Linux
/dev/mmcblk0p4 1204875 7550549 3172837+ 83 Linux

Команда (m для справки): q

Диск /dev/mmcblk0: 118016 цилиндров, 4 головки, 16 секторов на дорожку
Внимание: Таблица разделов выглядит так, как будто она была сделана
для C/H/S=*/255/63 ( вместо 118016/4/16).
Для этого листинга я предполагаю, что геометрия.
Единицы = цилиндры по 8225280 байт, блоки по 1024 байта, считая от 0

Не могли бы вы попробовать мой скрипт?
Какую конфигурацию головок, секторов/дорожек, цилиндров вы предлагаете?

Я забыл упомянуть версию util-linux,
я использую 2.20.1

С уважением,
Марко.

С помощью команды fdisk вы делите eMMC на несколько разделов и указываете тип раздела как W95 FAT32, Linux. После этого вы можете отформатировать все разделы с помощью соответствующих команд, например:
- для W95 команды FAT32: mkfs.vfat -F 32 -n "name" $1
- для Linux команда: mke2fs -j - L "имя" $2

где $1 и $2 — это устройства, на которых расположены эти разделы (обычно /dev/sdb1, /dev/sdb2. )

После форматирования разделов для работы с eMMC необходимо смонтировать его. Это можно сделать с помощью команды mount - например:
mount /dev/sdb1 /tmp - это обычный способ

- для W95:
mount -t vfat /dev/block/mmcblk1p1 /tmp
- для Linux
mount -t ext3 /dev/block/mmcblk1p2 /tmp
После монтирования вы можете работать с ними как с любой другой директорией.

Мои опасения не связаны с форматом и использованием eMMC, я спрашиваю, какой раздел вы предлагаете настроить.

Я следую этому руководству TI, чтобы настроить геометрию eMMC:

Но если я проверю таблицу разделов, то получу кучу предупреждений:

какой раздел вы бы порекомендовали?

Вы когда-нибудь сталкивались с подобными предупреждениями?

Вы уверены, что /dev/mmcblk0 — это eMMC. Обычно /dev/mmcblk0 — это SD-карта.

Я уверен, что на моей плате /dev/mmcblk0 есть eMMC
У меня нет других носителей на моей плате.

В этом техническом примечании описываются варианты производственного программирования, доступные для устройств Micron Emerald B eMMC, включая предварительное программирование с учетом производственного состояния, внутрисистемное программирование и их сочетание.

TN-FC-60: функции обновления для устройств Micron e.MMC Automotive 5.1

В этом техническом примечании описываются дополнительные функции обновления данных, доступные в автомобильных устройствах Micron e.MMC 5.1, созданных с микропрограммой Micron.

TN-FC-39: встроенное обновление встроенного программного обеспечения e.MMC

В этом техническом примечании описывается процедура обновления прошивки на месте (FFU) для устройства памяти Micron e.MMC.

Инструмент командной строки emmcparm 5.0.0 на основе TN-FC-25 (выпуск только с двоичным кодом)

Информация о системе v3.1

Информация о системе v2.4

TN-FC-53: Настройка загрузочной области с автомобильным загрузочным разделом на устройствах e.MMC

В этом техническом примечании описываются дополнительные автомобильные функции загрузки системы со встроенным автомобильным устройством Micron e.MMC 5.0 и выше.

emmcparm 4.3.0 Инструмент командной строки Linux на основе TN-FC-25 (выпуск только с двоичным кодом)

emmcparm 4.5.0 Инструмент командной строки Linux на основе TN-FC-25 (выпуск только с двоичным кодом)

emmcparm 2.4.0. Инструмент командной строки Linux на основе TN-FC-25 (выпуск только с двоичным кодом)

Инструмент командной строки emmcparm 4.1.0 Linux на основе TN-FC-25 (выпуск только с двоичным кодом)

Инструмент командной строки emmcparm 4.6.0 на основе TN-FC-25 (выпуск только с двоичным кодом)

emmcparm 4.7.2 Инструмент командной строки на основе TN-FC-25 (выпуск только с двоичным кодом)

Инструмент командной строки emmcparm 4.2.0 Linux на основе TN-FC-25 (выпуск только с двоичным кодом)

Инструмент командной строки emmcparm 4.7.4 на основе TN-FC-25 (выпуск только с двоичным кодом)

emmcparm 4.4.0 Инструмент командной строки Linux на основе TN-FC-25 (выпуск только с двоичным кодом)

TN-52-07: Разделение e.MMC

Это техническое примечание представляет собой руководство по разделению устройства e.MMC в соответствии со спецификацией JEDEC версии 4.41 и выше. В нем обсуждается, как задать конфигурацию физического раздела, как установить общий или расширенный раздел и как получить доступ к разделу в дополнение к объяснению регистров, используемых при разделении.

TN-FC-54: функции обновления для устройств Micron e.MMC Automotive 5.0

В этом техническом примечании описываются дополнительные функции обновления данных, доступные в автомобильных устройствах Micron e.MMC 5.0, созданных с микропрограммой Micron.

TN-FC-42: отчет о работоспособности устройства e.MMC

В этом техническом примечании описывается процедура создания отчета о работоспособности устройства для микропрограмм Micron Automotive 5.0 и 5.1 e.MMC Micron.

Инструмент командной строки emmcparm 4.5.0 Linux на основе TN-FC-25

TN-FC-45: заводское программирование e.MMC

TN-FC-67: Коллекция моделей использования и эмуляция для e.MMC

В этой технической заметке представлены передовые методы записи данных модели использования (UM) из системы Linux®, а затем подробно объясняется отчет UME, полученный в результате анализа модели использования и ускоренного тестирования модели использования.

TN-52-05: Включение e.MMC Linux

В этом техническом примечании описываются поддерживаемые и неподдерживаемые функции e.MMC, а также способы их включения в Linux. Он включает обсуждение стандарта e.MMC (4.41), представленного в марте 2010 г.

Инструмент командной строки emmcparm 4.3.0 Linux на основе TN-FC-25

TN-FC-65: динамическая архитектура SLC e.MMC/eMCP

В этом техническом примечании описывается динамическая архитектура SLC в устройствах памяти Micron Mobile e.MMC/eMCP и представлена ​​модель производительности записи.

TN-FC-66: архитектура динамического SLC UFS/uMCP

В этом техническом примечании описывается динамическая архитектура SLC в устройствах памяти Micron Mobile UFS/uMCP и представлена ​​модель производительности записи.

TN-FC-35: Руководство по проектированию печатных плат e.MMC

TN-FC-64: Контрольный список для проверки надежности e.MMC

Это техническое примечание представляет собой контрольный список для проектирования устройств e.MMC и 5.1, созданный, чтобы помочь клиентам планировать ресурсы для своих автомобильных модулей памяти на этапе проектирования.

TN-FC-62: Руководство по проектированию печатных плат e.MMC 5.1

TN-29-84: e.MCP v5.1 Решение для опроса очереди команд QSR

Инструмент командной строки emmcparm 4.0.0 Linux на основе TN-FC-25 (выпуск только с двоичным кодом)

TN-FC-06: Загрузка с e.MMC

В этом техническом примечании описываются особенности загрузки системы со встроенного устройства MultiMediaCard (e.MMC). В нем обсуждаются возможности загрузки в версии 4.41 спецификации JEDEC e.MMC и выше, а также объясняется, как настроить устройство e.MMC, чтобы оно имело необходимые функции загрузки, запрограммировать и проверить загрузочный код на устройстве e.MMC, а также выполнить boot для отправки загрузочных данных на хост.

TN-FC-47: Удаление данных e.MMC

В этом TN объясняются команды, используемые для удаления данных с устройства e.MMC. Вся информация относится к автомобильной e.MMC с контроллером 5.0.

TN-FC-46: настройка режима HS200 и HS400 в памяти e.MMC

В этом техническом примечании описывается, как настроить параметры синхронизации высокоскоростного интерфейса, HS200 и HS400, в устройствах памяти e.MMC.

TN-2990: управляемая память NAND — программная частота ошибок

В этом техническом примечании описывается метод обнаружения и обработки смены битов в соответствии со спецификациями JEDEC для работы с управляемыми устройствами NAND.

eMMC (embedded MultiMediaCard) — это внутренняя карта памяти, которая широко используется в качестве временного носителя для портативных устройств и припаивается к материнской плате.

Конфигурация

Включить eMMC.

<р>1. Выберите меню «Оборудование» / «Параметры» / вкладку «Программирование».

<р>2. Нажмите кнопку «Добавить», чтобы открыть диалоговое окно «Устройство».

<р>3. В диалоговом окне «Устройство» выберите из раскрывающихся меню:

  • Производитель – стандарт
  • Устройство — eMMC
<р>4. Подтвердите, нажав ОК. Откроется диалоговое окно устройства.

Настройте устройство.

<р>2. Добавьте файлы, которые вы хотите запрограммировать, в разделе «Загрузить файлы» с помощью кнопки «Добавить».

<р>3. Укажите раздел в раскрывающемся меню.

Файлы загрузки теперь имеют указанные выбранные разделы.

Файлы загрузки теперь имеют указанные выбранные разделы.

Конфигурация раздела

Конфигурация хранилища eMMC выполняется через меню «Оборудование». Откройте меню «Оборудование» / / / Хранилище.

Программировать — запрограммировать все указанные загружаемые файлы в разделе «Устройство / Загрузить файлы».

Хранилище — запрограммируйте выбранные загружаемые файлы.

Проверить — проверяет, правильно ли запрограммированы загружаемые файлы.

Список всех разделов в выбранной eMMC с их текущими размерами

Изменить... .- Изменить размер раздела или флаг загрузки

Стереть... . - Стереть весь раздел. Если сначала нажмите «ОК», когда отобразится предупреждение, затем выберите область и нажмите «ОК», чтобы стереть раздел

Пустая проверка — выберите область пустой проверки, нажмите «ОК», чтобы очистить раздел проверки

Программа — программирует только те файлы, которые указаны в конфигурации устройства для указанного раздела

Проверить — проверяет, правильно ли запрограммированы загружаемые файлы

Конфигурация устройства — выбор ширины режима загрузки

Дамп.. . - Чтение данных из раздела. Сначала укажите выходной файл и выберите область дампа.

Применить изменения — настройка флага загрузки применяется немедленно. Настройки размеров разделов GPx применяются после нажатия кнопки Применить изменения.

Диалоговое окно «Изменить раздел»

Диалоговое окно «Стереть / Пустой флажок / Дамп раздела»

Обратите внимание, что после подтверждения регистры OTP записываются, и операцию нельзя отменить.

Режим загрузки: выберите ширину в раскрывающемся меню

Применить — настройка флага загрузки применяется немедленно. Настройки размеров разделов GPx применяются после нажатия кнопки «Применить».

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

        ПРИМЕЧАНИЕ. Если изменения не были применены, появится новое всплывающее окно, если вы хотите отменить настройку. Если да, в новом окне вам будет предложено выключить и снова включить устройство.

        Обратите внимание, что после подтверждения регистры OTP записываются, и операцию нельзя отменить.

        Приложения eMMC

        Двумя основными требованиями к каждому мобильному устройству являются скорость и мощность, причем самая большая проблема заключается в том, что они обратно пропорциональны друг другу. Просто не может быть и того, и другого, потому что с более высокой скоростью увеличивается энергопотребление. С постоянно растущим спросом на графику и мультимедиа с более высоким разрешением для обогащения пользовательского опыта появилось значительное дополнение к обработке данных, которая требует высокоскоростной передачи данных. Несмотря на то, что устройства способны захватывать и воспроизводить мультимедийные данные высокого качества, устройство хранения недостаточно быстрое, чтобы соответствовать требуемой скорости передачи. Это рассинхронизированная комбинация и одна из самых больших проблем для мобильных устройств. Проблема здесь в том, что система памяти должна иметь достаточную мощность для выполнения операций чтения и записи на высокой скорости без увеличения потребляемой мощности.

        А вот и eMMC, которая широко применяется в индустрии мобильных устройств в качестве интегрированного хранилища. Он поставил галочку во всех вышеупомянутых полях и обеспечивает идеальный компромисс между скоростью и мощностью. Благодаря высокой скорости передачи, низкому энергопотреблению, безопасности, HPI и последнему дополнению к организации очереди команд для повышения производительности eMMC был оптимальным выбором для флэш-памяти в мобильных устройствах с самого начала применения этого стандарта. Он развивался, чтобы догнать каждое новое поколение мобильных устройств, и было несколько пересмотров. JEDEC впервые анонсировала eMMC в версии 4.1 в 2007 году, а последняя версия – 5.1, выпущенная в 2015 году.

        • Режимы скорости шины: скорость по умолчанию (26 МБ/с), высокоскоростная SDR (52 МБ/с), высокоскоростная DDR (104 МБ/с), HS200 (200 МБ/с) и HS400 (400 МБ/с).
        • Разделение: раздел области загрузки для целей загрузки, раздел RPMB для хранения данных в определенной памяти с проверкой подлинности и защитой от повторного воспроизведения и раздел области пользовательских данных общего назначения для хранения данных.
        • Прерывание с высоким приоритетом: для обслуживания запросов с высоким приоритетом путем подавления любой текущей операции с низким приоритетом.
        • Стереть: чтобы стереть сопоставленный диапазон адресов памяти, перезаписав его всеми 0 или всеми 1.
        • Упакованные команды: для сокращения накладных расходов за счет упаковки нескольких команд чтения или записи нескольких блоков.
        • Сон. В этом состоянии устройство памяти потребляет меньше энергии.
        • Очередь команд: для повышения производительности за счет планирования команд передачи данных.
        • Защита паролем: чтобы защитить данные на устройстве, заблокировав его паролем.Заблокированное устройство ограничивает доступ хоста к его данным.
        • Очищающее стирание: стирание данных путем перезаписи записанных данных с последующей их очисткой для дополнительной защиты данных.

        В целом, eMMC — это экономичное, энергоэффективное и высокопроизводительное решение для флэш-памяти для мобильных устройств. Synopsys предоставляет встроенный пакет SystemVerilog UVM VIP и набор тестов исходного кода для всестороннего тестирования протокола и охвата хоста и карты eMMC.

        Читайте также: