AHCI Issues with WXP x64

I recently purchased a Samsung 850 EVO 250 GB to gear up my mom’s computer. I don’t know what Firmware version it has. Since I was going to use WXP, I first connected it to my Linux system so I could format the disk with fdisk (MBR) and make two primary aligned partitions (First one starts at sector 2048 and is 100 GiB, second one rest of the HD), which I then formatted with NTFS.

The other reelevant part of that computer is the Motherboard, a ASUS M4A785TD-V EVO (AMD SB710) with the latest BIOS, 2105.
That Motherboard used to be mine before I upgraded to my current computer. At that point I had it with a Samsung SpintPoint F3 1 TB and Windows XP SP3. I recall having the SATA Controller set to AHCI, since I slipstreamed one of Fernando’s AHCI Drivers to the ISO to install it. Media was either a CD-RW or could have been an USB Flash Drive too. Regardless, it worked properly.

I decided to try it with WXP x64 SP2, since mommy doesn’t like W7/8/8.1/10 and WXP SP3 was showing its age (The worst offender is the 4 GB RAM limit, since I was always losing half a GiB in PCI Address). The ISO I work with has Volume Label CRMPXVOL_EN. I nLited it previously a lot since I used it for a Virtual Machine, but the options were near identical to my previous working custom WXP SP3 ISO, except the fact that it didn’t had extra Drivers since VMs just use IDE.
So, in order to use the SSD with AHCI, I got the AHCI Drivers from here, the AMD’s RAID drivers with AHCI support (“AHCI compatible RAID drivers”), >64bit AMD SB7xx/SB8xx AHCI & RAID Driver v3.3.1540.33 for XP x64 customized<.
I integrated these Drivers with nLite then used XBoot to make a booteable USB Flash Drive, using an old 1 GB Kingston DataTraveler, which I previously formatted in MBR with Rufus.

Installation stopped after Windows finishes loading Drivers during “Setup is starting Windows”. It doesn’t actually hangs or freezes, it takes a few minutes then it BSODed with a 0x0000007B, identical to this one.
After trying a few more times, it looked like it was no-go, so I decided to try with IDE mode and it keep BSODing there. This is EXACTLY THE SAME that happened to this guy, who says that after slipstreaming the AMD Drivers it BSODed with both AHCI and IDE.

After that, I tried instead to use WinSetupFromUSB. WinSetupFromUSB can be used to make a booteable USB Pendrive without directly slipstreaming the Drivers, since it allows me to emulate a virtual Floppy Disk during the install, so I can actually press F6 and get a menu to select a Driver. Using WinImage to make a Floppy Disk of the files in the custom AHCI Driver, I loaded them during install. While it didn’t BSODed, the HD wasn’t detected. It did was detected in IDE mode.
Just to make sure that it wasn’t something broken in the latest custom Drivers, I downloaded the ones from ASUS for my Motherboard (Support / Downloads / WXP 64 Bits / Others / ASUS Make AMD RAID/AHCI XP/XP64 Driver Disk), which are dated from 2010. Repeated the procedure both slipstreaming and making the USB Pendrive with XBoot, then the Floppy Disk Image method with WinSetupFromUSB, and I got the same results that using the custom Driver: BSODs with 0x0000007B if I slipstream them in both AHCI and IDE, or ignoring the HD in AHCI mode if I loaded the Drivers with F6. I had to install it in IDE.

At this point, I’m out of ideas, but it seems that there should be something else missing since other guy had identical symptoms with another AMD based system. Maybe the AMD AHCI Drivers are actually broken for WXP x64? It may be a compatibility issue with the Samsung SSD? Would like if you know what else could I try. Its sad to not be able to use AHCI.


PD: I’m still lazy.

@ zir_blazer:
Welcome at Win-RAID Forum!

The 0x0000007B BSOD indicates, that you either have integrated a wrong textmode driver or used an XP x64 source, which had already previously been modified.
So my first questions are: Where did you get the XP x64 CD, which you have used as source? Has it a Microsoft hologram?

Regards
Dieter (alias Fernando)

The source for the WXP x64 I am using is a very old MSDN distributed ISO, which I got a really long time ago. I don’t think that the source could be the issue for that reason. I don’t know if it is still available from MSDN, nor matters because I don’t have access anymore in case I wanted to re-download it.
While I conserve the untouched ISO, I’m working with a previously nLited one. It uses an option set near identical to the one I had with my old WXP SP3, where I later slipstreamed the AMD AHCI Drivers successfully for using in the same Motherboard. Since I was using WXP x64 in VMs I didn’t had the need to integrate Drivers, but now that I’m trying the same procedure, it fails for WXP x64. I didn’t tried slipstreaming the AMD AHCI Drivers directly on the original ISO. Could give a try to that, but doubt that it works since I can’t remember any option toggled that could conflict.

