Page 4 of 18

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

Posted: Tue Jul 02, 2013 10:01 pm
by Mario_r4
Serge wrote:Mario_r4
Так как сейчас в native работает ? DMA + IRQ, PIO + IRQ ?
С прерываниями и в режиме DMA пока работает лишь с "настоящими" PATA контроллерами 0x80 и 0x8A, поскольку только для них есть полная уверенность, что задействованы 14 и 15 прерывания. Еще два контроллера 0x85 и 0x8f работают в PIO и код не затрагивает прерывания вообще, не считая pushfd | cli | ... | pofd разумеется. О существовании других типов контроллеров IDE мне пока не известно - в логах PCIDEV не попадалось

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

Posted: Tue Jul 02, 2013 11:32 pm
by Phantom-84
Использовать только эти 4 типа вполне нормально, только при перечислении ресурсов не нужно забывать про возможность появления на шине устройств с др. программным интерфейсом, чтобы не упустить из виду занимаемые ими ресурсы.

Почему бы для начала не довериться BIOS в плане назначения номеров прерываний и их сохранения в INTLN. По-моему в INTLN сохраняются вполне корректные номера.

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

Posted: Tue Jul 02, 2013 11:41 pm
by Mario_r4
Phantom-84 wrote:Почему бы для начала не довериться BIOS в плане назначения номеров прерываний и их сохранения в INTLN. По-моему в INTLN сохраняются вполне корректные номера.
Я лично и не собирался переназначать прерывания. Теоретически этим обязан заниматься диспетчер устройств, который начал писать Serge. В мою же задумку входит освоить работу с уже назначенным прерыванием.

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

Posted: Wed Jul 03, 2013 12:00 am
by Phantom-84
Я это и имел в виду. Назначенные BIOS номера можно брать из INTLN при старте.

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

Posted: Wed Jul 03, 2013 6:37 pm
by DmitrySokolowsky
На десктопе винчестер уже читается нормально, запись не могу проверить, ибо везде ext4

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

Posted: Thu Jul 04, 2013 2:52 am
by Mario_r4
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, не получив нужные ему данные, сильно обижается на злую судьбу и устраивает "Большой Бада-Бум". Вот как-то так. :-)

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

Posted: Fri Jul 05, 2013 9:51 am
by Mario_r4
SVN r. 3762
1) Динамическая установка обработчиков прерывания для IDE контроллера (для PIO режима он вообще не устанавливается)
2) Исправление проблемы с некоторыми контроллерами (в частности eBox с Native mode для IDE, все еще работает в PIO, но теперь не зависает).

Просьба протестировать у кого система зависала при запуске.

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

Posted: Sun Jul 07, 2013 5:14 am
by Mario_r4
SVN r.3774 - некоторые исправления кода работающего с IDE контроллерами.

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

Posted: Sun Jul 28, 2013 7:20 pm
by Mario_r4
У меня возникли сомнения в необходимости избыточного запаса для таблицы устройств работающих в 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.

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

Posted: Sun Jul 28, 2013 8:39 pm
by Serge
Mario_r4
Были платы с 3 или 4 контроллерами на i865-i875. До 12 устройств можно было подключать.

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

Posted: Sun Jul 28, 2013 9:53 pm
by Mario_r4
Serge wrote:Были платы с 3 или 4 контроллерами на i865-i875. До 12 устройств можно было подключать.
1) Так я не отрицаю вероятность наличия таковых в дикой природе. Только без лога PCIDEV или любого аналогичного, непонятно как они на шине PCI различаются.
2) Потом опять же как с прерываниями до использования APIC? На 15 прерываний без конфликтов и взаимного использования несколько проблематично.
3) У меня в общем то главный затык - нужно передавать кучу параметров из реального режима в защищенный. Контроллеры ведь в реальном режиме ищутся. Соответственно дублирование переменных, что не есть хорошо. У меня нет полной уверенности, что я смогу нормально работать с кодом реализующим доступ к шине PCI, для поиска контроллеров, до того как начну искать на контроллерах диски.

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

Posted: Sun Jul 28, 2013 10:37 pm
by Serge
Mario_r4
Это были топовые платы. На них в дополнение к чипсетным PATA+SATA паяли SATA/RAID от сторонних разработчиков. Всё вместе работало в native-mode. Было это в короткий переходный период от pata к sata. Особенно Асус выделывалась наворотами.
Сейчас тоже могут быть платы с внешними RAID. Такие надо искать в топ категории.

Update.
Похоже весь топ под сокет 2011 идёт с одним-двумя доп контроллерами.
GA-X79S-UP5-WIFI
G1.Assassin 2
P9X79 DELUXE

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

Posted: Sun Jul 28, 2013 11:04 pm
by Mario_r4
Serge wrote:Сейчас тоже могут быть платы с внешними RAID. Такие надо искать в топ категории.
1) Ты серьезно считаешь, что в TOP категорию воткнут Колибри? Мне даже не смешно почти.
2) Еще раз напоминаю, что речь идет о SATA работающем в режиме совместимости с IDE PATA.
Навряд ли даже в таких платах есть настройки позволяющие ВСЕМ контроллерам работать в режиме эмулирующем IDE PATA. Вероятнее всего только один из них может быть переключен в такой режим, а еще вероятнее, что ни один вообще и все они будут в SATA AHCI режиме функционировать или SATA RAID. А это уже вопрос драйвера который ты разрабатываешь, а не этой темы.

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

Posted: Sun Jul 28, 2013 11:33 pm
by Serge
Для новых конечно не актуально, там только AHCI, но есть не очень древние платы с Marvell 88SE61хх. Уже не топ.

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

Posted: Mon Jul 29, 2013 12:33 am
by Mario_r4
Serge wrote:Для новых конечно не актуально, там только AHCI, но есть не очень древние платы с Marvell 88SE61хх. Уже не топ.
Ну, так давай лог PCIDEV и на этом разговор закончим, а то знаешь на Альфе Центавра тоже может наличествовать разумная жизнь, но нам то от этого ни горячо, ни жарко, а скорее даже фиолетово. :wink: