Board.KolibriOS.org

Official KolibriOS board
It is currently Sun May 26, 2019 12:36 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 262 posts ]  Go to page Previous 1 2 3 4 518 Next
Author Message
PostPosted: Thu Jun 27, 2013 7:44 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1328
Ну не может быть такого - один и тот же контроллер не имеет права "отмечаться" как два разных устройства,
иначе ему пожизненно гарантирован полный набор заморочек с энумератором и PM .


Top
   
PostPosted: Thu Jun 27, 2013 8:09 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Что то вы запутались - имхо на той матери два контроллера просто:
1) PATA IDE - обычно сейчас оставляют только один разъем, но были более старые модели MB, когда на плате присутствовали 2 разъема PATA и 2-4 SATA.
2) SATA с эмуляцией IDE, но без AHCI - судя по тому, что нет такой настройки в BIOS, и нет в обоих режимах устройства AHCI в PCIDEV.

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


Top
   
PostPosted: Fri Jun 28, 2013 12:29 am 
Offline

Joined: Sun Feb 18, 2007 8:34 pm
Posts: 158
art_zh wrote:
Ну не может быть такого - один и тот же контроллер не имеет права "отмечаться" как два разных устройства,
иначе ему пожизненно гарантирован полный набор заморочек с энумератором и PM .
Может. У меня на компе SATA-контроллер отображается как AHCI или как два PCI IDE-контроллера в зависимости от выбранного режима (AHCI/IDE).

Mario_r4 wrote:
Что то вы запутались - имхо на той матери два контроллера просто:
1) PATA IDE - обычно сейчас оставляют только один разъем, но были более старые модели MB, когда на плате присутствовали 2 разъема PATA и 2-4 SATA.
2) SATA с эмуляцией IDE, но без AHCI - судя по тому, что нет такой настройки в BIOS, и нет в обоих режимах устройства AHCI в PCIDEV.
Я не запутался, а неправильно понял фразу "что собственно AHCI контроллера ни в каком режиме не видно, и похоже что это два IDE контроллера". Подумал, что речь идет о появлении двух PCI IDE-контроллеров вместо AHCI. То что там наверняка два контроллера, SATA- и обычный PCI IDE-, это понятно. Просто я подумал, что PCI IDE- может быть отключен, а SATA- отображается, как два PCI IDE-. Но, присмотревшись, могу с тобой согласиться. Многофункциональное устройство на шине - это SATA-контроллер, однофункциональное - обычный PCI IDE-контроллер.

Кстати для справки. На моем компе, том же самом, про который я уже несколько раз говорил, обычный PCI IDE-контроллер может быть явно включен/отключен в BIOS Setup. Если его включить, то будут видны либо AHCI и один PCI IDE-контроллер, либо сразу 3 (!!!) PCI IDE-контроллера в зависимости от выбранного режима (AHCI/IDE).


Top
   
PostPosted: Fri Jun 28, 2013 12:33 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Phantom-84 wrote:
либо сразу 3 (!!!) PCI IDE-контроллера в зависимости от выбранного режима (AHCI/IDE).

Охренеть! Дайте два три!

Придется таблицу делать с учетом всех возможных устройств.

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


Top
   
PostPosted: Fri Jun 28, 2013 3:38 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1328
Phantom-84 wrote:
art_zh wrote:
Ну не может быть такого - один и тот же контроллер не имеет права "отмечаться" как два разных устройства,
иначе ему пожизненно гарантирован полный набор заморочек с энумератором и PM .
Может. У меня на компе SATA-контроллер отображается как AHCI или как два PCI IDE-контроллера в зависимости от выбранного режима (AHCI/IDE).

Два IDE-контроллера - они два (разных) контроллера и есть. Каждый ведет свои диски, у каждого свои собственные порты, DMA и т.п.
PCI-энумератор ессно должен эти контроллеры различать, потому и разные устройства.

КО говорил о невозможности идентификации контроллера AHCI/SATA одновременно как AHCI и как SATA. Иначе один физический ресурс (конкретный жесткий диск) получит два разных канала управления и передачи данных.


Top
   
PostPosted: Sat Jun 29, 2013 1:17 am 
Offline