The 0x0000007B BSOD seems to happen when the Drivers are slipstreamed, either yours or the ASUS ones, in both IDE and AHCI mode (And I recall setting it to RAID too, with the same results, but didn’t tested it in-depth). As I stated before, if I use the emulated Floppy Disk and load either Drivers using F6, it doesn’t BSODs, but doesn’t detect the SSD either if BIOS is set to AHCI. I managed to get it working in IDE mode.

If you really should have used an original (untouched) XP x64 SP2 CD as source, the BSOD can only have been caused either
a) by the integration of a wrong driver resp. a wrong SATA Controller (important is the DeviceID!) or
b) by a wrong BIOS setting regarding the SATA mode (has to be set to “AHCI”, when you have integrated an AHCI driver and has to be set to IDE, if you haven’t integrated any textmode driver).

When in IDE Mode, I see two IDE Controllers. They have two different Device IDs:

VEN_1002 DEV_4390 SUBSYS_83891043
VEN_1002 DEV_439C SUBSYS_83891043

Reelevant Screenshots here and here. Those are after installing in IDE Mode.
I know that if I set the SATA Controller to AHCI or RAID it will have different Device IDs, but can’t check them since, well, it BSODs. I can try setting it to AHCI or RAID Modes and booting with a Linux LiveCD, I should be able to get the AHCI and RAID Device IDs if you need.

The Driver that I tried slipstreaming is the AMD “AHCI compatible RAID drivers” v3.3.1540.33 for XP x64 customized from here (The first ones, not the second set modded for SB6xx compatibility). There are no WXP x64 “pure” AHCI Drivers or “pure” RAID drivers, so I can’t test other Drivers modded by you. I also tested with the ones provided from ASUS website for my Motherboard here, ASUS Make AMD RAID/AHCI XP/XP64 Driver Disk, which is v3.1.1540.127 according to ahcix64.inf.

A thing that I noticed in you txtsetup.oem is that all the Device ID Subsystems are xxxx103C, while 1043 seems to be for ASUS, and the few references I got about 83891043 seems to point to Motherboards very similar to mine. Its possible that I need to modify it to add the Subsystem in txtsetup.oem/ahcix64.inf? However, since these values are from IDE Mode, I don’t know if Subsystem changes in AHCI or RAID too.


I think I’m going to make a Linux LiveCD and get the Device IDs myself in AHCI and RAID Modes, and try to add manually my Device ID to the txtsetup.oem and ahcix64.inf files, then slipstream it and check if it BSODs or it recognizes the SSD. Its the best possible solution I may try.


For reference, these are the Device IDs that your and ASUS Drivers include (Sorted, with Subsystems deleted):


Your txtsetup.oem:

[HardwareIds.SCSI.Napa_amd64_ahci]
id = "PCI\VEN_1002&DEV_4391
id = "PCI\VEN_1002&DEV_4392
id = "PCI\VEN_1002&DEV_4393
id = "PCI\VEN_1002&DEV_4394
id = "PCI\VEN_1022&DEV_7801
id = "PCI\VEN_1022&DEV_7802
id = "PCI\VEN_1022&DEV_7803
id = "PCI\VEN_1022&DEV_7804


ASUS txtsetup.oem:

[HardwareIds.SCSI.Napa_amd64_ahci]
id = "PCI\VEN_1002&DEV_4380
id = "PCI\VEN_1002&DEV_4381
id = "PCI\VEN_1002&DEV_4391
id = "PCI\VEN_1002&DEV_4392
id = "PCI\VEN_1002&DEV_4393


Your ahcix64.inf:

[ATI.ntamd64.6.0]
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4392&CC_0104
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4393&CC_0104
%NapaDesc%=Napa_Inst,PCI\VEN_1022&DEV_7802&CC_0104
%NapaDesc%=Napa_Inst,PCI\VEN_1022&DEV_7803&CC_0104

[ATI.ntamd64.5.2.3]
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4392&CC_0104
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4393&CC_0104
%NapaDesc%=Napa_Inst,PCI\VEN_1022&DEV_7802&CC_0104
%NapaDesc%=Napa_Inst,PCI\VEN_1022&DEV_7803&CC_0104

[ATI.ntamd64.5.1]
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4391&CC_0106
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4392&CC_0104
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4393&CC_0104
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4394&CC_0106
%NapaDesc%=Napa_Inst,PCI\VEN_1022&DEV_7801&CC_0106
%NapaDesc%=Napa_Inst,PCI\VEN_1022&DEV_7802&CC_0104
%NapaDesc%=Napa_Inst,PCI\VEN_1022&DEV_7803&CC_0104
%NapaDesc%=Napa_Inst,PCI\VEN_1022&DEV_7804&CC_0106


