Определение IDE устройств

Тема в разделе "WASM.OS.DEVEL", создана пользователем MisHel64, 13 май 2011.

  1. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Дык, в чем конкретно проблема? У меня лично с этим проблем не возникало ни каких. Грабли ЕМНИП были только, когда решил использовать DMA.
    Я уж не знаю, может у тебя железо какое-то особенное, но на всем железе на котором я тестировал последние версии своей оси, все HDD отлично распознаются. (Если ты про пример Кулакова, то там у него куча ошибок во всех примерах)
    Чистой воды троллинг. Уважаемый, ты даже не видел ни меня ни мою ось, а утверждаешь таки вещи. Я давал "поиграться" с моей ОС таким людям как VaStaNi, cppasm, Himik и др., можешь спросить если чего. Кстати Himik мне помог отладить драйвер AHCI и вообще нормальную поддержку SATA на его машине, за что ему большой респект.
    Кстати, посмотрел твои посты и имхо уровнем знаний достаточного до такого выпендрежа, что у тебя в сообщениях ты не обладаешь.
    execute device diagnostic
    Ну наверное искать в pdf файлах ты умеешь...
    Опять троллинг.
    Посылаешь команду ведущему устройству... ошибка или выход по таймауту - значит устройства нет или оно неисправно (ну либо ты протокол передачи не соблюдаешь, что вероятнее всего)
    Потом тоже самое для ведомого
    Чего не ясно-то? У всех работает, а у тебя нет, может повод задуматься и задавать более конкретный вопрос, например по протоколу?
    Толстый троллинг
     
  2. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Вот протокол для Identify Device из текущей версии моего драйвера:
    1. Жду окончания предыдущей операции (там флаг у меня есть который сбрасывается в обработчике прерывания).
    2. Жду пока BSY != 0
    3. Записываю адресуемое устройство в DH
    4. Жду пока DRDY != 1
    5. Записываю в командные регистры параметры FR=0, SC=0, SN=0, CL=0, CH=0
    6. CR = 0xEC
    7. Ожидаю прерывания от устройства, если во время этого в SR ошибка, то аварийно выхожу
    8. Жду пока DRQ != 1, если во время этого в SR ошибка, то аварийно выхожу
    9. использую rep insw для чтения блока данных
    10. проверяю регистр состояния на наличие ошибок
    Естественно нужно еще делать проверку на таймаут во всех циклах

    Кстати, подобный протокол ты мог сам найти в даташите, как справедливо заметил Pavia
     
  3. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Мужик, я понимаю, ты умный. Я понимаю твое желание бляснуть мега познаниями. Но ты не в тему. Совершенно не в тему.
    В твоем алгоритме отсутствует ключевой момент. Прочитав хоть раз стандарт ATA/ATAPI, ты поймешь какой.

    И на скольких сотнях железок ты попробовал свою чудо ОС?
    И в каком магазине ее купить можно?

    А конкретно. О чем речь в П1? О какой предыдущей операции идет речь? Я еще никаких операций не проводил.
    П7 и П8 в штатной ситуации отбросит устройство, которое реально существует. И эта ситуация описана в стандарте ATA/ATAPI.

    П3. Как отреагирует твой алгоритм, когда запись в регистр устройства игнорируется вообще?
    Ситуация не штатная, но встречающеяся?

    Сколько минут будет работать твой алгоритм, если опрашивать 6 каналов IDE, и каждый канал выдает 7Fh?

    Приведенный тобой алгоритм, для меня это уже пройденный этап, и отброшенный как имеющий довольна большую вероятность отказа, и неправильной работы, в нештатной ситуации.
    И описанный, и предложенный на много раньше тебя, еще в первых постах.

    И не тебе о моих знаниях судить.
     
  4. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Читал и не раз, ну поведай, умник, какой.
     
  5. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Ну не на сотнях конечно, но конкретно драйвер ATA на нескольких десятках разных пробовал.
     
  6. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    ОС? (сарказм проигнорирую) Ни в каком, это чисто мое хобби. Фактически сейчас это "специфическая игрушка", там многое мной реализовано, но несоизмеримо больше нужно реализовать, чтобы ее можно было применять хоть в какой области. Да я к этому и не стремлюсь, это не реально для одного человека.
     
  7. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Я описал общий протокол работы, у меня есть специальный флаг на канал, который сигнализирует его занятость, он сбрасывается в обработчике прерывания, соответственно при инициализации канала он сброшен. Просто эта команда у меня может быть послана не обязательно первой.
     
  8. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Однако ничего не отбрасывает
     
  9. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Номер стандарта и страницу в студию
     
  10. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Выйдет по таймауту.
     
  11. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Не спорю встречается, особенно на самых новых мостах, где стандартные порты вообще могут быть выпилены. (если не включена эмуляция) Но тогда во всех регистрах в т. ч. и статусном будет 0xFF, что уже легко отслеживается.
     
  12. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Во первых уже давным-давно мосты больше 2х каналов на одном IDE не поддерживают, ну ладно (вернее и IDE как такового тогда не было). Некоторые контроллеры выставляют сразу бит ошибки и выход произойдет сразу, в самом худшем случае до полутора секунд примерно если на всех 2х каналах пусто и контроллер не отвечает, но при загрузке ОС это не столь критично. К тому же, если ты обращал внимание, то на многих сис платах БИОС тоже во время определения IDE устройств, порой нехило провисает. Если тебе так важна скорость, то подключенные устройства можно получить и БИОСа, чтобы не искать самому, только там много всяких ограничений пл этому делу.
     
  13. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Приведи пример южного моста или конкретного контроллера (желательно еще и HDD), на котором я могу лицезреть отказ работы моего драйвера, а так это пустые слова.
     
  14. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Ссылки на примеры Кулакова? Вот от его процедур ты точно не получишь нормальной работы ,и вообще не рекомендую смотреть его примеры. У него много хорошего в книге, в частности перевел часть спецификации UHCI на русский язык, но только не примеры.
     
  15. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Ага и не тебе тоже судить обо мне и моей ОС в частности.
     
  16. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    1) А зачем тебе советы человека, знания которого ты оцениваешь ниже плинтуса?
    2) Зачем тебе то, что лежит на поверхности в тех стандартах, которые ты не раз читал, и не увидел?
     
  17. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    MisHel64, хватит уже троллить и выдумывать всякую ерунду. Ты так и не подтвердил по существу или на деле ни одно из своих громких высказываний.
     
  18. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Так на будущее, в низу сообщения есть кнопочка "редактировать".

    Жизнь показывает, что одного человека вполне достаточно, что бы создать свою ОС. Про банжелос я промолчу, но вот про Linux вспомнить стоит.

    T13/1532D том 1, стр 109.


    Перечитай внимательно. Не выйдет.

    В каком контексте тут переводиться термин "IDE", и какие мосты?
    В современных матерях, пять-шесть каналов IDE, довольно частая ситуация.

    И после этого, ты мне будешь рассказать сказки, что ты читал стандарт?

    Его примеры довольно хорошие примеры. Только нужно думать, что именно в этих примерах. Если думалки нет, то и примеры плохие.
     
  19. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Пока я вижу лишь большие распальцовки от человека, которые явно показывают, что он не только не читал внимательно стандарт, но и не занимался разработкой части кода, которою в этой ветке обсуждаем, а просто скопипастил чужые фрагменты даже не удосужившись в них детально разобраться.
    Так что хватит уже нести дурь.
     
  20. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Линукс разрабатывается не одним далеко человеком. Линус Торвалдс занялся разработкой в актуальное для этого время и людей это заинтересовало. Сейчас такого не произойдет
    Все, что я использовал из его книги, кроме пожалуй нескольких примеров пришлось в итоге переписывать почти или совсем полностью, ибо у него очень много неправильных и сильно упрощенных предположений.
    Перечитать чего? Свой код? Дк я его могу лишний раз проверить на железе и убедиться, что все работает.
    IDE контроллеры представляют из себя функции Южного Моста, если ты не знал. Нет, конечно я не спорю, продаются внешние, но у все них тоже самое, если они совместимы.
    1. В современных системных платах каналов IDE как таковых вообще нет, есть SATA. Но каналы IDE могут эмулироваться, но никак 12 дисков не получится разместить на одном контроллере, скорее всего будет несколько или часть дисков вообще не будет видна.
    2. По стандарту на одном контроллере два канала (раньше можно было расширить до четырех).