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

Обновлено: 05.07.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) — это внутренняя карта памяти, которая широко используется в качестве временного носителя для портативных устройств и припаивается к материнской плате.

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

number1

Включить eMMC.

eMMC

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

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

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

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

number2

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

Нажмите, чтобы увеличить

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

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

number3

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

Нажмите, чтобы увеличить

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

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

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

eMMC3

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

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

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

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

eMMCStorageConfiguration

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

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

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

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

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

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

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

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

Диалоговое окно изменения раздела

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

Ширина диалогового окна

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

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

eMMCStorageConfigurationDeviceConfig

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

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

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

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

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

        приложения eMMC

        Приложения 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.

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