Joined: Sun Feb 18, 2007 8:34 pm
Posts: 158
Ну, понятно. Я редко использую сочетание "AHCI-контроллер". А SATA-контроллер, работающий в IDE-режиме, также как и PATA- (т.е. обычный PCI IDE-) называю PCI IDE-контроллером, если речь идет о его отображении на шине.


Top
   
PostPosted: Tue Jul 02, 2013 4:04 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.

Вот что я нарыл в ATA Host Adapter Standards Proposal:
Spoiler: Show
3.2 Adapter Modes

3.2.1 Legacy Mode
An Adapter is in Legacy Mode when the control of the transfer is through the ATA Command and Control Block Registers. Any data transfers are via PIO mode through the Data register. The addresses of the Command or Control block are configurable in this mode.

3.2.2 Compatibility Mode
This mode is only applicable to implementations on PC systems implementing the PC architecture. An Adapter is in Compatibility when the control of the transfer is through the ATA Command and Control Block Registers and registers in the Adapter. The addresses of the Command or Control block are defined as well as the interrupt lines (IRQs). Table 1defines the four standard I/O address banks.

3.2.3 PCI Native Mode
This mode is only applicable to Adapters bridging to the PCI bus. In this mode the control of the transfer is through the ATA Command and Control Block Registers and registers in the Adapter. The addresses of the Command or Control block are defined in the BAR of the Adapter and are defined by the Host software. There is only one Host interrupt line for all the channels attached to an Adapter.

По моему личному субъективному оценочному суждению "Native Mode" работает исключительно в режиме DMA и попытки обратиться к нему в PIO режиме, как раз и создают аварийную ситуацию. Ранее до моих изменений код обращался по стандартным и неправильным (для этого режима) адресам портов, потому накладок не происходило. Поскольку код пока не умеет работать с прерываниями отличающимися от 14 и 15, то придется потерпеть.

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


Top
   
PostPosted: Tue Jul 02, 2013 9:13 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Mario_r4
Все режимы поддерживают PIO, потому что идентификация устройства проводится в PIO.
Проблема скорее в прерываниях. БИОС выделяет линию, но не прописывает вектор в PCICFG.


Top
   
PostPosted: Tue Jul 02, 2013 9:23 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
Проблема скорее в прерываниях. БИОС выделяет линию, но не прописывает вектор в PCICFG.

Я может чего то не понимаю, но как это мешает работе в PIO режиме? Проблема то как раз с PIO наблюдается.

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


Top
   
PostPosted: Tue Jul 02, 2013 9:36 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
прерывания и в PIO работают. А необработанное прерывание вешает систему или контроллер.


Top
   
PostPosted: Tue Jul 02, 2013 10:28 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
прерывания и в PIO работают. А необработанное прерывание вешает систему или контроллер.

Т.е. в нормальной ситуации при вызове PIO стоит затычка, а в искомой ситуации прописан вектор в далекие ебеня?

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


Top
   
PostPosted: Tue Jul 02, 2013 10:39 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Дефолтные обработчики стоят на irq 14 и 15. А в native может быть любой вектор. Если драйвер не ставит обработчик, конец будет немного предсказуем. У меня, кстати, так и не заработало. В одном режиме irg 11 в другом irq --.
Там есть регистр разрешения/запрещения прерываний. Если не получается поставить обработчик, надо работать в режиме опроса. Запретить прерывание и проверять биты состояния в цикле с паузами. Это и в ДМА и в ПИО должно работать. Медленно, но верно.


Top
   
PostPosted: Tue Jul 02, 2013 10:57 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
У меня, кстати, так и не заработало. В одном режиме irg 11 в другом irq --.

Где же багрепорт, логи?
Какой мне прок от "-Трамвай сломался! -Как сломался? - Совсем, совсем сломался!"

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


Top
   
PostPosted: Tue Jul 02, 2013 11:16 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Виноват, в последней ревизии native работает.


Attachments:
NATIVE.TXT [5.99 KiB]
Downloaded 61 times
pcidev-legacy.txt [2.31 KiB]
Downloaded 63 times
LEGACY.TXT [5.83 KiB]
Downloaded 58 times
Top
   
PostPosted: Tue Jul 02, 2013 11:17 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
+


Attachments:
pcidev-native.txt [2.29 KiB]
Downloaded 57 times
Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 262 posts ]  Go to page Previous 1 2 3 4 518 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


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