Работа с IDE Flash через порты ввода-вывода

Тема в разделе "WASM.ASSEMBLER", создана пользователем Govnodozer, 11 дек 2009.

  1. Govnodozer

    Govnodozer New Member

    Публикаций:
    0
    Регистрация:
    14 окт 2009
    Сообщения:
    11
    Доброго времени суток!
    Имеется IDE Flash, голый защищённый режим (без ОС), IDE контроллер ITE8213F, и требуется минимальный набор функций - записать сектор, считать сектор.

    К сожалению, как обычно, пока ничего не выходит =)

    Согласно спецификации к контроллеру, я забираю базовый командный порт (аналог 1F0) из BAR0, базовый порт управления (аналог 3F6) из BAR1, и пытаюсь записать сектор по протоколу, указанному в Кулакове ("Программирование дисковых подсистем"). Т.е. выбор устройства, проверка BSY, RDY, ERR, запись параметров и команды записи сектора... дальше не важно, т.к. дальше мы не доходим =)

    Так же пробовал делать стирание-записывание сектора (командами CFA Erase Sectors, CFA Write Sectors Without Erase) - при стирании сектора BSY длительное время не освобождается.

    Может кто вкратце рассказать, как по-хорошему производится инициализация контроллера (если она нужна), и есть ли какие-то особенности работы с IDE Flash? И, возможно, может есть какая-то команда, не требующая ввода/вывода, выполнение которой было бы наглядно видно, т.е. чтобы проверить, а в те ли я порты вообще пишу.

    Заранее спасибо.
     
  2. Govnodozer

    Govnodozer New Member

    Публикаций:
    0
    Регистрация:
    14 окт 2009
    Сообщения:
    11
    Вопрос снимается. Причиной всех бед были ошибки в спецификациях к контроллеру =)