4.3.2 Интерфейс между ядром MTD и низкоуровневым драйвером флеш-памяти

Предыдущая  Содержание  Следующая V*D*V

Как упоминалось выше, низкоуровневый драйвер флеш-памяти экспортирует следующие функции в ядро MTD:

 

Функции, общие для обоих типов микросхем флеш-памяти, NAND и NOR
- read()/write()
- erase()
- lock()/unlock()
- sync()
- suspend()/resume()

Функции только для микросхем NAND
- read_ecc()/write_ecc()
- read_oob()/write_oob()

 

Если вы имеете флеш-память NOR с поддержкой CFI или стандартную, связанную с устройством ввода-вывода 8-ми разрядную микросхему NAND, то ваш драйвер уже готов. В противном случае вам необходимо реализовать драйвер MTD. Некоторые из процедур могут потребовать аппаратной поддержки; так что вы должны проверить спецификацию вашей флеш-памяти для реализации таких функций. Следующий раздел даёт описание процедур, кроме подпрограмм read(), write() и erase().

 

lock() и unlock(): они используются для реализации блокировки флеш-памяти; для части флеш-памяти может быть установлена защита от записи или стирания, чтобы предотвратить случайную перезапись данных. Например, можно заблокировать все разделы, на которых находятся только читаемые файловые системы, на большую часть времени работы системы за исключением случаев, когда выполняется обновление. Они экспортируются в пользовательские приложения, используя вызовы ioctl MEMLOCK и MEMUNLOCK.

sync(): он вызывается, когда устройство получает запрос на закрытие или освобождение, и это гарантирует, что флеш-память находится в безопасном состоянии.

suspend() и resume(): они полезны только когда вы включаете при сборке ядра опцию CONFIG_PM.

read_ecc() и write_ecc(): эти процедуры применяются только для флеш-памяти NAND. ECC является кодом исправления ошибок, который используется для выявления на странице плохих битов. Эти процедуры ведут себя как обычные read()/write(), за исключением отдельного буфера, содержащего ECC, который читается и записывается вместе с данными.

read_oob() и write_oob(): эти процедуры применяются только для флеш-памяти NAND. Каждая микросхема флеш-памяти NAND делится либо на 256-ти, либо на 512-ти байтовые страницы; каждая из этих страниц содержит дополнительную 8-ми или 16-ти байтовую резервную область, называемую дополнительными (out-of-band) данными, которая хранит ECC, информацию о плохих блоках, и другие зависимые от файловой системы данные. Эти функции используются для обращения к таким дополнительным данным.

 

Предыдущая  Содержание  Следующая