ASUS ahcix64.inf:

[ATI.ntamd64]
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4380&
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4381&
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4391
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4392
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4393

Yes, the exact DeviceID of the "AMD AHCI Compatible RAID Controller" is required to get the driver proper installed.
Another option would be to do a temporary Win7/8/10 installation in AHCI mode.

If you post the exact HardwareIDs of your "AMD AHCI Compatible RAID Controller", I will do it for you.

Ok, got the info.


lspci (IDE MODE)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode]

lspci -mnn (IDE MODE)
00:11.0 “SATA controller [0106]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] [4390]” -p01 “ASUSTeK Computer Inc. [1043]” "M4A785TD Motherboard [8389]"

VEN_1002 DEV_4390 SUBSYS_83891043


lspci (AHCI MODE)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]

lspci -mnn (AHCI MODE)
00:11.0 “SATA controller [0106]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] [4391]” -p01 “ASUSTeK Computer Inc. [1043]” "Device [8389]"

VEN_1002 DEV_4391 SUBSYS_83891043


lspci (RAID MODE)
00:11.0 RAID bus controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [Non-RAID5 mode]

lspci -mnn (RAID MODE)
00:11.0 “RAID bus controller [0104]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SB7x0/SB8x0/SB9x0 SATA Controller [Non-RAID5 mode] [4392]” “ASUSTeK Computer Inc. [1043]” "Device [8389]"

VEN_1002 DEV_4392 SUBSYS_83891043

Linux seems to have the SUBSYS backwards compared to Windows (1043 8389). It seems to be a custom ASUS identifier.
Also, discard everything regarding the DEV_439C because that is a real IDE Controller, forgot that little detail.


I didn’t tried modding the Drivers myself. Not in a hurry anymore since after all, that machine is currently in-use and I don’t think that they want me to reinstall WXP x64 just for AHCI. It just works in IDE and chances are that it will stay like that. At most I could try slipstreaming new Drivers and just check if the textmode install can see the HD instead of BSODing. Maybe I could try the hacks to see if I can transition from IDE to AHCI without reinstalling or repairing.


BTW, on the Recommended AHCI Drivers Thread you said:
for Windows XP (32/64bit):
as “real” AHCI drivers:
Until now I didn’t find a 64bit version of the AMD AHCI driver v6.1.3.35. If anyone should have a link, please let me know it.

I just checked and AMD provides two sets of Drivers, 13-4_xp32-64_sb (Chipset) and 13-4_xp32-64_raid (RAID), both available here. The Chipset ones includes two folders that have AHCI Drivers that seems to be AHCI only. They claim W2003 SP2 x64 support but no WXP x64. Version is 1.2.001.0321, and on txtsetup.oem it says “AMD AHCI Controller”. I think that the WXP has a ridiculous high version number because it may be another branch or something, since 1.2.1.0321 seems to match closely all other native AMD AHCI Drivers versioning BUT WXP 32 Bits. I think it may be worth trying slipstreaming those and see if it works with it instead of the AHCI-compatible RAID Drivers.

Meanwhile I have searched for this SUBSYS number in many AMD AHCI drivers INF files, but could not find any, where it is listed.

I still haven’t found the 64bit variant of the AMD AHCI driver v6.1.3.35.

Try it. Maybe it will work.

Took some time.

I can confirm that the pure AHCI Drivers contained in the 13-4_xp32-64_sb.exe installer WORKS and displays the Samsung SSD in AHCI mode instead of BSODing. I did it with the WinSetupFromUSB + Virtual Floppy Disk (F6) method, didn’t tried slipstreaming, but chances are it will work too.
You should want to check the Drivers yourself since for some obscure users they may work. The installer first autoextract itself then ask for installation, if you cancel the setup, it still leaves a folder named AMD possibily at C:. There are several folders, one of them is something like Drivers/SB7xx/AHCI_svr/WXP64A or something like that, that’s where I pick the working ones from.

BTW, I’m not entirely sure since it has been a very long time, but I THINK that I also had similar issues of BSODs with the AHCI-compatible RAID Drivers on that system, too, and had to use the pure AHCI one for vanilla WXP SP3. Can’t really check now, I only have a very old USB Flash Drive available and the 650 MB ISO takes like 15 minutes to copy. But if memory serves me correctly, I had similar issues in the past.


Also, here is a copy of the full output of lspci -mnn. Nearly all of the PCI Devices have the SUBSYS_83891043, which sems like a tag from ASUS that identifies the Motherboard line. I don’t know if they do that on others Motherboards, nor if that is the cause of your custom Drivers to BSOD.

