SATA в режиме IDE - полная поддержка

Internal structure and you change requests/suggestions
  • Использовать только эти 4 типа вполне нормально, только при перечислении ресурсов не нужно забывать про возможность появления на шине устройств с др. программным интерфейсом, чтобы не упустить из виду занимаемые ими ресурсы.

    Почему бы для начала не довериться BIOS в плане назначения номеров прерываний и их сохранения в INTLN. По-моему в INTLN сохраняются вполне корректные номера.
  • Phantom-84 wrote:Почему бы для начала не довериться BIOS в плане назначения номеров прерываний и их сохранения в INTLN. По-моему в INTLN сохраняются вполне корректные номера.
    Я лично и не собирался переназначать прерывания. Теоретически этим обязан заниматься диспетчер устройств, который начал писать Serge. В мою же задумку входит освоить работу с уже назначенным прерыванием.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Я это и имел в виду. Назначенные BIOS номера можно брать из INTLN при старте.
  • На десктопе винчестер уже читается нормально, запись не могу проверить, ибо везде ext4
  • yogev_ezra wrote:А если поменять одну строчку (IDE Operate Mode) с Legacy Mode на Native Mode, то через несколько секунд после загрузки зависает (лог снять не хватает времени). Но как раз именно с Native Mode работает Windows.
    Я таки разобрался в чем запарка с Native Mode. Дело в том, что для "настоящих" PATA контроллеров 0x80 и 0x8A отдаются два прерывания на каждый из контроллеров 14 и 15. А для 0x85 и 0x8f отдается только одно прерывание. Код же в ядре в настоящее время при любом раскладе подминает под себя 14 и 15 прерывания. В Legacy Mode это нормально, так как там контроллер обзывается 0x8A, а вот Native Mode контроллер обзывается 0x8f и BIOS отдав IRQ14 контроллеру, разумно полагает, что уж IRQ15 он может использовать как ему заблагорассудится и вешает на него USB2. А код в ядре ничтоже сумняшеся по прежнему пытается обработать IRQ15 как принадлежащее контроллеру дисков. Я делаю предположение, что код USB2, не получив нужные ему данные, сильно обижается на злую судьбу и устраивает "Большой Бада-Бум". Вот как-то так. :-)
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • SVN r. 3762
    1) Динамическая установка обработчиков прерывания для IDE контроллера (для PIO режима он вообще не устанавливается)
    2) Исправление проблемы с некоторыми контроллерами (в частности eBox с Native mode для IDE, все еще работает в PIO, но теперь не зависает).

    Просьба протестировать у кого система зависала при запуске.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • SVN r.3774 - некоторые исправления кода работающего с IDE контроллерами.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • У меня возникли сомнения в необходимости избыточного запаса для таблицы устройств работающих в IDE режиме. Я склоняюсь к достаточности данных на два одновременно присутствующих на материнской плате IDE контроллеров (включая наличие SATA работающего в режиме эмуляции IDE). Я лично не видел конфигураций, где присутствуют более 2-х IDE контроллеров на шине PCI. Либо IDE + IDE оба PATA, либо IDE PATA + IDE SATA. Также никто не предоставил доказательств (лог PCIDEV) наличия таких конфигурации пойманных в дикой природе. Если таковых доказательств не будет предоставлено, то я буду делать код с учетом наличия 2-х устройств на шире PCI.

    У желающих меня убедить в необходимости расширить таблицу для данных есть еще время. К примеру плата с контроллером может быть воткнута в слот PCI, и сконфигурирована BIOS, если он такое поддерживает. У меня таких плат нет и даже нахождение PATA IDE устройство для тестирования кода представляет некоторые трудности. Также я не уверен, что будет когда на шине PCI будут два устройства с одинаковым идентификатором - скорее всего компьютер не запустится. В общем у желающих экспериментировать есть широкий простор для изысканий. Я же не имею таких возможностей.

    Также следует учесть, что PATA это отмирающий интерфейс на сегодня и следовательно рассматривать все возможные конфигурации бессмысленно - никто на те конфигурации Колибри устанавливать не будет. Режим же совместимости SATA IDE еще долго будет присутствовать и его нужно принимать в расчет. Однако наличие двух SATA IDE контроллеров исчезающе малая вероятность, хоть и ненулевая.

    В общем если пока я пишу код не найдется заинтересованных лиц обладающих достаточными доказательствами, то будет поддержка лишь двух одновременно работающих контроллеров на шине PCI.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Mario_r4
    Были платы с 3 или 4 контроллерами на i865-i875. До 12 устройств можно было подключать.
  • Serge wrote:Были платы с 3 или 4 контроллерами на i865-i875. До 12 устройств можно было подключать.
    1) Так я не отрицаю вероятность наличия таковых в дикой природе. Только без лога PCIDEV или любого аналогичного, непонятно как они на шине PCI различаются.
    2) Потом опять же как с прерываниями до использования APIC? На 15 прерываний без конфликтов и взаимного использования несколько проблематично.
    3) У меня в общем то главный затык - нужно передавать кучу параметров из реального режима в защищенный. Контроллеры ведь в реальном режиме ищутся. Соответственно дублирование переменных, что не есть хорошо. У меня нет полной уверенности, что я смогу нормально работать с кодом реализующим доступ к шине PCI, для поиска контроллеров, до того как начну искать на контроллерах диски.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Mario_r4
    Это были топовые платы. На них в дополнение к чипсетным PATA+SATA паяли SATA/RAID от сторонних разработчиков. Всё вместе работало в native-mode. Было это в короткий переходный период от pata к sata. Особенно Асус выделывалась наворотами.
    Сейчас тоже могут быть платы с внешними RAID. Такие надо искать в топ категории.

    Update.
    Похоже весь топ под сокет 2011 идёт с одним-двумя доп контроллерами.
    GA-X79S-UP5-WIFI
    G1.Assassin 2
    P9X79 DELUXE
    Last edited by Serge on Sun Jul 28, 2013 11:09 pm, edited 1 time in total.
  • Serge wrote:Сейчас тоже могут быть платы с внешними RAID. Такие надо искать в топ категории.
    1) Ты серьезно считаешь, что в TOP категорию воткнут Колибри? Мне даже не смешно почти.
    2) Еще раз напоминаю, что речь идет о SATA работающем в режиме совместимости с IDE PATA.
    Навряд ли даже в таких платах есть настройки позволяющие ВСЕМ контроллерам работать в режиме эмулирующем IDE PATA. Вероятнее всего только один из них может быть переключен в такой режим, а еще вероятнее, что ни один вообще и все они будут в SATA AHCI режиме функционировать или SATA RAID. А это уже вопрос драйвера который ты разрабатываешь, а не этой темы.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Для новых конечно не актуально, там только AHCI, но есть не очень древние платы с Marvell 88SE61хх. Уже не топ.
  • Serge wrote:Для новых конечно не актуально, там только AHCI, но есть не очень древние платы с Marvell 88SE61хх. Уже не топ.
    Ну, так давай лог PCIDEV и на этом разговор закончим, а то знаешь на Альфе Центавра тоже может наличествовать разумная жизнь, но нам то от этого ни горячо, ни жарко, а скорее даже фиолетово. :wink:
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Who is online

    Users browsing this forum: No registered users and 4 guests