Page 2 of 18

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

Posted: Thu Jun 27, 2013 7:44 pm
by art_zh
Ну не может быть такого - один и тот же контроллер не имеет права "отмечаться" как два разных устройства,
иначе ему пожизненно гарантирован полный набор заморочек с энумератором и PM .

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

Posted: Thu Jun 27, 2013 8:09 pm
by Mario_r4
Что то вы запутались - имхо на той матери два контроллера просто:
1) PATA IDE - обычно сейчас оставляют только один разъем, но были более старые модели MB, когда на плате присутствовали 2 разъема PATA и 2-4 SATA.
2) SATA с эмуляцией IDE, но без AHCI - судя по тому, что нет такой настройки в BIOS, и нет в обоих режимах устройства AHCI в PCIDEV.

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

Posted: Fri Jun 28, 2013 12:29 am
by Phantom-84
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).

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

Posted: Fri Jun 28, 2013 12:33 am
by Mario_r4
Phantom-84 wrote:либо сразу 3 (!!!) PCI IDE-контроллера в зависимости от выбранного режима (AHCI/IDE).
Охренеть! Дайте два три!

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

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

Posted: Fri Jun 28, 2013 3:38 pm
by art_zh
Phantom-84 wrote:
art_zh wrote:Ну не может быть такого - один и тот же контроллер не имеет права "отмечаться" как два разных устройства,
иначе ему пожизненно гарантирован полный набор заморочек с энумератором и PM .
Может. У меня на компе SATA-контроллер отображается как AHCI или как два PCI IDE-контроллера в зависимости от выбранного режима (AHCI/IDE).
Два IDE-контроллера - они два (разных) контроллера и есть. Каждый ведет свои диски, у каждого свои собственные порты, DMA и т.п.
PCI-энумератор ессно должен эти контроллеры различать, потому и разные устройства.

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

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

Posted: Sat Jun 29, 2013 1:17 am
by Phantom-84
Ну, понятно. Я редко использую сочетание "AHCI-контроллер". А SATA-контроллер, работающий в IDE-режиме, также как и PATA- (т.е. обычный PCI IDE-) называю PCI IDE-контроллером, если речь идет о его отображении на шине.

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

Posted: Tue Jul 02, 2013 4:04 am
by Mario_r4
yogev_ezra wrote:А если поменять одну строчку (IDE Operate Mode) с Legacy Mode на Native Mode, то через несколько секунд после загрузки зависает (лог снять не хватает времени). Но как раз именно с Native Mode работает Windows.
Вот что я нарыл в ATA Host Adapter Standards Proposal:
Spoiler: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, то придется потерпеть.

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

Posted: Tue Jul 02, 2013 9:13 am
by Serge
Mario_r4
Все режимы поддерживают PIO, потому что идентификация устройства проводится в PIO.
Проблема скорее в прерываниях. БИОС выделяет линию, но не прописывает вектор в PCICFG.

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

Posted: Tue Jul 02, 2013 9:23 am
by Mario_r4
Serge wrote:Проблема скорее в прерываниях. БИОС выделяет линию, но не прописывает вектор в PCICFG.
Я может чего то не понимаю, но как это мешает работе в PIO режиме? Проблема то как раз с PIO наблюдается.

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

Posted: Tue Jul 02, 2013 9:36 am
by Serge
прерывания и в PIO работают. А необработанное прерывание вешает систему или контроллер.

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

Posted: Tue Jul 02, 2013 10:28 am
by Mario_r4
Serge wrote:прерывания и в PIO работают. А необработанное прерывание вешает систему или контроллер.
Т.е. в нормальной ситуации при вызове PIO стоит затычка, а в искомой ситуации прописан вектор в далекие ебеня?

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

Posted: Tue Jul 02, 2013 10:39 am
by Serge
Дефолтные обработчики стоят на irq 14 и 15. А в native может быть любой вектор. Если драйвер не ставит обработчик, конец будет немного предсказуем. У меня, кстати, так и не заработало. В одном режиме irg 11 в другом irq --.
Там есть регистр разрешения/запрещения прерываний. Если не получается поставить обработчик, надо работать в режиме опроса. Запретить прерывание и проверять биты состояния в цикле с паузами. Это и в ДМА и в ПИО должно работать. Медленно, но верно.

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

Posted: Tue Jul 02, 2013 10:57 am
by Mario_r4
Serge wrote:У меня, кстати, так и не заработало. В одном режиме irg 11 в другом irq --.
Где же багрепорт, логи?
Какой мне прок от "-Трамвай сломался! -Как сломался? - Совсем, совсем сломался!"

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

Posted: Tue Jul 02, 2013 11:16 am
by Serge
Виноват, в последней ревизии native работает.

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

Posted: Tue Jul 02, 2013 11:17 am
by Serge
+