Программа проверки памяти 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
Настройте устройство.
<р>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.
Читайте также: