Board.KolibriOS.org http://board.kolibrios.org/ |
|
SATA в режиме IDE - полная поддержка http://board.kolibrios.org/viewtopic.php?f=1&t=2343 |
Page 3 of 18 |
Author: | Mario_r4 [ Tue Jul 02, 2013 12:14 pm ] |
Post subject: | Re: SATA в режиме IDE - полная поддержка |
Serge Т.е. в на твоей машине в обоих режимах работает? |
Author: | Serge [ Tue Jul 02, 2013 12:27 pm ] |
Post subject: | Re: SATA в режиме IDE - полная поддержка |
Только в SATA Native IDE. |
Author: | Phantom-84 [ Tue Jul 02, 2013 12:40 pm ] |
Post subject: | Re: SATA в режиме IDE - полная поддержка |
Mario_r4 wrote: yogev_ezra wrote: А если поменять одну строчку (IDE Operate Mode) с Legacy Mode на Native Mode, то через несколько секунд после загрузки зависает (лог снять не хватает времени). Но как раз именно с Native Mode работает Windows. Вот что я нарыл... Quote: 4.2.1 Legacy Mode 4.2.1.1 Compatibility Mode 4.2.1.2 PCI-Native Mode Serge wrote: прерывания и в PIO работают. А необработанное прерывание вешает систему или контроллер. +1.Quote: Дефолтные обработчики стоят на irq 14 и 15. А в native может быть любой вектор. Если драйвер не ставит обработчик, конец будет немного предсказуем. У меня, кстати, так и не заработало. В одном режиме irg 11 в другом irq --. irq -- видимо и означает IRQ14/15, т.к. контроллер работает в режиме совместимости.
|
Author: | Mario_r4 [ Tue Jul 02, 2013 12:46 pm ] |
Post subject: | Re: SATA в режиме IDE - полная поддержка |
Serge Сделай, пожалуйста, следующее: 1) Закомментируй в bootcobe.inc Spoiler: Show 2) Замени в bootcobe.inc Spoiler: Show переход .found_1 на .found (поскольку прерывание не назначено, то в DMA скорее всего контроллер 0x8A работать не будет, хотя можно проверить и без п.2) 3) Скомпилируй ядро и проверь в LEGACY режиме. 4) Выложи сюда лог загрузки. |
Author: | Serge [ Tue Jul 02, 2013 1:10 pm ] | ||
Post subject: | Re: SATA в режиме IDE - полная поддержка | ||
Работает.
|
Author: | Mario_r4 [ Tue Jul 02, 2013 1:33 pm ] |
Post subject: | Re: SATA в режиме IDE - полная поддержка |
Ну, это издержки поддержки лишь одного контроллера в коде - буду дорабатывать. Кстати можно проверить и без п.2 в изменениях, поскольку: Spoiler: Show То с большой вероятностью прерывания стандартные 14 и 15 используются, но в PCI это не отображено: Quote: The device doesn't use IRQs, check if this is an Parallel IDE ... This is a Parallel IDE Controller which uses IRQs 14 and 15 http://wiki.osdev.org/IDE Spoiler: Show |
Author: | Serge [ Tue Jul 02, 2013 1:51 pm ] |
Post subject: | Re: SATA в режиме IDE - полная поддержка |
В линуксе сразу патчат, ещё при сканировании Code: /* |
Author: | Phantom-84 [ Tue Jul 02, 2013 3:41 pm ] |
Post subject: | Re: SATA в режиме IDE - полная поддержка |
В Линуксе делают все правильно, т.е. в BAR'ы даже не лезут, если канал (!!!) работает в режиме совместимости. Что касается прерываний, то в OSDev-вики логика более-менее правильная: если устройство говорит, что не нуждается в IRQ, но это PCI IDE-контроллер, работающий в режиме совместимости, то он использует IRQ14/15, о чем я и говорил выше. |
Author: | Serge [ Tue Jul 02, 2013 3:56 pm ] |
Post subject: | Re: SATA в режиме IDE - полная поддержка |
Phantom-84 А разве в legacy нельзя переписать номер irq ? Вроде ничего такого в документации нет. |
Author: | Phantom-84 [ Tue Jul 02, 2013 7:34 pm ] |
Post subject: | Re: SATA в режиме IDE - полная поддержка |
Я знаю, что в режиме совместимости запись в BAR'ы может блокироваться. Увидел код и подумал, что с INTLN происходит тоже самое. Хотя в режиме совместимости значительно проще и надежнее вообще не лезть в INTLN. Даже если мы проверим и увидим, что запись в INTLN происходит успешно/безуспешно, то: 1) не факт, что подобное, какой бы результат мы не получили, происходит всегда и везде; 2) успешная запись какого-либо опред. номера будет лишь сбивать столку, потому что в режиме совместимости у каждого канала свой номер IRQ, причем вполне конкретный. Хотя если мы увидим, что BIOS записала в INTLN какой-то особый номер, то возможно мы имеем дело с "чудом", работающим с каналами в разных режимах, а переданный нам номер IRQ используется для канала, работающего в нативном режиме. В более простых случаях мы навряд ли сможем увидеть в INTLN номер IRQ, отличный от 14-го. |
Author: | Serge [ Tue Jul 02, 2013 8:15 pm ] |
Post subject: | Re: SATA в режиме IDE - полная поддержка |
Вот и у меня подозрение, что код с osdev делает необоснованные выводы из возможности переписать номер линии. Регистр носит чисто справочный характер и доступен для записи всегда, независимо от режима работы. Ещё интересней то, что они его переписывают не сохраняя оригинальное значение, ССЗБ. Подобные примеры только сбивают людей с толку. |
Author: | Serge [ Tue Jul 02, 2013 8:23 pm ] |
Post subject: | Re: SATA в режиме IDE - полная поддержка |
Mario_r4 Так как сейчас в native работает ? DMA + IRQ, PIO + IRQ ? |
Author: | Phantom-84 [ Tue Jul 02, 2013 8:38 pm ] |
Post subject: | Re: SATA в режиме IDE - полная поддержка |
Serge, в PCI Spec. вроде бы было написано, что если устройству не требуются прерывания, то оно может не реализовывать и INTLN, т.е. без доп. проверки или полной уверенности в своих действиях что-либо сохранять в INTLN нельзя. |
Author: | Serge [ Tue Jul 02, 2013 8:45 pm ] |
Post subject: | Re: SATA в режиме IDE - полная поддержка |
Phantom-84 Интересная информация. Это надо сперва проверить INT_PIN, и уже потом INTLN ? |
Author: | Phantom-84 [ Tue Jul 02, 2013 8:57 pm ] |
Post subject: | Re: SATA в режиме IDE - полная поддержка |
У меня нет уверенности, что PCI IDE- в режиме совместимости не выкинет какой-нибудь фокус, поэтому да. Я немного подредактировал пред. пост, т.е. INT_PIN можно не проверять, если ты на 100% уверен, что устройство работает с прерываниями. В случае PCI IDE- в режиме совместимости, как только что сказал, у меня 100-проц. уверенности нет. Да еще этот код с вики... Все-таки нужно проверить, хотя бы как частный случай. |
Page 3 of 18 | All times are UTC+03:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |