locked
How to disable Message Signaled Interrupts for storahci.sys? (Win10 vs AHCI vs AMD SB700) RRS feed

  • Frage

  • I recently upgraded my Windows 8.1 Pro x64 installation to Windows 10 1115 Pro x64. My hardware is fairly old, including an AMD SB700 southbridge. In Win 8.1 AHCI was working fine with storahci.sys. But already the windows 10 upgrade failed with "0xC1900101-0x 20017 the installation failed in the SAFE_OS phase with an error during BOOT operation". I managed to work-around this problem by changing my SATA controller from AHCI to Legacy IDE mode. In legacy IDE mode Win 10 runs fine, but changing back to AHCI Windows 10 won't boot anymore. (Yes I set the start override setting in the registry to 0. It worked in Win 8.1 when I was playing with the hardware settings.) In AHCI mode Win 10 gives INACCESSIBLE_BOOT_DEVICE (or alike). So after hours of experiments I decided to diff the mshdc driver package in Win 10 and Win 8.1 and the inf file gave me a possible clue for what is going wrong: It seems the newer driver tries to enable Message Signaled Interrupts while the Win 8.1 driver did not activate MSIs. The problem is the AMD SB700 southbridge. It needs a quirk to be able to work in MSI mode. Linux does not disable the legacy interrupt when enabling MSI. With this quirk my SATA controller runs beautifully in AHCI mode with MSI enabled in Linux.

    So long story short: How can I disable Message Signaled Interrupts for storahci.sys to check my theory? I tried to do it in the registry but Windows didn't allow it. (Even better would be if Windows incorporated the quirk Linux is using.)

    (Update:) I found this link (https://support.microsoft.com/en-us/kb/3083595) which explains how to disable MSI for an already active driver. This obviously doesn't work in my case. I need to disable MSI on first use of storAHCI.sys.

    Some infos about my device (taken from Linux lspci):

    00:11.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] [1002:4391] (prog-if 01 [AHCI 1.0])
        Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] [1002:4391]
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 96, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 28
        Region 0: I/O ports at ff00 [size=8]
        Region 1: I/O ports at fe00 [size=4]
        Region 2: I/O ports at fd00 [size=8]
        Region 3: I/O ports at fc00 [size=4]
        Region 4: I/O ports at fb00 [size=16]
        Region 5: Memory at fe02f000 (32-bit, non-prefetchable) [size=1K]
        Capabilities: [50] MSI: Enable+ Count=1/4 Maskable- 64bit+
            Address: 00000000fee0f00c  Data: 4152
        Capabilities: [70] SATA HBA v1.0 InCfgSpace
        Kernel driver in use: ahci
    00: 02 10 91 43 07 00 30 02 00 01 06 01 10 60 00 00
    10: 01 ff 00 00 01 fe 00 00 01 fd 00 00 01 fc 00 00
    20: 01 fb 00 00 00 f0 02 fe 00 00 00 00 02 10 91 43
    30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 01 00 00
    40: 10 00 00 20 01 00 10 00 00 00 20 01 00 00 00 00
    50: 05 70 85 00 0c f0 e0 fe 00 00 00 00 52 41 00 00
    60: 01 50 22 00 00 00 00 00 00 00 00 00 00 00 00 00
    70: 12 00 10 00 0f 00 00 00 10 01 00 00 00 00 00 00
    80: 00 00 00 00 06 00 00 2c 1a 80 b4 01 1a 80 b4 01
    90: 1a 80 b4 01 1a 80 b4 01 1a 80 b4 01 1a 80 b4 01
    a0: ef a0 ef a0 ef a0 ef a0 ef a0 ef a0 00 00 00 00
    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00
    e0: 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    • Bearbeitet PrakashPunnoor Sonntag, 22. November 2015 09:03 kb 3083595
    Sonntag, 22. November 2015 08:47

Antworten

  • Hi PrahashPunnoor,

    It seems to be not available to disable the MSI before the device initialization, under Windows.

    The below is the information I found under MSDN site:

    Introduction to Message-Signaled Interrupts

    https://msdn.microsoft.com/en-us/library/windows/hardware/ff548079(v=vs.85).aspx

    And the KB article you mentioned is talking about how to disable MSI with registry, which is the only method I cound find currently.

    This should be related with hardware compatibility, please write your comments through Windows Feedback.

    I will help to feedback from my side.

    Regards


    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com.

    Montag, 30. November 2015 05:21
  • Hi,

    your so-called answer wasn't helpful at all, but I managed to help myself: I attached my boot disk to an USB to SATA converter, set IDE MODE to AHCI in BIOS and booted Win10 in Safe mode. Windows initialized the storahci driver and I could follow the steps to disable MSI for a running driver. After that I could finally boot Win10 from my AHCI controller.

    Regards,

    Prakash


    Sonntag, 12. Juni 2016 15:12

Alle Antworten

  • Hi PrakashPunnoor,

    That seems to be a tough work.

    I will research on this topic and would share if I found any helpful results.

    Regards


    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com.

    Dienstag, 24. November 2015 11:07
  • Hi PrahashPunnoor,

    It seems to be not available to disable the MSI before the device initialization, under Windows.

    The below is the information I found under MSDN site:

    Introduction to Message-Signaled Interrupts

    https://msdn.microsoft.com/en-us/library/windows/hardware/ff548079(v=vs.85).aspx

    And the KB article you mentioned is talking about how to disable MSI with registry, which is the only method I cound find currently.

    This should be related with hardware compatibility, please write your comments through Windows Feedback.

    I will help to feedback from my side.

    Regards


    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com.

    Montag, 30. November 2015 05:21
  • Hi,

    your so-called answer wasn't helpful at all, but I managed to help myself: I attached my boot disk to an USB to SATA converter, set IDE MODE to AHCI in BIOS and booted Win10 in Safe mode. Windows initialized the storahci driver and I could follow the steps to disable MSI for a running driver. After that I could finally boot Win10 from my AHCI controller.

    Regards,

    Prakash


    Sonntag, 12. Juni 2016 15:12