The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

4.5.2 Заполнение mtd_info для микросхемы NAND Flash

4.5.2 Заполнение mtd_info для микросхемы NAND Flash

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

Как упоминалось ранее, доступ к NAND Flash выполняется путём подключения линий данных и команд к линиям ввода-вывода процессора. Для микросхемы NAND Flash важными являются следующие контакты:

 

контакт CE (Chip Enable, Выбор Микросхемы): микросхема NAND Flash выбрана, когда на этом выводе установлен низкой уровень.

контакт WE (Write Enable, Разрешение Записи): микросхема NAND Flash принимает данные от процессора, когда на этом выводе установлен низкой уровень.

контакт RE (Read Enable, Разрешение Чтения): микросхема NAND Flash посылает данные в процессор, когда на этом выводе установлен низкой уровень.

контакт CLE (Command Latch Enable, Разрешение Фиксации Команды) и контакт ALE (Address Latch Enable, Разрешение Фиксации Адреса).

 

Эти выводы определяют назначение операции для микросхемы NAND. Как используются эти контакты, объясняет Таблица 4.2.

 

Таблица 4.2 Использование контактов ALE и CLE

 

ALE

CLE

Регистр

0

0

Регистр данных

0

1

Регистр команды

1

0

Регистр адреса

 

контакт WP (Write Protect, Защита Записи): этот вывод может быть использован для защиты от записи.

контакт RB (Ready Busy, Готов/Занят): используется в фазах передачи данных, чтобы указать, что микросхема занята.

контакты IO (Ввода/Вывода): используются для передачи данных.

 

В отличие от микросхемы NOR Flash, драйвер которой для выделения памяти для структуры mtd_info вызывает do_map_probe(), драйверу для NAND Flash необходимо выделить память для структуры mtd_info. Ключом к этому является структура nand_chip, которая заполняется драйвером связи с NAND. Драйвером связи с NAND выполняются следующие шаги:

 

Выделение памяти для структуры mtd_info.

Выделение памяти для структуры nand_chip и заполнение необходимых полей.

Сделать поле priv структуры mtd_info указывающим на структуру nand_chip.

Вызов функции nand_scan(), которая будет пытаться опознать микросхему NAND, а также заполнить структуру mtd_info функциями для работы NAND.

Регистрацию структуры mtd_info в ядре MTD.

 

Параметры для NAND, которые хранятся в структуре nand_chip, можно разделить на:

 

Обязательные параметры:
- IO_ADDR_R, IO_ADDR_W: адреса для доступа к линиям ввода-вывода микросхемы NAND.
- hwcontrol(): эта функция реализует зависимый от платы механизм для установки и сброса выводов CLE, ALE и CE.
- eccmode: используется для обозначения типа ECC для NAND Flash. Это включает отсутствие ECC, программное ECC и аппаратное ECC.

Обязательные параметры, если ECC выполняется аппаратно. Некоторое оборудование обеспечивает генерацию ECC; в этом случае должны быть реализованы следующие функции. В случае программной реализации ECC, драйвер NAND предоставляет следующие функции как функции по умолчанию.
- calculate_ecc(): функция для генерации ECC
- correct_data(): функция для коррекции ECC
- enable_hwecc(): функция для разрешения аппаратной генерации ECC

Необязательные параметры. Драйвер предоставляет для следующих параметров функции/значения по умолчанию. Однако они могут быть заменены драйвером связи:
- dev_ready(): эта функция используется для определения состояния флеш-памяти.
- cmdfunc(): эта функция предназначена для отправки команд флеш-памяти.
- waitfunc(): эта функция вызывается после выполнения записи или стирания. Функцией по умолчанию, предоставляемой драйвером NAND, является функция опроса; в случае, если плата может подключить контакт RB к линии прерывания, эта функция может быть преобразована в функцию, управляемую прерываниями.
- chip_delay: это задержка для передачи данных из массива NAND в его регистры; значение по умолчанию составляет 20 мкс.

 

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