00:00.0 “Host bridge [0600]” “Advanced Micro Devices, Inc. [AMD] [1022]” “RS880 Host Bridge [9601]” “ASUSTeK Computer Inc. [1043]” "Device [83a2]"
00:01.0 “PCI bridge [0604]” “ASUSTeK Computer Inc. [1043]” “AMD RS780/RS880 PCI to PCI bridge (int gfx) [9602]” “” ""
00:0a.0 “PCI bridge [0604]” “Advanced Micro Devices, Inc. [AMD] [1022]” “RS780/RS880 PCI to PCI bridge (PCIE port 5) [9609]” “” ""
00:11.0 “SATA controller [0106]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] [4391]” -p01 “ASUSTeK Computer Inc. [1043]” "Device [8389]"
00:12.0 “USB controller [0c03]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SB7x0/SB8x0/SB9x0 USB OHCI0 Controller [4397]” -p10 “ASUSTeK Computer Inc. [1043]” "Device [8389]"
00:12.1 “USB controller [0c03]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SB7x0 USB OHCI1 Controller [4398]” -p10 “ASUSTeK Computer Inc. [1043]” "Device [8389]"
00:12.2 “USB controller [0c03]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SB7x0/SB8x0/SB9x0 USB EHCI Controller [4396]” -p20 “ASUSTeK Computer Inc. [1043]” "Device [8389]"
00:13.0 “USB controller [0c03]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SB7x0/SB8x0/SB9x0 USB OHCI0 Controller [4397]” -p10 “ASUSTeK Computer Inc. [1043]” "Device [8389]"
00:13.1 “USB controller [0c03]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SB7x0 USB OHCI1 Controller [4398]” -p10 “ASUSTeK Computer Inc. [1043]” "Device [8389]"
00:13.2 “USB controller [0c03]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SB7x0/SB8x0/SB9x0 USB EHCI Controller [4396]” -p20 “ASUSTeK Computer Inc. [1043]” "Device [8389]"
00:14.0 “SMBus [0c05]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SBx00 SMBus Controller [4385]” -r3c “ASUSTeK Computer Inc. [1043]” "M4A785TD Motherboard [8389]"
00:14.1 “IDE interface [0101]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SB7x0/SB8x0/SB9x0 IDE Controller [439c]” -p8a “ASUSTeK Computer Inc. [1043]” "Device [8389]"
00:14.2 “Audio device [0403]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SBx00 Azalia (Intel HDA) [4383]” “ASUSTeK Computer Inc. [1043]” "M4A785TD Motherboard [836c]"
00:14.3 “ISA bridge [0601]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SB7x0/SB8x0/SB9x0 LPC host controller [439d]” “ASUSTeK Computer Inc. [1043]” "Device [8389]"
00:14.4 “PCI bridge [0604]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SBx00 PCI to PCI Bridge [4384]” -p01 “” ""
00:14.5 “USB controller [0c03]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “SB7x0/SB8x0/SB9x0 USB OHCI2 Controller [4399]” -p10 “ASUSTeK Computer Inc. [1043]” "Device [8389]"
00:18.0 “Host bridge [0600]” “Advanced Micro Devices, Inc. [AMD] [1022]” “Family 10h Processor HyperTransport Configuration [1200]” “” ""
00:18.1 “Host bridge [0600]” “Advanced Micro Devices, Inc. [AMD] [1022]” “Family 10h Processor Address Map [1201]” “” ""
00:18.2 “Host bridge [0600]” “Advanced Micro Devices, Inc. [AMD] [1022]” “Family 10h Processor DRAM Controller [1202]” “” ""
00:18.3 “Host bridge [0600]” “Advanced Micro Devices, Inc. [AMD] [1022]” “Family 10h Processor Miscellaneous Control [1203]” “” ""
00:18.4 “Host bridge [0600]” “Advanced Micro Devices, Inc. [AMD] [1022]” “Family 10h Processor Link Control [1204]” “” ""
01:05.0 “VGA compatible controller [0300]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “RS880 [Radeon HD 4200] [9710]” “ASUSTeK Computer Inc. [1043]” "M4A785TD Motherboard [83a2]"
01:05.1 “Audio device [0403]” “Advanced Micro Devices, Inc. [AMD/ATI] [1002]” “RS880 HDMI Audio [Radeon HD 4200 Series] [970f]” “ASUSTeK Computer Inc. [1043]” "M4A785TD Motherboard [83a2]"
02:00.0 “Ethernet controller [0200]” “Realtek Semiconductor Co., Ltd. [10ec]” “RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [8168]” -r03 “ASUSTeK Computer Inc. [1043]” “M4A785TD Motherboard [83a3]”

@ zir_blazer:
Thank you very much for your report and for having tested the “pure” 64bit AMD AHCI driver v1.2.1.321 WHQL with Windows XP x64.
Due to your report I have added these 32/64bit AMD AHCI drivers v1.2.1.321 WHQL for W2k3 and XP x64 to the start post of >this< thread.