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

Internal structure and you change requests/suggestions
  • Что то вы запутались - имхо на той матери два контроллера просто:
    1) PATA IDE - обычно сейчас оставляют только один разъем, но были более старые модели MB, когда на плате присутствовали 2 разъема PATA и 2-4 SATA.
    2) SATA с эмуляцией IDE, но без AHCI - судя по тому, что нет такой настройки в BIOS, и нет в обоих режимах устройства AHCI в PCIDEV.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • 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).
  • Phantom-84 wrote:либо сразу 3 (!!!) PCI IDE-контроллера в зависимости от выбранного режима (AHCI/IDE).
    Охренеть! Дайте два три!

    Придется таблицу делать с учетом всех возможных устройств.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Phantom-84 wrote:
    art_zh wrote:Ну не может быть такого - один и тот же контроллер не имеет права "отмечаться" как два разных устройства,
    иначе ему пожизненно гарантирован полный набор заморочек с энумератором и PM .
    Может. У меня на компе SATA-контроллер отображается как AHCI или как два PCI IDE-контроллера в зависимости от выбранного режима (AHCI/IDE).
    Два IDE-контроллера - они два (разных) контроллера и есть. Каждый ведет свои диски, у каждого свои собственные порты, DMA и т.п.
    PCI-энумератор ессно должен эти контроллеры различать, потому и разные устройства.

    КО говорил о невозможности идентификации контроллера AHCI/SATA одновременно как AHCI и как SATA. Иначе один физический ресурс (конкретный жесткий диск) получит два разных канала управления и передачи данных.
  • Ну, понятно. Я редко использую сочетание "AHCI-контроллер". А SATA-контроллер, работающий в IDE-режиме, также как и PATA- (т.е. обычный PCI IDE-) называю PCI IDE-контроллером, если речь идет о его отображении на шине.
  • 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, то придется потерпеть.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Mario_r4
    Все режимы поддерживают PIO, потому что идентификация устройства проводится в PIO.
    Проблема скорее в прерываниях. БИОС выделяет линию, но не прописывает вектор в PCICFG.
  • Serge wrote:Проблема скорее в прерываниях. БИОС выделяет линию, но не прописывает вектор в PCICFG.
    Я может чего то не понимаю, но как это мешает работе в PIO режиме? Проблема то как раз с PIO наблюдается.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • прерывания и в PIO работают. А необработанное прерывание вешает систему или контроллер.
  • Serge wrote:прерывания и в PIO работают. А необработанное прерывание вешает систему или контроллер.
    Т.е. в нормальной ситуации при вызове PIO стоит затычка, а в искомой ситуации прописан вектор в далекие ебеня?
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Дефолтные обработчики стоят на irq 14 и 15. А в native может быть любой вектор. Если драйвер не ставит обработчик, конец будет немного предсказуем. У меня, кстати, так и не заработало. В одном режиме irg 11 в другом irq --.
    Там есть регистр разрешения/запрещения прерываний. Если не получается поставить обработчик, надо работать в режиме опроса. Запретить прерывание и проверять биты состояния в цикле с паузами. Это и в ДМА и в ПИО должно работать. Медленно, но верно.
  • Serge wrote:У меня, кстати, так и не заработало. В одном режиме irg 11 в другом irq --.
    Где же багрепорт, логи?
    Какой мне прок от "-Трамвай сломался! -Как сломался? - Совсем, совсем сломался!"
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Виноват, в последней ревизии native работает.
    Attachments
    NATIVE.TXT (5.99 KiB)
    Downloaded 241 times
    Downloaded 234 times
    LEGACY.TXT (5.83 KiB)
    Downloaded 233 times
  • +
    Attachments
    Downloaded 239 times
  • Who is online

    Users browsing this forum: No registered users and 6 guests