Board.KolibriOS.org

Official KolibriOS board
It is currently Sun Jun 16, 2019 8:49 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 262 posts ]  Go to page Previous 1 2 3 4 5 618 Next
Author Message
PostPosted: Tue Jul 02, 2013 10:01 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
Mario_r4
Так как сейчас в native работает ? DMA + IRQ, PIO + IRQ ?

С прерываниями и в режиме DMA пока работает лишь с "настоящими" PATA контроллерами 0x80 и 0x8A, поскольку только для них есть полная уверенность, что задействованы 14 и 15 прерывания. Еще два контроллера 0x85 и 0x8f работают в PIO и код не затрагивает прерывания вообще, не считая pushfd | cli | ... | pofd разумеется. О существовании других типов контроллеров IDE мне пока не известно - в логах PCIDEV не попадалось

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Tue Jul 02, 2013 11:32 pm 
Offline

Joined: Sun Feb 18, 2007 8:34 pm
Posts: 158
Использовать только эти 4 типа вполне нормально, только при перечислении ресурсов не нужно забывать про возможность появления на шине устройств с др. программным интерфейсом, чтобы не упустить из виду занимаемые ими ресурсы.

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


Top
   
PostPosted: Tue Jul 02, 2013 11:41 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Phantom-84 wrote:
Почему бы для начала не довериться BIOS в плане назначения номеров прерываний и их сохранения в INTLN. По-моему в INTLN сохраняются вполне корректные номера.

Я лично и не собирался переназначать прерывания. Теоретически этим обязан заниматься диспетчер устройств, который начал писать Serge. В мою же задумку входит освоить работу с уже назначенным прерыванием.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Wed Jul 03, 2013 12:00 am 
Offline

Joined: Sun Feb 18, 2007 8:34 pm
Posts: 158
Я это и имел в виду. Назначенные BIOS номера можно брать из INTLN при старте.


Top
   
PostPosted: Wed Jul 03, 2013 6:37 pm 
Offline
User avatar

Joined: Thu Mar 01, 2007 7:57 pm
Posts: 835
На десктопе винчестер уже читается нормально, запись не могу проверить, ибо везде ext4

_________________
Всех выше те, кто доброе творят,
И за дела добра не ждут наград,
Всем жертвуют для страждущих людей,
Не думая о выгоде своей.


Top
   
PostPosted: Thu Jul 04, 2013 2:52 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
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 лет себе в жопу!


Top
   
PostPosted: Fri Jul 05, 2013 9:51 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
SVN r. 3762
1) Динамическая установка обработчиков прерывания для IDE контроллера (для PIO режима он вообще не устанавливается)
2) Исправление проблемы с некоторыми контроллерами (в частности eBox с Native mode для IDE, все еще работает в PIO, но теперь не зависает).

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

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Jul 07, 2013 5:14 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
SVN r.3774 - некоторые исправления кода работающего с IDE контроллерами.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Jul 28, 2013 7:20 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
У меня возникли сомнения в необходимости избыточного запаса для таблицы устройств работающих в 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 лет себе в жопу!


Top
   
PostPosted: Sun Jul 28, 2013 8:39 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Mario_r4
Были платы с 3 или 4 контроллерами на i865-i875. До 12 устройств можно было подключать.


Top
   
PostPosted: Sun Jul 28, 2013 9:53 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
Были платы с 3 или 4 контроллерами на i865-i875. До 12 устройств можно было подключать.

1) Так я не отрицаю вероятность наличия таковых в дикой природе. Только без лога PCIDEV или любого аналогичного, непонятно как они на шине PCI различаются.
2) Потом опять же как с прерываниями до использования APIC? На 15 прерываний без конфликтов и взаимного использования несколько проблематично.
3) У меня в общем то главный затык - нужно передавать кучу параметров из реального режима в защищенный. Контроллеры ведь в реальном режиме ищутся. Соответственно дублирование переменных, что не есть хорошо. У меня нет полной уверенности, что я смогу нормально работать с кодом реализующим доступ к шине PCI, для поиска контроллеров, до того как начну искать на контроллерах диски.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Jul 28, 2013 10:37 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
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.

Top
   
PostPosted: Sun Jul 28, 2013 11:04 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
Сейчас тоже могут быть платы с внешними RAID. Такие надо искать в топ категории.

1) Ты серьезно считаешь, что в TOP категорию воткнут Колибри? Мне даже не смешно почти.
2) Еще раз напоминаю, что речь идет о SATA работающем в режиме совместимости с IDE PATA.
Навряд ли даже в таких платах есть настройки позволяющие ВСЕМ контроллерам работать в режиме эмулирующем IDE PATA. Вероятнее всего только один из них может быть переключен в такой режим, а еще вероятнее, что ни один вообще и все они будут в SATA AHCI режиме функционировать или SATA RAID. А это уже вопрос драйвера который ты разрабатываешь, а не этой темы.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Jul 28, 2013 11:33 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Для новых конечно не актуально, там только AHCI, но есть не очень древние платы с Marvell 88SE61хх. Уже не топ.


Top
   
PostPosted: Mon Jul 29, 2013 12:33 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
Для новых конечно не актуально, там только AHCI, но есть не очень древние платы с Marvell 88SE61хх. Уже не топ.

Ну, так давай лог PCIDEV и на этом разговор закончим, а то знаешь на Альфе Центавра тоже может наличествовать разумная жизнь, но нам то от этого ни горячо, ни жарко, а скорее даже фиолетово. :wink:

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 262 posts ]  Go to page Previous 1 2 3 4 5 618 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited