Win-Raid forum: Windows XP, 2003 x32 on modern hardware

## Windows XP, 2003 x32 on modern hardware

(2018-2021)

> > Thanks to the brilliant specialists in this forum:

> > ⇗diderius6, ⇗Mov AX, 0xDEAD, ⇗Fernando, ⇗daniel_k.

> > ⇗gordo999, ⇗ruthan, ⇗infuscomus, ⇗Gelip, ⇗XPLives, ⇗George King, ⇗skullteria, and few others.

- Moderator has deleted 7 messages about Win98, and 19 cyrillic messages, they are preserved here.
- Pages: 503, 517 were retrieved incompletely, so 17 messages are lost.

Part 1 ► Part 2 ► Part 3 ► Part 4 ► Part 5

## Page 1

#1

deSSy2724

EDIT by Fernando: The most important information about this topic have been assorted ¶ >here< by Mov AX, 0xDEAD!
Can someone answer me some questions because I cant find clear answers to some of my questions (different statements from the same or different sources/sites/forums) and for some others things/questions, im not 100% sure:

1. Is it posssible to install Windows XP SP3 32bit and WIndows 10 64bit on the same SSD with separate partitions or do I need two separate SSDs?
2. Does XP 32bit support only MBR..... would it work if one partition of the same drive is partitioned as MBR (for XP) and the second partition of the same drive partitioned as GPT (for Win 10)? And is there any issues with SSD and MBR?
3. Can we install Windows XP SP3 32bit from USB flash drive from modern motherboards and/or from Bluray drive/readers (I mean CD/DVD -/+ R burned discs on Bluray drives)?
4. If 2.2 TB HDD is the limit for the 32 bit OS, can we split a 4/6/8 TB HDD/SDD to multiple 2TB partitions or is that still not possible/usable with 32bit OS-es?
5. Is it right that Intel Ivy Bridge CPUs and AMD Vishera aka AMD FX Series CPUs (CPU, Chipsets, Motherboard etc.) are the latest hardware which officially support Windows XP 32bit? If true... then whats the latest unofficial supported hardware (CPU series) for Windows XP SP3 32bit and are there any disadvantages compared to "official supported" CPUs/Chipsets?
6. Now, regarding SATA drivers and "slipstreaming" it to WIndows XP SP3 32bit installation disc:
   Do I need to look ONLY for specific chipset (independently of a specific motherboard manufacturer or motherboard model etc.) or in another words, do all the motherboards which share the same chipset actually support the same SATA drives or not and can we add/slipstream multiple SATA drivers on the same Windows XP 32bit installation disc?

Here is the thing and why so many questions..... I want to build a SINGLE gaming PC for all my older and newer games with both Win XP 32bit and Win 10 64bit (dual boot) but the problem is, if I build a PC out of parts from 2011/12 (Sandy Bridge, Ivy Bridge...) or so it would be harder (maybe even more expensive) to find parts and maybe the CPU from 2011 would not be that good for games from 2017-19 which means, I should buy parts which would be as newest and strongest/advanced as possible for new/upcomming games but at the same time to keep the legacy support for my older games (games designed for 98/2000/XP) and we all know that Win 7/8/10 and even 64bit OSes in general have some or in some cases many compatibility issues/obstacles with older games. I mean, there are many osbstacles with AHCI/IDE and SATA drivers, 32bit/64bit, MBR/GPT.... so, im not quite sure what to do.
It would be the best to build a PC based on the Skylake, Kaby Lake, Coffe Lake etc. but is it actually possible to make it happen without any issues on Windows XP SP3 32bit?
Would scenario 1 be possible?
EDIT1 by Fernando: Reformatted to save space
EDIT2 by Fernando: Thread title customized

#2

Lost_N_BIOS

⇗ @Fernando would be best to answer many of these, I'm sure you'll see him pop in when he has a chance
I can tell you #2 - MBR and SSD is fine, I use this all the time for many years.
#3 - XP from USB, I am not sure about, probably not easily unless you can find ready image/ISO, but yes it can be installed from CD/DVD burned discs, if blueray burn same way as DVD drive them I'm sure your good to go with that.
#4 - Yes, you can create multiple 2.2TB or less Primary partitions with MBR, SP2 may need to be installed before they are all visible, I am not sure on that one. Third party partition tools may be required to setup the additional partitions, also am not certain on that either (guess I should quit partially answering )
Here's some info that may help answer some of that for you too
⇗ http://www.questions4steveb.co.uk/html/S...with-Windows-XP
I think your scenario two would be easier to use and setup, but you'd have to figure out how to edit the boot menu of Win10 to allow multi-disk boot choice at startup, or use some other third party bootloader.

#3

Fernando

⇗ @deSSy2724:
Welcome to the Win-RAID Forum!

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #1

> 1. Is it posssible to install Windows XP SP3 32bit and WIndows 10 64bit on the same SSD with separate partitions or do I need two separate SSDs?

You can install Windows XP and Windows 10 onto the same HDD/SSD, if you install them both in LEGACY mode by using the MBR partition scheme.

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #1

> 2. Does XP 32bit support only MBR?

Yes!

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #1

> 3. Can we install Windows XP SP3 32bit from USB flash drive from modern motherboards and/or from Bluray drive/readers (I mean CD/DVD -/+ R burned discs on Bluray drives)?

Due to the missing/not compatible USB drivers it is not a good idea to install Windows XP onto a modern PC by booting off an USB Flash Drive. Booting off an Optical Drive is the much better option.
Your question #4 has already been answered by Lost_N_BIOS, an answer to your question #5 requires XP installation experiences with all available chipset/CPU generations, which I don't have.

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #1

> 6. Now, regarding SATA drivers and "slipstreaming" it to WIndows XP SP3 32bit installation disc:
> Do I need to look ONLY for specific chipset (independently of a specific motherboard manufacturer or motherboard model etc.) or in another words, do all the motherboards which share the same chipset actually support the same SATA drives or not and can we add/slipstream multiple SATA drivers on the same Windows XP 32bit installation disc?

Not the chipset, but just the HardwareIDs of the on-board SATA AHCI or RAID Controller is important. When you want to slipstream a specific AHCI/RAID driver into a Windows XP Image (don't integrate more than 1 textmode driver!), you should choose an XP compatible textmode driver, which definitively supports your specific on-board SATA AHCI/RAID Controller. If the related AHCI/RAID driver supports several different SATA Controllers, you should make sure, that just the matching SATA AHCI/RAID Controller has been highlighted during the textmode driver integration procedure.

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #1

> It would be the best to build a PC based on the Skylake, Kaby Lake, Coffe Lake etc. but is it actually possible to make it happen without any issues on Windows XP SP3 32bit?

Regarding the XP installation onto a modern Intel chipset PC running in AHCI or RAID mode I recommend to read the start post of ⇗ >this< thread.
Regards
Dieter (alias Fernando)

#4

Mov AX, 0xDEAD

# Windows XP/2003 32-Bit on Modern Intel Hardware

> Windows XP/2003 support only ACPI 1.0b syntax, last generation bioses uses ACPI 2.0+
> To support ACPI 2.0 syntax need replace acpi.sys and apply additional patches to avoid known BSODs :
> - 0xA5 (0x03, ..., C0140001, ...) missing ACPI 2.0 syntax, 99% solved, two solutions:
> 1) acpi.sys (v.5048, sha1:a09c0d9f6b5cb63192e2cebada56db38d3870b29) from Vista Beta/Longhorn v.5048
> Pro:
> - Has most of ACPI 2.0 syntax opcodes
> - All integers are 64-bit regarding ACPI 2.0 specification
> Cons:
> - beta, compiled for next generation of windows
> - failed implementation of some internal data types, _ValidateArgTypes generate ¶ BSOD 0xA5(0x03, xxx, C0140008, yyy)
> Patches:
> - Add pointer to _atDataObj struct for QWord Opcode
> (_OpcodeTable start at .data:00039848, _atDataObj struct at .data:000397A8,
> missing pointer at .data:00039880, dont forget add additional relocs)
> 2) acpi.sys from Windows XP SP3 (v.5512->v.6666) with integrated acpi 2.0 syntax support
> Pro:
> - based on original v.5512, match binary/offsets
> Cons:
> - All integers are still 32-bit, any operations on 64-bit fields/variables will drop high part of QuadWord
> - 0xA5 (0x11, 0x08, ..., ...) unknow error in _AMLILoadDDB, probably fail after parsing DSDT/SSDT table, solved
> Patch (by diderius6):
> - Ignore status of _AMLILoadDDB in _ACPIInitializeDDB
> (v5512 jl short .text:00036214 => nop, nop)
> - 0xA5(0x03, ..., C0140008, ...) DSDT code have operation with unexpected type of arguments, partially solved
> This BSOD probably means some argument has datatype, allowed only in ACPI 2.0
> v5512 & v5048 support only argument datatypes allowed in ACPI 1.0b specification
> Patch:
> - _ValidateArgTypes must always return "OK", even on realy wrong types
> (mov edi, 0xC0140008=>mov edi, 0x00000000 at head of _ValidateArgTypes)
> - 0xA5 (0x10006, ..., ..., ...), missing _DIS method for "PNP0C0F"s (PCI Interrupt Link Devices) in DSDT/SSDT table
> Patch (by daniel_k):
> - Skip looking for PNP0C0F in _DisableLinkNodesAsyncWorker,
> (v5512 call strstr, ..., jz .text:0001BBBD => jmp .text:0001BBBD )

> - 0xA5 (0x02, ..., ..., ...) error in ACPIRangeValidatePciResources, ACPI vs E820 conflict, solved
> BSOD is generated by this DSDT code:

>          DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
>               0x00000000,         // Granularity
>               0x00000000,         // Range Minimum
>               0xDFFFFFFF,         // Range Maximum
>               0x00000000,         // Translation Offset
>               0xE0000000,         // Length
>               ,, _Y0E, AddressRangeMemory, TypeStatic)
>          ...

>          CreateDWordField (BUF0, \_SB.PCI0._Y0E._MIN, M1MN)  // _MIN: Minimum Base Address
>          CreateDWordField (BUF0, \_SB.PCI0._Y0E._MAX, M1MX)  // _MAX: Maximum Base Address
>          CreateDWordField (BUF0, \_SB.PCI0._Y0E._LEN, M1LN)  // _LEN: Length
>          M1LN = M32L /* External reference */
>          M1MN = M32B /* External reference */
>          M1MX = ((M1MN + M1LN) - One)

> Sometimes M1LN, M1MN, M1MX cannot be calculated properly and this code claim most of memory
> (E0000000 = 3.7Gb) as motherboard resource, this brings to conflict with E820 memory ranges list
> Patch:
> - memory check in ACPIRangeValidatePciResources must always return "OK"
> (v5512 jz short .text:0001E0BB => jmp short .text:0001E0BB)

> Device IOTR(PNP0C02) claim 255 I/O adresses in range 0xFF00-0xFFFE, for unknow reason this range
> conflict with Video Card I/O range. This problem is generated by Kabylake+ bioses in DSDT code, solved, two solutions:
> 1) Manual patching DSDT table, remove this lines inside method _CRS of IOTR device,
> so _crs will return empty Local0:

>               If ((ITS0 == One))
>                     {
>                         ConcatenateResTemplate (Local0, BUF0, Local1)
>                         Local0 = Local1
>                     }

>                     If ((ITS1 == One))
>                     {
>                         ConcatenateResTemplate (Local0, BUF1, Local1)
>                         Local0 = Local1
>                     }

>                     If ((ITS2 == One))
>                     {
>                         ConcatenateResTemplate (Local0, BUF2, Local1)
>                         Local0 = Local1
>                     }

>                     If ((ITS3 == One))
>                     {
>                         ConcatenateResTemplate (Local0, BUF3, Local1)
>                         Local0 = Local1
>                     }

> 2) Patch acpi.sys with injecting special code to override IOTR template buffer:
> In _Buffer opcode handler replace:

>           mov     eax, [ebx+14h]
>           mov     ecx, [ebp+arg_0]

> to

>           call    Check_IOTR_Buffer
>           ...
>     Check_IOTR_Buffer:
>           cmp     eax, 0Ah                         ; eax - size of buffer
>           jnz     short Skip
>           mov     eax, [ebx+30h]
>           mov     eax, [eax+10h]                   ; eax - buffer
>           cmp     dword ptr [eax], 00000147h       ; need matching all 10 bytes
>           jnz     short Skip
>           cmp     dword ptr [eax+4], 0FF010000h
>           jnz     short Skip
>           cmp     word ptr [eax+8], 0079h
>           jnz     short Skip
>           mov     byte ptr [eax+7], 0	       ; MAIN ACTION, set i/o range to 0 instead 255

>     Skip:
>           mov     eax, [ebx+14h]
>           mov     ecx, [ebp+arg_0]
>           ret

> IOTR template defined as:

>              Name (BUF0, ResourceTemplate ()
>                     {
>                         IO (Decode16,
>                             0x0000,             // Range Minimum
>                             0x0000,             // Range Maximum
>                             0x01,               // Alignment
>                             0xFF,               // Length
>                             _Y21)
>                     })

> in bytecode: `11 0D 0A 47 01 00 00 00 00 01 FF 79 00`

> Some part of acpi hardware is disabled, so CPU should not use nonexistent ACPI C2/C3 power savings, solved, two solutions (intelppm.sys):
> 1) C2/C3 States => C1 State :
> - in _InitializeAcpi2IoSpaceCstates replace offsets AcpiC2Idle and AcpiC3ArbdisIdle to offset AcpiC1Idle
> 2) C2/C3 States => C7+ States :

> >     push    ebx
> >     mov     ebx, ecx
> >     push    esi
> >     push    0
> >     call    _KeQueryPerformanceCounter
> >     mov     [ebx], eax
> >     mov     [ebx+4], edx

> >     mov     eax, offset DummyMon
> >     xor     ecx, ecx
> >     xor     edx, edx
> >     monitor
> >     mov     ecx, 1
> >     mov     eax, 60h
> >     mwait

> >     push    0
> >     call    _KeQueryPerformanceCounter
> >     mov     [ebx+8], eax
> >     mov     [ebx+0Ch], edx
> >     xor     eax, eax
> >     pop     esi
> >     pop     ebx
> >     retn

> > DummyMon - any unused 4 byes in .data segment

> >     push    ecx
> >     push    0
> >     call    _KeQueryPerformanceCounter
> >     mov     ecx, [esp+4+var_4]
> >     mov     [ecx], eax
> >     mov     [ecx+4], edx

> >     mov     eax, offset DummyMon
> >     xor     ecx, ecx
> >     xor     edx, edx
> >     monitor
> >     mov     ecx, 1
> >     mov     eax, 33h
> >     mwait

> >     push    0
> >     call    _KeQueryPerformanceCounter
> >     pop     ecx
> >     mov     [ecx+8], eax
> >     mov     [ecx+0Ch], edx
> >     xor     eax, eax
> >     retn

> > Windows XP SP2+ uses disabled acpi timer, solved
> > Skylake+ bioses by default disable ACPI hardware timer (register "ACPI Timer Control (ACPI_TMR_CTL)"
> > in southbridge, see PDF), but WinXP SP2+ still uses disabled acpi timer for getting incremental
> > time counter (acpi spec declare this counter as part of specification). WinXP detect existing this timer
> > by checking special bit USE_PLATFORM_CLOCK in FACP ACPI table, modern bioses still set USE_PLATFORM_CLOCK=1
> > in acpi (mistake by programmers ? or maybe inform Win7+ about existing HPET timer (not acpi timer!)
> > Patch (by diderius6) "HAL_acpitimer_fix" to use CPU TSC counter as performance timer/counter:
> > - in HaliAcpiTimerInit force to ignore USE_PLATFORM_CLOCK and receive it always =0
> > (v.5512 jns short PAGE:8002934B => jmp short PAGE:8002934B)
> > Compatibility fix ("HAL TSC frequency divider")
> > Some programms do wrong calculation with high values of PerformanceCounter/PerformanceFrequency
> > (HAL_acpitimer_fix set values to cpu freq), to avoid this problem values need to divide to much
> > lesser value, Windows 7 just divide it to 1024, so timer frequency on 3600Mhz cpu is only 3.51Mhz
> > Patch:
> > - divide to 1024 values of PerformanceCounter/PerformanceFrequency, replace _HalpAcpiTimerQueryPerfCount to:

> >      mov     ecx, [esp+4]
> >      or      ecx, ecx
> >      jz      short Skip_Frequency_Mode
> >      mov     eax, fs:0A4h ; FrequencyLo
> >      mov     edx, fs:0A8h ; FrequencyHi
> >      shrd    eax, edx, 0Ah
> >      shr     edx, 0Ah
> >      mov     [ecx], eax
> >      mov     [ecx+4], edx
> >     Skip_Frequency_Mode:
> >      rdtsc
> >      add     eax, fs:0ACh ; CalibrationLo
> >      adc     edx, fs:0B0h ; CalibrationHi
> >      shrd    eax, edx, 0Ah
> >      shr     edx, 0Ah
> >      retn    4

> Windows XP/2003 support SATA controllers only in Legacy IDE mode, modern Intel chipsets has only AHCI mode, solved, many solutions:
> 1) Intel RST AHCI/RAID 11.2.0.1006 (iaStor.sys)
> 2) Intel RSTe AHCI/RAID 4.7.0.1098 backport by daniel_k (iaStorA.sys+iaStorF.sys)
> 3) StorAHCI by skulltera/OneCore (storahci.sys), compiled from Microsoft Windows 8.x DDK Samples, (require storport.sys from Windows 2003)
> 4) UniATA (opensource)
> 5) Intel RSTe AHCI/RAID 4.0.2.1019, for Windows 2003 only, enterprise controllers only(??) (iaStorA.sys+iaStorF.sys))
> 6) StorAHCI from Windows 8 (require backported storport.sys from Windows 8)
> 7) StorAhci for Windows 2003, based on Microsoft Windows 8.x DDK Samples source code, ⇗ https://sourceforge.net/projects/storahci-for-windows-2003/
> Add PCI\VEN_8086&CC_0106 to *.inf as universal DEV_ID for any Intel AHCI Sata Controller

> - 0xA5 (0x0000000D, ..., ..., ...), duplicated _HID method
> Patch:
> - Skip DetectDuplicateHID processing
> (v5512 .text:00013F6C => jmp .text:00013F6C)
> - 0x7E (..., ..., C0000005, ...) unknow error in AcpiArbCrackPRT
> Patch:
> (v5512 jnz short .text:0001BD6D => jmp short .text:0001BD6D)

> Intel released USB3.x drivers only for Windows 7/8/10, so there were many attempts to use drivers of
> other usb chip manufacturers. Most of them do not work at Intel hardware, some works, but have problems with PAE or USB3 ports.
> Following drivers confirmed to work in normal and PAE environment, solved, three solutions:
> 1) Microsoft Generic v6.2.9200.16384/v6.2.9200.22453 from Windows 8.0
> 2) AMD v1.1.0.0145 (need amdxhci_adresscalc_fix)
> 3) Fresco Logic v3.6.9.0 (extended to 32 ports)
> AMD and Fresco drivers have some issues with recognizing devices after plug<->unplug, sometimes ports go to power saving modes and can't back
> UAS (Attached SCSI Mass Storage) drivers also available, partial solved, three solutions:
> 1) UAS Driver from Windows 8 + storport.sys from Windows 2003, alpha
> 2) UAS Driver from Windows 8 + storport.sys from Windows 7, alpha
> 3) UAS Driver from Windows 8 + storport.sys from Windows 8, alpha
> 4) VIA UAS Driver
> 5) Etron UAS Driver
> VIA and Etron UAS Drivers doesn't support Safe Remove, require fixes, solved (via_uas_fix, etron_uas_fix)
> By default VIA and Etron UAS works only with genuine vendor USB3.0 Driver, but they are generic(?) and can work with any USB3 driver
> vusbstor.inf: change USB_VIA\Class_08&SubClass_06&Prot_62 to USB\Class_08&SubClass_06&Prot_62
> EtronXHCI.inf: change ENUSB\Class_08&SubClass_06&Prot_62 to USB\Class_08&SubClass_06&Prot_62

> > 1) Windows 8 USB3 driver always report USB2 speed on inserted USB3 devices, MS call it "compatibility", but vendors driver report proper USB3 speed and dont have compatibility issues(?)
> > Fix to report proper USB3 speed, usbhub3.sys (v6.2.9200.21180):
> > .text:19C58: jnz 00019C63 => jmp 00019C63 (75 09 => EB 09)
> > This driver is known to have issues with PAE environment, need fix:
> > - replace in amdxhc.sys:

> >         mov     ecx, [esi+458h] ; esi+458h = store of 64bit adress
> >         mov     eax, [esi+28h]
> >         mov     [eax], ecx            ; low part
> >         mov     [eax+4], ebx          ; dropped high part, ebx=zeroes.....

> > to

> >         mov     ecx, [esi+458h]
> >         mov     eax, [esi+28h]
> >         mov     [eax], ecx
> >         mov     ecx, [esi+45Ch] ; HIGH part of 64bit
> >         mov     [eax+4], ecx    ; no more zeroes

> > Patch for VIA USB Mass Storage Device (UAS/UASP) to restore "Safe Remove":
> > - replace in vusbstor.sys (v6.1.7600.4002):
> > page:000209B4: mov [ebp+SurpriseRemovalOK], ebx -> NOPs
> > `(89 9D 70 FF FF FF 89 9D 68 FF FF FF => 90 90 90 90 90 90 89 9D 68 FF FF FF)`
> > Patch for Etron USB Mass Storage Device (UAS/UASP) to restore "Safe Remove":
> > - replace in EtronSTOR.SYS (any version):
> > OR `dword ptr [eax+4], 0300h -> OR dword ptr [eax+4], 0000h`

- Windows 2003 support more than 4Gb RAM without additional actions, limited to some value depending "Edition"
- Windows XP ServicePack1 support more than 4Gb RAM without additional actions, limited to some value (16Gb ?)
- Windows XP ServicePack2/3 don't support RAM above 4Gb, need patching, solved, many solutions:
1) PatchPae(v2) by wj32, remove limits only in kernel, need additional HAL patching
2) fix128/PatchPae(v3) by evgen_b, contains unfinished HAL_DMA patch, kernel patch is OK
3) WinXPPAE(v2) by daniel_k, contains proper HAL_DMA patch, kernel patch is OK
- Bootmgr from some Vista Betas/Longhorns allow boot Windows XP x64 from UEFI x64, alpha,
there is issues with Video card, ⇗ https://www.betaarchive.com/forum/viewtopic.php?f=61&t=20327
- Boot Windows x32 on UEFI 32
UEFI32 on real hardware is rare, confirmed only on emulated environment, alpha, ¶ howto by Gelip
- Quibble bootloader (experimental, opensource), alpha, no NTFS support,
booting possible only if Windows installed on FAT partition, project page - ⇗ https://github.com/maharmstone/quibble
Solved, many solutions:
- Modified OFA 1.3/1.5 driver + storport.sys from Windows 2003
- MS Windows 7 NVMe Driver by daniel_k + backported storport.sys from Windows 7
- MS Windows 7 NVMe Driver + storport.sys from Windows 7 + Emu_Extender
- Samsung NVMe driver + storport.sys
Windows 2003 already support GPT Partitions for non-booting disks, no need additional software
Windows XP doesn't support GPT Partitions, solved for non-booting disks, one solutions:
- Paragon GPT Loader enable access to 3TB+ Disks/GPT partitions (commercial product, not available for sale)
Booting from GPT disk partially solved, need convert pure GPT to HybridMBR, ¶ guide by Levvon
To enable saving crash dumps with storport-based disk drivers on Windows XP need patch kernel (scsi support will be disabled)
Disk Controller drivers written for Windows 8 mostly will not save crash dumps on disk, they use new API to get information from kernel about dump context
List of patches:
1) IopGetDumpStack:
Replace unicode string "scsiport.sys" to "storport.sys"
This string is 3rd argument of "call _IopLoadDumpDriver@12"
2) IopGetDumpStack:
Original XP kernel will disable loading storport emulator(diskdump.sys) if storport/miniport return "Device Object"
This is not problem for Windows 2003/7/.., newer OS still load diskdump.sys even if storport/miniport return anything
Replace "mov [ebp+ScsiDump], 0" with NOPs
Example for ntkrpamp.exe v5512:
PAGE:004A0E0F mov byte ptr [ebp-29h],0 -> NOP, NOP, NOP, NOP
3) IopGetDumpStack:
Storport doesnt use SCSI ports names and dont need to search name of driver, need to skip this block
Example for ntkrpamp.exe v5512:
in range PAGE:004A0F49-004A1018 replace first opcode with "jmp 4A1019"
4) Use diskdump.sys from Windows 2003 or Wondows 7 (Windows 8 version not tested)
5) IoInitializeCrashDump:
XP kernel allocate for diskdump.sys buffer of 32Kb (same size in Windows 2000), diskdump.sys from Windows 2003+
expect buffer of 64Kb. To be compatible with new diskdump.sys need to increase buffer
Replace "push 8000h" with "push 10000h" as 3rd arg of ExAllocatePoolWithTag call
Currently Proof-Of-Concept, only one kernel version supported ¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (480)
- Remote kernel debug over LAN or USB3 cable, ⇗ https://github.com/MovAX0xDEAD/KDNET
- ACPI DSDT/SSDT Patcher at boot time for any windows, ⇗ https://github.com/MovAX0xDEAD/ACPI-Patcher
- WinXP/W2003 ntoskrnl.exe Emu_Extender, ⇗ https://github.com/MovAX0xDEAD/NTOSKRNL_Emu, ¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (328)
¶ Running Windows XP with "new generation" ACPI.sys taken from many Vista Beta/Longhorn version
¶ Running existing USB3 vendor's drivers on Intel USB3.0 controller
¶ Implementation of ACPI Timer/HPET on different windows generations
¶ Switching between DMA32/DMA64 under PAE Environment, Windows XP
¶ Switching between DMA32/DMA64 under PAE Environment, Windows 7
Unresolved Problems/Requested Features:
- ACPI.SYS v.6666 lack 64-bit integers
- ACPI.SYS v.6666 limits possible datatypes in arguments only to ACPI 1.0b Specification
- Boot Windows XP/2003 x32 from UEFI x64
- Generating TRIM command for SSD in filesystem (NTFS/???)
- Internal GPT support for x32 Windows XP by replacing disk.sys/partmgr.sys/??? from Windows 2003
- Boot Windows x32 XP/2003 from pure GPT
- Restore full Windows XP SP1 implementation of PAE/DMA for Windows XP SP3
- Generic/Universal HDA Audio driver
- CSM Emulator for UEFI x64
- DirectX 10/11 kernel support
- NDIS 6.x for Windows XP/2003

#5

deSSy2724

1. So, basically...... XP 32bit can only be installed to the MBR partition and nothing can change that BUT with help of 3rd party tools like this one (link below), XP can read/access other GPT partitions and I should be able to install programs/games normally to that GPT partitions, right?
⇗ https://www.paragon-software.com/de/tech...nts/gpt-loader/
2. For slipstreaming, just adding correct hardware IDs for the SATA AHCI controller of my mainboard is enough to install XP 32bit? Wat if my MBO has multiple AHCI controllers from different manufacturers, should I avoid Intels AHCI controller and use the others instead?
3. What is actually the disadvantage if I disable ACPI (desktop PC)? Would my CPU work always with full speed and never downclock when idle (Intels Turbo Clock technology) or what?. Is ACPI disabled system-wide (BIOS) or can it be only disabled for specific OS-es?
4. ⇗ @Mov AX, 0xDEAD
Are you trying to say that this user from this thread has ACPI disabled or what? How did he managed to install XP 32 bit with Coffe Lake MBO/CPU?
⇗ Windows XP 32bit SP3 now working with Z370 motherboard and Coffe Lake CPU

#6

Fernando

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #5

> 2. For slipstreaming, just adding correct hardware IDs for the SATA AHCI controller of my mainboard is enough to install XP 32bit? Wat if my MBO has multiple AHCI controllers from different manufacturers, should I avoid Intels AHCI controller and use the others instead?

To avoid a 7b BSOD while starting the XP installation, you should just load/integrate the textmode driver, which matches the AHCI/RAID Controller of the target HDD/SSD (where you want to install the OS).
All other storage drivers can be installed later on (once XP is up and running fine).

#7

Mov AX, 0xDEAD

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #5

> 1. So, basically...... XP 32bit can only be installed to the MBR partition and nothing can change that BUT with help of 3rd party tools like this one (link below), XP can read/access other GPT partitions and I should be able to install programs/games normally to that GPT partitions, right?

maybe gpt-loader will not works on same drive where xp installed, try replace 2 or 3 sys files from windows 2003 server

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #5

> 2. For slipstreaming, just adding correct hardware IDs for the SATA AHCI controller of my mainboard is enough to install XP 32bit? Wat if my MBO has multiple AHCI controllers from different manufacturers, should I avoid Intels AHCI controller and use the others instead?

if you are sure that win xp already has drivers for you hardware , you can add new ids to TXTSETUP.SIF
if not, you need integrade AHCI driver (textmode) to install media (nlite/massdrivers/etc)
last driver for intel AHCI is 11.2.0.1006 for 32b and 64b winxp, need add new ids in INF, it works on 100 series(skylake) MB without problem

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #5

> 3. What is actually the disadvantage if I disable ACPI (desktop PC)? Would my CPU work always with full speed and never downclock when idle (Intels Turbo Clock technology) or what?. Is ACPI disabled system-wide (BIOS) or can it be only disabled for specific OS-es?

i have no experience with non acpi kernel, acpi is not disabled, it just not used by OS's kernel
EDIT by Fernando: Reformatted to save space

#8

YuriyCN

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #1

> My previous platform was skylake cpu with H110 chpset and initial bios, winxp 64/win7 64 installed (winxp 32 can run too, but RAM limited to 2.3Gb)

Use fix128 for support >4GB RAM on 32-bits OS.
⇗ https://rutracker.org/forum/viewtopic.php?t=4694409

#9

Mov AX, 0xDEAD

I have finished little experimenting with acpi for running windows xp on 100-series sky/coffe-lake platform.
It is possible run acpi kernel but need patch DSDT table. In my case need to block acpi 2.0 syntax from acpi.sys driver.
I just put these instruction in a condition "IF OS >= WINDOWS VISTA THEN ...."

                    ToBuffer (Arg0, Local3)
                    Local0 = Zero
                    Local1 = Zero
                    While ((Local1 < Arg2))
                    {
                        Local2 = DerefOf (Local3 [(Arg1 + Local1)])
                        Local0 += (Local2 << (0x08 * Local1))
                        Local1++
                    }

                    Return (Local0)

               If ((OSYS >= 0x07D6))
                {
                    ToBuffer (Arg0, Local3)
                    Local0 = Zero
                    Local1 = Zero
                    While ((Local1 < Arg2))
                    {
                        Local2 = DerefOf (Local3 [(Arg1 + Local1)])
                        Local0 += (Local2 << (0x08 * Local1))
                        Local1++
                    }

                    Return (Local0)
                }
               Else
                 {
                  Return (Zero)
                 }

ToBuffer - unsupported instruction from acpi 2.0
0x07D6 - hardcoded id of Vista
This is simple example of replacement, total is 12 new instructions:

> Zitat

>     QwordConst
>     ConcatenateResTemplate
>     Mod
>     CreateQWordField
>     ToBuffer
>     ToDecimalString
>     ToHexString
>     ToInteger
>     ToString
>     CopyObject
>     Mid
>     Continue

EDIT by Fernando: I have put the code into "spoilers" (to save space)

#10 | deSSy2724 | Isnt Coffe 300 series? Would it work with my Fatal1ty Z370 Professional Gaming i7? Im just wondering if ACPI could work on XP and maybe on Win 98SE. BTW anyway..... when it comes to SATA AHCI, this MBO has actually dual SATA controllers (6x from Intel and 2x from ASMedia), so, that should not make additional obstacles.
#11 | zir_blazer | Have you considered virtualization? You can use it as a compatibility layer between new Hardware and old OSes, and unless you are doing something very specific that requires bare metal access, VGA Passthrough is usually enough to get a fully functional Windows VM that feels like bare metal (Could be problematic in WXP, but you can source an old, supported Video Card). Been using Windows that way since December 2013 with a Linux host and QEMU-KVM-VFIO, and used as main VM Windows XP SP3, Windows XP x64 SP2, and now Windows 10.

#12

deSSy2724

I need XP 32 bit for legacy/old games and application, thats why I need proper drivers. And for old win 95-98-ms dos games there are PCI express to PCI adapters.... not sure if that could work and there are tools to downclock/limit/slower CPUs in win 95/98 for beter compatibility.
BUT dual booting XP 32 bit and win 10 64 bit is my main goal with proper drivers, acpi if possible for xp. And dual graphics cards.... gtx 1080/rtx2080/vega/navi GPU (not sure which one exactly would I get) for new advanced software/games and I have a spare radeon rx 260x for XP 32 bit (it has official drivers). Win 98SE and ms dos would be just an additional bonus if possible.

#13

zir_blazer

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #12

> I need XP 32 bit for legacy/old games and application, thats why I need proper drivers. And for old win 95-98-ms dos games there are PCI express to PCI adapters.... not sure if that could work and there are tools to downclock/limit/slower CPUs in win 95/98 for beter compatibility.

Seriously, you're better off with virtualization simply because as the emulated platform stuff is old enough (Chipset, IDE Controller, etc), you will always have "proper Drivers" of the harder to support components. The only missing thing is the GPU, which VGA Passthrough already covers well enough.
There are also some Motherboards with PCI slots like ⇗ this one. Recall at least seeing a guy with an old PCI Voodoo ⇗ passthroughing it to a VM and playing DOS or W9x games with Glide. Your other option is PCem, or a computer old enough to get things working mostly out of the box.

#14 | infuscomus | ⇗ @Mov AX, 0xDEAD: Would patching like ¶ >this< help to fix an A5 BSOD? If so, can i get some help to patch ACPI? EDIT by Fernando: Fully quoted post replaced by directly addressing (to save space)

#15

Mov AX, 0xDEAD

> Zitat von ⇗ infuscomus im Beitrag ¶ #14

> Would patching like this help to fix an A5 BSOD?
> If so, can i get some help to patch ACPI?

Yes, this patching fix A5 bsod
You need ask for someone to fix your acpi table or learn how to DIY, see attachemnt "before and after"
patching is not easy, if you forget return something from method you will get another BSOD, so be accurate
Mov AX, 0xDEAD has attached files to this post

- ⇗ gigabyte.rar

## Page 2

#16

infuscomus

> Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #15

> > Zitat von ⇗ infuscomus im Beitrag ¶ #14

> > Would patching like this help to fix an A5 BSOD?
> > If so, can i get some help to patch ACPI?

> Yes, this patching fix A5 bsod
> You need ask for someone to fix your acpi table or learn how to DIY, see attachemnt "before and after"
> patching is not easy, if you forget return something from method you will get another BSOD, so be accurate

could you patch my ACPI Table for me please? you seem to know what you're doing and I don't want to break things, so I'd appreciate it.
is the ACPI Table stored in UEFI?
my motherboard is an ASRock AB350 Fatal1ty Gaming K4 - did you need UEFI file?

#17

Mov AX, 0xDEAD

> Zitat von ⇗ infuscomus im Beitrag ¶ #16

> could you patch my ACPI Table for me please? you seem to know what you're doing and I don't want to break things, so I'd appreciate it.

sorry, i don't do that.

> Zitat von ⇗ infuscomus im Beitrag ¶ #16

> is the ACPI Table stored in UEFI?

yes, dsdt binary table stored in uefi, short "how-to find,extract and decompile acpi tables" is ⇗ here

#18 | deSSy2724 | So, we need to patch all the mentioned instructions or some of them (depending on the configuration), is that right? Can we do it both after and before win XP installation and could this solutuin or similar work with win 98SE?

#19

diderius6

⇗ @Mov AX, 0xDEAD
Do you think it is possible, just do make a small hack to acpi.sys in XP SP3, so that it does not worry about "wrong" acpi 2.0 syntax from Bios?
have a nice day
Dietmar
PS: Windows XP implements ACPI 1.0b and section 8.3 of Acpi 2.0 specification
⇗ https://www.uefi.org/sites/default/files...rces/ACPI_2.pdf
Hyperthreading works with ACPI 1.0b version
Hyperthreading starts with XP SP1.

#20

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #19

> @Mov AX, 0xDEAD
> Do you think it is possible, just do make a small hack to acpi.sys in XP SP3, so that it does not worry about "wrong" acpi 2.0 syntax from Bios?

probably yes, but this will be not simple hack
1) code example from my gigabyte bios:

    Method (ARPC, 4, Serialized)
                {
                    ADBG (Concatenate ("NRPN: ", ToHexString (Arg0)))
                    Switch (ToInteger (Arg0))
                    {
                        Case (0x04)
                        {
    ....

This method ARPC called from other method _INI, so WinXP will parse this part
ToHexString & ToInteger are new syntax, we need to skip it some way.
ToHexString(ARG0) mean ARG0(maybe integer/string) => convert to String=>Concatenate ("NRPN: "+"0xYYYYZZZZ")
ToInteger(ARG0) mean ARG0(maybe integer/string/buffer/etc) "0x000XXYY"=> convert to Integer=>Case(integer expected)
we cannot just skip these command because they are parts of expressions and do some things with converting data/change types
acpi.sys need new logic to skip these command and do equalent actions
2) deny winxp parsing any _INI methods, winxp will skip parsing most of code, but winxp run not only _INI method, theres is other methods and i do not know how, when and what is runned (_sta,_sun,_crs,_srs and many other), and if vendor added debug lines with new syntax (like gigabyte did) to some of these method we get 0xa5 error again.
EDIT: gigabyte used in _crs new syntax too (

    Device (EPC)
            {
                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    [b]CreateQWordField[/b] (RBUF, \_SB.EPC._Y3B._MIN, EMIN)  // _MIN: Minimum Base Address

Also skipping _INI may have some effects with devices.
This method may work for some motherboards without patching acpi tables if vendor not much modified acpi code

#21

diderius6

Hi all,
now I understand, how to fix Acpi DSDT table for to overcome 0xA BSOD in XP.
Extract body of Raw section under GUID: C118F50D-391D-45F4-B3D3-11BC931AA56D in Bios,
recompile with iasl -d (newest version), mod, compile and flash back to the same raw body.
A lot of work as I see now, changes need to be done in about 600 places as to me Beyond Compare shows.
And also to fix the not working USB from Intel from chipset z170 up to z390 via Bios mod.
This means: In my next holidays in about a month I will give it a try,
how to make this for other Bios also,
have a nice day
Dietmar

#22

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #21

> Hi all,
> A lot of work as I see now, changes need to be done in about 600 places as to me Beyond Compare shows.

1)my example is not best method, change only parts with reserved method/keywords "_ini", "_crs", "_sta", "_srs", "_hid", "_cid", "_adr", "_uid", "_reg", "_psw", "_ejd", "_prw", "_pr0", "_pr1", "_pr2", "_psc", "_ps0", "_ps1", "_ps2", "_ps3", "_off", "_on_", "_tmp", "_ej0", "_ej1", "_ej2", "_ej3", "_ej4", "_dis", "_wak", "_lck", "_pts", "_si_", "_sst", "_ddn", "_prt", "_bbn", "_s0_", "_s1_", "_s2_", "_s3_", "_rmv", "_irc", "_rmv", "_sun", "_al0-_al9", "_psl", "_rmv",
2) ignore _DSM, windows xp doesnt use it

#23

Pill Monster

⇗ @deSSy2724:
Hi, just to clear up a couple of things....

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #1

> 1. Is it posssible to install Windows XP SP3 32bit and WIndows 10 64bit on the same SSD with separate partitions or do I need two separate SSDs?

Both partitions can reside on same drive as long as it is MBR & motherboard supports legacy boot mode.

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #1

> 2. Does XP 32bit support only MBR..... would it work if one partition of the same drive is partitioned as MBR (for XP) and the second partition of the same drive partitioned as GPT (for Win 10)? And is there any issues with SSD and MBR?

XP supports GPT also but for data only. Meaning your XP boot drive has to be MBR but you could have a couple of GPT drives as well for games, movies, porn...:P etc if you wanted.
No issues with SSD & MBR.

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #1

> 3. Can we install Windows XP SP3 32bit from USB flash drive from modern motherboards and/or from Bluray drive/readers (I mean CD/DVD -/+ R burned discs on Bluray drives)?

Absolutely. I have installed XP many times on various machines from USB flash drives, even back in early 2000's. WinFlash was used to make the USB install image. (I prefer Rufus these days).
The caveat here is the flash drive usually must be plugged into a native AMD/Intel USB 2.0 port (meaning no 3rd party controllers such as ASmedia/JMicron etc unless you want to slipstream).
Early editions of XP discs didn't contain USB drivers for some vendors which contributed to the "XP doesn't support USB boot" stories...

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #1

> 4. If 2.2 TB HDD is the limit for the 32 bit OS, can we split a 4/6/8 TB HDD/SDD to multiple 2TB partitions or is that still not possible/usable with 32bit OS-es?

2.2TB is more a limit of 512b sectors combined with 32bit hardware. However, plug in an 4K Advanced Format drive that 32bit 2.2TB limitation will turn into a 32bit 16TB limitation. Check your I/O controller specs if in doubt.

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #1

> 5. Is it right that Intel Ivy Bridge CPUs and AMD Vishera aka AMD FX Series CPUs (CPU, Chipsets, Motherboard etc.) are the latest hardware which officially support Windows XP 32bit? If true... then whats the latest unofficial supported hardware (CPU series) for Windows XP SP3 32bit and are there any disadvantages compared to "official supported" CPUs/Chipsets?

Source material which contains the words "officially" or "by default" can usually be ignored. That includes Wikipedia and fair bit of Microsoft's own doco.....
Case in point, below:
⇗
⇗ https://docs.microsoft.com/en-us/windows...ows-and-gpt-faq
^I had to chuckle....because not 3 hours ago I did exactly this for a client. I cloned an offline HP GPT drive containing bad sectors onto a new hard drive, then booted off the cloned drive. :D

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #1

> 5. Is it right that Intel Ivy Bridge CPUs and AMD Vishera aka AMD FX Series CPUs (CPU, Chipsets, Motherboard etc.) are the latest hardware which officially support Windows XP 32bit? If true... then whats the latest unofficial supported hardware (CPU series) for Windows XP SP3 32bit and are there any disadvantages compared to "official supported" CPUs/Chipsets?

Whatever the chipset maker supports, aka Intel, AMD, ASUS, Gigabyte, Asmedia, Renasonce, Realtek, and the like. As mentioned earlier "officially" can usually be ignored..
Companies such as HP, Dell, Lenovo, Fujitsu etc are all OEM's which means they can provide drivers for the originally installed OS only. Going to HP for drivers is akin to obtaining drivers from Windows Update - the last place end users should be looking for drivers. :)

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #1

> 6. Now, regarding SATA drivers and "slipstreaming" it to WIndows XP SP3 32bit installation disc:
> Do I need to look ONLY for specific chipset (independently of a specific motherboard manufacturer or motherboard model etc.) or in another words, do all the motherboards which share the same chipset actually support the same SATA drives or not and can we add/slipstream multiple SATA drivers on the same Windows XP 32bit installation disc?

The Northbridge devices are the same across all AMD boards, or all Intel boartds with same chipset, however the Southbridge can have different hardware which is vendoe specific, by vendor I mean ASUS/MSI/GA....
Eg, Gigabyte MB with 666 Special Quad SLI (made up platform) may have a Jmicron SATA controller while Asus version has Asmedia. Best to check specs..
Edit by Fernando: Fully quoted post replaced by directly addressing to the thread opener (to save space)

#24

zir_blazer

> Zitat von ⇗ diderius6 im Beitrag ¶ #19

> PS: Windows XP implements ACPI 1.0b
> Hyperthreading works with ACPI 1.0b version
> Hyperthreading starts with XP SP1.

If I recall correctly, Windows XP supports a hybrid halfway between ACPI 1.0b and 2.0 (Or was 1.0b with some 2.0 features?). Recall seeing some old PowerPoint presentation about ACPI covering that.

> Zitat von ⇗ Pill Monster im Beitrag ¶ #23

> XP supports GPT also but for data only. Meaning your XP boot drive has to be MBR but you could have a couple of GPT drives as well for games, movies, porn...:P etc if you wanted.
> No issues with SSD & MBR.

Only Windows XP x64 supports GPT, for data only as you said. However, standard WXP 32 Bits is MBR only.

#25

diderius6

Hi all,
does anybody have a motherboard from Asrock with z170 (or z270, z370) chipset, where XP SP3 can be installed with ACPI support at once?
In this case, hyperthreading should work also.
And it would be a nice base for a step by step test, which device on Asrock motherboard is not compatible with the acpi.sys driver from XP
Dietmar
PS:⇗ @Mov AX, 0xDEAD You had the idea, to test a very early Bios on those Z170 boards.
Do you found one, where ACPI is possible for XP without any modd?
I just find, that with the checked version of acpi.sys from XP you can start a windbg session.
Hard job, but via this way you can repair step by step the Bios DSDT table.
After long search I found the whole Checked Version of XP SP3, containing also the wished acpi.sys checked version.
Now fun can start..
⇗ https://archive.org/download/somewinxpdownloads
The full symbols for windbg are also there.

#26

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #25

> Hi all,
> I just find, that with the checked version of acpi.sys from XP you can start a windbg session.
> Hard job, but via this way you can repair step by step the Bios DSDT table.
> After long search I found the whole Checked Version of XP SP3, containing also the wished acpi.sys checked version.
> Now fun can start..

checked version helps for reversing, it still usual version and no support acpi2.0+ syntax

#27

diderius6

⇗ @Mov AX, 0xDEAD
This is clear for me. I only want to have a tool, with which I can see, what is going on via ACPI in XP.
And this is, what I have been looking for. With Windbg you can now debug direct ACPI:
⇗ https://docs.microsoft.com/en-us/windows...ging-extensions
And, have you ever had an XP SP3 on a z170 board, where ACPI works without any mod?
This would be very helpfull to understand, which component of the board with BSOD 0xA is faulty in DSDT table,
Dietmar

#28

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #27

> And, have you ever had an XP SP3 on a z170 board, where ACPI works without any mod?
> This would be very helpfull to understand, which component of the board with BSOD 0xA is faulty in DSDT table,
> Dietmar

I have gigabyte h110m hd2 board, first version bios (F1) doesnt use acpi2.0 commands in critical for winxp parts of dsdt table. next versions (f20 for kabylake support) start using new syntax, i never had about special winxp compatible bioses.
I see that moving blocks to expression "if os >=vista do {....}" solve problem 0xa5 with any bios

#29

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #27

> This is clear for me. I only want to have a tool, with which I can see, what is going on via ACPI in XP.

there no magic, acpi.sys doesnt know nothing about new acpi commands and when it found it at time of parsing, it generate 0x000000A5 error with 4 subcodes (errcode, adress, global code error from ntstatus.h, method where parser found problem)
in my case was (0x03,adr,0xC0140001 ,_INI)

#30

XPLives

> Zitat von ⇗ diderius6 im Beitrag ¶ #21

> Hi all,
> now I understand, how to fix Acpi DSDT table for to overcome 0xA BSOD in XP.
> Extract body of Raw section under GUID: C118F50D-391D-45F4-B3D3-11BC931AA56D in Bios,
> recompile with iasl -d (newest version), mod, compile and flash back to the same raw body.
> A lot of work as I see now, changes need to be done in about 600 places as to me Beyond Compare shows.

How about a simpler quicker fix for acpi.sys. Can you modify the 2K, XP, and 2K3 acpi.sys files to just do a proper shutdown only? Currently NO ACPI install method does not do an automatic shutdown. It must be a manual power down to turn the system off.
The ACPI BIOS fix may take you some extra time as you said to analyze a working tutorial. But a shutdown acpi.sys fix for NT5.X OS would be handy to have. Restarting the computer is not an issue. Standby should not work or be present. I haven't tested hibernate but I assume this might not require ACPI since it seems to save an image to the hard disk of equal size to the visible memory installed and then you can power the system off and when the system is rebooted it will reload the entire image back so I think hibernate is not affected. I am unsure about the Intel Speed Step as I lock down my CPU Core Ratio in the BIOS so I am unaware if NO ACPI affects this feature.

> Zitat von ⇗ diderius6 im Beitrag ¶ #21

> And also to fix the not working USB from Intel from chipset z170 up to z390 via Bios mod.
> This means: In my next holidays in about a month I will give it a try, how to make this for other Bios also,

Can you explain the Intel USB fix? Are you saying you can make the Intel USB 3.0 xHCI XP driver from scratch?
If so then take a longer holiday break to complete it.

## Page 3

#31

XPLives

>>Hi all,
does anybody have a motherboard from Asrock with z170 (or z270, z370) chipset, where XP SP3 can be installed with ACPI support at once?
I am not aware of any.<<
Maybe going back to Z87/Z97 Asrock motherboard you can compare with Z170 what changed in the BIOS that broke XP ACPI compatibility?
There also exists DDR3 Z170 Motherboards which SkyLake supports DD3L and PCI slots before full DDR4 support required for Kaby Lake, Coffee Lake, -> Cannon Lake+
Compare the Z87/Z97 Fatal1ty Professional with the Z170 Fatal1ty Gaming i7 (Fernando and I have this same MB). This is the first motherboard which I did all original XP testing for SkyLake and was successful but using the no ACPI method. This is also where the USB 2.0 eHCI was officially removed and causing the start of the USB 2.0 compatibility issues so I had to come up with workarounds which I later put into the guide.
⇗ [Guide] How to install Windows XP OS on Modern Hardware - Z170 Z270 SkyLake Kaby Lake
I will be testing my older Z87 MB that I bought used to do some testing with XP and USB 2.0 eHCI ports. I am repairing / troubleshooting a Z68 MB at the moment.

#32

diderius6

Hi ⇗ @Mov AX, 0xDEAD
"I have gigabyte h110m hd2 board, first version bios (F1) doesnt use acpi2.0 commands in critical for winxp parts of dsdt table."
This I understand and also your nice idea to keep acpi2.0 commands away from acpi.sys of XP and give full Acpi support to higher OS.
But I do not know, how to do the same for an other Bios, for example to my Asrock fatal1ty z370 gaming k6 Bios.
How do you know, where and how to make this about 600 changes in DSDT table?
Did you copy the DSDT table from Bios F1 to Bios F20? This would be interesting, if BSOD for Acpi is gone then.
So I come to another idea. The Bios gigabyte h110m hd2 board, first version bios (F1) gives no BSOD 0xA5.
May be, there are only one or two devices on this motherboard, which gives this BSOD with next Bios f20.
And this can be tested, just to switch them off in Bios, if possible.
And the reason for this BSOD can be found via windbg and checked version of acpi.sys.
Your BSOD happens because of method _INI.
Have you tested, if this is the only method, which causes Acpi BSOD?
I know from acpi "compatible" Bios for XP, that in log file of acpi there have been other errors reported too,
but they do nothing bad to XP,
Dietmar

#33

Fernando

> Zitat von ⇗ diderius6 im Beitrag ¶ #25

> does anybody have a motherboard from Asrock with z170 (or z270, z370) chipset, where XP SP3 can be installed with ACPI support at once?

As you can see in my signature, my main PC has an ASRock Z170 chipset mainboard. Several months ago I tried to get Windows XP installed onto it by booting off the XP SP3 CD and finally succeeded without having customized the XP image regarding ACPI. All I did was hitting F5 and/or F7 during the textmode part of the XP installation and altering the ACPI settings there.
Due to the fact, that I could not use my USB connected input devices, I stopped my tests.

#34

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #32

> Hi @Mov AX, 0xDEAD
> May be, there are only one or two devices on this motherboard, which gives this BSOD with next Bios f20.
> And this can be tested, just to switch them off in Bios, if possible.
> ...
> Your BSOD happens because of method _INI.
> Have you tested, if this is the only method, which causes Acpi BSOD?

- acpi code in dsdt table is independ of enabled/disabled device, it is static and maded at time of creation bios
- i have no tested other methods because i isolate ALL new code (exception _dsm), my "own" overkill way and i do not recommend it

#35

diderius6

Hi all,
I just find this:
⇗ https://docs.microsoft.com/en-us/windows...cpi/winacpi-osi
This is really nice: Acpi can decide for itself, which version of Acpi it want to use in
building DSDT table in Bios, just chose XP ("Windows 2001"). This is the way, Bios manufacturer use it.
Waaoh, this looks like a Bios hack and may be a fake copy can be handed over direct to
`HKLM\HARDWARE\ACPI\DSDT\842A1\842A1P07\00000004\00000000`
hex copy in registry from Bios in XP, without any Bios mod
Dietmar

#36

diderius6

Here comes the complete list of opcodes, used bei ACPI 2.0 in DSDT table:

    ACPI Type 2 Opcodes

    ASL Statement	Description
    Acquire	Acquire a mutex
    Add	Add two values
    And	Bitwise And
    Buff	Convert data type to buffer
    Concatenate	Concatenate two strings, integers or buffers
    ConcatenateResTemplate	Concatenate two resource templates
    CondRefOf	Conditional reference to an object
    Decrement	Decrement a value
    DecStr	Convert data type to decimal string
    DerefOf	Dereference an object reference
    Divide	Divide
    FindSetLeftBit	Index of first least significant bit set
    FindSetRightBit	Index of first mo st significant bit set
    FromBCD	Convert from BCD to numeric
    HexStr	Convert data type to hexadecimal string
    Increment	Increment a value
    Index	Reference the nth element/byte/character of a package, buffer or string
    Int	Convert data type to integer
    LAnd	Logical And
    LEqual	Logical Equal
    LGreater	Logical Greater
    LGreaterEqual	Logical Not less
    LLess	Logical Less
    LLessEqual	Logical Not greater
    LNot	Logical Not
    LNotEqual	Logical Not equal
    LoadTable	Load Table from RSDT/XSDT
    LOr	Logical Or
    Match	Search for match in package array
    Mid	Returns a portion of buffer or string
    Mod	Modulo
    Multiply	Multiply
    NAnd	Bitwise Nand
    NOr	Bitwise Nor
    Not	Bitwise Not
    ObjectType	Type of object
    Or	Bitwise Or
    RefOf	Reference to an object
    ShiftLeft	Shift value left
    ShiftRight	Shift value right
    SizeOf	Get the size of a buffer, string, or package
    Store	Store value
    String	Copy ASCII string from buffer
    Subtract	Subtract values
    ToBCD	Convert numeric to BCD
    Wait	Wait
    Xor	Bitwise Xor

Some of them are not in ACPI 1, for example ConcatenateResTemplate, but seems to work also with XP.
You can overcome in BIOS with the nice idea from ⇗ @Mov AX, 0xDEAD
Dietmar
EDIT by Fernando: The list has been put into a "spoiler" (to save space)

#37

diderius6

Here the same for ACPI 1 (all known by XP in BIOS DSDT table):

    ASL Statement 	Description
    Acquire 	Acquire a synchronization object
    Add 	Add two values
    ASL Statement 	Description
    And 	Bitwise And
    Concatenate 	Concatenate two strings
    CondRefOf 	Conditional reference to an object
    Decrement 	Decrement a value.
    Divide 	Divide
    FindSetLeftBit 	Index of first set Lsb
    FindSetRightBit 	Index of first set Msb
    FromBCD 	Convert from BCD to numeric
    Increment 	Increment a value
    Index 	Reference the nth element of a package
    LAnd 	Logical And
    LEqual 	Logical Equal
    LGreater 	Logical Greater
    LGreaterEqual 	Logical Not less
    LLess 	Logical Less
    LLessEqual 	Logical Not greater
    LNot 	Logical Not
    LNotEqual 	Logical Not equal
    Load 	Load differentiating definition block
    LOr 	Logical Or
    Match 	Search for match in package array
    Multiply 	Multiply
    NAnd 	Bitwise Nand
    NOr 	Bitwise Nor
    Not 	Bitwise Not
    ObjectType 	Type of object
    Or 	Bitwise Or
    RefOf 	Reference to an object
    SizeOf 	Get the size of a buffer, string, or package
    ShiftLeft 	Shift value left
    ShiftRight 	Shift value right
    Store 	Store value
    Subtract 	Subtract values
    ToBCD 	Convert numeric to BCD
    Wait 	Wait
    XOr 	Bitwise Xor

EDIT by Fernando: The list has been put into a "spoiler" (to save space)

#38

diderius6

And some opcodes are renamed from
ACPI "old 2" > ACPI 2

    Buff > ToBuffer
    DecStr > ToDecimalString
    HexStr > ToHexString
    Int > ToInteger
    String > ToString

The right side above opcodes (from Acpi 2) are all known by XP in DSDT table,
so no need to fix them in DSDT table
Dietmar
`Copy > CopyObject` (may be not known by XP)

#39

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #38

>     Buff > ToBuffer
>     DecStr > ToDecimalString
>     HexStr > ToHexString
>     Int > ToInteger
>     String > ToString

> `Copy > CopyObject` (may be not known by XP)

there no renames, ToBuffer and other are new acpi 2.0 opcodes, check ⇗ amlcode.h, winxp accept only 1.0b opcodes

#40 | diderius6 | Hi, yes, this are new and first arrive in ACPI 2. BUT in the Bios F1 of your motherboard from Gigabyte they are all present (for example HexString) and give no BSOD x0A5 there as you told us, Dietmar
#41 | diderius6 | The only opcode, which has to be disabled in Bios DSDT table for XP seems to be CopyObject Dietmar

#42

diderius6

Hi,
in DSDT table from Bios 410 for Asus z170-k I found

    If (_OSI ("Windows 2001 SP2"))
                    {
                        Store (0x07D2, OSYS)
                    }

I think, this Bios looks, if XP SP2 is to be installed and loads then only ACPI code,
compatible for XP SP2 (XP SP3 also I think),
have a nice evening
Dietmar
EDIT: By passing the string "Windows 2001" into the _OSI method, the BIOS indicates to the operating system that the BIOS is aware of and compatible with the ACPI implementation and feature set of Windows XP. Windows XP will then reject all I/O reads or writes from BIOS ASL code to addresses on the blocked ports list and generate an error in the system event log.
Ok, this makes sense for the methode from @Mov AX, 0xDEAD.
When XP cant stop I/O reads or writes from crazy BIOS even it told to XP Store (0x07D2, OSYS),
then you have to block all this AHCI 2.0 question from Bios in Bios itself.
The underlying reason may be, that newer Bios can not identify, that the OS is XP.

#43

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #40

> Hi,
> yes, this are new and first arrive in ACPI 2.
> BUT in the Bios F1 of your motherboard from Gigabyte they are all present (for example HexString)
> and give no BSOD x0A5 there as you told us,

because these commands belong to some custom methods/submethods (winxp do not call their)
after version F1 these method started using in _INI too as subcall (see _INI of devices NVM1,NVM2,NVM3, at end they call subproc ARPC(), arpc() use new ToHexString and ToInteger)
ACPI virtual machine in windows is interpretator, it not check all code, only needed parts, we can hide nuclear bomb inside acpi code and windows will never find it ))

#44

diderius6

Hi all,
today I get the mainbord gigabyte GA-H110M-S2H
very similar to gigabyte GA-H110M-HD2
My mainboard has no PCI slot, no intern parallel port header
and 2 USB 2.0 internal more.
All other is the same.
I fetch the whole content from the 25B64CSIG Bios chip on this board with
EEprom flasher CH341A.
The Bios chip is soldered and it takes 3 tries to connect it direct ON the board.
In CH341A - USB Programmer 1.30 the Bios chip gets name GD25Q64.
The yellow LED on CH341A blinks only, when you read from the chip, NOT when it is only connected.
I read it 3 times and verify, all ok.
Now I make a try to flash the Bios back to version F1, which is only possible through hardware flash.
I hope, that the UEFI tool is right, that all Bios information starts from 200000h
because I do not want to lose my MAC adress etc.
No I am looking about the ME region
⇗ Intel Management Engine: Drivers, Firmware & System Tools
Dietmar
Edit: The Bios on this board is latest version F25.
When I try to reflash to F1, compi told: "Bios is outdatet, update to newest version" so the Website from Gigabyte tells truth, brrr.
Flash back to Vers. F1 only possible with CH341A.

#45

diderius6

⇗ @Mov AX, 0xDEAD
Hi, the Bios from the Gigabyte board seems to be encoded.
How is it possible, to write the DSDT table back to such a Bios?
Have a nice evening
Dietmar
PS: The Uefitool can extract and decode the DSDT table, but nothing insert or delete there.
Only UEFITool_0.25.1_win32 can write DSDT Table back in raw mode.
Now I have Bios original from my mainboard ver. F25 with the DSDT table from Biosversion F1 inserted.
Now cross finger, if Compi will boot again. In other case I have to flash the whole original Bios back.

## Page 4

#46

diderius6

Hm,
I succeed to flash the Bios Chip F25 with DSDT table from F1 Version Bios.
Compi starts, but shows BSOD 0xA5 like before with F25 Bios?!
So, this is strange for me
Dietmar
EDIT: I reread again with the EEprom writer the Bios chip.
Uefitool shows, that indeed now DSDT table from Bios ver. F1 was build in.
Then I flashed the Biosship with whole F1 Bios from Gigabyte webside.
Now motherboard does start, but no post, nothing on screen.
Ok, I am going to flash original Bios file back and tomorrow I
try the DSDT2 file from @Mov AX, 0xDEAD.

#47

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #45

> @Mov AX, 0xDEAD
> Now I have Bios original from my mainboard ver. F25 with the DSDT table from Biosversion F1 inserted.

> Zitat von ⇗ diderius6 im Beitrag ¶ #45

> I am going to flash original Bios file back and tomorrow I try the DSDT2 file

Hi,
Do not do that, acpi tables hardcoded to RAM/IO/DEVICE ranges depend on bios revision
F1 is old release for skylake
F25 is latest release wiith new GUI and suport for kabylake
you need decompile/change/compile/flash f25 version of tables
main problem is decompiling with external links with various number of arguments, i made custom file for my f24 bios:

    External (AL6F, MethodObj, 0)
    External (HLVT, MethodObj, 0)
    External (P0L6, MethodObj, 0)
    External (P1L6, MethodObj, 0)
    External (P2L6, MethodObj, 0)
    External (PS0X, MethodObj, 0)
    External (PS2X, MethodObj, 0)
    External (PS3X, MethodObj, 0)
    External (_SB_.PCI0.GFX0.GSCI, MethodObj, 0)
    External (_SB_.PCI0.GFX0.IUEH, MethodObj, 1)
    External (_SB_.PCI0.PAUD.PUAM, MethodObj, 0)
    External (_SB_.PCI0.PEG0.HPME, MethodObj, 0)
    External (_SB_.PCI0.PEG1.HPME, MethodObj, 0)
    External (_SB_.PCI0.PEG2.HPME, MethodObj, 0)
    External (_SB_.PCI0.XHC_.DUAM, MethodObj, 0)
    External (_SB_.PCI0.XHC_.RHUB.INIR, MethodObj, 0)

why 1 on IUEH ? because i've checked all methods from all acpi files to find count of arguments of external things (iasl will report as "Warning: Unknown method, guessing 0 arguments" ) and found Method (IUEH, 1, Serialized) in SDDT-SaSsdt table
EDIT by Fernando: The code has been put into a "spoiler" (to save space)

#48

diderius6

⇗ @Mov AX, 0xDEAD,
thank you very much for help.
Yes, I see this warning message from compiler iasl after compiling DSDL table from my F25 Bios.
I just flash my original F25 back to the board and is awake to life again:).
Interesting thing: When I compare whole Bios content before flashing and after compi started, I noticed, that the compi changes data in Bios chip, about 133000 Byte. This I never noticed before.
So this just means, the Bios is open field for compi, brrr..
Dietmar

#49

diderius6

First I do binary compare of my DSDT.raw table
with the DSDT.raw table from F25 from Gigabyte website.
They are 100% identic.
Now fun starts,
I mod my DSDT.dsl table with copy and past left to right side via Beyond compare
and DSDT2.dsl from ⇗ @Mov AX, 0xDEAD
Dietmar

#50 | diderius6 | 9 compiler errors.. will be a hard search^^ Now I get error message 6088 "Object is not accessible from this scope ^ (WANX)"

#51

Mov AX, 0xDEAD

Hi all,
Found interesting bug in one device in dsdti table for kabylake+ gigabyte's bioses (in skylake bioses this device not presented), device is IOTR (I/O Trap), it report to windows about claimed I/O adresses, method _CRS() load settings from special memory and report 0xFE adresses (254) starting from 0xFF00.
WinXP x32 show claimed region correctly belong to "mothebvoard resource", but show conflict with pci host bridge (and VGA card too)
Win7 also show claimed region but no conflicts.
I've patched this device to return empty list of resources Local0 = ResourceTemplate () { } return(Local0) and problem is gone

#52 | diderius6 | Yessa, after 14 hours work I succeed to compile back my DSDT table with about 600 new entries. What a crazy work, Dietmar
#53 | diderius6 | Even I do to 100% 1 by 1 the steps from DSDT2, after flashing the new Bios I get still 0xA5 BSOD. Nice idea, but does not work for me until now Dietmar

#54

diderius6

Waaoh new day nice day,
in next try I succeed to install XP SP3 with full ACPI support on my gigabyte ga-h110m-s2h Bios vers. F25 !!!
I forget, that with else you have always to return the value ZERO,
when the condition If ((OSYS >= 0x07D6))
is not met, when a value is overgiven,
thanks a lot ⇗ @Mov AX, 0xDEAD
Dietmar
PS: This was the first time, that I saw the entry ACPI Multiprocessor PC
in device manager with new processor skylake, kabylake, coffee lake.
Shut down works also⇗ because of Acpi.

#55

diderius6

Hi all,
now I try the same for the latest Bios Z37GK63.20 for asrock fatal1ty z370 gaming k6 mainboard.
May be, some steps can be automated in correcting DSDT *.dsl file, until now I do all by hand
Dietmar
Look for the key-words in *.dsl file from DSDT table and put then always the question before each

    If ((OSYS >= 0x07D6))
         {

         }

and if a value is asked also always answer with

    Else
                    {
                        Return (Zero)
                    }

On the Gigabyte DSDT table you have to do this 66 times.
Key words are:

- ConcatenateResTemplate
- CreateQWordField
- ToBuffer
- ToDecimalString
- ToHexString
- ToInteger (no need to be modded in XP in Method (_DSM )
- ToString
- CopyObject

and dont forget for example to copy all from DSDT2
External (P0L6, MethodObj) // 0 Arguments // From external reference file
EDIT by Fernando: Text slighly re-formatted (to save space and for better readability)

#56

Mov AX, 0xDEAD

⇗ @diderius6:
i think this is not correct if method must return Buffer, Zero is 0 (Integer)
correct is:

    Return (Buffer (One)
     {
      0x00
     })

> or maybe

    Return (ResourceTemplate ()
      {
      } )

p.s maybe acpi.sys tract zero as null buffer, who knows...

#57

diderius6

Hi ⇗ @Mov AX, 0xDEAD,
do you noticed any strange behavior of XP, when you overcome a lot of instructions from DSDT with If ((OSYS >= 0x07D6))?
And have you tested your nice method on another compi with XP?
For me it is also interesting to know, if one can switch between acpi pc and standard pc, for to compare benchmarks without new installing whole xp.
I think, when you have an Acpi pc, switching is always possible when you change hal.dll and ntoskrnl.exe (is this enough?)
Dietmar

#58

deSSy2724

Congratulation Dietmar...... can you confirm if Hyper Threading is working and does the OS and other programs like CPU-Z detect the correct number of threads for your i5 8700K( 6 cores /12 threads) and does Intel Speedstep work (auto clock/downclock).
I think, both of those feautures should be tied to ACPI.....

#59

diderius6

Hi,
for the 1151 platform I have only a Celeron 3900,
this has no Hyperthreading. But I think it works.
This Bios mod makes a problem I think with the timer.
Via changing computer Acpimultiprocessor->Standard PC this is gone, so it really belongs to the modded DSDT table.
In the original source code from DSDT table stands at a lot of places

    Local0 = Buffer (0x02)
                        {
                             0x79, 0x00
                        }

⇗ @Mov AX, 0xDEAD changed this always against

    Local0 = ResourceTemplate ()
    {
    }

Because I do not understand the ASL Syntax I have no idea, what this is doing.
And he deleted at a lot of places `ADBG (Concatenate...`
lines
for example
`ADBG (Concatenate ("CNRSs ", ToDecimalString (Timer)))`
May be this is the reason for the Timer problem,
Dietmar

#60

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #59

> This Bios mod makes a problem I think with the timer.
> Via changing computer Acpimultiprocessor->Standard PC this is gone, so it really belongs to the modded DSDT table.
> And he deleted at a lot of places ADBG (Concatenate... lines
> for example
> ADBG (Concatenate ("CNRSs ", ToDecimalString (Timer)))

- what is problem with timer ?
- adbg is text debug message to COM port/RAM/etc and nothing more
we cannot keep this line as is, because ToDecimalString is new command

## Page 5

#61

Mov AX, 0xDEAD

> Zitat von ⇗ deSSy2724 im Beitrag ¶ #58

> Congratulation Dietmar...... can you confirm if Hyper Threading is working and does the OS and other programs like CPU-Z detect the correct number of threads for your i5 8700K( 6 cores /12 threads) and does Intel Speedstep work (auto clock/downclock).
> I think, both of those feautures should be tied to ACPI.....

- intel speedstep work, official method to enable - power saving mode must be ON
- i dont have HT cpu so cannot report
I found some of power management problem, in ThrotleStop i see cpu is 50-60% of time in C0 power state, task manager cpu utilization is 0%. ThrotleStop also report about 0% time in any power saving states C1,C2,.. state.
In win7 power states are normal, 2-6% in C0 and 95% in C7

#62

diderius6

Hi ⇗ @Mov AX, 0xDEAD,
I deleted in DSDT2 from you the device LPTE, because my mainboard does not have.
After this crazy 14 hour fight with the compiler I can check, that all other is to 100% identic with your DSDT2 file.
When I open the game "Moorhuhn", the wings of the Mill rotate more than 10 times faster than before
and no "Moorhuhn" can be seen.
The browser firefox vers. 52 is much slower than before.
Version 13.0 of firefox works normal.
I am happy for help,
because I want to mod Bios for other compis too,
Dietmar
PS: Sound, network, everything works with this ACPI DSDT table.

#63

diderius6

Hi all,
I found out, that with the modded DSDT table in Bios (Acpi) all programs work normal for about 1 second, but then changes behavior.
I disabled energy management in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\intelppm setting start to 4 (disabled), but this does not change anything,
Dietmar
PS: I think, during the mod of the DSDT table we disable something, that is necessary for ACPI to work.

#64

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #63

> I found out, that with the modded DSDT table in Bios (Acpi) all programs work normal for about 1 second, but then changes behavior

confirm same problem, windows return wrong timer to applications
⇗
i think this can be fixed, just need find proper way

#65

diderius6

The use of
/usepmtimer
in boot.ini
does not help
Dietmar
PS: Also not helps

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\HAL]
    "14140000FFFFFFFF"=dword:00000010

EDIT2: I delete in DSDT table from Bios the whole device HPET and flash Bios new.
But the time is as wrong as before (negativ values, brr..), nothing changed. XP SP2 does not make use of HPET in Acpi,
but XP SP3 does.

#66

Mov AX, 0xDEAD

perftimer reset about every 3.5s, i have сhecked FACP table, resolution of pm timer (TMR_VAL_EXT) is 24 bit, i think:
- winxp use PM Timer (because this utility show 3.5Mhz)
- overflow 24bit is 4 secs, overflow 32bits is 20 mins
- winxp read it as 32 bit and doesnt care about high 8 bit (they are zero, this leads to negative result of operation currentime()-previoustime())
in FACP exist interesting bit USE_PLATFORM_CLOCK=1 (OSPM use HPET (if exist) or ACPI PM Timer)

#67

diderius6

    4.7.3.3 Power Management Timer (PM_TMR)
    Register Location:<PM_TMR_BLK> System I/O Space
    Default Value: 00h
    Attribute: Read-Only
    Size: 32-bits

This read-only register returns the current value of the power management timer (PM timer).
The FACP table has a flag called TMR_VAL_EXT that an OEM sets to indicate a 32-bit PM
timer or reset to indicate a 24-bit PM timer. When the last bit of the timer toggles the
TMR_STS bit is set. This register is accessed as 32-bits.
This register contains optional features enabled or disabled within the FACP table. If the
FACP table indicates that the feature is not supported as a fixed feature, then software treats
these bits as ignored.

    TMR_VAL_EXT

A zero indicates TMR_VAL is implemented as a 24-bit
value. A one indicates TMR_VAL is implemented as a 32-
bit value. The TMR_STS bit is set when the most
significant bit of the TMR_VAL toggles.

#68

diderius6

Indeed is this flag TMR_VAL_EXT in Bios from my Gigabyte H110m board set to 0 and interpreted as 32 bit gives crazy results for the clock.

    Signature "FACP"
    Length	0x00000114 (276)
    Revision	0x06 (6)
    Checksum	0xA4 (164)
    OEM ID	"ALASKA"
    OEM Table ID	"A M I"
    OEM Revision	0x01072009 (17244169)
    Creator ID	"AMI "
    Creator Revision	0x00010013 (65555)
    Firmware Control	0xBA7A5C40 - FACS
    DSDT Address	0xBA3FA1E8 - DSDT
    Interrupt Mode	0x01 (1) - Multiple APIC
    PM Profile	0x01 (1)
    SCI Interrupt	0x0009 (9)
    SMI Port	0x000000B2 (178)
    ACPI Enable	0xA0 (160)
    ACPI Disable	0xA1 (161)
    S4 Request	0x00 (0) - Not supported
    PSTATE_CNT	0x00 (0)
    PM1a_EVT_BLK	0x00001800 (6144)
    PM1b_EVT_BLK	0x00000000 (0) - Not supported
    PM1a_CNT_BLK	0x00001804 (6148)
    PM1b_CNT_BLK	0x00000000 (0) - Not supported
    PM2_CNT_BLK	0x00001850 (6224)
    PM_TMR_BLK	0x00001808 (6152)
    GPE0_BLK	0x00001880 (6272)
    GPE1_BLK	0x00000000 (0) - Not supported
    PM1_EVT_LEN	0x04 (4)
    PM1_CNT_LEN	0x02 (2)
    PM2_CNT_LEN	0x01 (1)
    PM_TMR_LEN	0x04 (4)
    GPE0_BLK_LEN	0x20 (32)
    GPE1_BLK_LEN	0x00 (0)
    GPE1_BASE	0x10 (16)
    CST_CNT	0x00 (0)
    P_LVL2_LAT	0x0065 (101) - C2 state not supported
    P_LVL3_LAT	0x0039 (57)
    FLUSH_SIZE	0x0400 (1024)
    FLUSH_STRIDE	0x0010 (16)
    DUTY_OFFSET	0x00 (0)
    DUTY_WIDTH	0x00 (0) - Duty cycle not supported
    DAY_ALRM	0x0D (13)
    MON_ALRM	0x00 (0) - Month alarm not supported
    CENTURY	0x32 (50)
    IAPC_Boot_Arch	0x12 0x00
    Reserved	0x00 (0)
    Flags	0x0003C4A5
      WBINVD	1 - WBINVD instruction fully supported
      WBINVD_Flush	0 - WBINVD instruction not for sleep states (Don't care if WBINVD=1)
      PROC_C1	1 - C1 power state: all processors
      P_LVL2_UP	0 - C2 power state: UP system only
      PWR_BUTTON	0 - Power button supported as fixed feature
      SLP_BUTTON	1 - Sleep button not support or handled by ASL code
      FIX_RTC	0 - Fixed register support RTC wake
      RTC_S4	1 - RTC wakeup support: S1, S2, S3, S4
      TMR_VAL_EXT	0 - 24bit PM Timer
      DCK_CAP	0 - Docking not supported
      RESET_REG_SUP	1 - Reset Register supported
      SEALED_CASE	0 - System is not sealed
      HEADLESS	0 - Not headless mode
      CPU_SW_SLP	0 - Normal method to write SLP_TYPx
      PCI_EXP_WAK	1 - PM1 block support PCIE wakeup status/enable bits
      USE_PLATFORM_CLOCK	1 - OSPM use HPET (if exist) or ACPI PM Timer
      S4_RTC_STS_VALID	1 - RTC_STS flag is valid when resume from S4
      REMOTE_POWER_ON_CAPABLE	1 - System compatible with remote power on
      FORCE_APIC_CLUSTER_MODEL	0 - Cluster destination model not required
      FORCE_APIC_PHYSICAL_DESTINATION_MODE	0 - Physical destination mode not required
    RESET_REG	IO: 0xCF9, BitWidth: 0x8 (8), BitOffset: 0x00 (0), AccessSize: Undefined
    RESET_VALUE	0x06 (6)
    Reserved	0x00 0x00 0x01
    X_FIRMWARE_CTRL	0x0000000000000000
    X_DSDT	0x00000000BA3FA1E8
    X_PM1a_EVT_BLK	IO: 0x1800, BitWidth: 0x20 (32), BitOffset: 0x00 (0), AccessSize: Word
    X_PM1b_EVT_BLK	IO: 0x0, BitWidth: 0x0 (0), BitOffset: 0x00 (0), AccessSize: Word
    X_PM1a_CNT_BLK	IO: 0x1804, BitWidth: 0x10 (16), BitOffset: 0x00 (0), AccessSize: Word
    X_PM1b_CNT_BLK	IO: 0x0, BitWidth: 0x0 (0), BitOffset: 0x00 (0), AccessSize: Word
    X_PM2_CNT_BLK	IO: 0x1850, BitWidth: 0x8 (8), BitOffset: 0x00 (0), AccessSize: Byte
    X_PM_TMR_BLK	IO: 0x1808, BitWidth: 0x20 (32), BitOffset: 0x00 (0), AccessSize: Dword
    X_GPE0_BLK	IO: 0x1880, BitWidth: 0x80 (128), BitOffset: 0x00 (0), AccessSize: Byte
    X_GPE1_BLK	IO: 0x0, BitWidth: 0x0 (0), BitOffset: 0x00 (0), AccessSize: Byte
    SLEEP_CONTROL	Memory: 0x0, BitWidth: 0x0 (0), BitOffset: 0x0 (0), AccessSize: Undefined
    SLEEP_STATUS	Memory: 0x0, BitWidth: 0x0 (0), BitOffset: 0x0 (0), AccessSize: Undefined

#69 | Mov AX, 0xDEAD | forced do not use pm_timer, now moorhuhn works ): ⇗ WinXP SP(?) auto uses pm_timer instead RDTSC if found FACP table version 2 or higher (skylake has 6 version) USE_PLATFORM_CLOCK=1 in FACP Flags, switch /usepmtimer need to force using acpi timer if USE_PLATFORM_CLOCK=0
#70 | diderius6 | @ Mov AX, 0xDEAD, oh, this is really nice. How do you reach this? Have a nice day Dietmar
#71 | Mov AX, 0xDEAD | ...24bit timer is OK on previous chipsets, windows xp has logic to handle it, something wrong on new platform, maybe windows no receive event about handle carry...
#72 | diderius6 | Hi, may be something is blocked now in DSDT table, what ACPI from XP needs for the timer. Some instructions from Acpi 2.0 XPSP3 understands also, Dietmar

#73

diderius6

Hi,
the problem may be in
USE_PLATFORM_CLOCK 1 - OSPM use HPET (if exist) or ACPI PM Timer
This bit is set to 1 on the gigabyte board Bios.
In this case, XP is asked for the time of the HPET timer.
But no version of XP has a working HPET timer, crazy XP shows HPET in device manager, but does not have,
only Vista and higher, even the board has a HPET timer.
So, may be to set this value back to 0 can solve the problem.
I do not know, where the flags from FACP are stored in Bios,
but give it a try to change this single bit from 1 to 0,
Dietmar
USE_PLATFORM_CLOCK 0 - OSPM may use HPET, ACPI PM Timer or internal Timer
USE_PLATFORM_CLOCK 1 - OSPM use HPET or ACPI PM Timer

#74

diderius6

Yessaa, I got it!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
after crazy search in Bios from Giga board I succeed to change ONE bit
in FACP from
USE_PLATFORM_CLOCK 1 - OSPM use HPET or ACPI PM Timer
to
USE_PLATFORM_CLOCK 0 - OSPM may use HPET, ACPI PM Timer or internal Timer
as you can see with rw-everything.
Now ALL works in ACPI, fun can start for other Bios too
Dietmar
diderius6 has attached images to this post ⇗ yessaaaa.jpg

#75

diderius6

How I make this:
With Uefi tool search in Bios file GUID
16D0A23E-C09C-407D-A14A-AD058FDD0CA1
PE32 image section
extract body
search for the flags from rw-everything Acpi FACP in reverse order
Flags 0x0003C4A5
->search A5C40300 with Hexeditor
change
A5C40300 against
A5440300 with hexeditor
save and rebuild
PE32 image section with Uefitool replace body
and flash Bios.
I found this Byte change, during disassemble FACP.aml
change 1 to 0 in FACP.dsl via
Use Platform Timer (V4) : 1
->Use Platform Timer (V4) : 0
compile with Iasl to FACPmod.aml
and compare with FACP.aml
Only look with Hexeditor Winhex, what happens to A5C40300, it changes to A5440300.

## Page 6

#76

Mov AX, 0xDEAD

i was right, HAL doesnt receive call from acpi.sys about carry handle
acpi.sys register ISR/DPC handler for hardware interrupt, check that interrupt was caused carry situation and call hal.dll to increase high 8 bit counter every 4 sec. this works well on virtual winxp (under qemu), but not on real hardware.
i want to dig deeper and currently build uart<->rs232 converter to normal kernel windbg debugging instead slow and ugly "intel system debugger"

#77

diderius6

⇗ @Mov AX, 0xDEAD
do you think, that in the DSDT table the question
If ((OSYS >= 0x07D6))
blocks any important information for XP?
I understand, that for example XP does not understand for example CreateQWordField, but in ACPI 1.b this can be simulated with CreateDWordField.
And in machine language it becomes equal
Dietmar

#78

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #77

> @Mov AX, 0xDEAD
> do you think, that in the DSDT table the question
> If ((OSYS >= 0x07D6))
> blocks any important information for XP?

I can run winxp with original DSDT table, it still has bug with timer and Plug-n-Play/Resourse Management subsystem works different.
WinXP for main acpi device *PNP0C08* assign only one irq #15
Win7 assign large list #81-#190 (110 irqs !) to same device

#79

diderius6

In the Bios mod for the Asus z370 Apex X for XP
I found FACP with hex values for flags
A5 02 03 00. Also A5 02 03 00 for all other Bios vers. for this board.
This means, there the platformtimer is always reset zu 0
Dietmar
EDIT: On the Bios F1 for the giga m110 board where XP works as you told me,
the platformtimer is 1,
as you can see via
A5 86 03 00. The same in Bios ver. F25.
When the second, here 86 is >= 80,
the platformtimer is set to 1
and if <80 platformtimer is set to 0.
When I flash the Bios F1 to my giga board, compi does not boot at all,
may be because of newer rev number of the board.
EDIT: In all Bios version for Asus H110M Plus the same flags from FACP are used as for the giga board:
A5 86 03 00, means platformtimer is set to 1 there too.
EDIT2: In all Bios version for Asus Z170-K the same flags from FACP are used as for the giga board:
A5 86 03 00, means platformtimer is set to 1 there also.
EDIT3: In Bios ver. 1.0 from asrock fatal1ty z370 gaming k6
FACP flags are A5 C4 03 00, means platformtimer is set to 1.
In newest Bios vers. 3.2 for this board
FACP flags are A5 40 03 00, means platformtimer is reset to 0.
EDIT4: Interesting, if there is a working XP SP3 with Acpi in whole world:)),
where the PM_timer works, where in FACP the flag platformtimer is set to 1.

#80

diderius6

Hi,
does anybody here know,
where the DSDT table in Bios for
Asus Z97-K stays?
I cant found,
it seems not to be a *.raw file
Dietmar
EDIT: I found myself:
Go to AmiBoardInfo in Bios file with Uefitool, then Compressed section, then PE32 image section,
extract body.
Then with Winhex editor look for DSDT (ALASKA) entry.
This is beginning of Hexblock.
The end of Hexblock is at FFFF (end after PINI).
This block you copy to DSDT.dat and disassamble it with
iasl -d DSDT.dat to DSDT.dsl .

#81

diderius6

From the critical Acpi2.0 test words I found in DSDT for Asus Z97-K
ConcatenateResTemplate (NOT in z97)
CreateQWordField (NOT in z97 for 32 bit XP)
ToBuffer (NOT in z97)
ToDecimalString (NOT in z97)
ToHexString (in Method (_WAK) 2 times there in ADBG)
ToInteger (only in Method(_DSM), Method(_SDD), Method(STRT) (Timer TPMR??), Method(CRYF) )
ToString (NOT in z97)
CopyObject (NOT in z97)

#82

diderius6

On the giga board I enabled
ToInteger in Method(STRT) for XP, because this works also on the Asus z97-k board.
Interesting, no BSOD 0xA5 happens!
And I set in FACP again the platformtimer to 1.
But the PM_timer does not work at all,
Dietmar
PS: May be, XP does not give BSOD 0xA5 with the critical word from ACPI2.0 ToInteger.

#83

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #82

> On the giga board I enabled
> ToInteger in Method(STRT) for XP, because this works also on the Asus z97-k board.
> Interesting, no BSOD 0xA5 happens!

because winxp doesnt parse this method (this method not used in _ini, _crs and other parsed methods)

#84 | diderius6 | ⇗ @Mov AX, 0xDEAD, can you please write a list, which method winxp parse? I search a lot, but I can not find any information about that, Dietmar

#85

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #84

> @Mov AX, 0xDEAD,
> can you please write a list,which method winxp parse?

i know only about keywords, some are methods, other are names of devices/reserved names/etc
¶ Windows XP SP3 32bit and modern PC parts (2)

#86

diderius6

Ok, when I delete in DSDT from the giga board
Method (RDCA, 5, Serialized)
If ((OSYS >= 0x07D6)) before
Switch (ToInteger (Arg4))
XP starts normal.
But when I delete all
If ((OSYS >= 0x07D6)) before
any ToInteger
( in Method (_CRS, 0, Serialized)
If ((OSYS >= 0x07D6)) stays before
Switch (ToInteger (SDS7))
I got BSOD.
This I do not understand, because nothing from all on the list
for keywords
Dietmar

#87 | diderius6 | The BSOD came from Method (ARPC, 4, Serialized) ARPC is not listed in the keywords, Dietmar

#88

diderius6

On the giga board from Acpi 2.0 can be ignored for XP SP3
Method (STRD, 3, Serialized)
Method (THDH, 1, Serialized)
Method (THDD, 1, Serialized)
Method (ADDB, 3, Serialized)
Method (TP7D, 6, Serialized)
Method (_DDN, 0, NotSerialized) (???)
Method (RDCA, 5, Serialized)
Method (VMMH, 2, Serialized)
Method (TBTD, 1, Serialized)
Method (TBTF, 1, Serialized)
Method (GUAM, 1, Serialized)
Method (NTFY, 1, Serialized)
Method (WIST, 0, Serialized)
Method (WGST, 0, Serialized)
Method (IICB, 2, Serialized)
Method (STRT, 3, Serialized)
Method (GRID, 1, Serialized)
Method (CDEP, 1, Serialized)
Method (CDEG, 1, Serialized)
Method (CRYF, 3, Serialized)
Method (TPTS, 1, Serialized)
These are all methods, where no need for
If ((OSYS >= 0x07D6))
Dietmar
EDIT: Only 23 times
If ((OSYS >= 0x07D6))
has to be extra inserted in DSDT table for the giga board for to start XP SP3.
EDIT2: Strange is for me, that _CRS and _DDN can also be ignored sometimes.
May be it is, because a condition before ACPI 2.0 reserved word is not fullfilled.
Or the device int3472 does not exist on this motherboard.

#89 | diderius6 | Gives BSOD on the giga board Acpi 2.0 for ToInteger for XP SP3 Method (HCID, 1, Serialized)

#90

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #87

> The BSOD came from
> Method (ARPC, 4, Serialized)
> ARPC is not listed in the keywords,

you need check where this method called, and this will be _INI

> Zitat von ⇗ diderius6 im Beitrag ¶ #89

> Gives BSOD
> on the giga board Acpi 2.0 for ToInteger for XP SP3
> Method (HCID, 1, Serialized)

called from _CID & _HID

## Page 7

#91 | diderius6 | Hi, interesting question, if it is possible to translate for example ToInteger (in one block) into language from Acpi 1.b, using only its vocabulary Dietmar
#92 | diderius6 | Ok, lets start fun for Bios modding to have XP Acpi support for the Asrock fatal1ty z370 gaming k6 board. I am not good in Bios modding, but much better than a week ago:))!

#93

diderius6

First I make a list of all the methods,
where the reserved word from ACPI 2.0
ToInteger
stays in DSDT table of Asrock fatal1ty z370 gaming k6 board
Bios vers. Z37GK63.20 (newest, with support for 9900k).
The 9900k runs under XP SP3 on this board, I have tested.
This list is very similar to the giga board:
Method (RDCA, 5, Serialized)
Method (ARPC, 4, Serialized) patch need
Method (VMMH, 2, Serialized)
Method (_CRS, 0, Serialized) patch need
Method (TBTD, 1, Serialized)
Method (TBTF, 1, Serialized)
Method (GUAM, 1, Serialized)
Method (NTFY, 1, Serialized)
Method (TBON, 0, Serialized) is new
Method (WIST, 0, Serialized)
Method (WGST, 0, Serialized)
Method (IICB, 2, Serialized)
Method (GRID, 1, Serialized)
Method (HCID, 1, Serialized) patch need
Method (CDEP, 1, Serialized)
Method (CDEG, 1, Serialized)
Method (HIDW, 4, Serialized) is new
Method (ECRD, 1, Serialized) is new
Method (ECWT, 2, Serialized) is new
Method (STRT, 3, Serialized)
Method (CRYF, 3, Serialized)
Method (TPTS, 1, Serialized)
I think, patch can be done
Dietmar

#94

diderius6

Methods for the other 7 reserved words from Acpi 2.0 are
Method (STRD, 3, Serialized)
Method (THDH, 1, Serialized)
Method (THDD, 1, Serialized)
Method (_INI, 0, NotSerialized) patch need
Method (VMMH, 2, Serialized)
Method (ADDB, 3, Serialized)
Method (TP7D, 6, Serialized)
Method (_DDN, 0, NotSerialized) patch need (?)
I double checked both lists,
thats all:))!

#95

diderius6

Bios to have full XP Acpi support for the
Asrock fatal1ty z370 gaming k6 board
is ready.
But now I am too tired for to test,
wait for tomorrow
Dietmar

#96 | infuscomus | can this ACPI mod work for AMD boards too?

#97

Mov AX, 0xDEAD

> Zitat von ⇗ infuscomus im Beitrag ¶ #96

> can this ACPI mod work for AMD boards too?

sure

#98

diderius6

Hi all,
I can not update my Bios on
asrock fatal1ty z370 gaming k6.
When I try to flash Bios direct on
Bios ship with CH341A,
program told me: OTG secured..brrr
When I try to flash it via Instant Flash
I was told:
"You select a ROM image with the same version of current BIOS.
Please select a newer version of ROM image to flash BIOS."
Grrr^^, I think I am the master of compi and not vice versa
Dietmar
PS: Any idea?
The Bios Chip on the Asrock board is MX25L12873F. I have some empty chips of this type here.
EDIT: I flash the compi back to Bios vers. 3.1.
Then again I try with my modded vers. Bios 3.2.
Hm, now compi tells, secure check of Bios fails..

#99 | Lost_N_BIOS | ⇗ @diderius6 - Use CH341A. You mentioned CH341A programmer, do you not have one now? If you have, put BIOS rom in CH341A, erase, then blank check, then write/verify If you do not have CH341A, you can use this method - ⇗ [GUIDE] Grub Fix Intel FPT Error 368 - BIOS Lock Asus/Other Mod BIOS Flash

#100

diderius6

I have CH341A. It shows OTG secured.
I even can not READ the Bios and this is my biggest problem, becaus if something went wrong I do not have a valid copy of Bios.
When I use FPTw.exe I get
Error 367: [FPTw.exe] cannot be run on the current platform.
Please contact your vendor.
I have XP SP3 32 bit,
Dietmar

#101

Lost_N_BIOS

Ohh, this BIOS is soldered on and not removable like old Asrock, sorry I missed that until now! Do you have SOIC8 test clip cable? If yes, use that instead of SPI Cables
For FPT you need to use a specific version for V11 ME FW, here is that package - ⇗ https://mega.nz/#!GRFHjQyY!OyVZDCdMQmWku...aSvA2vsQd51wxDI
Use FPT from inside Flash Programming Tool/Win32 folder, put your modbios into that folder and then from that WIN32 folder run your command prompt (Select that folder, hold shift and press right click, then select run command prompt here)
And to flash, following my guide, you will need these variables to unlock in GRUB >> (Never mind, checked and BIOS Lock is disabled by default, SMI Lock not present)
Flash away, but make backup first as mentioned in the guide! Use these commands to make there backups (one contains LAN MAC ID, other system details, then ME)
FPTw.exe -gbe -d gbe.bin
FPTw.exe -bios -d biosreg.bin
FPTw.exe -me -d me.bin
Then you can flash, using this command
FPTw.exe -bios -f modbiosfilenamehere.bin

#102

diderius6

⇗ @Lost_N_BIOS
I did all, that you tell.
Still
Error 367: [FPTw.exe] cannot be run on the current platform.
Please contact your vendor.
Can this version of FPTw.exe work on XP SP3?
Dietmar

#103

diderius6

I have Hexeditor WinHex and I can work with it.
In one of the tutorials is written,
that the Byte for the security check is at the very beginning.
This are my first 1024 (dec) bytes of my modded Bios file

    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5AA5F00F030004000802105A30033100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5009C24
    214260ADB7B9C4C7FFFFFFFF000000000002FF0F0300FF0101000200FF7F0000FF7F0000FF7F0000FF7F0000FF7F0000FF7F0000
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000FA000000D400000098000000000000001011000000000FFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00009000
    00010000000000000000000000000000000001000001000000000000000000000000000000000300000100000000000000000000
    00000000000001000001000000000000000000000000000000000100000100000000000000000000000000000000010000010000
    0000000000000000000000000000010002000000700000010302000064000000000000002A3F0000030000000C00000030000000
    0000000000000000440000000F5F000000005400000000000E00000000000000441F0000C117540000000000000000000F5F0000
    91F00AFFF7FCFCFC0000000000000000000000000008000000000000001800000000000000000000000000000018000000000000
    4700000080030000000000003B0090008000000012000010000064020000000000F4610919000000795555551F0100000307010A
    0002000009000F020000FF000F0000C86586000000000000040F000000004000F43294000018000000000000FFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00100000128011A095020000
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

#104

Lost_N_BIOS

Try the DOS version in that package instead of the win32 file, that will eliminate any possible XP issue (it may not be compatible with XP, I am not sure, so DOS version will fix that/
Here is DOS bootable guide I wrote for someone else for another issue, copy into USB again all files from "USB Boot" folder after you run the HP tool - ⇗ <Request> Flagship X470 Gaming 7 Wifi Motherboard BIOS Fix
Put DOS FPT and BIOS on root of USB too, then boot to dos and run those same commands except using FPT.exe instead of FPTw.exe
The guides do not apply to your BIOS, Asrock changed their protections, here is discussion about that and test fix on post #22
But you have to use FPT, so that needs to be solved first, which I think you are right XP maybe the issue there. For now, lets stick to what I mentioned, and try to get this done in DOS w/ FPT, or setup a quick Win7-Win10 system disk and install Intel ME drivers, then you can use Win32 FPT
⇗ [PROBLEM] Flashing a modded ASRock Z370 MB BIOS (2)

#105 | diderius6 | ⇗ @Lost_N_BIOS Just now I am setting up a win7 32bit OS on the asrock fatal1ty z370 gaming k6 board. First of all I want to make a full, valid copy of its now original Bios 3.1 version Dietmar

## Page 8

#106

Lost_N_BIOS

That will work, if you can't get DOS going. I gave two command to make backup for you in first FPT commands given, this backs up BIOS region and GBE, so you will have copies of LAN MAC ID and rest of system details usually in padding region within the BIOS region.
Rest you cannot backup easily, and do not need to (FD and ME), well maybe you can also backup ME if settings allow >> FPTw.exe -me -d me.bin
I will edit that into previous post too, so all three backup commands are there in one place for you.

#107

diderius6

⇗ @Lost_N_BIOS
Waaoh, all your steps in
"For FPT you need to use a specific version for V11 ME FW, here is that package - ⇗ https://mega.nz/#!GRFHjQyY!OyVZDCdMQmWku...aSvA2vsQd51wxDI
Use FPT from inside Flash Programming Tool/Win32 folder, put your modbios into that folder and then from that WIN32 folder run your command prompt (Select that folder, hold shift and press right click, then select run command prompt here)
And to flash, following my guide, you will need these variables to unlock in GRUB >> (Never mind, checked and BIOS Lock is disabled by default, SMI Lock not present)
Flash away, but make backup first as mentioned in the guide! Use these commands to make there backups (one contains LAN MAC ID, other system details, then ME)
FPTw.exe -gbe -d gbe.bin
FPTw.exe -bios -d biosreg.bin
FPTw.exe -me -d me.bin
Then you can flash, using this command
FPTw.exe -bios -f modbiosfilenamehere.bin "
work at once:))!
Bios is now flashed on asrock fatal1ty z370 gaming k6 to my modded XP acpi friendly version!
With win7 I can test this, using RW-everything,
that indeed I have now vers. 3.2 and my modded DSDT table.
Win7 starts with the modded Bios,
but install of XP gives BSOD 0xA5 because of missing
Acpi compatibilty.
Some more handwork for this Bios mod is needed,
but this is normal^^,
Dietmar

#108

diderius6

Still get BSOD 0xA5 not Acpi compatibel during install of XP.
XP without ACPI starts with this modded Bios.
I load the DSDT table here up,
one before mod DSDT
and one after mod DSDT2
I did all as for the giga board,
so at the moment I am out of ideas.
May be, that one of the methods here call also _ini
for example, different to the giga board
Dietmar

#109 | Lost_N_BIOS | Great you got it flashed finally! Sorry I can't help with rest of the issues you guys are way above my skill-set with this XP work you're doing! Keep those (BIOSreg and GbE) backups safe, in case you find later you need to correct/put back in your UUID, serial, or LAN MAC ID

#110

diderius6

Exact BSOD is

    0x000000A5 (0x00000011, 0x00000008, 0xF6D23200, 0x20181031)

Dietmar

#111 | diderius6 | Hi, does somebody know, how many cpu s are supported from XP SP3 professional? 8 cores for sure, but 16 cores too? Dietmar
#112 | Lost_N_BIOS | Luckily this is the correct thread to fix that A5 error

#113

XPLives

⇗ @diderius6
I am pretty certain it can support as many cores as possible as long as it resides in 1 CPU chip.
So if in the future Intel releases a 128 Core / 256 Thread CPU called the i128-128000K CPU socket LGA 2048 it will work with XP.
Only limit for XP Pro is Dual CPUs. But I haven't seen any consumer Dual socket CPU motherboards sold that could take advantage of it except workstation.
16 Cores would work for sure if it existed in Cannon Lake. Even some older X79 MB had CPUs with more cores running XP.
I think the only issue if ACPI is related to the HyperThreading you are experiencing and as a result you won't have the fake Logical Cores show only the Real Physical ones on the i9-9900K.
If a 16 Core / 32 Thread CPU was released today for Coffee Lake you will see the 16 Cores for sure in XP. The only problem would be no applications for XP are written specifically for using that many cores but the OS can still shift some of the processes to each core manually with Affinity so maybe a special program to shift processes to each individual core starting from last core sequence. I've seen the 6 Cores working but the first 2 cores usually has more CPU Usage then the rest. Only way to force all cores to 100% is to use Prime95. So if the Threads are not showing then it is probably an ACPI related issue. Maybe ask the motherboard manufacturer instead to do ACPI v1.0 selectable option in BIOS would be easier.

#114

diderius6

⇗ @XPLives
Thank you very much for answer.
My problem with the Asrock board is now,
that I can not flash one Bios version after the other without any risk,
as on the nice gigabyte board,
because when at one time the board from Asrock says nothing,
because of bricked Bios,
I have a big problem,
because I cant flash the Bios chip direct back via
CH341A, even the flasher supports the Bios chip MX25L12873F from the Asrock board,
Dietmar

#115

Lost_N_BIOS

⇗ @diderius6 - Chip can be flashed with CH341A, you only need SOIC8 test clip cable Or to flash in a modified BIOS that does not have the lock you mentioned.
Please explain that message in exact detail, and I will find in BIOS and see if I can disable that for you or give you command to use in grub to unlock it without a BIOS mod.
If I can, you'll only need to be sure to make same edit each time on your future BIOS flashes, so it remains unlocked or change after each future BIOS update via grub if that way works.
I'm betting we can fix this, so you don't need to purchase SOIC8 test clip cable, but I'd order one now anyway so you have for future use with your CH341A

#116 | diderius6 | The message stand on top of the side from flasher: Secured OTP[img]⇗ [/img] And even the yellow LED is blinking you even can not read from the chip Dietmar ⇗ http://www.macronix.com/Lists/Applicatio...ntroduction.pdf

#117

Lost_N_BIOS

⇗ @diderius6 - Do you have SPI/I2C/TTL mode jumper placed on your programmer, instead of direct programmer (Default position) Secured OTP area can only be written to once, you do not need to read or write to that area anyway. Select the other tab (Main memory) and dump or program BIOS.
If it fails to let you that way, then edit options to show only main memory only >> Operate >> Operate Option >> 25\26 Chips >> Programming Range (select Main Memory Only)

#118

diderius6

⇗ @Lost_N_BIOS
Thank you, I try.
I have another good news:
I noticed, that on the Asrock board
the DSDT table from Bios vers. 3.1
and DSDT table from Bios vers 3.2 are 100% identic.
So I can make all valuable tests with vers. 3.1 and in case of
emergeny flash back the original Bios vers. 3.2 as long as I can
start compi
Dietmar

#119 | Lost_N_BIOS | I'm sure it will work for you now, the programmer I mean. As for your BIOS table info, that is good find for you too, makes things easier

#120

diderius6

Hi,
for to make things easier for full Acpi support under XP,
I patch the calling function and
not the called function.
Example from the giga board Bios:

    calling function  _INI
    called function  ARPC:

                    Method (_INI, 0, NotSerialized)  // _INI: Initialize
                    {
                    ...
                       ARPC (NRPN, RefOf (PWRG), RefOf (RSTG), RefOf (SCLK))
                    ...
                    }

to

                   Method (_INI, 0, NotSerialized)  // _INI: Initialize
                    {
                    ...

                        If ((OSYS >= 0x07D6))
                        {
                            ARPC (NRPN, RefOf (PWRG), RefOf (RSTG), RefOf (SCLK))
                        }
                    ...
                    }

Dietmar

## Page 9

#121

diderius6

I still get BSOD 0xA5, no compatible ACPI, on my asrock fatal1ty z370 gaming k6 board.
May be, there are also other reasons, why this BSOD can happen,
even when no reserved word from Acpi 2.0 is offered to XP SP3.
I load here the original DSDT file and the modified DSDT2 file up,
may be, someone has a look on it
Dietmar

#122

XPLives

⇗ @diderius6
Are you doing a fresh XP OS install each time you test or using the old previous install?
If not then try a clean install. The ACPI seems finicky about tampering with any settings or using an old install after modding the BIOS.
What stage of install does the A5 error occur?
During DOS stage, GUI stage, or 1st Windows Desktop OOBE stage?

#123

diderius6

⇗ @XPLives,
yes, I always make a brandnew install of XP SP3.
And the BSOD 0xA5 appears always at the same place,
always the same message.
This "always the same message" makes me think,
that is something different than the reserved Acpi orders from Acpi 2.0.
Today I try to patch also the device IOTR, it is in the DSDT list
because ⇗ @Mov AX, 0xDEAD told about bug for XP in this device.
But I do not understand how to patch this, with
"I've patched this device to return empty list of resources Local0 = ResourceTemplate () { } return(Local0) and problem is gone"
Dietmar

#124

diderius6

⇗ @XPLives
Interesting idea to see, what other versions of windows,
Vista and win7 say to this Bios, before and after mod.
win7 has no problem, but tells in device manager,
that the ME cant be installed (teedriver.sys driver).
I think in win7 is also a list, where you can see, what happens during boot.
Via this way I think came Mov AX, 0xDEAD to the idea,
that something is wrong with device IOTR, not only in XP.
Vista I have not tested.
I try to disable device IOTR.
Something like this will give happyness:)),
meaning full Acpi support for XP on any mainboard
Dietmar
PS: The BSOD 0xA5 not compatible Bios happens always on first text mode install,
after the driver for ntfs is loaded.
EDIT: The problem with IOTR (PNP0C02) can also make the problem with the clock on XP!

#125

XPLives

⇗ @diderius6
Okay you are confirming Text Stage 1 or 2? It sounds like Text Stage 1 after Reboot?
Text Stage 1: Okay so A5 happens after it copies a few files quickly, Reboots, A5 Error?
Or
Text Stage 2:Copies a few files, Reboots,
Copies hundreds of files could take minutes, Reboots
then A5 Error?
Okay that is helpful. Then if it cannot be done in BIOS maybe make ACPI driver modified files to ignore it?
Did F7 method install successfully for XP?
Testing Z87 this weekend to see if ACPI is XP compatible.

#126 | diderius6 | The BSOD happens before first reboot. I can install everything from XP, using USB stick or CD without Acpi, hit F5 and chose MPS multiprocessor Dietmar
#127 | diderius6 | Next try, but still BSOD x0A5 on XP SP3 on Asrock fatal1ty z370 gaming k6 with 9900k cpu Dietmar
#128 | diderius6 | I change the 9900k cpu on the asrock fatal1ty z370 gaming k6 against Celeron G4900 with only 2 cores. Same BSOD 0xA5 Dietmar

#129

diderius6

⇗ @XPLives
"CPU Core Ratio from Auto to Manual setting of 8 for 800 MHz
Then Change CPU Cores from Auto to 1 for Single Core"
I did, but still BSOD 0xA5,
brrr..
Dietmar
PS: Tomorrow I set up a Windbg connection for Acpi debug with the debug checked build files for XP.
I never did this before, but because I think I do everything correct, exakt like on the giga board,
something other is disturbing XP doing full Acpi.

#130

diderius6

I just make a checke, if for example has influence on the build raw file from DSDT.
External (_SB_.PCI0.GFX0.IUEH, MethodObj) // 1 Arguments // From external reference file
As long as there is no warning from the compiler, all External are automatically linked.
I tested the builded binaries, one time with // From external reference file
and one time without.
They are to 100% identic.
So, no room is left for having done a mistake on the asrock board during patch of Acpi 2.0 reserved words,
something other is going on,
Dietmar

#131

diderius6

From Microsoft about BSOD 0xA5 (0x00000011,..)

    (0x000000011, Parameter2, Parameter3, Parameter4):

    The system cannot enter ACPI mode. There are many reasons for this, including:

        The system cannot initialize the AML interpreter.
        The system cannot find the Root System Description table.
        The system cannot allocate a critical driver.
        The system cannot load the Root System Description table.
        The system cannot load device descriptor blocks.
        The system cannot connect an interrupt vector.
        The SCI_EN (system control interrupt enable request) cannot be set (see 0x00000001).
        The ACPI Table checksum is incorrect.

    ACPI
     is a hierarchical arrangement of tables, each one building upon the
    next to define the complete capabilities of the system and of every
    device in the system. ACPI starts by looking for the Root System
    Description table, which points to the next table, which points to the
    next table, and so on. Usually, the 0x000000011 error occurs because
    these tables are damaged or missing.

#132

diderius6

Hi,
I can not install the checked version of acpi.sys for XP SP3 on the giga board,
it crashes.
This is really funny, the cat bites in its tail:)),
how can then Acpi debug for XP SP3 been made possible?
Dietmar

#133

diderius6

With the original free acpi.sys in Windbg with

    0: kd> !amli lc
    *Ctxt=ffffffff89c28000, ThID=ffffffff89c42a98, Flgs=A--C-----, pbOp=ffffffff89b91088, Obj=\_SB.PCI0._INI
    AMLI_DBGERR: SIG_CTXT does not match (89c28008)

Any idea, how and what can be seen this way?
Dietmar

#134

XPLives

⇗ @diderius6
Full extraction of binaries for ACPI from Z77 XP SP3 Compatible
Maybe some changes can be applied to Z370?

    OSI` ._OSI.
    Windows 2001.p.Ñ.OSYS ._OSI.
    Windows 2001 SP1.p.Ñ.OSYS ._OSI.
    Windows 2001 SP2.p.Ò.OSYS ._OSI.
    Windows 2001.1.p.Ó.OSYS ._OSI.
    ACPI 2.0 supported - April 13, 2001

    Windows 2006.p.Ö.OSYS ._OSI.
    ACPI 3.0 supported - Revision 3.0b,  October 10, 2006

    Windows 2009
    ACPI 4.0 supported -  June 16, 2009

Maybe this indicates ACPI v4.0 supported so no problems dealing with XP SP3.
Download Z77 XP Compatible ACPI Binaries to examine:
⇗ [GUIDE] Windows XP ACPI BSOD A5 Error (2)
Later ACPI v5.0+ started ACPI compatibility issues.
Revision 5.0, December 6, 2011
Revision 5.0a, November 13, 2013

#135

diderius6

Yes, this is what ⇗ @Mov AX, 0xDEAD told. The reserved Acpi2.0 word "ToInteger" appears
only in the _DSM method.
So this is necessary for Acpi support for XP SP3,
but may be not enough
Dietmar
Edit: In most cases the reserved word "ToInteger"
can be deleted, because the variable is of type integer.
Example from Bios of Asus z170-k

                    Switch (SDS7)
                        Case (One)

Same line Bios from gigabyte

    Switch (ToInteger (SDS7))
                            Case (One)

## Page 10

#136

diderius6

I make a new check for reserved words from Acpi >1.b
these are about (>) 20 reserved words which make BSOD for XP,
when they are in a parsed method or its connected parts. Until now I found in Bios only first 9 ones:

    TOINTEGER
    ConcatenateResTemplate
    CREATEQWORDFIELD
    TOBUFFER
    TOHEXSTRING
    TOSTRING
    TODECIMALSTRING
    COPYOBJECT
    QWORD

    CONCATENATETEMPLATE
    VARIABLEPACKAGE
    EXTERNAL
    MID
    MOD
    CONTINUE
    LOADTABLE
    TIMER
    DATAREGION
    FIELDCONNECTION
    FIELDEXTACCESS

Method (_DSM ) can be always ignored for XP. Also those Method(), which are never called.

#137

diderius6

Hi,
on the Gigabyte board this nice hack in DSDT works:
Replace all
`Switch (ToInteger (..))`
with
`Switch (..)`
This means: On the giga board the
ONLY commands from Acpi2.0
have to be patched are:
CreateQWordField
ConcatenateResTemplate
PS: The iasl compiler cries, that he does not know, if this is an Integer, but continues setting it to Integer,
without any error!

#138

diderius6

Here comes working DSDT table for XP SP3 32 bit, board gigabyte ga-h110m-s2h
with very small patches in DSDT2,
DSDT is original DSDT from F25 Bios.
diderius6 has attached files to this post

- ⇗ gigaXP.rar

#139

diderius6

For the first time I get an other BSOD^^ 0xA5 on Biosmod for the Asrock fatal1ty z370 gaming k6 board.
I think, I am only one step away for to have full Acpi support for XP SP3 on this board
Dietmar

    0x000000A5 (0x00000002, Parameter2, Parameter3, Parameter4):
    This error is defined as ACPI root PCI resource failure. To discover what
    current resources are being used by PCI devices, ACPI must be able to
    query the CRS descriptor in the ACPI namespace. This error occurs if the
     BIOS lacks a pointer to the list, or if the list is empty, or if the
    list contains errors or conflicts.

SOLVED with new acpi.sys. Use the DSDt2 table from connected file for to have full Acpi XP SP3 on Asrock fatal1ty z370 gaming k6 board.
diderius6 has attached files to this post

- ⇗ k6Z370XPSP3Acpi.rar

#140

diderius6

ACPI_BIOS_ERROR (0xA5)
The ACPI Bios in the system is not fully compliant with the ACPI specification.
The first value indicates where the incompatibility lies:
PARAMETERS
1 -
VALUES:
1 : ACPI_ROOT_RESOURCES_FAILURE.
ACPI cannot find the SCI Interrupt vector in the resources handed
to it when ACPI is started.
2 - ACPI's deviceExtension
3 - ACPI's ResourceList
4 -
VALUES:
0 : No resource list found
1 : No IRQ resource found in list
END_VALUES
2 : ACPI_ROOT_PCI_RESOURCE_FAILURE
ACPI could not process the resource list for the PCI root buses
2 - The ACPI Extension for the PCI bus.
3 -
VALUES:
0 : ACPI cannot convert the BIOS' resource list into the proper
format. This probably represents a flaw in the BIOS' list
encoding procedure.
4 - Pointer to the QUERY_RESOURCES irp
1 : ACPI cannot convert the BIOS' resource list into the proper
format. This probably represents a flaw in the BIOS' list
encoding procedure.
4 - Pointer to the QUERY_RESOURCE_REQUIREMENTS irp
2 : ACPI found an empty resource list.
4 - 0
3 : ACPI could not find the current bus number in the CRS.
4 - Pointer to the PNP CRS descriptor
Other : Any other value is a pointer to the Resource List for PCI.
This indicates that there is an overlap between the list of
resources that PCI claims to decode and the list of memory
regions reported by the E820 BIOS interface.
4 - Pointer to the E820 Memory Table
END_VALUES
3 : ACPI_FAILED_MUST_SUCCEED_METHOD
ACPI tried to run a control method while creating device extensions
to represent the ACPI namespace, but this control method failed.
2 - The ACPI Object that was being run
3 - return value from the interpreter
4 - Name of the control method (in ULONG format)
4 : ACPI_PRW_PACKAGE_EXPECTED_INTEGER
ACPI evaluated a _PRW and expected to find an integer as a
package element.
2 - The ACPI Extension for which the _PRW belongs to
3 - Pointer to the method
4 - The DataType returned (see amli.h)
5 : ACPI_PRW_PACKAGE_TOO_SMALL
ACPI evaluated a _PRW and the package that came back failed to
contain at least 2 elements. The ACPI specification requires that
two elements to always be present in a _PRW.
2 - The ACPI Extension for which the _PRW belongs to
3 - Pointer to the _PRW
4 - Number of elements in the _PRW
6 : ACPI_PRx_CANNOT_FIND_OBJECT
ACPI tried to find a named object named, but could not find it.
2 - The ACPI Extension for which the _PRx belongs to
3 - Pointer to the _PRx
4 - Pointer to the name of the object to look for
7 : ACPI_EXPECTED_BUFFER
ACPI evaluated a method and expected to receive a Buffer in return.
However, the method returned some other data type
2 - The ACPI Extension for which the method belongs to
3 - Pointer to the method
4 - The DataType returned (see amli.h)
8 : ACPI_EXPECTED_INTEGER
ACPI evaluated a method and expected to receive an Integer in return.
However, the method returned some other data type
2 - The ACPI Extension for which the method belongs to
3 - Pointer to the method
4 - The DataType returned (see amli.h)
9 : ACPI_EXPECTED_PACKAGE
ACPI evaluated a method and expected to receive a Package in return.
However, the method returned some other data type
2 - The ACPI Extension for which the method belongs to
3 - Pointer to the method
4 - The DataType returned (see amli.h)
0xA : ACPI_EXPECTED_STRING
ACPI evaluated a method and expected to receive a String in return.
However, the method returned some other data type
2 - The ACPI Extension for which the method belongs to
3 - Pointer to the method
4 - The DataType returned (see amli.h)
0xB : ACPI_EJD_CANNOT_FIND_OBJECT
ACPI cannot find the object referenced to by an _EJD string
2 - The ACPI Extension for which which the _EJD belongs to
3 - The status returned by the interpreter
4 - Name of the object ACPI is trying to find
0xC : ACPI_CLAIMS_BOGUS_DOCK_SUPPORT
ACPI provides faulty/insufficient information for dock support
2 - The ACPI Extension for which ACPI found a dock device
3 - Pointer to the _EJD method
4 -
VALUES:
0: Bios does not claim system is dockage
1: Duplicate device extensions for dock device
END_VALUES
0xD : ACPI_REQUIRED_METHOD_NOT_PRESENT
ACPI could not find a required method/object in the namespace
This is the bugcheck that is used if a vendor does not have an
_HID or _ADR present
2 - The ACPI Extension that ACPI needs the object for
3 - The (ULONG) name of the method ACPI looked for
4 -
VALUES:
0: Base Case
1: Conflict
END_VALUES
0xE : ACPI_POWER_NODE_REQUIRED_METHOD_NOT_PRESENT
ACPI could not find a requird method/object in the namespace for
a power resource (or entity other than a "device"). This is the
bugcheck used if a vendor does not have an _ON, _OFF, or _STA present
for a power resource
2 - The NS PowerResource that ACPI needs the object for
3 - The (ULONG) name of the method ACPI looked for
4 -
VALUES:
0: Base Case
END_VALUES
0xF : ACPI_PNP_RESOURCE_LIST_BUFFER_TOO_SMALL
ACPI could not parse the resource descriptor
2 - The current buffer that ACPI was parsing
3 - The buffer's tag
4 - The specified length of the buffer
0x10 : ACPI_CANNOT_MAP_SYSTEM_TO_DEVICE_STATES
ACPI could not map determine the system to device state mapping
correctly.
2 - The ACPI Extension for which ACPI is trying to do the mapping
3 -
VALUES:
0 : The _PRx mapped back to a non-supported S-state
4 - The DEVICE_POWER_STATE (ie: x+1)
1 : ACPI cannot find a D-state to associate with the S-state
4 - The SYSTEM_POWER_STATE that is causing the problem
2 : The device claims to be able to wake the system when the
system is in this S-state, but the system doesn't actually
support this S-state.
4 - The SYSTEM_POWER_STATE that is causing the problem
END_VALUES
0x11 : ACPI_SYSTEM_CANNOT_START_ACPI
The system could not enter ACPI mode
2 -
VALUES:
0 : System could not initialize AML interpreter
1 : System could not find RSDT
2 : System could not allocate critical driver structures
3 : System could not load RSDT
4 : System could not load DDBs
5 : System cannot connect Interrupt vector
6 : SCI_EN never becomes set in PM1 Control Register
7 : Table checksum is incorrect
3 - Pointer to the table that had a bad checksum
4 - Creator Revision
8 : Failed to load DDB
3 - Pointer to the table that ACPI failed to load
4 - Creator Revision
9 : Unsupported Firmware Version
3 - FADT Version
0xA : System could not find MADT
0xB : System could not find any valid Local SAPIC structures in
the MADT
0xC: The OS is not capable of supporting active docking on this platform
0xD: Some of the specified system sleep states are not supported on this platform
END_VALUES
0x14 : ACPI_PNP_RESOURCE_LIST_LENGTH_TOO_LARGE
ACPI could not parse the resource descriptor, the length exceeds
MAXULONG.
2 - The current buffer that ACPI was parsing
3 - The buffer's tag
4 - Pointer to a variable containing ULONGLONG length of the buffer
0x15 : ACPI_TABLE_LOADTABLE
ACPI had a fatal error when processing a LoadTable instruction
2 - AML Context (!amli r Context)
3 -
VALUES:
1 : Failed to load the table
2 : Parameter Path String Object was not found
3 : Failed to insert ParameterData into ParameterPathString
4 : Out of System Memory
END_VALUES
4 - NT status code
0x16 : ACPI_ILLEGAL_PARENT
ACPI had a fatal error when processing an xSDT. An object was
declared as a child of a parent that cannot have children.
2 - Pointer to the parent NSOBJ
3 - Pointer to the illegal child NSOBJ
0x17 : ACPI_INVALID_GPE_INDEX
ACPI had a fatal error when processing a GPE index. An invalid
index was specified.
2 - GPE Bit Index.
0x1000 : ACPI_BIOS_USING_OS_MEMORY
ACPI had a fatal error when processing a memory operation region.
The memory operation region tried to map memory that has been
allocated for OS usage.
2 - The high portion of the physical address of the memory region.
3 - The low portion of the physical address of the memory region.
4 - The length of memory being mapped.
0x2001 : ACPI_FAILED_PIC_METHOD
ACPI tried to evaluate the PIC control method but failed
2 - InterruptModel (Integer)
3 - return value from interpreter
4 - Pointer to the PIC control method
0x10001 : ACPI_CANNOT_ROUTE_INTERRUPTS
ACPI tried to do interrupt routing, but failed
2 - Pointer to the device object
3 - Pointer to the parent of the device object
4 - Pointer to the PRT
0x10002 : ACPI_PRT_CANNOT_FIND_LINK_NODE
ACPI could not find the link node referenced in a _PRT
(This code exists in Windows 2000, but is obsolete in XP)
2 - Pointer to the device object
3 - Pointer to the string name ACPI is looking for, but could not find.
4 - Pointer to the PRT. Dump this with !acpikd.nsobj
0x10003 : ACPI_PRT_CANNOT_FIND_DEVICE_ENTRY
ACPI could not find a mapping in the _PRT package for a device
(This code exists in Windows 2000, but is obsolete in XP)
2 - Pointer to the device object
3 - The Device ID / Function Number. This DWORD is encoded
as follows: Bits 5:0 are the PCI Device Number, Bits 8:6 are
the PCI function number.
4 - Pointer to the PRT. Dump this with !acpikd.nsobj
0x10005 : ACPI_PRT_HAS_INVALID_FUNCTION_NUMBERS
ACPI found an entry in the _PRT for which the function ID isn't
all F's. The generic format for a _PRT entry is that the device
number is specified, but the function number isn't. If it isn't
done this way, then the machine vendor can introduce dangerous
ambiguities.
(This code exists in Windows 2000, but is obsolete in XP)
2 - Pointer to the PRT object. Dump this with !acpikd.nsobj
3 - Pointer to the current PRT Element. This is an index into the PRT.
4 - The DeviceID/FunctionID of the element. This DWORD is
encoded. Bits 15:0 are the PCI Function Number.
Bits 31:16 are the PCI Device Number.
0x10006 : ACPI_LINK_NODE_CANNOT_BE_DISABLED
ACPI found a link node, but cannot disable it. Link nodes must
be disable to allow for reprogramming
2 - Pointer to the link node. This device is missing the _DIS method.
0x10007 :
The _PRT contained a reference to a vector not described in the
I/O APIC entries MAPIC table.
2 - The vector that couldn't be found
0x10008 :
The ACPI SCI interrupt level is invalid.
0x10009 :
The FADT could not be located.
0x1000a :
The RSDT\XSDT could not be located.
0x1000b :
The ACPI table length was out of sync with the table revision
2 - The ACPI table signature
3 - pointer to the ACPI table
0x1000c :
_DSM method for interrupts returned malformed data.
2 - Revision ID
3 - Function Index
0x1000d :
A device used both GPE and GPIO interrupts, which is not supported.
2 - The ACPI Extension for the device
3 -
VALUES:
0 : _PRW specified with no wake-capable interrupts and at least one
GPIO interrupt
1 : Since there are wake-capable interrupts, _PRW should specify a
GpeInfo value of 0xffffffff
0x20000 :
The PM_TMR_BLK entry in the Fixed ACPI Description Table doesn't
point to a working ACPI timer block.
2 - The I/O port in the Fixed Table
END_VALUES
DESCRIPTION
This bug check covers a great variety of ACPI problems. If a kernel debugger
is attached, use "!analyze -v". This command will analyze the precise problem,
and display whatever information is most useful for debugging the specific
error.
If Parameter 1 equals 0x02, the ACPI BIOS could not process the resource list for the PCI root buses. In this case, Parameter 3 specifies the exact problem, and the remaining parameters have the following definitions.
Parameter 2 Parameter 3 Parameter 4
The ACPI extension for the PCI bus A pointer to the resource list for PCI A pointer to the E820 memory table
Cause
The list of resources that PCI claims to decode overlaps with the list of memory regions that the E820 BIOS interface reports.
This kind of conflict is never permitted.

#141 | YuriyCN | Motheboard Gigabyte H110M-DS2 (socket 1151, DDR4) BIOS v1, v2, v3 - i installed WinXP SP3. There were no problems. It was only necessary to install AHCI driver for SATA hard disc drive. v20,v21...v25 - WinXP is not installed. Errors in ACPI.
#142 | diderius6 | ⇗ @YuriyCN Just look at my DSDT2 table in gigaXP.rar . I think, you can integrate it direct in your Bios v>=20 and BSOD for Acpi for XP SP3 is gone Dietmar

#143

diderius6

    Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
    Copyright (c) Microsoft Corporation. All rights reserved.

    Opened \\.\com1
    Waiting to reconnect...
    Connected to Windows XP 2600 x86 compatible target at (Sun Dec  9 23:58:56.687 2018 (UTC + 1:00)), ptr64 FALSE
    Kernel Debugger connection established.
    WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
    Symbol search path is: C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386;SRV*c:\symbols
    *⇗ http://msdl.microsoft.com/download/symbols
    Executable search path is: C:\localsymbols
    Windows XP Kernel Version 2600 MP (1 procs) Free x86 compatible
    Built by: 2600.xpsp.080413-2111
    Machine Name:
    Kernel base = 0x804d7000 PsLoadedModuleList = 0x8055d720
    System Uptime: not available
    WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
    Sun Dec  9 23:59:03.781 2018 (UTC + 1:00):
    *** Fatal System Error: 0x000000a5
                           (0x00000002,0x89A839D0,0xE134F008,0x898ADCA8)

    Sun Dec  9 23:59:03.796 2018 (UTC + 1:00): Break instruction exception - code 80000003 (first chance)

    A fatal system error has occurred.
    Debugger entered on first try; Bugcheck callbacks have not been invoked.

    A fatal system error has occurred.

    Connected to Windows XP 2600 x86 compatible target at (Sun Dec  9 23:59:03.984 2018 (UTC + 1:00)), ptr64 FALSE
    Loading Kernel Symbols
    .......................
    Loading User Symbols

    *******************************************************************************
    *                                                                             *
    *                        Bugcheck Analysis                                    *
    *                                                                             *
    *******************************************************************************

    Use !analyze -v to get detailed debugging information.

    BugCheck A5, {2, 89a839d0, e134f008, 898adca8}

    *** No owner thread found for resource 8055b4e0
    *** No owner thread found for resource 8055b4e0
    *** No owner thread found for resource 8055b4e0
    *** No owner thread found for resource 8055b4e0
    *** No owner thread found for resource 8055b4e0
    Probably caused by : ACPI.sys ( ACPI!ACPIRangeValidatePciResources+129 )

    Followup: MachineOwner
    ---------

    nt!RtlpBreakWithStatusInstruction:
    8052b5dc cc              int     3
    kd> !analyze -v
    *******************************************************************************
    *                                                                             *
    *                        Bugcheck Analysis                                    *
    *                                                                             *
    *******************************************************************************

    ACPI_BIOS_ERROR (a5)
    The ACPI Bios in the system is not fully compliant with the ACPI specification.
    The first value indicates where the incompatibility lies:
    This bug check covers a great variety of ACPI problems.  If a kernel debugger
    is attached, use "!analyze -v".  This command will analyze the precise problem,
    and display whatever information is most useful for debugging the specific
    error.
    Arguments:
    Arg1: 00000002, ACPI_ROOT_PCI_RESOURCE_FAILURE
    	ACPI could not process the resource list for the PCI root buses
    Arg2: 89a839d0, The ACPI Extension for the PCI bus.
    Arg3: e134f008,
    Arg4: 898adca8

    Debugging Details:
    ------------------

    *** No owner thread found for resource 8055b4e0
    *** No owner thread found for resource 8055b4e0
    *** No owner thread found for resource 8055b4e0
    *** No owner thread found for resource 8055b4e0
    *** No owner thread found for resource 8055b4e0

    ACPI_EXTENSION:  89a839d0 -- (!acpikd.acpiext 89a839d0)

    ACPI_RESCONFLICT:  e134f008 -- (!acpiresconflict e134f008 898adca8)
    Number of arguments found = 1. 2 arguments expected
    Usage: acpiresconflict  [DeviceExtension] [IoResList] [e820Info]

    DEFAULT_BUCKET_ID:  DRIVER_FAULT

    BUGCHECK_STR:  0xA5

    PROCESS_NAME:  System

    LOCK_ADDRESS:  8055b560 -- (!locks 8055b560)
    The state of the ACPI locks is:
      - Build Queue Lock is not owned
      - Button Lock is not owned
      - Device Tree Lock is not owned
      - Fatal Lock is not owned
      - Power Lock is not owned
      - Get Lock is not owned
      - Power Queue Lock is not owned
      - Thermal Lock is not owned
      - Update Flags Lock is not owned
      - Worker Lock is not owned

    PNP_TRIAGE:
    	Lock address  : 0x8055b560
    	Thread Count  : 1
    	Thread address: 0x89a677b0
    	Thread wait   : 0x56

    LAST_CONTROL_TRANSFER:  from 804f8df9 to 8052b5dc

    STACK_TEXT:
    bacc2cf8 804f8df9 00000003 bacc3054 00000000 nt!RtlpBreakWithStatusInstruction
    bacc2d44 804f99e4 00000003 e134f1d0 00000000 nt!KiBugCheckDebugBreak+0x19
    bacc3124 804f9f33 000000a5 00000002 89a839d0 nt!KeBugCheck2+0x574
    bacc3144 ba7870bb 000000a5 00000002 89a839d0 nt!KeBugCheckEx+0x1b
    bacc3184 ba7985a8 89a839d0 e134f008 89a52e38 ACPI!ACPIRangeValidatePciResources+0x129
    bacc31b8 ba77fe12 00000000 89a52e38 89a52ecc ACPI!ACPIBusIrpQueryResourceRequirements+0x110
    bacc31e8 804ef18f 899a91f8 ba79500c bacc3264 ACPI!ACPIDispatchIrp+0x15a
    bacc31f8 80592b63 bacc3264 bacc3294 00002000 nt!IopfCallDriver+0x31
    bacc3224 805933cc 899a91f8 bacc3240 bacc3294 nt!IopSynchronousCall+0xb7
    bacc3268 8058f1fc 899a91f8 bacc3294 8996c1d0 nt!PpIrpQueryResourceRequirements+0x38
    bacc328c 80591ce2 00000000 800001e4 00000000 nt!PiQueryResourceRequirements+0x1c
    bacc337c 8059222b 8996c1d0 00000000 00000000 nt!PipProcessNewDeviceNode+0x84a
    bacc35d0 804f68d3 89a52008 00000000 00000000 nt!PipProcessDevNodeTree+0x16b
    bacc3614 804f6b78 00000000 00000000 8008fca0 nt!PipDeviceActionWorker+0xad
    bacc362c 8069d0ee 00000000 00000006 00000000 nt!PipRequestDeviceAction+0x118
    bacc3690 80699f70 80084000 bacc36ac 00034000 nt!IopInitializeBootDrivers+0x376
    bacc3838 806983d3 80084000 00000000 89a677b0 nt!IoInitSystem+0x712
    bacc3dac 805cff64 80084000 00000000 00000000 nt!Phase1Initialization+0xac7
    bacc3ddc 805460de 8069790c 80084000 00000000 nt!PspSystemThreadStartup+0x34
    00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

    STACK_COMMAND:  kb

    FOLLOWUP_IP:
    ACPI!ACPIRangeValidatePciResources+129
    ba7870bb 56              push    esi

    SYMBOL_STACK_INDEX:  4

    SYMBOL_NAME:  ACPI!ACPIRangeValidatePciResources+129

    FOLLOWUP_NAME:  MachineOwner

    MODULE_NAME: ACPI

    IMAGE_NAME:  ACPI.sys

    DEBUG_FLR_IMAGE_TIMESTAMP:  480252b1

    FAILURE_BUCKET_ID:  0xA5_ACPI!ACPIRangeValidatePciResources+129

    BUCKET_ID:  0xA5_ACPI!ACPIRangeValidatePciResources+129

    Followup: MachineOwner
    ---------

    kd> !analyze -v
    *******************************************************************************
    *                                                                             *
    *                        Bugcheck Analysis                                    *
    *                                                                             *
    *******************************************************************************

    ACPI_BIOS_ERROR (a5)
    The ACPI Bios in the system is not fully compliant with the ACPI specification.
    The first value indicates where the incompatibility lies:
    This bug check covers a great variety of ACPI problems.  If a kernel debugger
    is attached, use "!analyze -v".  This command will analyze the precise problem,
    and display whatever information is most useful for debugging the specific
    error.
    Arguments:
    Arg1: 00000002, ACPI_ROOT_PCI_RESOURCE_FAILURE
    	ACPI could not process the resource list for the PCI root buses
    Arg2: 89a839d0, The ACPI Extension for the PCI bus.
    Arg3: e134f008,
    Arg4: 898adca8

    Debugging Details:
    ------------------

    *** No owner thread found for resource 8055b4e0
    *** No owner thread found for resource 8055b4e0
    *** No owner thread found for resource 8055b4e0
    *** No owner thread found for resource 8055b4e0
    *** No owner thread found for resource 8055b4e0

    ACPI_EXTENSION:  89a839d0 -- (!acpikd.acpiext 89a839d0)

    ACPI_RESCONFLICT:  e134f008 -- (!acpiresconflict e134f008 898adca8)
    Number of arguments found = 1. 2 arguments expected
    Usage: acpiresconflict  [DeviceExtension] [IoResList] [e820Info]

    DEFAULT_BUCKET_ID:  DRIVER_FAULT

    BUGCHECK_STR:  0xA5

    PROCESS_NAME:  System

    LOCK_ADDRESS:  8055b560 -- (!locks 8055b560)
    The state of the ACPI locks is:
      - Build Queue Lock is not owned
      - Button Lock is not owned
      - Device Tree Lock is not owned
      - Fatal Lock is not owned
      - Power Lock is not owned
      - Get Lock is not owned
      - Power Queue Lock is not owned
      - Thermal Lock is not owned
      - Update Flags Lock is not owned
      - Worker Lock is not owned

    PNP_TRIAGE:
    	Lock address  : 0x8055b560
    	Thread Count  : 1
    	Thread address: 0x89a677b0
    	Thread wait   : 0x56

    LAST_CONTROL_TRANSFER:  from 804f8df9 to 8052b5dc

    STACK_TEXT:
    bacc2cf8 804f8df9 00000003 bacc3054 00000000 nt!RtlpBreakWithStatusInstruction
    bacc2d44 804f99e4 00000003 e134f1d0 00000000 nt!KiBugCheckDebugBreak+0x19
    bacc3124 804f9f33 000000a5 00000002 89a839d0 nt!KeBugCheck2+0x574
    bacc3144 ba7870bb 000000a5 00000002 89a839d0 nt!KeBugCheckEx+0x1b
    bacc3184 ba7985a8 89a839d0 e134f008 89a52e38 ACPI!ACPIRangeValidatePciResources+0x129
    bacc31b8 ba77fe12 00000000 89a52e38 89a52ecc ACPI!ACPIBusIrpQueryResourceRequirements+0x110
    bacc31e8 804ef18f 899a91f8 ba79500c bacc3264 ACPI!ACPIDispatchIrp+0x15a
    bacc31f8 80592b63 bacc3264 bacc3294 00002000 nt!IopfCallDriver+0x31
    bacc3224 805933cc 899a91f8 bacc3240 bacc3294 nt!IopSynchronousCall+0xb7
    bacc3268 8058f1fc 899a91f8 bacc3294 8996c1d0 nt!PpIrpQueryResourceRequirements+0x38
    bacc328c 80591ce2 00000000 800001e4 00000000 nt!PiQueryResourceRequirements+0x1c
    bacc337c 8059222b 8996c1d0 00000000 00000000 nt!PipProcessNewDeviceNode+0x84a
    bacc35d0 804f68d3 89a52008 00000000 00000000 nt!PipProcessDevNodeTree+0x16b
    bacc3614 804f6b78 00000000 00000000 8008fca0 nt!PipDeviceActionWorker+0xad
    bacc362c 8069d0ee 00000000 00000006 00000000 nt!PipRequestDeviceAction+0x118
    bacc3690 80699f70 80084000 bacc36ac 00034000 nt!IopInitializeBootDrivers+0x376
    bacc3838 806983d3 80084000 00000000 89a677b0 nt!IoInitSystem+0x712
    bacc3dac 805cff64 80084000 00000000 00000000 nt!Phase1Initialization+0xac7
    bacc3ddc 805460de 8069790c 80084000 00000000 nt!PspSystemThreadStartup+0x34
    00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

    STACK_COMMAND:  kb

    FOLLOWUP_IP:
    ACPI!ACPIRangeValidatePciResources+129
    ba7870bb 56              push    esi

    SYMBOL_STACK_INDEX:  4

    SYMBOL_NAME:  ACPI!ACPIRangeValidatePciResources+129

    FOLLOWUP_NAME:  MachineOwner

    MODULE_NAME: ACPI

    IMAGE_NAME:  ACPI.sys

    DEBUG_FLR_IMAGE_TIMESTAMP:  480252b1

    FAILURE_BUCKET_ID:  0xA5_ACPI!ACPIRangeValidatePciResources+129

    BUCKET_ID:  0xA5_ACPI!ACPIRangeValidatePciResources+129

    Followup: MachineOwner
    ---------

    kd> !lm
    No export lm found
    kd> lm
    start    end        module name
    804d7000 806e4000   nt         (pdb symbols)          c:\symbols\ntkrpamp.pdb\7D6290E03E32455BB0E035E38816124F1\ntkrpamp.pdb
    806e4000 80704d00   hal        (deferred)
    ba3ba000 ba3d3b80   Mup        (deferred)
    ba3d4000 ba400980   NDIS       (deferred)
    ba401000 ba417880   KSecDD     (deferred)
    ba418000 ba43b180   Fastfat    (deferred)
    ba43c000 ba44df00   sr         (deferred)
    ba44e000 ba46db00   fltMgr     (deferred)
    ba46e000 ba723000   iaStor     (deferred)
    ba723000 ba748700   dmio       (deferred)
    ba749000 ba767880   ftdisk     (deferred)
    ba768000 ba778a80   pci        (deferred)
    ba779000 ba7a6d80   ACPI       (pdb symbols)          c:\symbols\acpi.pdb\3E23085EEF9C4EB5AC40C386278F6D7E1\acpi.pdb
    ba8a8000 ba8b1180   isapnp     (deferred)
    ba8b8000 ba8c2580   MountMgr   (deferred)
    ba8c8000 ba8d4c80   VolSnap    (deferred)
    ba8d8000 ba8e0e00   disk       (deferred)
    ba8e8000 ba8f4180   CLASSPNP   (deferred)
    bab28000 bab2e800   firadisk   (deferred)
    bab30000 bab34d00   PartMgr    (deferred)
    bacb8000 bacbb000   BOOTVID    (deferred)
    bada8000 bada9b80   kdcom      (deferred)
    badaa000 badab100   WMILIB     (deferred)
    badac000 badad700   dmload     (deferred)
    kd> !devnode
    Dumping IopRootDeviceNode (= 0x89a52008)
    DevNode 0x89a52008 for PDO 0x89a8a2c0
      Parent 0000000000   Sibling 0000000000   Child 0x89a52ba8
      InstancePath is "HTREE\ROOT\0"
      State = DeviceNodeStarted (0x308)
      Previous State = DeviceNodeEnumerateCompletion (0x30d)
      StateHistory[04] = DeviceNodeEnumerateCompletion (0x30d)
      StateHistory[03] = DeviceNodeStarted (0x308)
      StateHistory[02] = DeviceNodeEnumerateCompletion (0x30d)
      StateHistory[01] = DeviceNodeStarted (0x308)
      StateHistory[00] = DeviceNodeUninitialized (0x301)
      StateHistory[19] = Unknown State (0x0)
      StateHistory[18] = Unknown State (0x0)
      StateHistory[17] = Unknown State (0x0)
      StateHistory[16] = Unknown State (0x0)
      StateHistory[15] = Unknown State (0x0)
      StateHistory[14] = Unknown State (0x0)
      StateHistory[13] = Unknown State (0x0)
      StateHistory[12] = Unknown State (0x0)
      StateHistory[11] = Unknown State (0x0)
      StateHistory[10] = Unknown State (0x0)
      StateHistory[09] = Unknown State (0x0)
      StateHistory[08] = Unknown State (0x0)
      StateHistory[07] = Unknown State (0x0)
      StateHistory[06] = Unknown State (0x0)
      StateHistory[05] = Unknown State (0x0)
      Flags (0x00000131)  DNF_MADEUP, DNF_ENUMERATED,
                          DNF_IDS_QUERIED, DNF_NO_RESOURCE_REQUIRED

#144

diderius6

The BSOD on the asrock board with
ACPI_RESCONFLICT: e134f008 -- (!acpiresconflict e134f008 898adca8)
Number of arguments found = 1. 2 arguments expected
Usage: acpiresconflict [DeviceExtension] [IoResList] [e820Info]
remembers me at
"There is a critical error in the BIOS, in the ACPI setup under SSDT7.
I have taken the liberty to fix it on my machine, but I don't know where to report the bug, so here goes.
There are 3 big screwups on methods that require two arguments, being passed as a method with one argument and then a "hanging" argument. I am not sure how this was implemented, but it's total garbage.
For example \_SB.SGOV requires two arguments, but in positions where it SHOULD be invoked, \_SB.GGOV is invoked instead, and only takes ONE argument. So, instead of passing two arguments, one argument is given, and one argument is just hanging in the middle of nowhere, causing compilation errors in BIOS.
There are many instances of this behavior for example:
\_SB.GGOV (0x02010014)
OLDV
must be changed to:
\_SB.SGOV (0x02010014, OLDV)
⇗ https://rog.asus.com/forum/showthread.ph...at-I-have-fixed
Dietmar

#145

diderius6

Hi,
I installed the Acpi Bios 1704 for Asus Apex X motherboard,
modded by Elmor for XP
⇗ https://community.hwbot.org/topic/174849...#comment-516868
Then I installed there the full XP SP3 debug version. I can see on this z370 chipset now
all Acpi devices and HT with all cores from 8700k.
Elmor used another method for modding the Bios.
And I think, he also changed the about 7 SSDT tables,
which makes BSOD until now on my asrock fatal1ty z370 gaming k6 board
Dietmar
EDIT: The same problem with the timer appears on this Bios mod from Elmor.
This is interesting, seems my hack for the timer has not reached hwbot.
FACP Flags is A5 86 03 00 so, clock is set to 1, needs to be 0.
This can be done by changing this Hexvalues to A5 06 03 00
EDIT2: I can not find the FACP table in Bios on the Asus Apex X board. Any help is welcome.

#146

diderius6

    Windbg messages for Asrock 370 board. It seems, it is not a real Acpi problem.
    It seems, that there happens overlapping in memory. Any idea?

    kd> ACPI: E820 Entry 0 (type 1) (0-9c400) overlaps

    0: kd> !acpiresconflict e100da30 8a0cdb50
    acpiresconflict: Failed to initialize type acpi!_ACPI_BIOS_MULTI_NODE 1
    acpiresconflict: Failed to initialize type acpi!_ACPI_BIOS_MULTI_NODE 1
    acpiresconflict: Failed to initialize type acpi!_ACPI_BIOS_MULTI_NODE 1
    acpiresconflict: Failed to initialize type acpi!_ACPI_BIOS_MULTI_NODE 1
    acpiresconflict:
    acpiresconflict:  No PCI _CRS problems / conflicts were found

    typedef struct _ACPI_BIOS_MULTI_NODE {
        PHYSICAL_ADDRESS    RsdtAddress;    // 64-bit physical address of RSDT
        ULONGLONG           Count;
        ACPI_E820_ENTRY     E820Entry[1];
    } ACPI_BIOS_MULTI_NODE, *PACPI_BIOS_MULTI_NODE;

    0: kd> !RSDT
    RSDT - HEADER - ffffffffbbea5028
      Signature:               RSDT
      Length:                  0x00000078
      Revision:                0x01
      Checksum:                0xd2
      OEMID:                   ALASKA
      OEMTableID:              A M I
      OEMRevision:             0x01072009
      CreatorID:               MSFT
      CreatorRev:              0x00010013
    RSDT - BODY - ffffffffbbea504c
       @(000000007dfb3180) Rev: 000 Len: 00000000 TableID:
       @(000000007dfdc0b0) Rev: 000 Len: 00000000 TableID:
       @(000000007dfdc118) Rev: 000 Len: 00000000 TableID:
       @(000000007dfdc160) Rev: 000 Len: 00000000 TableID:
       @(000000007dfdc200) Rev: 000 Len: 00000000 TableID:
       @(000000007dfdc240) Rev: 000 Len: 00000000 TableID:
       @(000000007dfdc5e8) Rev: 000 Len: 00000000 TableID:
       @(000000007dfdf750) Rev: 000 Len: 00000000 TableID:
       @(000000007dfdf788) Rev: 000 Len: 00000000 TableID:
       @(000000007dfe0440) Rev: 000 Len: 00000000 TableID:
       @(000000007dfe0488) Rev: 000 Len: 00000000 TableID:
       @(000000007dfe1c38) Rev: 000 Len: 00000000 TableID:
       @(000000007dfe1f18) Rev: 000 Len: 00000000 TableID:
       @(000000007dfe1fb0) Rev: 000 Len: 00000000 TableID:
       @(000000007dfe20f8) Rev: 000 Len: 00000000 TableID:
       @(000000007dfe2610) Rev: 000 Len: 00000000 TableID:
       @(000000007dfe2900) Rev: 000 Len: 00000000 TableID:
       @(000000007dfe2938) Rev: 000 Len: 00000000 TableID:
       @(000000007dfe2990) Rev: 000 Len: 00000000 TableID:
       @(000000007dfe2a38) Rev: 000 Len: 00000000 TableID:
       @(000000007dfe2a70) Rev: 000 Len: 00000000 TableID:

#147

Mov AX, 0xDEAD

Hi,
Some info about bug with Acpi Timer on Skylake+ platforms:
- XP preSP2 uses TSC, not affected
- XP SP2,SP3 uses acpi timer, affected
- Vista search for HPET Timer and uses it, frequency is 14.31818 MHz (4 x freq of Acpi timer), not affected
- Vista uses acpi timer if didn't find HPET, affected
- Win7+ check quality of processor counter (TSC), skylake+ cpus have constant rate counter, so these OSes use TSC and not affected. Unlike XP, processor raw frequency divided to 1024, for example 3600Mhz/1024=3.579545Mhz (avoid arithmetic 32bit overflow in old-gen apps ?)
- If Win7+ forced to not use TSC (bcdedit.exe /set useplatformclock true), it search for HPET and uses it, not affected
- If Win7+ forced to not use TSC and didn't find HPET, it uses acpi timer, affected
Regarding acpi specs and intel specs on pch chipset, acpi timer generates hardware SCI interrupt (IRQ #9) if TMR_EN bit is SET. This bit is SETted on live system, but windows doesnt receive any interrupts. Near to TMR_EN exist PWRBTN_EN bit (generates SCI at power button press), and if we press button, windows receive interrupt (surprise!)
I came to the conclusion that this is a bug at the platform level. Maybe bios doesnt set some hardware regs or intel forget to say something about additional requirements, who knows....
EDIT: this is not platform bug, acpi timer just disabled in chipset by BIOS

#148

diderius6

⇗ @Mov AX, 0xDEAD
hi,
on hwbot.org they told,
that the z270 Asus Apex IX has from
beginning full XP Acpi support and also a board
from Gigabyte Z370X SOC Force LN2. The Asus z270 Apex IX board I will test in next days.
The board from gigabyte is not sold on the normal market, just for overclockers.
I wonder, if another table for example SSDT in Bios
has to do with the pm_timer.
And maximal unclear is for me, why I have no success with ACPI on my Asrock z370 board.
The bios DSDT table is nearly one by one like the Bios DSDT table from gigabyte H110M-S2H.
May be, another device is called, where until now I do not prevent it from reserved words from Acpi 2.0,
have a nice evening
Dietmar

#149

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #148

> @Mov AX, 0xDEAD
> I wonder, if another table for example SSDT in Bios
> has to do with the pm_timer.

acpi specs dont say anything about controling timer in acpi tables, timer is hardware level
OS can only:
1) route interrupt to itself(SCI mode) or to bios (SMI)
2) disable or enable interrupts
p.s. because win7+ use TSC and we all have "right" cpus, no need anymore to fix this buggy timer, just patch os/bios to avoid using it

#150

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #148

> And maximal unclear is for me, why I have no success with ACPI on my Asrock z370 board.
> The bios DSDT table is nearly one by one like the Bios DSDT table from gigabyte H110M-S2H.
> May be, another device is called, where until now I do not prevent it from reserved words from Acpi 2.0,

New syntax will generate A5(03,xxxx,С014001,yyyy) error, if you have other errcodes this not directed linked to new syntax
I dont know much more about res conflicts at acpi level, but acpi 2 has important difference comparing to 1.1b - Integer implemenation. All integers in acpi 2.0 are 64 bit, so we can define QWORD fields and read/write to it from integer variables. In WinXP integers are 32 bit and it support only one "64 bit" QWordMemory instruction and i dont understand how this OS set/read 64 bits fields inside this structure.

## Page 11

#151

diderius6

Windbg on the Asrock z370 tells always the same:

    0: kd> !pcitree
    PciFdoExtensionListHead forward pointer is NULL, list is empty
    0: kd> !pci
    PCI Segment 0 Bus 0
    00:0  8086:3e0f.08  Cmd[0006:.mb...]  Sts[2090:c....]  Intel Host Bridge  SubID:1849:3e0f
    02:0  8086:3e93.00  Cmd[0007:imb...]  Sts[0010:c....]  Intel VGA Compatible Controller  SubID:1849:3e93
    14:0  8086:a2af.00  Cmd[0006:.mb...]  Sts[0290:c....]  Intel Class:c:3:30  SubID:1849:a2af
    14:2  8086:a2b1.00  Cmd[0006:.mb...]  Sts[0010:c....]  Intel Other Signal Processing Controller  SubID:1849:a2b1
    16:0  8086:a2ba.00  Cmd[0004:..b...]  Sts[0010:c....]  Intel Other Communications Controller  SubID:1849:a2ba
    17:0  8086:a282.00  Cmd[0007:imb...]  Sts[02b0:c6...]  Intel Class:1:6:1  SubID:1849:a282
    1b:0  8086:a2e7.f0  Cmd[0007:imb...]  Sts[0010:c....]  Intel PCI-PCI Bridge 0->0x1-0x1
    1c:0  8086:a290.f0  Cmd[0007:imb...]  Sts[0010:c....]  Intel PCI-PCI Bridge 0->0x2-0x2
    1c:1  8086:a291.f0  Cmd[0007:imb...]  Sts[0010:c....]  Intel PCI-PCI Bridge 0->0x3-0x3
    1c:2  8086:a292.f0  Cmd[0007:imb...]  Sts[0010:c....]  Intel PCI-PCI Bridge 0->0x4-0x4
    1c:4  8086:a294.f0  Cmd[0007:imb...]  Sts[0010:c....]  Intel PCI-PCI Bridge 0->0x5-0x5
    1d:0  8086:a298.f0  Cmd[0007:imb...]  Sts[0010:c....]  Intel PCI-PCI Bridge 0->0x6-0x6
    1f:0  8086:a2c9.00  Cmd[0007:imb...]  Sts[0200:.....]  Intel ISA Bridge  SubID:1849:a2c9
    1f:2  8086:a2a1.00  Cmd[0006:.mb...]  Sts[0000:.....]  Intel Other Memory Controller  SubID:1849:a2a1
    1f:3  8086:a2f0.00  Cmd[0006:.mb...]  Sts[0010:c....]  Intel Class:4:3:0  SubID:1849:1221
    1f:4  8086:a2a3.00  Cmd[0003:im....]  Sts[0280:.....]  Intel SMBus Controller  SubID:1849:a2a3
    1f:6  8086:15b8.00  Cmd[0006:.mb...]  Sts[0010:c....]  Intel Ethernet Controller  SubID:1849:15b8

I think, the total absent of the pci list depends on

    Sat Dec 15 21:01:10.421 2018 (UTC + 1:00): ACPI: E820 Entry 0 (type 1) (0-9c400) overlaps
    ACPI: PCI  Entry 9 Min:10000 Max:1ffff Length:10000 Align:1

#152

diderius6

I just noticed,
that in the Bios mod 1704 for Asus Apex X from Elmor
you cant switch off the pm_timer.
Even in Bios it is set to A5 02 03 00,
the compi always use A5 82 03 00,
so at the moment no clock and no correct working
of Acpi in XP SP3 on Asus Apex X because of crazy not
working pm_timer.
In this case, only the HAL.dll hack for to use always the system clock works,
because in registry the value in FACP A5 02 03 00is always overwritten by Bios with A5 82 03 00,
even you set it to unwritable(!)
Dietmar
PS: I set the pm_timer to 32 bit in Bios. Also not helps. Any flag I can set in Bios from FACP,
only the pm_timer is unstoppable.

#153

Pill Monster

> Zitat von ⇗ diderius6 im Beitrag ¶ #152

> I just noticed,
> that in the Bios mod 1704 for Asus Apex X from Elmor
> you cant switch off the pm_timer.
> Even in Bios it is set to A5 02 03 00,
> the compi always use A5 82 03 00,
> so at the moment no clock and no correct working
> of Acpi in XP SP3 on Asus Apex X because of crazy not
> working pm_timer.
> In this case, only the HAL.dll hack for to use always the system clock works,
> because in registry the value in FACP A5 02 03 00is always overwritten by Bios with A5 82 03 00,
> even you set it to unwritable(!)
> Dietmar
> PS: I set the pm_timer to 32 bit in Bios. Also not helps. Any flag I can set in Bios from FACP,
> only the pm_timer is unstoppable.

Enabling HPET just allows it to be used by OS, it doesn't force the OS to use it. Use of HPET depends on OS version and boot loader options.
bcdedit /set useplatformclock yes Forces the use of the platform clock as the system's performance counter.
bcdedit /set disabledynamictick yes Forces the OS to use Dynamic TSC. (Windows 8 and above)...

#154

diderius6

[img]⇗ [/img]Hi,
I just installed XP SP1 :))
on the Asus Apex X motherboard.
Oh, the timer works there normal!
So, it depends on something in XP SP3
Dietmar

#155 | @rne | Nice to see progress. That would also be very helpful for all overclockers focusing on budget mainboards without any extra XP compatible bios from vendor

#156

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #154

> I just installed XP SP1 :))
> So, it depends on something in XP SP3

because sp1 can use TSC or old i8059 i8253 timer only

#157

diderius6

From Wikipedia:
If the ACPI is not set up correctly the OS cannot list the HPET. And the BIOS and OS developers don't see the need to get Real Time support. So the HPET is only there to satisfy the system's high speed needs. If the HPET is set up correctly in the ACPI from BIOS then the ACPI MMIO page of the first HPET chip should be at 0xFED00000 and the second HPET at page 0xFED80000 (see the discussion for further information).
In terms of physical embodiment in Windows XP SP3, the IRQ0 and IRQ8 are typically mapped to a "High Precision Event Timer" when using the ACPI HAL (version 5.1.2600.5512), albeit that the QueryPerformanceFrequency API call returns a value related to the rated processor clock speed (for example, 2.6 GHz) or PMTIMER (3.579545 MHz) rather than the Intel HPET spec'd value of 15 MHz that you would get using Windows Vista.
The ACPI timer is an additional system timer that is required as part of the ACPI specification. This timer is also
known as the power management (PM) timer or the chipset timer. It has a 24-bit counter that increments at
3.579545MHz (three times the PIT frequency).
The timer can be programmed to generate an interrupt when its high-order bit changes value.
There is no counter input register; the counter always rolls over.
That is, when the counter reaches the maximum, 24-bit binary value, it goes back to zero and continues counting from there.
I think, take a look at!
HPET in XP does not exist. In version XP SP >=2 it is the pm_timer,
as you can see in the MHZ values in the Win-timer
Dietmar

#158

diderius6

I found an interesting bit in
the 22 flags in FACP (beginning with rev. 5 of FACP):
HW_REDUCED_ACPI A one indicates that the ACPI Hardware Interface (chapter 4)
is not implemented. Software-only alternatives are used for
supported fixed-features defined in chapter 4.
5.1.1.1 Runtime Reduced Hardware Support
This feature automatically supports reduced hardware platforms without any code changes. The reduced hardware support is dynamically enabled via the HW_REDUCED_ACPI flag in the revision 5 FADT. If this flag is set, ACPICA will not attempt to initialize or use any of the usual ACPI hardware. Note, when this flag is set, all of the following ACPI hardware is assumed to be not present and is not initialized or accessed:
General Purpose Events (GPEs)
Fixed Events (PM1a/PM1b and PM Control)
Power Management Timer and Console Buttons (power/sleep)
Real-time Clock Alarm
Global Lock
System Control Interrupt (SCI)
The FACS is assumed to be non-existent
So, just a try on the Asrock z370 board, setting this flag to 1
Dietmar

#159

diderius6

Here comes the FACP table from asus Apex X with modded Bios from Elmor ,
extracted direct with iasl.exe.
rw-everything does not show these interesting bits in FLAGS. And write you can nearly nothing.

    /*
     * Intel ACPI Component Architecture
     * AML/ASL+ Disassembler version 20181031 (32-bit version)
     * Copyright (c) 2000 - 2018 Intel Corporation
     *
     * Disassembly of FACP.dat, Tue Dec 18 16:03:00 2018
     *
     * ACPI Data Table [FACP]
     *
     * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
     */

    [000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
    [004h 0004   4]                 Table Length : 00000084
    [008h 0008   1]                     Revision : 02
    [009h 0009   1]                     Checksum : EE
    [00Ah 0010   6]                       Oem ID : "ALASKA"
    [010h 0016   8]                 Oem Table ID : "A M I "
    [018h 0024   4]                 Oem Revision : 01072009
    [01Ch 0028   4]              Asl Compiler ID : "AMI "
    [020h 0032   4]        Asl Compiler Revision : 00010013

    [024h 0036   4]                 FACS Address : 8EB97EC0
    [028h 0040   4]                 DSDT Address : 8E7701E8
    [02Ch 0044   1]                        Model : 00
    [02Dh 0045   1]                   PM Profile : 01 [Desktop]
    [02Eh 0046   2]                SCI Interrupt : 0009
    [030h 0048   4]             SMI Command Port : 000000B2
    [034h 0052   1]            ACPI Enable Value : A0
    [035h 0053   1]           ACPI Disable Value : A1
    [036h 0054   1]               S4BIOS Command : 00
    [037h 0055   1]              P-State Control : 00
    [038h 0056   4]     PM1A Event Block Address : 00001800
    [03Ch 0060   4]     PM1B Event Block Address : 00000000
    [040h 0064   4]   PM1A Control Block Address : 00001804
    [044h 0068   4]   PM1B Control Block Address : 00000000
    [048h 0072   4]    PM2 Control Block Address : 00001850
    [04Ch 0076   4]       PM Timer Block Address : 00001808
    [050h 0080   4]           GPE0 Block Address : 00001880
    [054h 0084   4]           GPE1 Block Address : 00000000
    [058h 0088   1]       PM1 Event Block Length : 04
    [059h 0089   1]     PM1 Control Block Length : 02
    [05Ah 0090   1]     PM2 Control Block Length : 01
    [05Bh 0091   1]        PM Timer Block Length : 04
    [05Ch 0092   1]            GPE0 Block Length : 20
    [05Dh 0093   1]            GPE1 Block Length : 00
    [05Eh 0094   1]             GPE1 Base Offset : 10
    [05Fh 0095   1]                 _CST Support : 00
    [060h 0096   2]                   C2 Latency : 0065
    [062h 0098   2]                   C3 Latency : 0039
    [064h 0100   2]               CPU Cache Size : 0400
    [066h 0102   2]           Cache Flush Stride : 0010
    [068h 0104   1]            Duty Cycle Offset : 00
    [069h 0105   1]             Duty Cycle Width : 00
    [06Ah 0106   1]          RTC Day Alarm Index : 0D
    [06Bh 0107   1]        RTC Month Alarm Index : 00
    [06Ch 0108   1]            RTC Century Index : 32
    [06Dh 0109   2]   Boot Flags (decoded below) : 0012
                   Legacy Devices Supported (V2) : 0
                8042 Present on ports 60/64 (V2) : 1
                            VGA Not Present (V4) : 0
                          MSI Not Supported (V4) : 0
                    PCIe ASPM Not Supported (V4) : 1
                       CMOS RTC Not Present (V5) : 0
    [06Fh 0111   1]                     Reserved : 00
    [070h 0112   4]        Flags (decoded below) : 000394A5
          WBINVD instruction is operational (V1) : 1
                  WBINVD flushes all caches (V1) : 0
                        All CPUs support C1 (V1) : 1
                      C2 works on MP system (V1) : 0
                Control Method Power Button (V1) : 0
                Control Method Sleep Button (V1) : 1
            RTC wake not in fixed reg space (V1) : 0
                RTC can wake system from S4 (V1) : 1
                            32-bit PM Timer (V1) : 0
                          Docking Supported (V1) : 0
                   Reset Register Supported (V2) : 1
                                Sealed Case (V3) : 0
                        Headless - No Video (V3) : 1
            Use native instr after SLP_TYPx (V3) : 0
                  PCIEXP_WAK Bits Supported (V4) : 0
                         Use Platform Timer (V4) : 1
                   RTC_STS valid on S4 wake (V4) : 1
                    Remote Power-on capable (V4) : 1
                     Use APIC Cluster Model (V4) : 0
         Use APIC Physical Destination Mode (V4) : 0
                           Hardware Reduced (V5) : 0
                          Low Power S0 Idle (V5) : 0

    [074h 0116  12]               Reset Register : [Generic Address Structure]
    [074h 0116   1]                     Space ID : 01 [SystemIO]
    [075h 0117   1]                    Bit Width : 08
    [076h 0118   1]                   Bit Offset : 00
    [077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
    [078h 0120   8]                      Address : 0000000000000CF9

    [080h 0128   1]         Value to cause reset : 06
    [081h 0129   2]                     Reserved : 0000
    [083h 0131   1]                     Reserved : 00

    Raw Table Data: Length 132 (0x84)

        0000: 46 41 43 50 84 00 00 00 02 EE 41 4C 41 53 4B 41  // FACP......ALASKA
        0010: 41 20 4D 20 49 20 00 00 09 20 07 01 41 4D 49 20  // A M I ... ..AMI
        0020: 13 00 01 00 C0 7E B9 8E E8 01 77 8E 00 01 09 00  // .....~....w.....
        0030: B2 00 00 00 A0 A1 00 00 00 18 00 00 00 00 00 00  // ................
        0040: 04 18 00 00 00 00 00 00 50 18 00 00 08 18 00 00  // ........P.......
        0050: 80 18 00 00 00 00 00 00 04 02 01 04 20 00 10 00  // ............ ...
        0060: 65 00 39 00 00 04 10 00 00 00 0D 00 32 12 00 00  // e.9.........2...
        0070: A5 94 03 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
        0080: 06 00 00 00                                      // ....

#160

diderius6

I succeed to set this bit,
but the timer still does not work
Dietmar

    /*
     * Intel ACPI Component Architecture
     * AML/ASL+ Disassembler version 20181031 (32-bit version)
     * Copyright (c) 2000 - 2018 Intel Corporation
     *
     * Disassembly of FACP.dat, Tue Dec 18 17:06:14 2018
     *
     * ACPI Data Table [FACP]
     *
     * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
     */

    [000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
    [004h 0004   4]                 Table Length : 00000084
    [008h 0008   1]                     Revision : 02
    [009h 0009   1]                     Checksum : 8C
    [00Ah 0010   6]                       Oem ID : "ALASKA"
    [010h 0016   8]                 Oem Table ID : "A M I "
    [018h 0024   4]                 Oem Revision : 01072009
    [01Ch 0028   4]              Asl Compiler ID : "AMI "
    [020h 0032   4]        Asl Compiler Revision : 00010013

    [024h 0036   4]                 FACS Address : 8EB9AEC0
    [028h 0040   4]                 DSDT Address : 8E7731E8
    [02Ch 0044   1]                        Model : 00
    [02Dh 0045   1]                   PM Profile : 01 [Desktop]
    [02Eh 0046   2]                SCI Interrupt : 0009
    [030h 0048   4]             SMI Command Port : 000000B2
    [034h 0052   1]            ACPI Enable Value : A0
    [035h 0053   1]           ACPI Disable Value : A1
    [036h 0054   1]               S4BIOS Command : 00
    [037h 0055   1]              P-State Control : 00
    [038h 0056   4]     PM1A Event Block Address : 00001800
    [03Ch 0060   4]     PM1B Event Block Address : 00000000
    [040h 0064   4]   PM1A Control Block Address : 00001804
    [044h 0068   4]   PM1B Control Block Address : 00000000
    [048h 0072   4]    PM2 Control Block Address : 00001850
    [04Ch 0076   4]       PM Timer Block Address : 00001808
    [050h 0080   4]           GPE0 Block Address : 00001880
    [054h 0084   4]           GPE1 Block Address : 00000000
    [058h 0088   1]       PM1 Event Block Length : 04
    [059h 0089   1]     PM1 Control Block Length : 02
    [05Ah 0090   1]     PM2 Control Block Length : 01
    [05Bh 0091   1]        PM Timer Block Length : 04
    [05Ch 0092   1]            GPE0 Block Length : 20
    [05Dh 0093   1]            GPE1 Block Length : 00
    [05Eh 0094   1]             GPE1 Base Offset : 10
    [05Fh 0095   1]                 _CST Support : 00
    [060h 0096   2]                   C2 Latency : 0065
    [062h 0098   2]                   C3 Latency : 0039
    [064h 0100   2]               CPU Cache Size : 0400
    [066h 0102   2]           Cache Flush Stride : 0010
    [068h 0104   1]            Duty Cycle Offset : 00
    [069h 0105   1]             Duty Cycle Width : 00
    [06Ah 0106   1]          RTC Day Alarm Index : 0D
    [06Bh 0107   1]        RTC Month Alarm Index : 00
    [06Ch 0108   1]            RTC Century Index : 32
    [06Dh 0109   2]   Boot Flags (decoded below) : 0012
                   Legacy Devices Supported (V2) : 0
                8042 Present on ports 60/64 (V2) : 1
                            VGA Not Present (V4) : 0
                          MSI Not Supported (V4) : 0
                    PCIe ASPM Not Supported (V4) : 1
                       CMOS RTC Not Present (V5) : 0
    [06Fh 0111   1]                     Reserved : 00
    [070h 0112   4]        Flags (decoded below) : 001386A5
          WBINVD instruction is operational (V1) : 1
                  WBINVD flushes all caches (V1) : 0
                        All CPUs support C1 (V1) : 1
                      C2 works on MP system (V1) : 0
                Control Method Power Button (V1) : 0
                Control Method Sleep Button (V1) : 1
            RTC wake not in fixed reg space (V1) : 0
                RTC can wake system from S4 (V1) : 1
                            32-bit PM Timer (V1) : 0
                          Docking Supported (V1) : 1
                   Reset Register Supported (V2) : 1
                                Sealed Case (V3) : 0
                        Headless - No Video (V3) : 0
            Use native instr after SLP_TYPx (V3) : 0
                  PCIEXP_WAK Bits Supported (V4) : 0
                         Use Platform Timer (V4) : 1
                   RTC_STS valid on S4 wake (V4) : 1
                    Remote Power-on capable (V4) : 1
                     Use APIC Cluster Model (V4) : 0
         Use APIC Physical Destination Mode (V4) : 0
                           Hardware Reduced (V5) : 1
                          Low Power S0 Idle (V5) : 0

    [074h 0116  12]               Reset Register : [Generic Address Structure]
    [074h 0116   1]                     Space ID : 01 [SystemIO]
    [075h 0117   1]                    Bit Width : 08
    [076h 0118   1]                   Bit Offset : 00
    [077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
    [078h 0120   8]                      Address : 0000000000000CF9

    [080h 0128   1]         Value to cause reset : 06
    [081h 0129   2]                     Reserved : 0000
    [083h 0131   1]                     Reserved : 00

    Raw Table Data: Length 132 (0x84)

        0000: 46 41 43 50 84 00 00 00 02 8C 41 4C 41 53 4B 41  // FACP......ALASKA
        0010: 41 20 4D 20 49 20 00 00 09 20 07 01 41 4D 49 20  // A M I ... ..AMI
        0020: 13 00 01 00 C0 AE B9 8E E8 31 77 8E 00 01 09 00  // .........1w.....
        0030: B2 00 00 00 A0 A1 00 00 00 18 00 00 00 00 00 00  // ................
        0040: 04 18 00 00 00 00 00 00 50 18 00 00 08 18 00 00  // ........P.......
        0050: 80 18 00 00 00 00 00 00 04 02 01 04 20 00 10 00  // ............ ...
        0060: 65 00 39 00 00 04 10 00 00 00 0D 00 32 12 00 00  // e.9.........2...
        0070: A5 86 13 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
        0080: 06 00 00 00                                      // ....

#161 | diderius6 | Yessa, I succeed to hack hal.dll to use the RTC clock on XP SP3, now I have full ACPI support on the Asus Apex X board Dietmar diderius6 has attached images to this post ⇗ sp3cool.jpg

#162

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #161

> Yessa, I succeed to hack hal.dll to use the RTC clock
> on XP SP3, now I have full ACPI support on the Asus Apex X board
> Dietmar

can you upload your hal.dll mod for others to try?

#163

diderius6

Hi, I make a try.
I do not know, what Fernando tells about this.
But when my file will be deletet, I can write a short tutorial
how to reach this,
Dietmar
diderius6 has attached files to this post

- ⇗ HAL.rar

#164

diderius6

Yessa,
9900k works also
with full Acpi support in XP SP3,
showing and working 16 Threads on
Asus Apex X
Dietmar
diderius6 has attached images to this post ⇗ 9900kAcpiXPSP3.jpg

#165 | XPLives | That is good news. I was going to suggest octacore test since hexacore no problem. Asus Apex X is a Z370 board? Can this be back ported to Z170? Did you force ACPI to use software mode as default?

## Page 12

#166

diderius6

Hi, I look,
how to enable RTC clock in hal.dll.
The idea for this hack came from Mov AX, 0xDEAD
but there are a lot of different hal.dll on the market.
This one works for the german Version XP SP3 32 bit professional,
yes, the Apex board is z370,
Dietmar
PS: Not easy to port a working Acpi DSDT to another platform.
I have no success with my Asrock k6 board, even I try a lot.
Until now, it works only, when there is a previous version of a board,
which works with Acpi on XP. May be other places have to be changed also, not only DSDT, may be even not in the pure Bios region.

#167

XPLives

I successfully tested Haswell Z87 / Broadwell Z97 branch. No ACPI issues. Windows 2000, XP, and 2003 have no problems. This is the final generation before SkyLake started the ACPI issue in XP. Maybe the key is in Z97 and Z170 differences to fix ACPI for XP.
[16 Month time gap]
Z 97 - May 12, 2014 (XP ACPI compatible)
X 99 - August 2014 (Should be XP compatible with ACPI) <--- Future test maybe hidden ACPI secret only 1 year+ difference.
Z170 - September 1, 2015 (XP ACPI issues begin)

#168

diderius6

The most common problems for Acpi
are just the use of reserved words from Acpi 2.0.
At github they told, that Bios manufactures start with using
Acpi 2.0 reserved vocabularies from January 2006.
But I also think, that most mainboard (Bios?) manufactures
do not have a look for XP compability now.
So it is a very hard job,
to make anything work for XP
Dietmar
PS: When I look at all the different Bios z97 - z370 from different manufacturers,
I come to the idea, that they use an automated program
for building Bios, because they are all nearly identic.

#169 | XPLives | I discovered in Z87 and Z97 SATA IDE Compatibility Mode exists in BIOS but I will need to find a method to port this MOD to Z170, Z270, Z370, and Z390 chipsets. This will make XP SATA installation without the need of AHCI slipstream first method. Laptops could use this to install XP lacking an optical disc drive requirement. This will solve the headaches many are experiencing since USB installation on SkyLake+ can be problematic and fail. Do you have any expertise?

#170

diderius6

I make an XP.iso using nlite,
with ALL the ahci drivers from fernando.
So, this problem is gone for me.
On some boards there is an Asmedia driver for AHCI.
With this driver, IDE is possible.
But before you have to integrate this driver from Asmedia
Dietmar

#171

Mov AX, 0xDEAD

> Zitat von ⇗ XPLives im Beitrag ¶ #169

> This will make XP SATA installation without the need of AHCI slipstream first method. Laptops could use this to install XP lacking an optical disc drive requirement. This will solve the headaches many are experiencing since USB installation on SkyLake+ can be problematic and fail

maybe is it time to forget ancient methods and requirements ?
today no need prepare media for installing windows in "MS Way", we have modern&fast equalents to install xp (easy2boot, firadisk, winntsetup, yumi, ...). installing from usb3 disk, installing on ahci controller - no problem

#172

Mov AX, 0xDEAD

Moved to ¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware #4
There many unresolved problems running Windows XP x32 on sky/kaby/coffee lake hardware
my own list:
- ACPI BSOD:
.......... 0xA5 (0x03, X, 0xС0140001, Z) ACPI 2.0 syntax, 99% solved (custom acpi.sys), 1% - "QWordAcc" still 32bit only
.......... 0xA5 (0x02, X ,Y ,Z) error in ACPIRangeValidatePciResources, PCI vs E820 list conflict, solved (custom acpi.sys)
.......... 0xA5 (0x11, 0x08 ,Y ,Z) error in ACPIInitializeDDB, solved (custom acpi.sys)
.......... other possible BSODs, unresolved
- all integers in original ACPI 1.0 XP are 32 bits, ACPI 2.0 requires all ints to be 64 bits, unresolved. Acpi.sys from Longhorn v.5048 has 64 bit integers and compatible win Winxp
- Broken acpi pm_timer, solved (custom hal.dll, forced to use TSC counter) or enable hidden bios option "TCO Timer"
- Acpi tables patcher at boot time like Chameleon/Clover, solved,( ⇗ http://reboot.pro/topic/22051-acpi-patcher-at-boot-time)
- CPU in C0 power state 50-60% of time even without cpu load, solved (custom intelppm.sys, 1) only C1 c-state or 2) C1/С7s/C10 c-states)
- USB 3.x drivers for integrated intel chipsets, solved (patched AMD USB3 driver)
- Resource manager show conflict VGA card with ACPI IOTR/IOTraps device, solved 1) manual patching dsdt or 2) custom acpi.sys
- UEFI x64 Boot, partial solved for WinXP x64 only (bootmgr from vista beta+vesa vga driver)
- NVMExpress drivers, partial solved (modified OFA 1.3/1.5 driver+storport.sys from windows 2003)
- Access to additional 3TB+ Disks/GPT partitions, solved (Paragon GPT Loader)
- Boot from GPT partitions, unresolved (require uefi boot support first)
- TRIM support in NTFS/Storport/??? driver unresolved
- Kernel debug with WinDBG/KD over LAN/USB3.0 connection solved, (⇗ https://github.com/MovAX0xDEAD/KDNET)

#173 | diderius6 | "ACPI BSODs not related with acpi.2.0 syntax solved, using custom acpi.sys" hihi;).. may be because of some strange reasons XP thinks, the Bios is from earlier than 1999, Dietmar

#174

XPLives

Yes for desktop there is Asmedia but laptops typically have only one Intel SATA controller now so this will allow more users to install XP with only the Intel SATA port. Also because the Intel SATA in IDE Compatibility allows swapping of the drive from one machine to another. You cannot do this with different SATA AHCI setups. So once you've installed XP in IDE mode or SATA IDE mode you can move the installed XP OS to another machine which can be Z170, Z270, Z370, or Z390 and it will boot. No need to reinstall from scratch.
In addition Windows 2000 works and install this way much easier.
This is why it is needed for both laptops and desktops.
The code is in the BIOS but I need someone to help copy this from Z97 to Z170 BIOS for testing.

#175

XPLives

⇗ @Mov AX, 0xDEAD
Sometimes the ancient method works the best.
Intel xHCI USB 3.0 does not support XP. Many laptops do not have an optical disc drive or only a single SATA port and some only have 1 USB port such as tablets or maybe no USB ports or defective/bad USB ports.
Adding the SATA IDE Compatibility mode to the BIOS would allow them to install directly off their own internal storage drive and not need to use a USB port.
Any older OS that predates SATA might also install successfully using this method.
Windows 2000 can be easily installed aside from XP and 2003 in this manner. No more iaStor.sys is corrupted.
These USB methods have issues on some desktops/laptops and is not 100% guaranteed either which causes the chicken or the egg issue if they cannot install XP whereas SATA IDE Compatibility mode allows them to install 2K, XP, or 2003 in DOS before updating to the SATA AHCI driver post install via Device Manager / registry update. No optical or USB storage device will be necessary. Avoids the Intel USB 3.0 xHCI compatibility issue with certain XP boot devices failing to install to completion. Also unnecessary to waste a USB stick solely for installing the OS when it can be installed in DOS on the same storage drive if prepartitioned properly.
Installing from internal SATA SSD in DOS is many times faster than from any USB flash drive which can fail or have multiple steps which may cause user confusion/errors during the install process. No need to use nLite or slipstream the correct Hardware ID before hand. The USB install might also occupy the C: or Partition 1 during destination selection.
Guarantees the ability to move an existing Windows 2000, XP, and 2003 install from one machine to another without reinstalling from scratch in SATA AHCI Mode to use. I can swap an XP install from Pentium 1 to Z97 and works.
⇗ https://www.winhistory.de/more/386/xpmini.htm.en
No more BSOD 7B installation headaches since the BIOS will support both methods of booting XP. One could then use only 1 installed copy of XP to move among Z68-Z390 machines at will not restricted. This means installing 2000, XP, and 2003 onto one drive and storing all the OS files on the same drive and not ever needing 3 USB sticks or 3 separate CDs to deal with.
Using an XP NO ACPI install would method would then work on all systems regardless of ACPI issues.
Current XP ACPI fixes in Z170+ BIOSes still requires more technical experience to solve than a typical user will want to deal with.
End goal is more XP installs as a result of the simplification of the install process means more users interested in 2000, XP, and 2003 and older pre-SATA OS means more users visiting this site and further progression or interest in help tackling the ACPI issue. One day Intel USB 4.0 will arrive and the same USB installers will fail or the authors of these USB installers no longer care about XP. Most of these USB installer tools don't even work inside XP anymore and require Windows 7+ to create the USB install image. This BIOS Mod will work as a future safeguard/buffer while it is still possible and much more easily accomplished.

#176 | diderius6 | I also think, that XP install direct via CD is best Dietmar

#177

diderius6

I just noticed,
that the english version (for multiprocessor acpi)
of hal.dll and the german hal.dll in XP SP3 32 bit
are identic. Because of this,
my hack hal.dll works on any XP SP3,
just install XP, after this rename hal.dll in WINDOWS\System32 to halori.dll
and copy my hal.dll there,
now timer works correct,
Dietmar

#178

XPLives

Yes Dietmar only because it's more reliable and not dependent on the USB and cannot die unless SATA dies first. USB can change to 4.0, 5.0, and break compatibility again which will happen in the future.
I am working on a pure DOS install method for XP to avoid USB devices entirely and no optical disc drive needed just 98SE DOS and XP folder copied to the drive. But I am trying to find a way to create a native AHCI SATA detection similar to IDE mode but many attempts failed. But if I succeed then no more need to slipstream SATA as XP will autodetect SATA controller.
I think I need some program to read the SATA Controller Hardware ID and pass this and rewrite the hive so that when XP OS on SSD/HDD moved into a new system it will scan and alter the "registry" to change only the Hardware ID bits then it will load the OS with no problem. I don't have any registry hacking experience to do this but I have compared the Registry before Floppy installed slipstreamed SATA AHCI driver and after during the setup phase so I can do comparison of what bytes need to be changed. If you know of a program that can read the SATA Hardware ID each time and change these bits in the Registry it might be possible to make XP work on all SATA systems even during the install.

#179

diderius6

Hi,
much more easy is to build an XP.iso
using nlite 1.4.9.3 and add ALL ahci drivers
from Fernando.
I load it up here,
just integrate those drivers with nlite and build iso with nlite,
thats all
Dietmar
diderius6 has attached files to this post

- ⇗ AHCI32bit.rar

#180 | XPLives | That will only work for "known" SATA controllers but we need one that can work with even future unknown without modifying. Vista uses one that detects for all AHCI even unknown ones so can be moved to a different system. IDE does the same with the newer SATA controllers using IDE compatibility mode past 2001. I just need a tool to read this in DOS and inside preload of XP once installed to overwrite registry bits of the SATA Hardware ID location. It will do it at each boot up so it will always check and use the current one connected so as long as SATA is supported into the future this should work even when both of us are long gone. But your idea I have tested with a few chipsets inserted before but only can work for the XP installing phase but not after post SATA AHCI install you cannot move the XP install after installation to another chipset with SATA AHCI and boot. 7B will result each time.

## Page 13

#181

diderius6

May be,
all AHCI drivers are the same.
In this case, make try with generic number for AHCI in TXTSETUP.OEM

    [HardwareIds.SCSI.iaAHCI]
    id = "PCI\CC_010601","iaStor"

Dietmar

    TXTSETUP.OEM

    [Disks]
    disk0 = "AHCI Installation Disk", \iaAHCI.inf, \

    [Defaults]
    SCSI = iaStor

    [SCSI]
    iaStor = "AHCI Installation Disk", iaStor

    [Files.SCSI.iaAHCI]
    inf	= disk0, iaAHCI.inf
    driver	= disk0, iaStor.sys, iaStor

    [HardwareIds.SCSI.iaAHCI]
    id = "PCI\CC_010601","iaStor"

    [Config.iaStor]
    value = "", tag, REG_DWORD, 1b
    value = "", ErrorControl, REG_DWORD, 1
    value = "", Group, REG_SZ, "SCSI Miniport"
    value = "", Start, REG_DWORD, 0
    value = "", Type, REG_DWORD, 1

and add PCI\CC_010601 to iaAHCI.inf,
test, if you can delete all the other entries for example PCI\VEN_8086&DEV_A282&CC_0106
I am not sure about all syntax in TXTSETUP.OEM and *.inf
because of this some handwork is needed.

#182

Mov AX, 0xDEAD

> Zitat von ⇗ XPLives im Beitrag ¶ #175

> One day Intel USB 4.0 will arrive and the same USB installers will fail or the authors of these USB installers no longer care about XP.Most of these USB installer tools don't even work inside XP anymore and require Windows 7+ to create the USB install image

maybe is it time to check how work these installers ? they will still work with usb 4 and usb 5 too and still installing xp.

> Zitat von ⇗ XPLives im Beitrag ¶ #175

> https://www.win-raid.com/t4092f45-Guide-How-to-install-Windows-XP-OS-on-Modern-Hardware.html

#1 -- Internal SATA optical disc drive - CD, DVD, or Blu-ray
#2 -- CD-RW disc for nLite slipstreaming of the SATA AHCI driver into your XP burned install disc
#4 -- Desktop motherboard with a rear PS/2 physical port
#5 -- PS/2 keyboard
you are crazy, for installing window xp need nothing of these, why people buy that ?
p.s. want ide compatibilty bios mod on ahci-only hardware (skylake+)? good luck )

#183

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #181

> May be,
> all AHCI drivers are the same.
> In this case, make try with generic number for AHCI in TXTSETUP.OEM
> [HardwareIds.SCSI.iaAHCI]
> id = "PCI\CC_010601","iaStor"

pci\cc_010601(or pci\cc_0106) should work as uni solution, but probably only for intel chipsets because iastor.sys

#184

XPLives

⇗ @Mov AX, 0xDEAD
These optical drives have more uses than you can imagine. They buy it so they can play and rip their Blu-ray movies in XP. Not just for installing the OS.
Can be used to install any older OS the proper way not just XP, Vista, Windows 7, Windows 10 on pre USB systems with SATA only or IDE interface.
PS/2 keyboard - because it works on all Operating Systems and that is all you need to install every OS. You can even use a PS/2 to USB Keyboard adapter which works the same.
In my case I use a 5 Pin DIN to PS/2 to PS/2 port adapter with an old IBM AT keyboard. It doesn't matter if it is 5 PIN DIN or USB as long as it is connected to the PS/2 port.
No need to deal with USB ports not working with the USB mouse properly. This is especially true with using Windows 98 when the cursor cannot be controlled.
These tools should be needed for any user who is new to XP to complete it. It's more straightforward and if you can't afford these tools then maybe you should create your own thread page to help assist for a pure USB XP install method that you believe in so much. Write up the best installer program and version#, download link to that program that works inside Windows 98SE or 2000 and can create a USB XP installer from scratch to any USB device.
From what I have seen and tested most only work in Windows 7 or Windows 10 to use this program. The older XP versions might corrupt the USB flash drive in my own tests as I lost a 4GB flash drive that cannot be restored or worse accidentally corrupt another USB external drive that is still connected in my case a 2TB external USB drive. So if you can guarantee a fool proof USB XP Installer program that can work inside Windows 2000, XP, and 2003 and not need Vista, Windows 7, or 8.X, or 10 to generate the full USB XP OS installer I want you to write it up in a new thread with all the details so you can take credit for it. That way if any problems you can answer how to fix it since you have more experience dealing with USB installers than most of us. I found many problems which I listed above so this will be helpful if your statement is that strong on this you should create it.
Other USB problems:
How would you install XP onto a laptop missing USB ports or all defective?
How would you install XP on a SkyLake, Kaby Lake, or Coffee Lake Laptop or tablet with just 1 USB port that does NOT have USB 2.0 ports but only Intel USB 3.0 ports?
SATA IDE Compatibility mode:
Z87 and Z97 support this SATA IDE Compatibility mode. This is not the IDE 40 Pin controller on the motherboard. You are using SATA only ports and SATA storage devices.
I hope you understand this and if you do if you are saying it is not possible to transfer and copy the BIOS storage module from one generation over to Z170 BIOS to do a test then explain why it would not work or why not even try to see what happens? I can do the testing since I have two BIOS sockets to attempt any BIOS testing or if you can show how to transfer the Storage Module from one chipset to another I will attempt the testing.
Is it more than just the code that has been removed in SkyLake+?
Why does this still work on Z87 and Z97 and not in Z170 if you understand it well enough to explain in more detail than good luck response which isn't helpful?

#185

XPLives

Dietmar,
I have tried that method (cc_010601) in an earlier test a few weeks ago it does not work before I stopped because it is a "Compatible IDs".
Mov AX, 0xDEAD
( pci\cc_0106) should work as uni solution, but probably only for intel chipsets because iastor.sys
This method ( pci\cc_0106) I also tried this a few weeks ago before stopping the tests to emulate how Vista method works but also failed.
The reason is CC_0106 is not visible to XP because it is a "Compatible IDs" and the driver only sees "Hardware IDs" in XP during boot.
Since Hardware IDs are not common among all the Intel SATA Controllers you cannot do a global detection.
That is why Vista can do it natively since CC_106 exists on all Intel SATA controllers and Vista+ is programmed to accept "Compatible IDs" not just "Hardware IDs". If there is a way to brute force XP code to accept "Compatible IDs" for Boot storage device than this will work for all Intel SATA and can be made for all AMD SATA as well.

#186

Mov AX, 0xDEAD

> Zitat von ⇗ XPLives im Beitrag ¶ #184

> @Mov AX, 0xDEAD
> Is it more than just the code that has been removed in SkyLake+?
> Why does this still work on Z87 and Z97 and not in Z170 if you understand it well enough to explain in more detail than good luck response which isn't helpful?

Intel's PCH specification on 100+ series chipsets:
The PCH SATA controller support two modes of operation, AHCI mode using memory
space and RAID mode. The PCH SATA controller no longer supports IDE legacy mode
using I/O space. Therefore, AHCI software is required.
IviBridge/SandyBridge/etc:
Standard ATA Emulation
The PCH contains a set of registers that shadow the contents of the legacy IDE
registers. The behavior of the Command and Control Block registers, PIO, and DMA
data transfers, resets, and interrupts are all emulated.

#187

Mov AX, 0xDEAD

> Zitat von ⇗ XPLives im Beitrag ¶ #185

> This method ( pci\cc_0106) I also tried this a few weeks ago before stopping the tests to emulate how Vista method works but also failed.
> The reason is CC_0106 is not visible to XP because it is a "Compatible IDs" and the driver only sees "Hardware IDs" in XP during boot.
> Since Hardware IDs are not common among all the Intel SATA Controllers you cannot do a global detection.
> That is why Vista can do it natively since CC_106 exists on all Intel SATA controllers and Vista+ is programmed to accept "Compatible IDs" not just "Hardware IDs". If there is a way to brute force XP code to accept "Compatible IDs" for Boot storage device than this will work for all Intel SATA and can be made for all AMD SATA as well.

one of compatible id for intel works in xp without any hacks, my setup in TXTSETUP.SIF (windows xp sp1 32 bit):
[HardwareIdsDatabase]
PCI\VEN_8086&CC_0104 = "IaStor"
PCI\VEN_8086&CC_0106 = "IaStor"
tested on ivybridge and skylake, all works well, setup phase see all disks

#188

diderius6

I noticed,
when you set in Bios, Acpi FACP table flag
HARDWARE_REDUCED_ACPI to 1 (enable)
Win 10 64 bit cries on next start: Problems with Acpi..
So this simple means, Win 10 is more prickly
with Acpi than XP, brrr..
Dietmar
Edit: When I set back this flag to 0,
all is ok and Win 10 starts normal with the modded Bios
from Elmor. So I have XP 32 bit with full Acpi (16 threads), sound, USB 3.1 via Asmedia, booting from Samsung 970 pro nvme.
And Win 10 64 bit on the same compi with 9900k cpu.
3d mark 2001 is more than 25 % faster on XP than on win10^^.
Prime95 shows on XP with 16 threads after 20 min 54 degrees max Temperature
and on Win10 55 degrees. Hm, for what I need win10?!

#189

XPLives

⇗ @Mov AX, 0xDEAD
Where are you placing your TXTSETUP.SIF? Are you using this only for new XP setup?
I have a similar one for installing Z68, Z170, Z370. This only could be used for installing XP onto one machine but not migrate.
After XP is installed in SATA AHCI on SkyLake you then move the hard drive / SSD to the Ivy Bridge computer and try booting in SATA AHCI mode it should do BSOD 7B or a Reboot Loop.
Try testing that and you will find it does not do universal SATA AHCI detection moving the drive with XP already installed one one system with a different chipset.
That is why IDE or SATA IDE Mode will work between multiple chipsets without a problem.

#190 | XPLives | Dietmar, Hmmm... I wonder if Windows 10's newer updates causing it? Try installing the first Windows 10 release? Anniversary and later versions known to break compatibility with older programs. Spectre and Meltdown patch also. My SkyLake worked with Windows 10 Anniversary Edition with ACPI, with XP - NO ACPI, Vista, and Windows 7 with ACPI.

#191

Mov AX, 0xDEAD

> Zitat von ⇗ XPLives im Beitrag ¶ #189

> This only could be used for installing XP onto one machine but not migrate.
> After XP is installed in SATA AHCI on SkyLake you then move the hard drive / SSD to the Ivy Bridge computer and try booting in SATA AHCI mode it should do BSOD 7B or a Reboot Loop.

why you need install first on skylake and then copy on ivy ? why not install on ivy natively ?
there are too many diff chipsets (non-intel including), where os will get bsod

#192

Mov AX, 0xDEAD

> Zitat von ⇗ XPLives im Beitrag ¶ #189

> @Mov AX, 0xDEAD
> Where are you placing your TXTSETUP.SIF? Are you using this only for new XP setup?

for texmode setup phase
for gui phase need usual *.inf

#193

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #188

> 3d mark 2001 is more than 25 % faster on XP than on win10^^.

try post 2001 games, more fps in vista+, starcraft 2, dishonored...

#194

diderius6

⇗ @Mov AX, 0xDEAD
"boot acpi table patcher like chameleon&clover"
I heard some times ago about a tool for XP,
for to test Acpi compability for new Bios.
This would be really nice, to have a test tool for Acpi compability XP,
like Qemu,
Dietmar
PS: Interesting would be, if DSDT alone makes or destroys Acpi compability in XP.
I come to the idea, because I found in DSDT for the Apex IX board an extra entry,
when I compare it with the nearly identic DSDT table for the Asrock k6 board.

Apex IX

                Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
                {
                    Local0 = GPCL ()
                    If ((OSYS >= 0x07D9))
                    {
                        CreateWordField (BUF0, \_SB.PCI0._Y00._MAX, PBMX)  // _MAX: Maximum Base Address
                        PBMX = ((Local0 >> 0x14) - 0x02)
                        CreateWordField (BUF0, \_SB.PCI0._Y00._LEN, PBLN)  // _LEN: Length
                        PBLN = ((Local0 >> 0x14) - One)
                    }
                    Else
                    {
                        CreateWordField (XBUF, \_SB.PCI0._Y01._MAX, PBM2)  // _MAX: Maximum Base Address
                        PBM2 = ((Local0 >> 0x14) - 0x02)
                        CreateWordField (XBUF, \_SB.PCI0._Y01._LEN, PBL2)  // _LEN: Length
                        PBL2 = ((Local0 >> 0x14) - One)
                    }

Asrock k6

                Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
                {
                    Local0 = GPCL ()
                    CreateWordField (BUF0, \_SB.PCI0._Y00._MAX, PBMX)  // _MAX: Maximum Base Address
                    PBMX = ((Local0 >> 0x14) - 0x02)
                    CreateWordField (BUF0, \_SB.PCI0._Y00._LEN, PBLN)  // _LEN: Length
                    PBLN = ((Local0 >> 0x14) - One)

#195

diderius6

I tried to generate an XP friendly DSDT table,
with the disassembler command from a version of iasl from 2012.
iasl -2 -d 320.raw
But then I get a strange message
"Could not parse ACPI tables, AE_ALREADY_EXISTS"
This looks, if there is the belonging *.dsl file,
but it isnt
Dietmar

## Page 14

#196

diderius6

Boottime is 5 sec
for XP SP3 on Asus Apex X
have a nice day
Dietmar
PS: I install XP direct from CD to the nvme disk:))!
diderius6 has attached images to this post ⇗ XPSP3Acpiboot970pro.jpg

#197

Mov AX, 0xDEAD

> Zitat

> CPU in C0 power state 50-60% of time even without cpu load, unresolved

I think because cpu0cst acpi table declare only MWAIT way to halt processor, old HLT doesnt work
If i disable mwait cpu's support in bios, even win7 cannot enter c1+ states

#198 | diderius6 | Interesting would be also, if it is possible to build an generic DSDT table for XP SP3, with minimal entries, Dietmar

#199

Mov AX, 0xDEAD

i've played with win8 and power states:
cpu C1 - works
acpi C2 - broken
acpi C3 - broken
cpu MWAIT - works (enter only C7s and C10)
seems _CST/_OSC/xxx tables contain only mwait correct states, remains are broken.
p.s. very simple implementation of mwait in Haiku OS:

    int dummy;
    monitor(&dummy, 0, 0);
    mwait(sCStates[state].fCode | subState, MWAIT_INTERRUPTS_BREAK);

where "state" is selected from C1 to C10

#200

Mov AX, 0xDEAD

> Zitat

> CPU in C0 power state 50-60% of time even without cpu load, unresolved

Resolved, now C0 is about zero
Solution: forced to use C1 idle state only, need custom intelppm.sys
⇗

#201

diderius6

⇗ @Mov AX, 0xDEAD
I read from Acpi specification,
that only C0 and C1 have to be implemented.
Have you tried to change energy-options in XP and look what happens?
Some time ago I hear, that when you chose there "laptop",
that XP installed less devices via Acpi.
Still I am looking for a minimal DSDT for XP.
Is it enough, to change all Acpi tables from one XP-Acpi friendly bios Bios to another Acpi unfriendly Bios?
The most important question for the beginning is, where stays all the information about numerating
and setting the PCI devices, that are called via acpi. And what is the minimal list for those Acpi-pci devices.
Will this work? May be yes, because without any Acpi this tables are ignored.
Dietmar
PS: Here are the installations files for nvme.
Integrate them in XP installations CD via nlite.
After txt setup you have to copy storport.sys to windows\system32\drivers,
because you will see BSOD 0x7B, because XP does not copy this file for strange reasons during
install.
Until now, I do not see anyone, who succeed with this in XP SP3 32 bit, only me.
But it works!
You also can install them via *.inf on running XP, dont forget to copy storport.sys to windows\system32\drivers
and at once you will see your nvme disk, no matter what brand.
diderius6 has attached files to this post

- ⇗ nvme.rar

#202

diderius6

Hi,
I just noticed, that acpi.sys in XP posready 2009
is 5.2.3790.1830, which means win2003 version.
There are big differences between XP and win2003 in Acpi,
for example win2003 does not look at the registry for the Acpi tables
but XP does
Dietmar
EDIT: Install of XP posready 2009 on the Asrock k6 board gives
the same BSOD 0xA5 on the modded Bios, like real XP SP3.
So, something is not ok with the Acpi tables in settings PCI resources
in my modded DSDT table.

#203

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #201

> @Mov AX, 0xDEAD
> I read from Acpi specification,
> that only C0 and C1 have to be implemented.
> Have you tried to change energy-options in XP and look what happens?
> Some time ago I hear, that when you chose there "laptop", that XP installed less devices via Acpi.

C2&C3 also implemented
c1 is two cpu instructions "sti then halt", с2, с3 is external acpi controlled logic.
energy options affect speedshift/c1e, so cpu will down clock or not, i dont see any other changes
p.s. again, we have broken acpi hardware/bios support in skylake+

#204

Mov AX, 0xDEAD

i've played with 2nd variant, cpu and package enter more deeper states then c1:
C1->C1
broken acpi C2->mwait C7s
broken acpi C3->mwait C10
⇗
Now power states transitions look like win7+ )

#205

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #202

> Hi,
> I just noticed, that acpi.sys in XP posready 2009
> is 5.2.3790.1830, which means win2003 version.
> There are big differences between XP and win2003 in Acpi,
> for example win2003 does not look at the registry for the Acpi tables
> but XP does

it is still acpi 1.1b implemenation and 32 bit integers, no big diff for me

#206 | diderius6 | I just noticed, that the driver on the posready 2009 CD acpi.sys is 5.2.3790.1830 which is really different but after install it shows, that it is changed to 100% to the acpi.sys driver from XP SP3 5.1.2600.5512 Dietmar

#207

diderius6

Hi,
I extracted all 23 (!) Acpi tables via rw-everything from the XP-friendly Bios
from Elmor from the Asus Apex X motherboard.
The same I will do for the Acpi tables from the asrock fatal1ty z370 gaming k6 board.
First then I make a short compare with each other.
After this I replace one by one of the tables from the Apex board to the Bios of the Asrock
via Uefi tool.
Dont know, if this has a chance to work for XP Acpi on the Asrock board,
Dietmar

#208

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #207

> Hi,
> I extracted all 23 (!) Acpi tables via rw-everything from the XP-friendly Bios
> from Elmor from the Asus Apex X motherboard.

I saw this bios, it is unusual, for diff OSes it create diff resource templates (XBUF vs BUF0) and rename fields, for winxp it select template without QWORDmemory region

#209 | Mov AX, 0xDEAD | Dietmar, can you check c-states statistics on your cpu/mb combination ? p.s. i only know "throttlestop utility" to display such info

#210

diderius6

I think, the change of all the Acpi tables on the Asrock board
is not a good idea. 23 tables for Asus Apex and 26 tables for Asrock.
Because there is no flash back, you can desolder the chip,
when something goes wrong.
Desoldering would be not a problem,
I have this Bios chip here in fresh.
But I do not succeed to make an backup from all content of this Bios chip from Asrock
Dietmar
PS: I try "throttlestop utility" on the Apex X xp-friendly board.

## Page 15

#211

diderius6

I do not find a working version of throttlestop for 9900k under XP.
The last version 8.4.8.0, which works for XP, shows: cpu not supported
Dietmar
EDIT: I found vers. 8.505.
The exe file I copied to folder of version 8.7
and voila, works:)).
diderius6 has attached images to this post ⇗ throttle1.jpg ⇗ throttle2.jpg

#212

diderius6

I try a new way:)).
The error message from Windbg told,
that there is a ressource conflict between
PCI list via Acpi (somewhere in CRS_) and the list in Bios (without any acpi?) E820.
Small hack in acpi.sys using Ida pro looking for the string "ACPIRangeValidatePciResources"
and when it is not a real conflict, then this is all
Dietmar

#213

diderius6

E820 from Apex board

    Range       Address             Length          Type
    0	0000000000000000  000000000009C400  1:Available
    1	000000000009C400  0000000000003C00  2:Reserved
    2	00000000000E0000  0000000000020000  2:Reserved
    3	0000000000100000  000000008004E000  1:Available
    4	000000008014E000  0000000000001000  4:ACPI NVS
    5	000000008014F000  0000000000001000  2:Reserved
    6	0000000080150000  000000000CCF8000  1:Available
    7	000000008CE48000  00000000018EA000  2:Reserved
    8	000000008E732000  0000000000043000  3:ACPI Reclaim
    9	000000008E775000  00000000003F2000  4:ACPI NVS
    10	000000008EB67000  0000000000C3B000  2:Reserved
    11	000000008F7A2000  000000000005E000  1:Available
    12	0000000100000000  000000076F000000  1:Available
    13	000000008F800000  0000000000800000  2:Reserved
    14	00000000E0000000  0000000010000000  2:Reserved
    15	00000000FE000000  0000000000011000  2:Reserved
    16	00000000FEC00000  0000000000001000  2:Reserved
    17	00000000FED00000  0000000000001000  2:Reserved
    18	00000000FEE00000  0000000000001000  2:Reserved
    19	00000000FF000000  0000000001000000  2:Reserved

E820 from the asrock board

     Range       Address             Length          Type
    0	0000000000000000  000000000009C400  1:Available
    1	000000000009C400  0000000000003C00  2:Reserved
    2	00000000000E0000  0000000000020000  2:Reserved
    3	0000000000100000  0000000076873000  1:Available
    4	0000000076973000  0000000000001000  4:ACPI NVS
    5	0000000076974000  0000000000001000  2:Reserved
    6	0000000076975000  0000000005AEF000  1:Available
    7	000000007C464000  0000000001A1A000  2:Reserved
    8	000000007DE7E000  0000000000132000  1:Available
    9	000000007DFB0000  00000000003D5000  4:ACPI NVS
    10	000000007E385000  0000000000C79000  2:Reserved
    11	000000007EFFE000  0000000000001000  1:Available
    12	0000000100000000  000000076F000000  1:Available
    13	000000007EFFF000  0000000011001000  2:Reserved
    14	00000000E0000000  0000000010000000  2:Reserved
    15	00000000FE000000  0000000000011000  2:Reserved
    16	00000000FEC00000  0000000000001000  2:Reserved
    17	00000000FED00000  0000000000001000  2:Reserved
    18	00000000FEE00000  0000000000001000  2:Reserved
    19	00000000FF000000  0000000001000000  2:Reserved

    Error on Asrock board at 89a839d0, The ACPI Extension for the PCI bus, Pointer to E820 list

    Fatal System Error: 0x000000a5
    (0x00000002,0x89A839D0,0xE134F008,0x898ADCA8)

#214

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #211

> I do not find a working version of throttlestop for 9900k under XP.
> and voila, works:)).

"works by default"
very interesting why on gigabyte h110 acpi c2&c3 is broken in any OS

#215

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #212

> Small hack in acpi.sys using Ida pro looking for the string "ACPIRangeValidatePciResources"
> and when it is not a real conflict, then this is all

yes , it is possible, but better to step debug all ACPIRangeValidatePciResources, proc in not big
hint: probably cmp al,1 - compare by resource type, 2 - irq 3 - mem 1 - i/o port
E820 is just list of mem regions free/reserved, i dont understand how this list linked to pci mem resources or acpi mem resources
e820 reported by bios int15 to windows loader
acpi mem resources reported by enumeratung all devices in acpi code and call "_crs" to each
pci mem resources reported by enumerating all devices on pci bus (but only if driver loaded and device enabled i think)

#216

diderius6

I think, if a region in the list of e820 is marked as reserved
and Acpi wants to put a pci device there,
exact this crash 0xA5, 0x02,.. happens,

    typedef struct _ACPI_BIOS_MULTI_NODE {
        PHYSICAL_ADDRESS    RsdtAddress;    // 64-bit physical address of RSDT
        ULONGLONG           Count;
        ACPI_E820_ENTRY     E820Entry[1];
    } ACPI_BIOS_MULTI_NODE, *PACPI_BIOS_MULTI_NODE;

Dietmar
PS: Is it possible to edit the e820 list by hand?
EDIT: It seems, that acpi.sys from XP SP3 only looks for
RSDT, DSDT, FADT, FACS tables.
EDIT2: I found, that the e820 table in win7 is a little bit different from that in XP.

#217

diderius6

The only difference in the allocation of memory via _crs
between the Apex and the Asrock Bios is,
that on the Apex board the declaration for high memory (64 bit) is missed for OSYS <0x07D9
(XP, Vista)

                    QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                        0x0000000000000000, // Granularity
                        0x0000000000010000, // Range Minimum
                        0x000000000001FFFF, // Range Maximum
                        0x0000000000000000, // Translation Offset
                        0x0000000000010000, // Length

#218

diderius6

Hm, may be this is important:
Via this way I think, XP comes in contact with the reserved word CreateQWordField,
because the if else construction is not correct in the Bios from Gigabyte and Asrock,
only on Apex board:

                Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
                {
                    Local0 = GPCL ()
                    CreateWordField (BUF0, \_SB.PCI0._Y00._MAX, PBMX)  // _MAX: Maximum Base Address
                    PBMX = ((Local0 >> 0x14) - 0x02)
                    CreateWordField (BUF0, \_SB.PCI0._Y00._LEN, PBLN)  // _LEN: Length
                    PBLN = ((Local0 >> 0x14) - One)
                    If ((OSYS >= 0x07D6))
                    {
                        If ((M64L == Zero))
                        {
                        CreateQWordField (BUF0, \_SB.PCI0._Y0F._LEN, MSLN)  // _LEN: Length
                        MSLN = Zero
                    }
                    Else
                    {
                        CreateQWordField (BUF0, \_SB.PCI0._Y0F._LEN, M2LN)  // _LEN: Length
                        CreateQWordField (BUF0, \_SB.PCI0._Y0F._MIN, M2MN)  // _MIN: Minimum Base Address
                        CreateQWordField (BUF0, \_SB.PCI0._Y0F._MAX, M2MX)  // _MAX: Maximum Base Address
                        M2LN = M64L /* External reference */
                        M2MN = M64B /* External reference */
                        M2MX = ((M2MN + M2LN) - One)
                        }
                    }

                    Return (BUF0) /* \_SB_.PCI0.BUF0 */
                }

#219

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #216

> PS: Is it possible to edit the e820 list by hand?

no, list generated by int15h handler in 16bit asm code
but you can compare parsing result in xp and vista+ acpi.sys (ACPIRangeValidatePciResources)
seems in xp very strict checking

#220 | diderius6 | May be I found the reason, why they introduce xbuf on the Apex board: The word QWordMemory is a reserved word. And it stands in buf0 but not in xbuf so XP can meet it on 64 bit Bios Dietmar

#221

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #218

> Hm, may be this is important:
> Via this way I think, XP comes in contact with the reserved word CreateQWordField,
> because the if else construction is not correct in the Bios from Gigabyte and Asrock,
> only on Apex board:

>                         If ((OSYS >= 0x07D6))
>                         {
>                           If ((M64L == Zero))
>                            {
>                             CreateQWordField (BUF0, \_SB.PCI0._Y0F._LEN, MSLN)  // _LEN: Length
>                             MSLN = Zero

maybe this is problem too, on ivy this part is right:

     If (((MM64 == Zero) || (OSYS <= 0x07D3)))
                    {
                        CreateDWordField (BUF0, \_SB.PCI0._Y0F._LEN, MSLN)  // _LEN: Length
                        MSLN = Zero
                    }

M64L/MM64 is field meaning 64-bit OS or 64 access
|| - logical OR
so on ivy _Y0F under xp is still qword template, but we create only DWORD field
on skylake+ under xp acpi skip declaring lengh of resource because "If ((OSYS >= 0x07D6))" skipped

#222 | Mov AX, 0xDEAD | _yof is empty resource, even on win7 64, so lengh is always zero and this is not source of problem: ⇗

#223

diderius6

Hi,
I found with Ida pro and the acpi.pdb original file for my acpi.sys

>     ACPIRangeValidatePciResources(x,x)    .text 0001DF92 0000013A R . . . B T .

>     .text:0001DF92 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
>     .text:0001DF92
>     .text:0001DF92 ; Attributes: bp-based frame
>     .text:0001DF92
>     .text:0001DF92 ; int __stdcall ACPIRangeValidatePciResources(int,ULONG_PTR BugCheckParameter2,int)
>     .text:0001DF92 _ACPIRangeValidatePciResources@8 proc near

>     .text:0001DF92 ; CODE XREF: ACPIBusIrpQueryResources(x,x)+10D p
>     .text:0001DF92                                         ; ACPIBusIrpQueryResourceRequirements(x,x)+10B
>     p ...
>     .text:0001DF92
>     .text:0001DF92 var_18          = dword ptr -18h
>     .text:0001DF92 BugCheckParameter4= dword ptr -14h
>     .text:0001DF92 var_10          = dword ptr -10h
>     .text:0001DF92 var_C           = dword ptr -0Ch
>     .text:0001DF92 var_8           = dword ptr -8
>     .text:0001DF92 var_1           = byte ptr -1
>     .text:0001DF92 BugCheckParameter2= dword ptr  8
>     .text:0001DF92 arg_8           = dword ptr  0Ch
>     .text:0001DF92
>     .text:0001DF92                 mov     edi, edi
>     .text:0001DF94                 push    ebp
>     .text:0001DF95                 mov     ebp, esp
>     .text:0001DF97                 sub     esp, 18h
>     .text:0001DF9A                 push    ebx
>     .text:0001DF9B                 mov     ebx, [ebp+arg_8]
>     .text:0001DF9E                 push    esi
>     .text:0001DF9F                 xor     esi, esi
>     .text:0001DFA1                 cmp     ebx, esi
>     .text:0001DFA3                 mov     [ebp+var_8], esi
>     .text:0001DFA6                 jnz     short loc_1DFB0
>     .text:0001DFA8                 push    esi
>     .text:0001DFA9                 push    2
>     .text:0001DFAB                 jmp     loc_1E0AB
>     .text:0001DFB0 ; ---------------------------------------------------------------------------
>     .text:0001DFB0

>     .text:0001DFB0 loc_1DFB0: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+14 j
>     .text:0001DFB0                 lea     eax, [ebp+var_18]
>     .text:0001DFB3                 push    eax
>     .text:0001DFB4                 call    _OSReadAcpiConfigurationData@4 ; OSReadAcpiConfigurationData(x)
>     .text:0001DFB9                 test    eax, eax
>     .text:0001DFBB                 jl      loc_1E0C6
>     .text:0001DFC1                 mov     eax, [ebp+var_18]
>     .text:0001DFC4                 add     eax, 28h
>     .text:0001DFC7                 cmp     [ebx+1Ch], esi
>     .text:0001DFCA                 push    edi
>     .text:0001DFCB                 mov     [ebp+BugCheckParameter4], eax
>     .text:0001DFCE                 lea     edi, [ebx+20h]
>     .text:0001DFD1                 mov     [ebp+var_10], esi
>     .text:0001DFD4                 jbe     loc_1E0BB
>     .text:0001DFDA

>     .text:0001DFDA loc_1DFDA: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+10A j
>     .text:0001DFDA                 cmp     [edi+4], esi
>     .text:0001DFDD                 mov     [ebp+var_C], esi
>     .text:0001DFE0                 jbe     loc_1E089
>     .text:0001DFE6                 lea     esi, [edi+14h]
>     .text:0001DFE9

>     .text:0001DFE9 loc_1DFE9: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+EF j
>     .text:0001DFE9                 mov     al, [esi-0Bh]
>     .text:0001DFEC                 cmp     al, 1
>     .text:0001DFEE                 mov     [ebp+var_1], al
>     .text:0001DFF1                 jz      short loc_1DFF7
>     .text:0001DFF3                 cmp     al, 3
>     .text:0001DFF5                 jnz     short loc_1E03E
>     .text:0001DFF7

>     .text:0001DFF7 loc_1DFF7: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+5F j
>     .text:0001DFF7                 mov     eax, [esi+0Ch]
>     .text:0001DFFA                 sub     eax, [esi+4]
>     .text:0001DFFD                 mov     ecx, [esi+10h]
>     .text:0001E000
>     .text:0001E000 loc_1E000:                              ; DATA XREF: ACPIBuildThermalZoneExtension(x,x,x)+163↑o
>     .text:0001E000                                         ; ACPIDispatchAddDevice(x,x)+16D↑o
>     .text:0001E000                 sbb     ecx, [esi+8]
>     .text:0001E003                 mov     edx, [esi-4]
>     .text:0001E006                 add     eax, 1
>     .text:0001E009                 adc     ecx, 0
>     .text:0001E00C                 xor     ebx, ebx
>     .text:0001E00E                 cmp     eax, edx
>     .text:0001E010                 jnz     short loc_1E016
>     .text:0001E012                 cmp     ecx, ebx
>     .text:0001E014                 jz      short loc_1E01C
>     .text:0001E016

>     .text:0001E016 loc_1E016: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+7E j
>     .text:0001E016                 inc     [ebp+var_8]
>     .text:0001E019                 mov     [esi-4], eax
>     .text:0001E01C

>     .text:0001E01C loc_1E01C: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+82 j
>     .text:0001E01C                 cmp     dword ptr [esi], 0
>     .text:0001E01F                 jnz     short loc_1E02A
>     .text:0001E021                 inc     [ebp+var_8]
>     .text:0001E024                 mov     dword ptr [esi], 1
>     .text:0001E02A

>     .text:0001E02A loc_1E02A: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+8D j
>     .text:0001E02A                 mov     eax, [esi]
>     .text:0001E02C                 mov     ebx, [ebp+arg_8]
>     .text:0001E02F                 dec     eax
>     .text:0001E030                 test    [esi+4], eax
>     .text:0001E033                 jz      short loc_1E03E
>     .text:0001E035                 inc     [ebp+var_8]
>     .text:0001E038                 mov     dword ptr [esi], 1
>     .text:0001E03E

>     .text:0001E03E loc_1E03E: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+63 j

>     .text:0001E03E ; ACPIRangeValidatePciResources(x,x)+A1 j
>     .text:0001E03E                 cmp     [ebp+var_1], 6
>     .text:0001E042                 jnz     short loc_1E05F
>     .text:0001E044                 mov     eax, [esi+4]
>     .text:0001E047                 sub     eax, [esi]
>     .text:0001E049                 mov     ecx, [esi-4]
>     .text:0001E04C                 inc     eax
>     .text:0001E04D                 xor     edx, edx
>     .text:0001E04F                 cmp     eax, ecx
>     .text:0001E051                 jnz     short loc_1E059
>     .text:0001E053                 xor     ecx, ecx
>     .text:0001E055                 cmp     ecx, edx
>     .text:0001E057                 jz      short loc_1E05F
>     .text:0001E059

>     .text:0001E059 loc_1E059: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+BF j
>     .text:0001E059                 inc     [ebp+var_8]
>     .text:0001E05C                 mov     [esi-4], eax
>     .text:0001E05F

>     .text:0001E05F loc_1E05F: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+B0 j

>     .text:0001E05F ; ACPIRangeValidatePciResources(x,x)+C5 j
>     .text:0001E05F                 cmp     [ebp+var_1], 3
>     .text:0001E063                 jnz     short loc_1E075
>     .text:0001E065                 lea     eax, [ebp+var_8]
>     .text:0001E068                 push    eax
>     .text:0001E069                 push    [ebp+BugCheckParameter4]
>     .text:0001E06C                 push    [ebp+var_C]
>     .text:0001E06F                 push    edi
>     .text:0001E070                 call    _ACPIRangeValidatePciMemoryResource@16 ; ACPIRangeValidatePciMemoryResource(x,x,x,x)
>     .text:0001E075

>     .text:0001E075 loc_1E075: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+D1 j
>     .text:0001E075                 inc     [ebp+var_C]
>     .text:0001E078                 mov     eax, [ebp+var_C]
>     .text:0001E07B                 add     esi, 20h
>     .text:0001E07E                 cmp     eax, [edi+4]
>     .text:0001E081                 jb      loc_1DFE9
>     .text:0001E087                 xor     esi, esi
>     .text:0001E089

>     .text:0001E089 loc_1E089: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+4E j
>     .text:0001E089                 mov     eax, [edi+4]
>     .text:0001E08C                 shl     eax, 5
>     .text:0001E08F                 inc     [ebp+var_10]
>     .text:0001E092                 lea     edi, [edi+eax+8]
>     .text:0001E096                 mov     eax, [ebp+var_10]
>     .text:0001E099                 cmp     eax, [ebx+1Ch]
>     .text:0001E09C                 jb      loc_1DFDA
>     .text:0001E0A2                 cmp     [ebp+var_8], esi
>     .text:0001E0A5                 jz      short loc_1E0BB
>     .text:0001E0A7                 push    [ebp+BugCheckParameter4] ; BugCheckParameter4
>     .text:0001E0AA                 push    ebx             ; BugCheckParameter3
>     .text:0001E0AB

>     .text:0001E0AB loc_1E0AB: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+19 j
>     .text:0001E0AB                 push    [ebp+BugCheckParameter2] ; BugCheckParameter2
>     .text:0001E0AE                 push    2               ; BugCheckParameter1
>     .text:0001E0B0                 push    0A5h            ; BugCheckCode
>     .text:0001E0B5                 call    ds:__imp__KeBugCheckEx@20 ; __declspec(dllimport) KeBugCheckEx(x,x,x,x,x)
>     .text:0001E0BB

>     .text:0001E0BB loc_1E0BB: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+42 j

>     .text:0001E0BB ; ACPIRangeValidatePciResources(x,x)+113 j
>     .text:0001E0BB                 push    esi
>     .text:0001E0BC                 push    [ebp+var_18]
>     .text:0001E0BF                 call    ds:__imp__ExFreePoolWithTag@8 ; __declspec(dllimport) ExFreePoolWithTag(x,x)
>     .text:0001E0C5                 pop     edi
>     .text:0001E0C6

>     .text:0001E0C6 loc_1E0C6: ; CODE XREF: ACPIRangeValidatePciResources(x,x)+29 j
>     .text:0001E0C6                 pop     esi
>     .text:0001E0C7                 pop     ebx
>     .text:0001E0C8                 leave
>     .text:0001E0C9                 retn    8
>     .text:0001E0C9 _ACPIRangeValidatePciResources@8 endp ; sp =  4
>     .text:0001E0C9

#224

Mov AX, 0xDEAD

    cmp [ebp+var_8], esi

this generate resource conflict if mismatch
ps. use Graph view, much better )

#225

diderius6

:-),
how can
cmp [ebp+var_8], esi
be set to be always true
thanks
Dietmar

## Page 16

#226 | diderius6 | Just delete this line "cmp [ebp+var_8], esi" and the compi always jump to "loc_1E0BB"? By the way, interesting, here you can see, how the BSOD 0xA5 is made;) Dietmar

#227

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #226

> Just delete this line "cmp [ebp+var_8], esi"
> and the compi always jump to "loc_1E0BB"?

replace jz(XXh) => jmp (EBh)

#228 | diderius6 | ⇗ @Mov AX, 0xDEAD Yesssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssaaaaaaaaaaaaaaaaaaaa::::)))) nice work together;)! Dietmar diderius6 has attached images to this post ⇗ yippppiieee.jpg
#229 | diderius6 | pm_timer on the Asrock board also does not work, only with customized hal switching to RTC clock, Dietmar
#230 | diderius6 | Hexeditor 75F87414FF75 -> 75F8EB14FF75

#231

diderius6

When you start with the normal, unmodded DSDT table and the new acpi.sys on the Asrock board
you get BSOD
0x000000A5 (0x00000011, 0x00000008, 0xB7B07200, 0x20160422)
Interesting, that the teedriver.sys (yellow questionmark) does not work on the Asrock board under win7.
May be, win7 has also problems with overlapping of Acpi PCI devices and the e820 table.
With XP, no yellow questionmark is now left for all systemdevices, stable, fast, nice:)), lan, sound, nvme, USB3.1, serial com1,
no extra pci-e card
Dietmar
EDIT: I am right: win7 is not able to ACPI Reclaim memory on the Asrock in e820 table, exact as XP. It may be a problem in main Bios.
The problem are the low numbers in the e820 table in Asrock board 0000000000100000 0000000076873000 1:Available
but Acpi asks for the same (higher) free memory as on the Apex board 0000000000100000 000000008004E000 1:Available

#232

diderius6

    000000008E732000  0000000000043000  3:ACPI Reclaim  on Apex board in e820

    with RSDT start ACPI Table Address   0 : 8E73F160

and for Asrock:

    000000007DFB0000  00000000003D5000  4:ACPI NVS on Asrock board in e820

     with RSDT start ACPI Table    ACPI Table Address   0 : 7DFB0180

which is just mixed NVS <->Reclaim, according to the following:
Type 3 "ACPI reclaimable" memory regions may be used like (and combined with) normal "available RAM" areas as long as you're finished using the ACPI tables that are stored there (i.e. it can be "reclaimed").
Types 2, 4, 5 (reserved, ACPI non-volatile, bad) mark areas that should be avoided when you are allocating physical memory.

#233

diderius6

And another strange thing on the Asrock board:
in RSDT ACPI Table Address 0 : 7DFB0180
in XSDT ACPI Table Address 0 : 000000007DFD9FA8
the other tables in RSDT, XSDT have identic numbers, only number 0 above not.
Nearly the same happens on the Apex board.
EDIT: Correct is always the value in the XSDT table.

#234

diderius6

With the customized acpi.sys I get on the Apex X board with newest Bios 1801
BSOD
0x000000A5 (0x00000011, 0x00000008, 0xB7AB6200, 0x20160422)
nearly the same as on the Asrock board.
This means, Asus gives up XP friendly Bios and now it has to be patched preventing reserved word from Acpi 2.0
exact like the Bios from Gigabyte, Asrock..
Dietmar
PS: I think, that now all DSDT tables can be made XP friendly!
EDIT: When I flash back to the Bios from Elmor for the Apex X board, the compi starts also with the customized acpi.sys, meaning new acpi.sys do nothing bad.

#235

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #234

> BSOD
> 0x000000A5 (0x00000011, 0x00000008, 0xB7AB6200, 0x20160422)

_ACPIInitializeDDB after calling _AMLILoadDDB
_AMLILoadDDB call "Load" of each table in rsdt list *imho*

#236

diderius6

⇗ @Mov AX, 0xDEAD
the 3. place in this BSOD is the Pointer to the table that ACPI failed to load.
Is it an generalic message, that any of the table(s) listet in RSDT have an error?
What does "ACPI failed to load" mean: checksum incorrect, table not at this place..
I do not find any related to the adress B7AB6200. In the e820 list this memory space is also not listet.
It is not an overlap in memory,
Dietmar
EDIT: I found with Ida pro, that for example checksum of table from RSDT failed before BSOD A5 (0x11..).

#237 | diderius6 | waaoh, full XP Acpi support with newest Bios 1801 on the APEX X board^^. And this without any modification of Bios, Dietmar diderius6 has attached images to this post ⇗ acpi3.jpg
#238 | diderius6 | 75F87414FF -> 75F8EB14FF 84C07508FF -> 84C0EB08FF 59597C21A1 -> 59597C00A1

#239

diderius6

On Compis,
with XP Acpi unfriendly Bios you still have to disable reserved words from Acpi2.0.
I tested this on my Asrock board with the original DSDT table.
Again I get the well known BSOD because of XP unknow words
0x000000A5 (0x00000003, xxxx, 0xС0140001, yyyy)
Dietmar

#240

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #238

> 84C07508FF77 -> 84C0EB08FF77
> 597C21A1FCE6 -> 597C00A1FCE6

you dont know what table generate error and what inside table is problem
skip error handling is not very good solution )

## Page 17

#241

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #236

> @Mov AX, 0xDEAD
> the 3. place in this BSOD is the Pointer to the table that ACPI failed to load.
> What does "ACPI failed to load" mean: checksum incorrect, table not at this place..
> I do not find any related to the adress B7AB6200. In the e820 list this memory space is also not listet.
> EDIT: I found with Ida pro, that for example checksum of table from RSDT failed before BSOD A5 (0x11..).

3rd argument can point to anything in RAM, it just hint to human (or some util) who save full memory dump
checksum error is a5 (0x11, 0x7), you have error with _AMLILoadDDB
maybe it load table, then parse aml codes, then do some else, who knows...

#242

diderius6

⇗ @Mov AX, 0xDEAD
I think, when you really want to know what is going on,
so to skip the error message is best what you can do,
because now you can use the full set of commands from windbg and amli.
In the real situation.
Before I was not able for example to have a look at the pcitree.
When I see, that on the Asrock board win7 also cant save memory for Acpi,
the situation is there the same as for xp.
What can happen bad? I think, the tables from Acpi have no influence to anything,
can be just deleted if they are loaded once. And the device works or not.
Dietmar
PS: Interesting, if there is a difference in the acpi.sys from xp, vista, win7, win8, win10
or if they are all nearly the same. The Bios is for all of them identic, also for Linux or Macintosh.
Real errors in the Acpi tables will appear everywhere. And xp can live without any Acpi.
All what gives those A5 BSODs here is a conflict between the Acpi in Bios and the "Acpi" from xp.
EDIT: I noticed, that on the Apex X board with the Bios 1801 for Apex X all works better than before with Bios mod from Apex IX.
This belongs to XP and win10, because now nothing is changed in Bios.
EDIT2: Have a look, how stupid acpi.sys looks at this Acpi tables: If the checksum for example is ok..
⇗ https://www.techrepublic.com/article/cor...ws-xp-machines/

#243

diderius6

I noticed a really crazy behavior on the Asrock board (called from rw-everything direct in Bios, because Acpi in XP at this time not works)
Before hack acpi.sys

    RSDT:

    [000h 0000   4]                    Signature : "RSDT"    [Root System Description Table]
    [004h 0004   4]                 Table Length : 00000078
    [008h 0008   1]                     Revision : 01
    [009h 0009   1]                     Checksum : 46
    [00Ah 0010   6]                       Oem ID : "ALASKA"
    [010h 0016   8]                 Oem Table ID : "A M I "
    [018h 0024   4]                 Oem Revision : 01072009
    [01Ch 0028   4]              Asl Compiler ID : "MSFT"
    [020h 0032   4]        Asl Compiler Revision : 00010013

    [024h 0036   4]       ACPI Table Address   0 : 7DFB0180
    [028h 0040   4]       ACPI Table Address   1 : 7DFDA0C0
    [02Ch 0044   4]       ACPI Table Address   2 : 7DFDA128
    [030h 0048   4]       ACPI Table Address   3 : 7DFDA170
    [034h 0052   4]       ACPI Table Address   4 : 7DFDA210
    [038h 0056   4]       ACPI Table Address   5 : 7DFDA250
    [03Ch 0060   4]       ACPI Table Address   6 : 7DFDA5F8
    [040h 0064   4]       ACPI Table Address   7 : 7DFDD760
    [044h 0068   4]       ACPI Table Address   8 : 7DFDD798
    [048h 0072   4]       ACPI Table Address   9 : 7DFDE450
    [04Ch 0076   4]       ACPI Table Address  10 : 7DFDE498
    [050h 0080   4]       ACPI Table Address  11 : 7DFDFC48
    [054h 0084   4]       ACPI Table Address  12 : 7DFDFF28
    [058h 0088   4]       ACPI Table Address  13 : 7DFDFFC0
    [05Ch 0092   4]       ACPI Table Address  14 : 7DFE0108
    [060h 0096   4]       ACPI Table Address  15 : 7DFE0620
    [064h 0100   4]       ACPI Table Address  16 : 7DFE0910
    [068h 0104   4]       ACPI Table Address  17 : 7DFE0948
    [06Ch 0108   4]       ACPI Table Address  18 : 7DFE09A0
    [070h 0112   4]       ACPI Table Address  19 : 7DFE0A48
    [074h 0116   4]       ACPI Table Address  20 : 7DFE0A80

    Raw Table Data: Length 120 (0x78)

After hack and XP writes to its registry (means build new (!))

    RSDT

    Signature	"RSDT"
    Length	0x00000078 (120)
    Revision	0x01 (1)
    Checksum	0xF2 (242)
    OEM ID	"ALASKA"
    OEM Table ID	"A M I "
    OEM Revision	0x01072009 (17244169)
    Creator ID	"MSFT"
    Creator Revision	0x00010013 (65555)
    Entry0	0x8E7DC180 (FACP)
    Entry1	0x8E8050B0 (APIC)
    Entry2	0x8E805118 (FPDT)
    Entry3	0x8E805160 (FIDT)
    Entry4	0x8E805200 (MCFG)
    Entry5	0x8E805240 (SSDT)
    Entry6	0x8E8055E8 (SSDT)
    Entry7	0x8E808750 (SSDT)
    Entry8	0x8E80AD48 (HPET)
    Entry9	0x8E80AD80 (SSDT)
    Entry10	0x8E80BA38 (UEFI)
    Entry11	0x8E80BA80 (SSDT)
    Entry12	0x8E80D230 (AAFT)
    Entry13	0x8E80D510 (LPIT)
    Entry14	0x8E80D5A8 (SSDT)
    Entry15	0x8E80D6F0 (SSDT)
    Entry16	0x8E80DC08 (SSDT)
    Entry17	0x8E80DEF8 (DBGP)
    Entry18	0x8E80DF30 (DBG2)
    Entry19	0x8E80DF88 (DMAR)
    Entry20	0x8E80DFF8 (WSMT)

The checksum changes and all adresses.
This simple means, in the fight of AcpiBios against XPAcpi,
XP ignores Bios and lift all adresses. The relation between tables changes also.
Dietmar
EDIT: This brings me to the idea, how to make any Bios XP Acpi friendly.
XP tells you, what to do:)!

#244 | diderius6 | On the Apex Board XP now generates with 3 steps modified acpi.sys also own new RSDT table, but very similar to RSDT table before, dictated from Bios. The pm_timer again not works. So this belongs to Bios, how it treats timer, Dietmar

#245

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #237

> waaoh,
> full XP Acpi support with newest Bios 1801 on the APEX X board^^.
> And this without any modification of Bios,
> Dietmar

can this be replicated for other boards?
I'm very interested in this.

#246 | diderius6 | yes
#247 | diderius6 | Recept on post 238 works also for english version of acpi.sys in XP SP3, XP SP2, XP SP1, XP SP0 (gold) Dietmar
#248 | diderius6 | 8700k needs good cooling, but in single core speed it is faster than 9900k Dietmar diderius6 has attached images to this post ⇗ 8700kAcpiAsrockXP.jpg

#249

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #243

> The checksum changes and all adresses.
> This simple means, in the fight of AcpiBios against XPAcpi,
> XP ignores Bios and lift all adresses. The relation between tables changes also.

I was wrong about _AMLILoadDDB, it load only one table - DSDT !
_AMLILoadDDB-> _LoadDDB->
-> _ValidateTable
-> _NewObjOwner
-> _PushCall
-> _PushScope
-> _SyncLoadDDB
one of subproc probably return nonzero => _AMLILoadDDB generate 0xA5 kernelfault
0x000000A5 (0x00000011, 0x00000008, 0xB7B07200, 0x20160422)
0x20160422 - Compiler Version
0xB7B07200 - pointer to DSDT in memory

#250

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #247

> Recept on post 238 works also for
> english version of acpi.sys in XP SP3, XP SP2, XP SP1, XP SP0 (gold)
> Dietmar

any chance i could get a copy of your acpi.sys mod to try out for myself?

#251

diderius6

Hi, it is german version, so it will not work.
Open with Hexeditor your acpi.sys
and look for Hex values in post 238,
change them
Dietmar
PS: I just succeed to slipstream with nlite boot CD,
installed XP SP3 direct to nvme disk on Asrock board.
Nice, full boottime is now 3 sec:)).

#252

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #251

> Hi, it is german version, so it will not work.
> Open with Hexeditor your acpi.sys
> and look for Hex values in post 238,
> change them
> Dietmar

OK, Thanks

#253

diderius6

⇗ @Mov AX, 0xDEAD
I just see,
that you updated your list for XP.
ACPI BSOD:
.......... 0xA5 (0x03, X, 0xС0140001, Z) ACPI 2.0 syntax, 99% solved (custom acpi.sys)
This acpi.sys I have not seen until now;)
Dietmar

#254

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #253

> This acpi.sys I have not seen until now;)

I dont plan public it yet, sorry

#255

diderius6

I have found already:)
Dietmar
EDIT: With Acpi A5 errors I solved all, only problem is now,
that my bootdevice is gone with BSOD 0x7B, I think most famous BSOD in history:)),
Dietmar
PS: Hm, what can make ACPI with underlying wrong DSDT table (reserved words from Acpi2.0), that the boot device is gone?
The boot device has to be rescued, other is unimportand. One step..
and 0xA5 Acpi error is history.
EDIT2: Oh, it seems to be nice antihack in acpi.sys from Microsoft, against people like me^^.

## Page 18

#256 | diderius6 | Hihi, I try other way:))..

#257

diderius6

XP SP3 words acpi

    Debug   XOr Wait    ToBCD   Subtract    Store   SizeOf  ShiftRight  ShiftLeft
    RefOf   B   Package OSI Or  ObjectType  Not NOr NAnd    Multiply
    CBCBCC  Match   LOr LNot    LLess   LGreater    LEqual  CC  LAnd
    Index   Increment   FromBCD FindSetRightBit CS  FindSetLeftBit  CCSS
    Divide  DerefOf Decrement   sS  CondRefOf   Concatenate Buffer  And CCS
    Add SW  Acquire While   Unload  Stall   Sleep   Signal  Return  Reset   S
       Release SC  Notify  NoOp    NS  Load    C   If  BDC Fatal   Else
    BreakPoint  Break   NBDB    NBW PowerResource   NBCC    OperationRegion
    Mutex   Method  NNB IndexField  NB  Field   Event   Device
    CreateWordField CCCN    CreateField CreateDWordField    CreateByteField
    CCN CreateBitField  NNCB    BankField   N   Scope   NO  Name    NN  Alias

Vista words acpi

    Debug   XOr Wait    ToString    ToInteger   ToHexString ToDecimalString ToBuffer
    ToBCD   Timer   Subtract    Store   SizeOf  ShiftRight  ShiftLeft   RefOf
    B   Package OSI Or  ObjectType  Not NOr NAnd    Multiply    Mod CCCS
    Mid CBCBCC  Match   LOr CCCCCC  LoadTable
    LNot    LLess   LGreater    LEqual  CC  LAnd    Index   Increment
    FromBCD FindSetRightBit FindSetLeftBit  CCSS    Divide  DerefOf
    Decrement   CS  CopyObject  sS  CondRefOf   ConcatenateResTemplate
    Concatenate Buffer  And CCS Add SW  Acquire While   Unload  Stall
    Sleep   Signal  Return  Reset   S   Release SC  Notify  NoOp    NS  Load
    C   If  BDC Fatal   Else    Continue    BreakPoint  Break
    NBDB    NBW PowerResource   NBCC    OperationRegion Mutex   Method  NNB
    IndexField  NB  Field   Event   Device  CreateWordField CCCN
    CreateField CreateQWordField    CreateDWordField    CreateByteField CCN
    CreateBitField  NNCB    BankField   N   Scope   NO  Name    NN  Alias

13 words, which amli interpreter has to learn
Dietmar

#258

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #257

> 13 words, which amli interpreter has to learn

14 QwordConst , it's not keyword, but it has own bytecode, some like var = 0x1111222233334444
15 DATA_REGION, 0x5b88 very rare not implemented

#259

diderius6

⇗ @Mov AX, 0xDEAD
in a first try I set only one reserved word "ToInteger" before word "Debug" in acpi.sys of XP.
Do you think it is possible?
My problem is, that there are 2 offsetvalues:

    .rdata:000348A4 aTointeger      db 'ToInteger',0        ; DATA XREF: .data:off_37820
    .rdata:000348AE                          align 10h

    .data:00037820 off_37820       dd offset aTointeger    ; DATA XREF: .data:00037BC4
    .data:00037820                                                       ; "ToInteger"
    .data:00037824                 db  99h ; Ö
    .data:00037825                 db    0
    .data:00037826                 db    0
    .data:00037827                 db    0

    .data:00037BC4                 dd offset off_37820

thanks a lot
Dietmar

#260

diderius6

YesssssssssssssssssssssssssaaaaaaahHHHHh:))
I succeed to integrate reserved word "ToInteger" in amli interpreter in acpi.sys
from XP SP3.
This is for me like I reach a new level,
what a crazy work,
Dietmar
PS: I understand, how the amli interpreter works and also, how it is implemented.
The test I did:
On the Asrock board I installed the original Bios. With acpistep3.sys I get there the
the BSOD for "reserved words"
0xA5 (0x03, X, 0xС0140001, Z)
Then I put in my modded DSDT table all the "ToInteger" words back, that I eliminated before.
And it boots:))!

#261

diderius6

CreateQWordField I cant integrate in acpi.sys of XP SP3 until now.
It seems, that the Interpreter amli from XP cant build an 64 Bit field.
Vista can, the version from Vista from May 2005 (Longhorn) also cant.
The error message BSOD has changed.
The remaining reserved words in DSDT, that you have to isolate by hand in DSDT
are now CreateQWordField , QWordMemory, CopyObject. This lasts about 5 min:)).
BSOD
0x000000A5 (0x00000003, X, 0xC0000034, Y)
Dietmar

#262

diderius6

Here are my DSDT tables for the Asrock fatal1ty z370 gaming k6 board.
Dsdt is original and DSDT2 is modded table, which works in XP SP3 with the acpi.sys driver
with only 3 small changes, as I write here before.
Not so much differences are left, when you take a look at.
Now I look at the C0, C1, C2.. states,
because I noticed, that 70 % of time the compi is in C0 state,
gives about 50 Watt without any load, brrr:)),
Dietmar
diderius6 has attached files to this post

- ⇗ XPDSDTasrockfatal1tyz370gamingk6.rar

#263

diderius6

Here is my try with Ida pro for reserved word CreateQwordField.
I did a nice hack, because its name is so long I
deleted ShiftRight and ShiftLeft in acpi.sys of XP SP3 (because they do not appear in Bios)
and connected them afterwards:)).
The values I take from Vista.

    .rdata:0002B7D8 aCreateqwordfie db 'CreateQWordField',0 ; DATA XREF:
    .data:off_2D190 o
    .rdata:0002B7E9                 db    0 <-- should be align 10h
    .rdata:0002B7EA                 db    0
    .rdata:0002B7EB                 db    0
    .rdata:0002B7EC                 db    0
    .rdata:0002B7ED                 db    0
    .rdata:0002B7EE                 db    0
    .rdata:0002B7EF                 db    0

    .data:0002D190                                         ; "CreateQWordField"
    .data:0002D194                 db  8Fh ; Å
    .data:0002D195                 db    0
    .data:0002D196                 db    0
    .data:0002D197                 db    0

    .data:0002D518                 dd offset off_2D190

#264

diderius6

Now I think,
it belongs to the integration of CreateQWordField
in acpi.sys from XP.
May be, I did something wrong (I noticed, that the "align" mark is gone,
and I got instead 7 zeros).
Or maybe, the amli Interpreter can not work at all
with 64 Bit
Dietmar
The driver acpi.sys with the integrated CreateQWordField shows BSOD,
even when no CreateQWordField is in the DSDT table.
This was other with integrated "ToInteger" reserved word in acpi.sys.
PS: It seems, that my Ida pro version can not generate *.sys files for XP. Is there a program, which can do this?

#265

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #264

> Now I think,
> it belongs to the integration of CreateQWordField
> in acpi.sys from XP.
> May be, I did something wrong (I noticed, that the "align" mark is gone,
> and I got instead 7 zeros).
> Or maybe, the amli Interpreter can not work at all
> with 64 Bit
> Dietmar
> The driver acpi.sys with the integrated CreateQWordField shows BSOD,
> even when no CreateQWordField is in the DSDT table.
> This was other with integrated "ToInteger" reserved word in acpi.sys.
> PS: It seems, that my Ida pro version can not generate *.sys files for XP. Is there a program, which can do this?

maybe try relyze to reassemble? - ⇗ https://www.relyze.com/overview.html
also, you might want to try CFF Explorer - ⇗ https://ntcore.com/?page_id=388
to realign the file and recalculate the checksums after you edit the file

#266

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #262

> Now I look at the C0, C1, C2.. states,
> because I noticed, that 70 % of time the compi is in C0 state,

welcome to club )
check pm

#267

diderius6

May be this hack will work:
DefCreateDWordField := CreateDWordFieldOp SourceBuff ByteIndex NameString
CreateDWordFieldOp := 0x8A
DefCreateQWordField := CreateQWordFieldOp SourceBuff ByteIndex NameString
CreateQWordFieldOp := 0x8F --> 0x8A
Dietmar
EDIT: Or even more easy, change in DSDT table
CreateQWordField --> CreateDWordField
This I will test now.
EDIT: Both ideas do not work on Asrock board.

#268

diderius6

⇗ @Mov AX, 0xDEAD
I do not take notice about the 70% in C0 state,
because I work with a Celeron.
There the powerconsumption is always low.
This changes a lot with 8700k.
It is like a test for good cooler;)
Dietmar

#269

diderius6

⇗ @Mov AX, 0xDEAD
This powerconsumption I like much more:))!
Very interesting, how you reached this, which programs you use.
I think it would be a whole course in programming
Dietmar
EDIT: ⇗ @Mov AX, 0xDEAD
Did you use this?
"You're on the right track for Windows XP. If you read the documentation for the PROCESSOR_POWER_POLICY structure (⇗ http://msdn.microsoft.com/en-us/library/...v=vs.85%29.aspx), you'll notice next to DisableCStates that it says "Reserved; set to zero." In other words, you can't use that. Skip down to the section under Policy and read what it has to say. You have to disable the individual C-states that offend you:"
Policy[0].AllowPromotion = 1
Policy[1].AllowPromotion = 0; // Disable's C2
Policy[2].AllowPromotion = 0; // Disable's C3
diderius6 has attached images to this post ⇗ lowC0state.jpg

#270 | diderius6 | To integrate the reserved word "ToInteger" in acpi.sys from XP SP3 works. It has also the correct code, DefToInteger := ToIntegerOp Operand Target ToIntegerOp := 0x99 Dietmar

## Page 19

#271

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #269

> Did you use this?
> Policy[0].AllowPromotion = 1
> Policy[1].AllowPromotion = 0; // Disable's C2
> Policy[2].AllowPromotion = 0; // Disable's C3

No, i already wrote about power states on my skylake - acpi C2/C3 hardware (or bios or some poor documented bios setting) is broken for any OS, only cpu still can do it (itself, two asm commands, without external dependies). windows think that platform support c2/c3 and use it, but cpu do not enter these modes properly and windows never know what doing a semi-useless job (30-40% cpu in power saving mode, thank for this at least)

#272

diderius6

When I integrate (to 100% correct) the reserved word from Acpi2.0 "CopyObject" with code 9Dh
in acpi.sys from XP SP3 I get the famous BSOD
0x0000007B (0xB84C7524, 0xC0000034, 0x00000000, 0x00000000)
which is is not direct related to Acpi
Dietmar
EDIT: Now I think, via this way you can find all the reserved words, when acpi.sys XP SP3 meet them, crashes.
The other reserved words, for example ToInteger, are just ignored from amli XP SP3.

#273

diderius6

This is, what amli interpreter Acpi1 understands:

    ACPI Machine Language (AML) Specification 16-257
    Intel/Microsoft/Toshiba
    Table 16-2 AML Byte Stream Byte Values
    Byte Value
    (in Hex)
    Meaning Fixed List Arguments Variable List
    Arguments?
    0x00 ZeroOp Nothing No
    0x01 OneOp Nothing No
    0x02 - 0x05 Null -- --
    0x06 AliasOp Name Name No
    0x07 Null -- --
    0x08 NameOp Name Data No
    0x09 Null -- --
    0x0A ByteOp ByteConst No
    0x0B WordOp WordConst No
    0x0C DWordOp DWordConst No
    0x0D StringOp AsciiChar [AsciiChar ...] NullChar No
    0x0E - 0F Null -- --
    0x10 ScopeOp Name Yes
    0x11 BufferOp ByteConst Yes
    0x12 PackageOp ByteConst Yes
    0x13 Null -- --
    0x14 MethodOp Name Byte Yes
    0x15 - 0x2D Null -- --
    0x2E (.) DualNamePrefix NameSeg NameSeg --
    0x2F (/) MultiNamePrefix Byte NameSeg [NameSeg ...] No
    0x30 - 0x5a Null -- --
    0x5B ([) ExtendedOperator
    Prefix
    Byte --
    0x5B 0x01 MutexOp Name Byte No
    0x5B 0x02 EventOp Name No
    0x5B 0x10 ShiftRightBitOp OpCode SuperName No
    0x5B 0x11 ShiftLeftBitOp OpCode SuperName No
    0x5B 0x12 CondRefOfOp OpCode SuperName No
    0x5B 0x13 CreateFieldOp OpCode OpCode OpCode SuperName No
    0x5B 0x20 LoadOp Name No
    0x5B 0x21 StallOp OpCode No
    0x5B 0x22 SleepOp OpCode No
    0x5B 0x23 AcquireOp SuperName No
    0x5B 0x24 SignalOp SuperName No
    0x5B 0x25 WaitOp SuperName WordConst No
    0x5B 0x26 ResetOp SuperName No
    0x5B 0x27 ReleaseOp SuperName No
    0x5B 0x28 FromBCDOp OpCode SuperName No
    0x5B 0x29 ToBCD OpCode SuperName No
    0x5B 0x2A UnloadOp OpCode No
    Advanced Configuration and Power Management Interface Specification 16-258
    Intel/Microsoft/Toshiba
    Byte Value
    (in Hex)
    Meaning Fixed List Arguments Variable List
    Arguments?
    0x5B 0x31 DebugOp Nothing No
    0x5B 0x32 FatalOp Nothing No
    0x5B 0x80 OpRegionOp Name Byte OpCode OpCode No
    0x5B 0x81 FieldOp Name Byte Yes
    0x5B 0x82 DeviceOp Name Yes
    0x5B 0x83 ProcessorOp Name Byte Dword Byte Yes
    0x5B 0x84 PowerResOp Name Name Word Yes
    0x5B 0x85 ThermalZoneOp Name Yes
    0x5B 0x86 IndexFieldOp Name Name Byte Yes
    0x5B 0x87 BankFieldOp Name Name Dword Byte Yes
    0x5C (\) RootNamePrefix Name --
    0x5D Null -- --
    0x5E (^) ParentNamePrefix Name --
    0x5F Null -- --
    0x60 (`) Local0 Nothing No
    0x61 (a) Local1 Nothing No
    0x62 (b) Local2 Nothing No
    0x63 (c) Local3 Nothing No
    0x64 (d) Local4 Nothing No
    0x65 (e) Local5 Nothing No
    0x66 (f) Local6 Nothing No
    0x67 (g) Local7 Nothing No
    0x68 (h) Arg0 Nothing No
    0x69 (i) Arg1 Nothing No
    0x6A (j) Arg2 Nothing No
    0x6B (k) Arg3 Nothing No
    0x6C (l) Arg4 Nothing No
    0x6D (m) Arg5 Nothing No
    0x6E (n) Arg6 Nothing No
    0x6F Null -- --
    0x70 StoreOp OpCode SuperName No
    0x71 RefOfOp SuperName No
    0x72 AddOp OpCode OpCode SuperName No
    0x73 ConcatOp OpCode OpCode SuperName No
    0x74 SubtractOp OpCode OpCode SuperName No
    0x75 IncrementOp SuperName No
    0x76 DecrementOp SuperName No
    0x77 MultiplyOp OpCode OpCode SuperName No
    0x78 DivideOp OpCode OpCode SuperName SuperName No
    0x79 ShiftLeftOp OpCode OpCode SuperName No
    0x7A ShiftRightOp OpCode OpCode SuperName No
    0x7B AndOp OpCode OpCode SuperName No
    ACPI Machine Language (AML) Specification 16-259
    Intel/Microsoft/Toshiba
    Byte Value
    (in Hex)
    Meaning Fixed List Arguments Variable List
    Arguments?
    0x7C NAndOp OpCode OpCode SuperName No
    0x7D OrOp OpCode OpCode SuperName No
    0x7E NOrOp OpCode OpCode SuperName No
    0x7F XOrOp OpCode OpCode SuperName No
    0x80 NotOp OpCode SuperName No
    0x81 FindSetLeftBitOp OpCode SuperName No
    0x82 FindSetRightBitOp OpCode SuperName No
    0x83 - 0x85 Null -- --
    0x86 NotifyOp SuperName ByteConst No
    0x87 SizeOfOp Name No
    0x88 IndexOp OpCode OpCode No
    0x89 MatchOp OpCode OpCode OpCode OpCode OpCode No
    0x8A DWordFieldOp OpCode OpCode SuperName No
    0x8B WordFieldOp OpCode OpCode SuperName No
    0x8C ByteFieldOp OpCode OpCode SuperName No
    0x8D BitFieldOp OpCode OpCode SuperName No
    0x8E ObjTypeOp Name No
    0x8F Null -- --
    0x90 LAndOp OpCode OpCode No
    0x91 LOrOp OpCode OpCode No
    0x92 LNotOp OpCode No
    0x93 LEQOp OpCode OpCode No
    0x93 0x92 LNotEQOp OpCode OpCode No
    0x94 LGOp OpCode OpCode No
    0x94 0x92 LLEQOp OpCode OpCode No
    0x95 LLOp OpCode OpCode No
    0x95 0x92 LGEQOp OpCode OpCode No
    0x96 - 9F Null -- --
    0xA0 IfOp OpCode Yes
    0xA1 ElseOp Nothing Yes
    0xA2 WhileOp OpCode Yes
    0xA3 NoOp Nothing No
    0xA4 ReturnOp OpCode No
    0xA5 BreakOp Nothing No
    0xA6 - 0xCB Null -- --
    0xCC BreakPointOp Nothing No
    0xCD - 0xFE Null -- --
    0xFF OnesOp Nothing No

#274

diderius6

And this in Acpi 2:

    AML Byte Stream   Byte Values

    Value (Hex) 	Name
    0x00 	       ZeroOp
    0x01 	       OneOp
    0x06 	       AliasOp
    0x08 	       NameOp
    0x0A 	       BytePrefix
    0x0B 	       WordPrefix
    0x0C 	       DWordPrefix
    0x0D 	       StringPrefix
    0x0E 	       QWordPrefix
    0x10 	        ScopeOp
    0x11 	        BufferOp
    0x12 	        PackageOp
    0x13 	        VarPackageOp
    0x14 	        MethodOp
    0x2E (.) 	        DualNamePrefix
    0x2F (/) 	        MultiNamePrefix
    0x30-0x39 ('0'-'9') 	DigitChar
    0x41-0x5A (A-Z) 	NameChar
    0x5B ([) 	        ExtOpPrefix
    0x5B 0x01 	MutexOp
    0x5B 0x02 	EventOp
    0x5B 0x12 	CondRefOfOp
    0x5B 0x13 	CreateFieldOp
    0x5B 0x1F   	LoadTableOp
    0x5B 0x20 	LoadOp
    0x5B 0x21 	StallOp
    0x5B 0x22 	SleepOp
    0x5B 0x23 	AcquireOp
    0x5B 0x24 	SignalOp
    0x5B 0x25 	WaitOp
    0x5B 0x26 	ResetOp
    0x5B 0x27 	ReleaseOp
    0x5B 0x28 	FromBCDOp
    0x5B 0x29 	ToBCD
    0x5B 0x2A 	UnloadOp
    0x5B 0x30 	RevisionOp
    0x5B 0x31 	DebugOp
    0x5B 0x32 	FatalOp
    0x5B 0x33 	TimerOp
    0x5B 0x80 	OpRegionOp
    0x5B 0x81 	FieldOp
    0x5B 0x82 	DeviceOpList
    0x5B 0x83 	ProcessorOp
    0x5B 0x84 	PowerResOp
    0x5B 0x85 	ThermalZoneOpList
    0x5B 0x86 	IndexFieldOp
    0x5B 0x87 	BankFieldOp
    0x5B 0x88 	DataRegionOp
    0x5C (\) 	       RootChar
    0x5E (^) 	        ParentPrefixChar
    0x5F(_) 	      NameChar
    0x60 (`) 	Local0Op
    0x61 (a) 	Local1Op
    0x62 (b) 	Local2Op
    0x63 (c) 	Local3Op
    0x64 (d) 	Local4Op
    0x65 (e) 	Local5Op
    0x66 (f) 	Local6Op
    0x67 (g) 	Local7Op
    0x68 (h) 	Arg0Op
    0x69 (i) 	Arg1Op
    0x6A (j) 	Arg2Op
    0x6B (k) 	Arg3Op
    0x6C (l) 	Arg4Op
    0x6D (m) 	Arg5Op
    0x6E (n) 	Arg6Op
    0x70 	StoreOp
    0x71 	RefOfOp
    0x72 	AddOp
    0x73 	ConcatOp
    0x74 	SubtractOp
    0x75 	IncrementOp
    0x76 	DecrementOp
    0x77 	MultiplyOp
    0x78 	DivideOp
    0x79 	ShiftLeftOp
    0x7A 	ShiftRightOp
    0x7B 	AndOp
    0x7C 	NandOp
    0x7D 	OrOp
    0x7E 	NorOp
    0x7F 	        XorOp
    0x80 	NotOp
    0x81 	FindSetLeftBitOp
    0x82 	FindSetRightBitOp
    0x83 	DerefOfOp
    0x84 	ConcatResOp
    0x85 	ModOp
    0x86 	NotifyOp
    0x87 	SizeOfOp
    0x88 	IndexOp
    0x89 	MatchOp
    0x8A 	CreateDWordFieldOp
    0x8B 	CreateWordFieldOp
    0x8C 	CreateByteFieldOp
    0x8D 	CreateBitFieldOp
    0x8E 	TypeOp
    0x8F 	         CreateQWordFieldOp
    0x90 	LandOp
    0x91 	LorOp
    0x92 	LnotOp
    0x92 0x93 	LNotEqualOp
    0x92 0x94 	LLessEqualOp
    0x92 0x95 	LGreaterEqualOp
    0x93 	LEqualOp
    0x94 	LGreaterOp
    0x95 	LLessOp
    0x96 	ToBufferOp
    0x97 	ToDecimalStringOp
    0x98 	ToHexStringOp
    0x99 	ToIntegerOp
    0x9C 	ToStringOp
    0x9D 	CopyObjectOp
    0x9E 	MidOp
    0x9F 	        ContinueOp
    0xA0 	IfOp
    0xA1 	ElseOp
    0xA2 	WhileOp
    0xA3 	NoopOp
    0xA4 	ReturnOp
    0xA5 	BreakOp
    0xCC 	BreakPointOp
    0xFF 	        OnesOp

#275

diderius6

Hi,
in eventmanager from XP on the Asrockboard I get this message:
AMLI: ACPI-BIOS versucht, einen ungültigen Speicherbereich
"OpRegion" bei Adresse 0x5000 mit einer Länge von 0x1000 zu erstellen.
Dieser Bereich fällt in den vom Betriebssystem geschützten Speicheradressbereich (0x0 - 0x9c400).
This is nice, because now I know the device,
that is doing the problem from the very first beginning with overlapping memory from e820 table and Acpi, it is the serial COM 1 port, ACPI\PNP0501
listet in DSDT for the Asrock Bios with

    Device (UAR1)
                    {
                        Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
                        Name (_UID, Zero)  // _UID: Unique ID
                        Name (LDN, 0x02)
                        Method (_STA, 0, Serialized)  // _STA: Status
                        {
                            If ((IOST & One))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
                        {
                            ^^SIO1.DCNT (Zero, Zero)
                        }

                        Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                        {
                            Return (^^SIO1.DCRS (Zero, Zero))
                        }

                        Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
                        {
                            ^^SIO1.DSRS (Arg0, Zero)
                        }

                        Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
                        {
                            StartDependentFn (0x00, 0x00)
                            {
                                IO (Decode16,
                                    0x03F8,             // Range Minimum
                                    0x03F8,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {4}
                                DMA (Compatibility, NotBusMaster, Transfer8, )
                                    {}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x03F8,             // Range Minimum
                                    0x03F8,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {4}
                                DMA (Compatibility, NotBusMaster, Transfer8, )
                                    {}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x02F8,             // Range Minimum
                                    0x02F8,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {3}
                                DMA (Compatibility, NotBusMaster, Transfer8, )
                                    {}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x03E8,             // Range Minimum
                                    0x03E8,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {4}
                                DMA (Compatibility, NotBusMaster, Transfer8, )
                                    {}
                            }
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x02E8,             // Range Minimum
                                    0x02E8,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IRQNoFlags ()
                                    {3}
                                DMA (Compatibility, NotBusMaster, Transfer8, )
                                    {}
                            }
                            EndDependentFn ()
                        })
                        Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                        {
                            Return (GPRW (0x17, 0x04))
                        }
                    }

What I dont see in this list is, why ACPI is doing this and from where I can see this before.
I come to the idea with this device, because after this message in eventmanager the COM 1 port was disabled. So it is a real error from Acpi,
Dietmar

#276

diderius6

Hi,
I make a test, if it is possible to give during start XP another list of Acpi tables than those Acpi tables, written in Bios.
Yesssssaaahh, it can be done:))!
I change with Winhex in XP in the registry of the Asrock board in hardware\Acpi\FADT the binary code for the timer
A5C40300 against
A5440300.
Then I shut the compi down.
Normally, at boottime always the Acpi tables are written new via Bios (means 44 --> C4), I tested this.
Winserver 2003 looks at Bios for DSDT, FADT.. but XP looks at registry.
This XP I copy file by file to a kangaroo USB stick, which can be set write protect.
Then I change with Winhex the first 512 Bit (MBR) of the kangoroo against the first 512 Bit MBR of the harddisk. This is the nice trick from s4e.
Then I set the kangoroo to write protect, choose via F11 the bootmenue of the Asrock board and start from the writeprotected kangoroo.
Because the USB stick has no drivers for USB, after first boot the contact is lost and because the signatur and everything else is exact the same as from harddrive, XP now choses the harddisk and boots to XP.
In registry on harddisk Bios has rewritten like normal 44 --> C4 in FADT.
But the to ram loaded registry from kangoroo has at this place still the 44 code. So, the normall hal.dll thinks via "Bios" make use of the RTC timer and so without customized hal.dll the clock works
Dietmar

#277

diderius6

Hi,
does somebody know, why it is not possible to do USB boot to XP since z170 chipset? usbstor.sys is needed and usbd.sys,
it can be given by hand, I do.
I know, that there are no drivers vor the Intel USB devices.
This is so strange.
But for example on the Asus z87i-pro I can boot XP from the Asmedia chip ASM1042 with 300 Mbyte/s from usb stick.
And the drivers for ASM1142, 2142, 3142 work all with XP
Dietmar

#278

diderius6

I set up a windbg session on the Asrock board with USB 3.1chip ASM3142,
for to see, what is going on.
I boot XP SP3 from an WD harddisk, 2 TB formatted with Fat32,
which boots my Asus z87i-pro board from USB with Asmedia ASM1042 chip .
Before I put there the newest drivers vers. 1.16.54.1 for all asmedia chips on this
usb harddisk. Still it boots the z87i-pro board.
By the way, the brandnew driver 1.16.55.1 from Asmedia gives on XP bluesreen.
Here is the result:

>     BugCheck 7B, {b9cc7524, c0000034, 0, 0}

>     Probably caused by : ntkrpamp.exe ( nt!IopMarkBootPartition+f5 )

>       DevNode 0x89b0eb60 for PDO 0x89b0e030
>                 InstancePath is "PCI\VEN_1B21&DEV_0612&SUBSYS_06121849&REV_02\4&12e73dd2&0&00E1"
>                 State = DeviceNodeInitialized (0x302)
>                 Previous State = DeviceNodeUninitialized (0x301)
>                 Problem = CM_PROB_NOT_CONFIGURED

>     DevNode 0x89b0fdd0 for PDO 0x89b10670
>                 InstancePath is "PCI\VEN_1B21&DEV_2142&SUBSYS_21421849&REV_00\4&1fc90664&0&00E4"
>                 State = DeviceNodeInitialized (0x302)
>                 Previous State = DeviceNodeUninitialized (0x301)
>                 Problem = CM_PROB_NOT_CONFIGURED

>      DevNode 0x89c46828 for PDO 0x89c46970
>         InstancePath is "Root\LEGACY_ASMTHUB3\0000"
>         ServiceName is "asmthub3"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)

>     DevNode 0x89c465e8 for PDO 0x89c46730
>         InstancePath is "Root\LEGACY_ASMTXHCI\0000"
>         ServiceName is "asmtxhci"
>         State = DeviceNodeStarted (0x308)

>     DevNode 0x89c44dc8 for PDO 0x89c44f10
>         InstancePath is "Root\LEGACY_USBHUB\0000"
>         ServiceName is "usbhub"
>         State = DeviceNodeStarted (0x308)

>         DevNode 0x89c44b88 for PDO 0x89c44cd0
>         InstancePath is "Root\LEGACY_USBSTOR\0000"
>         ServiceName is "USBSTOR"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)

#279

diderius6

I see, that the needed drivers for USB all start very early exact as I want,
setting in registry start = 0 and group System Reserved.
But VEN_1B21&DEV_0612, which is the AHCI controller from Asmedia
does not start (normal, because no driver, but unimportant, because we boot from USB device)
and
VEN_1B21&DEV_2142 which stands for the USB 3.1chip "ASM3142"
also not, which is probably the reason for BSOD 0x7B here,
but I do not understand why this happens,
because all other drivers started as you can see
and when boot from normal harddisk, this Asmedia ASM3142 works on XP SP3
Dietmar

#280

diderius6

>     0: kd> !DevNode 0x89b0fdd0
>     DevNode 0x89b0fdd0 for PDO 0x89b10670
>       Parent 0x89b0c708   Sibling 0000000000   Child 0000000000
>       InstancePath is "PCI\VEN_1B21&DEV_2142&SUBSYS_21421849&REV_00\4&1fc90664&0&00E4"
>       State = DeviceNodeInitialized (0x302)
>       Previous State = DeviceNodeUninitialized (0x301)
>       StateHistory[00] = DeviceNodeUninitialized (0x301)
>       StateHistory[19] = Unknown State (0x0)
>       StateHistory[18] = Unknown State (0x0)
>       StateHistory[17] = Unknown State (0x0)
>       StateHistory[16] = Unknown State (0x0)
>       StateHistory[15] = Unknown State (0x0)
>       StateHistory[14] = Unknown State (0x0)
>       StateHistory[13] = Unknown State (0x0)
>       StateHistory[12] = Unknown State (0x0)
>       StateHistory[11] = Unknown State (0x0)
>       StateHistory[10] = Unknown State (0x0)
>       StateHistory[09] = Unknown State (0x0)
>       StateHistory[08] = Unknown State (0x0)
>       StateHistory[07] = Unknown State (0x0)
>       StateHistory[06] = Unknown State (0x0)
>       StateHistory[05] = Unknown State (0x0)
>       StateHistory[04] = Unknown State (0x0)
>       StateHistory[03] = Unknown State (0x0)
>       StateHistory[02] = Unknown State (0x0)
>       StateHistory[01] = Unknown State (0x0)
>       Flags (0x000022f0)  DNF_ENUMERATED, DNF_IDS_QUERIED,
>                           DNF_HAS_BOOT_CONFIG, DNF_BOOT_CONFIG_RESERVED,
>                           DNF_RESOURCE_REQUIREMENTS_NEED_FILTERED, DNF_HAS_PROBLEM
>       CapabilityFlags (0x00002000)  WakeFromD3
>       Problem = CM_PROB_NOT_CONFIGURED

#281

diderius6

    Problem = CM_PROB_NOT_CONFIGURED

    From Microsoft:

    CM_PROB_NOT_CONFIGURED

    Error Code

    This function is reserved for system use.

    There
     is a device on the system for which there is no ConfigFlags registry
    entry. This means no driver is installed. Typically this means an INF
    file could not be found.

Aha, this may be the reason, because the ASM3142 is not the ASM1042,
even they use the same drivers. Needs to feed registry from XP with correct values for ASM3142
Dietmar

#282

diderius6

Not works.
I doublechecked all the handmade entries in registry.
The Asus z87i-pro board boots at once to USB3 (300MByte/s) with this entries,
but the Asrock z370 board not.
Something other is preventing USB boot on Asmedia chip ASM3142 on the Asrock board.
Any help is welcome.
Here are the registry entries from usbstor, asmtxhci and asmthub3.
They can be used to make XP USB3 boot work
Dietmar

>     Schlüsselname: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR
>     Klassenname: <KEINE KLASSE>
>     Letzter Schreibzugriff: 05.01.2019 - 02:29
>     Wert 0
>       Name: Type
>       Typ: REG_DWORD
>       Daten: 0x1

>     Wert 1
>       Name: Start
>       Typ: REG_DWORD
>       Daten: 0x0

>     Wert 2
>       Name: ErrorControl
>       Typ: REG_DWORD
>       Daten: 0x1

>     Wert 3
>       Name: ImagePath
>       Typ: REG_EXPAND_SZ
>       Daten: system32\DRIVERS\USBSTOR.SYS

>     Wert 4
>       Name: DisplayName
>       Typ: REG_SZ
>       Daten: USB-Massenspeichertreiber

>     Wert 5
>       Name: Group
>       Typ: REG_SZ
>       Daten: System Reserved

>     Wert 6
>       Name: Tag
>       Typ: REG_DWORD
>       Daten: 0x1

>     Schlüsselname: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Enum
>     Klassenname: <KEINE KLASSE>
>     Letzter Schreibzugriff: 05.01.2019 - 02:55
>     Wert 0
>       Name: 0
>       Typ: REG_SZ
>       Daten: USB\Vid_0bda&Pid_0152&MI_00\6&2182afbe&0&0000

>     Wert 1
>       Name: Count
>       Typ: REG_DWORD
>       Daten: 0x3

>     Wert 2
>       Name: NextInstance
>       Typ: REG_DWORD
>       Daten: 0x3

>     Wert 3
>       Name: 1
>       Typ: REG_SZ
>       Daten: USB\Vid_1058&Pid_25a2\57584631414237524541354A

>     Wert 4
>       Name: 2
>       Typ: REG_SZ
>       Daten: Root\LEGACY_USBSTOR\0000

>     Schlüsselname: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\asmtxhci
>     Klassenname: <KEINE KLASSE>
>     Letzter Schreibzugriff: 05.01.2019 - 01:56
>     Wert 0
>       Name: Type
>       Typ: REG_DWORD
>       Daten: 0x1

>     Wert 1
>       Name: Start
>       Typ: REG_DWORD
>       Daten: 0x0

>     Wert 2
>       Name: ErrorControl
>       Typ: REG_DWORD
>       Daten: 0x1

>     Wert 3
>       Name: Tag
>       Typ: REG_DWORD
>       Daten: 0x12

>     Wert 4
>       Name: ImagePath
>       Typ: REG_EXPAND_SZ
>       Daten: system32\DRIVERS\asmtxhci.sys

>     Wert 5
>       Name: DisplayName
>       Typ: REG_SZ
>       Daten: ASMedia XHCI Service

>     Wert 6
>       Name: Group
>       Typ: REG_SZ
>       Daten: System Reserved

>     Wert 7
>       Name: BootFlags
>       Typ: REG_DWORD
>       Daten: 0x10

>     Schlüsselname: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\asmtxhci\Enum
>     Klassenname: <KEINE KLASSE>
>     Letzter Schreibzugriff: 05.01.2019 - 02:55
>     Wert 0
>       Name: Count
>       Typ: REG_DWORD
>       Daten: 0x3

>     Wert 1
>       Name: NextInstance
>       Typ: REG_DWORD
>       Daten: 0x3

>     Wert 2
>       Name: 0
>       Typ: REG_SZ
>       Daten: PCI\VEN_1B21&DEV_2142&SUBSYS_21421849&REV_00\4&1fc90664&0&00E4

>     Wert 3
>       Name: 1
>       Typ: REG_SZ
>       Daten: Root\LEGACY_ASMTXHCI\0000

>     Wert 4
>       Name: 2
>       Typ: REG_SZ
>       Daten: PCI\VEN_1B21&DEV_1142&SUBSYS_85BF1043&REV_00\4&2816a63a&0&00E4

>     Schlüsselname: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\asmtxhci\Security
>     Klassenname: <KEINE KLASSE>
>     Letzter Schreibzugriff: 03.06.2018 - 18:34
>     Wert 0
>       Name: Security
>       Typ: REG_BINARY
>       Daten:
>     00000000   01 00 14 80 90 00 00 00 - 9c 00 00 00 14 00 00 00  ................
>     00000010   30 00 00 00 02 00 1c 00 - 01 00 00 00 02 80 14 00  0...............
>     00000020   ff 01 0f 00 01 01 00 00 - 00 00 00 01 00 00 00 00  ÿ...............
>     00000030   02 00 60 00 04 00 00 00 - 00 00 14 00 fd 01 02 00  ..`.........ý...
>     00000040   01 01 00 00 00 00 00 05 - 12 00 00 00 00 00 18 00  ................
>     00000050   ff 01 0f 00 01 02 00 00 - 00 00 00 05 20 00 00 00  ÿ........... ...
>     00000060   20 02 00 00 00 00 14 00 - 8d 01 02 00 01 01 00 00   ...............
>     00000070   00 00 00 05 0b 00 00 00 - 00 00 18 00 fd 01 02 00  ............ý...
>     00000080   01 02 00 00 00 00 00 05 - 20 00 00 00 23 02 00 00  ........ ...#...
>     00000090   01 01 00 00 00 00 00 05 - 12 00 00 00 01 01 00 00  ................
>     000000a0   00 00 00 05 12 00 00 00 -                          ........

>     Schlüsselname: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\asmthub3
>     Klassenname: <KEINE KLASSE>
>     Letzter Schreibzugriff: 05.01.2019 - 01:54
>     Wert 0
>       Name: Type
>       Typ: REG_DWORD
>       Daten: 0x1

>     Wert 1
>       Name: Start
>       Typ: REG_DWORD
>       Daten: 0x0

>     Wert 2
>       Name: ErrorControl
>       Typ: REG_DWORD
>       Daten: 0x1

>     Wert 3
>       Name: Tag
>       Typ: REG_DWORD
>       Daten: 0x11

>     Wert 4
>       Name: ImagePath
>       Typ: REG_EXPAND_SZ
>       Daten: system32\DRIVERS\asmthub3.sys

>     Wert 5
>       Name: DisplayName
>       Typ: REG_SZ
>       Daten: ASMedia USB3.1 Hub Service

>     Wert 6
>       Name: Group
>       Typ: REG_SZ
>       Daten: System Reserved

>     Wert 7
>       Name: BootFlags
>       Typ: REG_DWORD
>       Daten: 0x10

>     Schlüsselname: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\asmthub3\Enum
>     Klassenname: <KEINE KLASSE>
>     Letzter Schreibzugriff: 05.01.2019 - 02:55
>     Wert 0
>       Name: Count
>       Typ: REG_DWORD
>       Daten: 0x3

>     Wert 1
>       Name: NextInstance
>       Typ: REG_DWORD
>       Daten: 0x3

>     Wert 2
>       Name: 0
>       Typ: REG_SZ
>       Daten: USB\ASMEDIAROOT_Hub\5&efb7b49&0&0

>     Wert 3
>       Name: 1
>       Typ: REG_SZ
>       Daten: Root\LEGACY_ASMTHUB3\0000

>     Wert 4
>       Name: 2
>       Typ: REG_SZ
>       Daten: USB\ASMEDIAROOT_Hub\5&14349c16&0&0

>     Schlüsselname: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\asmthub3\Security
>     Klassenname: <KEINE KLASSE>
>     Letzter Schreibzugriff: 03.06.2018 - 18:37
>     Wert 0
>       Name: Security
>       Typ: REG_BINARY
>       Daten:
>     00000000   01 00 14 80 90 00 00 00 - 9c 00 00 00 14 00 00 00  ................
>     00000010   30 00 00 00 02 00 1c 00 - 01 00 00 00 02 80 14 00  0...............
>     00000020   ff 01 0f 00 01 01 00 00 - 00 00 00 01 00 00 00 00  ÿ...............
>     00000030   02 00 60 00 04 00 00 00 - 00 00 14 00 fd 01 02 00  ..`.........ý...
>     00000040   01 01 00 00 00 00 00 05 - 12 00 00 00 00 00 18 00  ................
>     00000050   ff 01 0f 00 01 02 00 00 - 00 00 00 05 20 00 00 00  ÿ........... ...
>     00000060   20 02 00 00 00 00 14 00 - 8d 01 02 00 01 01 00 00   ...............
>     00000070   00 00 00 05 0b 00 00 00 - 00 00 18 00 fd 01 02 00  ............ý...
>     00000080   01 02 00 00 00 00 00 05 - 20 00 00 00 23 02 00 00  ........ ...#...
>     00000090   01 01 00 00 00 00 00 05 - 12 00 00 00 01 01 00 00  ................
>     000000a0   00 00 00 05 12 00 00 00 -                          ........

#283

diderius6

Small success

    DevNode 0x89c03ee8 for PDO 0x89c042e0
              InstancePath is "PCI\VEN_1B21&DEV_2142&SUBSYS_21421849&REV_00\3&37f6853e&0&00E4"
              ServiceName is "asmtxhci"
              State = DeviceNodeStarted (0x308)
              Previous State = DeviceNodeEnumerateCompletion (0x30d)

      DevNode 0x87c72e78 for PDO 0x87c75df8
                InstancePath is "USB\ASMEDIAROOT_Hub\4&290a3674&0&0"
                ServiceName is "asmthub3"
                State = DeviceNodeStarted (0x308)
                Previous State = DeviceNodeEnumerateCompletion (0x30d)

Only usbstor is loaded, but does not start
Dietmar

    0: kd> !devnode usbstor
    DevNode 0xbab28000 for PDO 0x98284657
      Parent 0x00000004   Sibling 0x00905a4d   Child 0x00000003
      InterfaceType 0x98284656  Bus Number 0x9834658d
    Duplicate PDO 0x98284656  InstancePath is ""
      ServiceName is ""
      TargetDeviceNotify List - f 0x68636952  b 0x98284657
      State = Unknown State (0x40)
      Previous State = Unknown State (0x0)
      StateHistory[00] = Unknown State (0x0)
      StateHistory[19] = Unknown State (0x20534f44)
      StateHistory[18] = Unknown State (0x206e6920)
      StateHistory[17] = Unknown State (0x6e757220)
      StateHistory[16] = Unknown State (0x65622074)
      StateHistory[15] = Unknown State (0x6f6e6e61)
      StateHistory[14] = Unknown State (0x63206d61)
      StateHistory[13] = Unknown State (0x72676f72)
      StateHistory[12] = Unknown State (0x70207369)
      StateHistory[11] = Unknown State (0x685421cd)
      StateHistory[10] = Unknown State (0x4c01b821)
      StateHistory[09] = Unknown State (0xcd09b400)
      StateHistory[08] = Unknown State (0xeba1f0e)
      StateHistory[07] = Unknown State (0xd8)
      StateHistory[06] = Unknown State (0x0)
      StateHistory[05] = Unknown State (0x0)
      StateHistory[04] = Unknown State (0x0)
      StateHistory[03] = Unknown State (0x0)
      StateHistory[02] = Unknown State (0x0)
      StateHistory[01] = Unknown State (0x0)
      Flags (0000000000)
      UserFlags (0xcb462713)  DNUF_WILL_BE_REMOVED, DNUF_DONT_SHOW_IN_UI,
                              DNUF_SHUTDOWN_QUERIED
                              Unknown flags 0xcb462700
      CapabilityFlags (0x010e00e0)  DockDevice, UniqueID,
                                    SilentInstall, NoDisplayInUI
                                    Unknown flags 0x010c0000
      DisableableDepends = 15460 (from children)

#284

diderius6

    : kd> lm
    start    end        module name
    804d7000 806e5000   nt         (pdb symbols)          c:\symbols\ntkrpamp.pdb\7D6290E03E32455BB0E035E38816124F1\ntkrpamp.pdb
    806e5000 8070a400   hal        (deferred)
    ba36d000 ba386b80   Mup        (deferred)
    ba387000 ba3b3980   NDIS       (deferred)
    ba3b4000 ba3ca880   KSecDD     (deferred)
    ba3cb000 ba3ee180   Fastfat    (deferred)
    ba3ef000 ba400f00   sr         (deferred)
    ba401000 ba420b00   fltMgr     (deferred)
    ba421000 ba6d6000   iaStor     (deferred)
    ba6d6000 ba6fba00   dmio       (deferred)
    ba6fc000 ba71ad80   ftdisk     (deferred)
    ba71b000 ba72ba80   pci        (deferred)
    ba72c000 ba74b000   asmthub3   (deferred)
    ba74b000 ba7a7000   asmtxhci   (deferred)
    ba8a8000 ba8b1300   isapnp     (deferred)
    ba8b8000 ba8c2580   MountMgr   (deferred)
    ba8c8000 ba8d5200   VolSnap    (deferred)
    ba8d8000 ba8e0e00   disk       (deferred)
    ba8e8000 ba8f4180   CLASSPNP   (deferred)
    bab28000 bab2d500   USBSTOR    (deferred)
    bab30000 bab34d00   PartMgr    (deferred)
    bacb8000 bacbb000   BOOTVID    (deferred)
    bada8000 bada9b80   kdcom      (deferred)
    badaa000 badab100   WMILIB     (deferred)
    badac000 badad280   USBD       (deferred)
    badae000 badaf700   dmload     (deferred)

#285

XPLives

⇗ @diderius6
Dietmar,
Z87/Z97 and possibly X99 is the last chipset to work using on XP with USB on Intel USB ports.
SkyLake removed the eHCI which killed off USB 2.0 that XP understands. This is the reason why only a pure Intel USB 3.0 xHCI driver is necessary to boot XP off SkyLake, Kaby Lake, and Coffee Lake from Intel USB 3.0 xHCI ports. Even the USB 2.0 fake ports will not function.
I thought you had no issues booting from a USB Flash Drive to XP on Z170, Z270, Z370, Z390 Chipsets using Asmedia USB port?
What is the importance of you booting XP off NVMe?
Can you boot to Windows 2000 or 98SE DOS off this NVMe like SATA can?
Also Server 2003 boots in 3-6 seconds for me off SATA.
Would be faster operation if we image XP to SSD and load XP image from SSD to the Ramdrive to boot.

## Page 20

#286

diderius6

I can use all the Asmedia chips in XP.
And few days ago I believed, that also boot XP from USB3 was no problem,
because this summer I tested this one time on the nice Asus z87i-pro board
and it works at once.
Now I see, that the problem is, that usbstor.sys does not like to start
on chipsets >=z170 for some strange reasons.
It is not clear for me. The driver has an coinstaller,
but when you once have made the harddisk usb friendly with this coinstaller, where is the problem?
No board from Skylake, Kabylake, Coffee lake works until now for USB boot for XP as I have to see.
Even the Apex X board, which can boot nearly everything, does not start usbstor.sys.
There is a strange connection between usbstor.sys and usbd.sys, one cant live without the other.
Long time ago I make some test with win98SE. I can boot it via USB:)),
but this was 10 years and more ago.
Now the only chance for USB boot is the method from s4e, have a look at reboot.pro
I tested it there for older motherboards with no NVME support at all and it works on nearly all boards,
even 10 years old.
The s4e method works for ANY driver
Dietmar

#287 | XPLives | ⇗ @diderius6 But you tested NVMe only for XP? Can you boot to Windows 2000 or 98SE DOS off the NVMe like a SATA SSD can? I already know USB can boot 98SE that's always worked for me but what about the NVMe?

#288

diderius6

⇗ @XPLives for this you need a driver nvme.
Very hard job, to make this work in XP. Now we have, thanks a lot to Kai.
And until now I have not seen anybody with
booting XP direct via nvme with this driver, only me.
Kai make this for win2003.
When somebody is good in C programming,
it is possible to write a driver nvme.sys for the scsiport modell.
Then, ntboodd will work also and you have nvme from XP on any compi,
Dietmar

#289

diderius6

With s4e method it works
DevNode 0x89c39bb0 for PDO 0x89c39e50
InstancePath is "PCI\VEN_1B21&DEV_2142&SUBSYS_21421849&REV_00\3&37f6853e&0&00E4"
ServiceName is "asmtxhci"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeStarted (0x308)
DevNode 0x87c69338 for PDO 0x87c6c478
InstancePath is "USB\ASMEDIAROOT_Hub\4&290a3674&0&0"
ServiceName is "asmthub3"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeStarted (0x308)
DevNode 0x87c598d8 for PDO 0x87c5c7c8
InstancePath is "USB\VID_1058&PID_25A2\57584631414237524541354A"
ServiceName is "USBSTOR"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x87a7d5d0 for PDO 0x87a8a0d0
InstancePath is "USBSTOR\Disk&Ven_WD&Prod_Elements_25A2&Rev_1021\57584631414237524541354A&0"
ServiceName is "disk"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)

#290

diderius6

Yessssaaaaahhh :))
first direct USB3.1 boot on the Asrock fatal1ty z370 gaming k6 board
Dietmar
EDIT: Just boot from Kanguru USB stick.
EDIT2: USB3.1 boot via SSD and full Acpi support on the Asrock board,
feels very fast.
diderius6 has attached images to this post ⇗ asrockUSBboot31.jpg ⇗ kanguruUsb31boot.jpg ⇗ USB31bootSSD.jpg

#291 | diderius6 | Hi, is there a generic Bios patch, that allows to start the ehci (USB 2) driver on XP, Vista? Dietmar

#292

XPLives

⇗ @diderius6
I noticed a few issues. I always enjoy seeing your bare bones test bed. But maybe add a cardboard box underneath MB to protect the desk from unnecessary scratching.
On the BIOS go to the iGPU change shared memory from 1.5GB to 32MB. Some MB only allow 64MB or 128MB minimum. No need to suck up 1GB+ memory from OS.
Intel HD Graphics 4200+, 530+ don't support XP so it is wasted entirely.
I use 32MB only on the Ivy Bridge with the HD 4000 and it is a beauty. ;)
3.43GB of RAM available on mine. If someone can make Intel HD Graphics 630 emulate HD 4000 compatibility then we have a gold mine.
1.94GB of RAM available is too much lost!!! (1.49GB? That means 1.5GB shared memory) Integrated Graphics Disable Auto Memory and set manual to the lowest possible.
For benchmark install Gavotte Ramdisk and repeat the Crystal DiskMark 3GB Ramdisk test. :)

#293

diderius6

⇗ @XPLives
I do not use any linux for this USB 3.1 boot.
Only the 2 original drivers ASMedia USB 3.0+3.1 Drivers v1.16.54.1 WHQL for Win7 for the Asmedia chip
and set in each *.inf
StartType = 0
LoadOrderGroup = System Reserved
Then I put all USB.sys from XP SP3 files into directory Windows\system32\drivers.
Also in all its *.inf I set the same values as above and copy all *.inf to Windows\inf folder.
Two things are important:
1.) After you installed the Asmedia driver, you have to connect your USB device to
the 3.1 USB port. When it is recogniced,
look in registry, if HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbstor
ist set to start=0 and Group System Reserved. The entry for Group you need to do by hand.
The same you have to look for the two entries of the asmedia drivers there:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\asmtxhci
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\asmthub3]
Now comes the part, which makes me like crazy:
The usbstor.sys driver only starts, when it sees another drive from the boot device.
It is like the cat bites in its tail, when the boot device is usb.
2.) But small trick helps: Connect any other usb device to the same 3.1 chip, asmedia has 2 ports.
An USB mouse can do this job.
During boot, the usb boot device "sees" its partner and only then starts usbstor.sys.
And then it uses usbstor.sys for itself:))
Dietmar

#294 | diderius6 | Hi all, I just ordered EVGA Z390 Dark motherboard via Amazon. I will install there ACPI XP with really all drivers for XP, given the real power and make a compare with Win10^^ Dietmar PS: I just hear, that wine 4 works with DirectX 12.
#295 | diderius6 | Just in this moment my EVGA Z390 Dark motherboard arrives from USA. Now fun starts with XP on it, have a nice sunny day, Dietmar
#296 | diderius6 | Evga presents an XP friendly Bios with full ACPI support for the z390 dark 1E399092.bin Dietmar

#297

diderius6

After very good results for speed test in any situation,
and long life,
I just ordered an
Intel Optane SSD 905P 960GB, PCIe 3.0 x4 (SSDPED1D960GAX1)
and will install XP SP3 on nvme on it.
In few days I report about,
Dietmar

#298

diderius6

Oha,
I just noticed, that the timer in the original XP Bios from EVGA for the z390 dark motherboard not works.
And also compi stays always in C0 state, brrr.
And the most crazy thing: This happens also in Win10, power consumption on 9900k always about 27 Watt..
Now I chance all against my modified
acpi.sys
hal.dll
intelppm.sys
and all is nice:
Full ACPI support with Hyperthreading, Timer works, powerconsumption on 9900k about 2 Watt:)).
This simple means,
we, Mov AX, 0xDEAD and me Dietmar
are better
Dietmar

#299

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #298

> Now I chance all against my modified
> acpi.sys
> hal.dll
> intelppm.sys

any chance i could try out your modified drivers for myself? or PM me the necessary hex edits you did for me to test the edits myself?

#300

RayeR

Hi, very interesting thread and congrats to diderius6 for his effort and reporting progress.
Just an idea, instead of patching ACPI tables (which may get harder and harden in the future) would be possible to replace AMLI - acpi.sys by opensource counterpart from ReactOS? It seems they use ACPICA and it should be much more up to date than obsolete WXP original file. But I can imagine that it would be a hard work, probably the kernel intrface of ROS is not exactly same as WXP...
I also read somewhere that years ago some part of MS Windows sources had leaked (not sure if it was W2K/XP or other version) so if we could get acpi.sys sources it would be possibe to upgreade to implement newer 2.0 functions. If not maybe still possible to write some driver/filter that will be called before acpi.sys it will transform necessary things 2.0 to 1.0 and pass it further to original aspi.sys. But just thinking no idea if such hook possible and how hard to code it... I personally still run old good Sandybridge on a compatible MB but good luck to your work.

## Page 21

#301

Mov AX, 0xDEAD

> Zitat von ⇗ RayeR im Beitrag ¶ #300

> replace AMLI - acpi.sys by opensource counterpart from ReactOS? It seems they use ACPICA and it should be much more up to date than obsolete WXP original file. But I can imagine that it would be a hard work, probably the kernel intrface of ROS is not exactly same as WXP...

MS uses own implementation of acpi and it very far from acpica, and yes, acpi.sys is not just acpi driver, it also implement some pnp/pci/resource functions and connected with kernel/hal

> Zitat von ⇗ RayeR im Beitrag ¶ #300

> I also read somewhere that years ago some part of MS Windows sources had leaked (not sure if it was W2K/XP or other version) so if we could get acpi.sys sources it would be possibe to upgreade to implement newer 2.0 functions. If not maybe still possible to write some driver/filter that will be called before acpi.sys it will transform necessary things 2.0 to 1.0 and pass it further to original aspi.sys.

- part of nt4 and win200 sources leaked, mainly user-mode, drivers not leaked
- this is impossible because we cannot emulate new commands by old acpi 1.0 syntax. we cannot skip new commands because logic will destroyed

#302

diderius6

⇗ @Mov AX, 0xDEAD
May be it is possible,
to modify acpi.sys from XP in this way, that it just ignores the 3 keywords, which gives BSOD.
CopyObject
CreateQWordField
QwordConst
Another, really hard way would be, to teach acpi.sys the 14 words from Acpi 2.0,
have a nice evening,
Dietmar

#303

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #302

> @Mov AX, 0xDEAD
> Another, really hard way would be, to teach acpi.sys the 14 words from Acpi 2.0,

hard but possible, it may take some weeks digging in IDA if you know 80386 asm

#304

diderius6

Today I make a new acpi.sys for XP SP3 32 bit.
It works on AMD, Intel motherboards,
for all languages,
Dietmar
diderius6 has attached files to this post

- ⇗ acpi.rar

#305

diderius6

⇗ @Mov AX, 0xDEAD
Oh, I just see, that you updated your acpi.sys for XP SP3 32 bit,
so that the error
0x000000A5 (0x00000003, xxxx, 0xС0140001, yyyy)
is gone.
This patch would be really nice, because this means no modding
of Bios any longer needed because of unknown ACPI 2.0 words
Dietmar
PS: With simple unconditional forced jmp (EB) I overcome
0x000000A5 (0x00000011, ...
0x000000A5 (0x00000002, ...
0x000000A5 (0x00002001, ...
0x000000A5 (0x00000008, ...
But this does not work for error
0x000000A5 (0x00000003, ...
Until now, I do not noticed any side effects,
but who knows^^..

#306

Mov AX, 0xDEAD

Exploring acpi.sys on Windows Longhorn betas:
4008 - integers are 32 bit, support most of acpi 2.0 opcodes (except CopyObject, Timer, QWordConst)
***
4042 - last version with 32 bit integers
4051 - first version with 64 bit integers
***
4074 - support new opcode CopyObject
***
5048 - import table match win xp !!!
***
5342 - support new opcode Timer and QWordConst, PDB published on Microsoft SYMBOL Server
5365 - integers are 32/64 (switched depending revision of DSDT table, V1=32, V2=64), added Dynamic conversion of types, PDB published
Qemu Acpi 1.0 tests:
5048 + WinXP = acpi correct
5048 + Longhorn = acpi correct
Qemu Acpi 2.0 tests:
5048, 5112, 5219 = bsod 0xA5 (0x14, xxx, 0x8A, yyy)
5259 = random bsods with error code or without
5342 = acpi correct, installer unstable
5365 = acpi correct
Skylake Acpi 2.0 hardware:
4008<->5342= bsod 0xA5 (0x03, xxx, C0140008, yyy)
5365 = acpi correct

#307 | diderius6 | ⇗ @Mov AX, 0xDEAD "i'e played little with longhorn betas:" Yesss, the idea is clear because 100% match of problem. Only, how to overcome this, is other question Dietmar

#308

RayeR

Hi, thanks for clarification.
Just a question to this statement: " this is impossible because we cannot emulate new commands by old acpi 1.0 syntax"
I don't know how much new and old ACPI differs but I belive it should be possible to emulate new functions by old functions. E.g. if there was added some function to work with 64bit operands it could be broken to 32bit operations in osme auxiliary function. Like in C I could code my own libC functions with bare C code or old libC functions to implement new libC functions. But maybe I'm wrong and new ACPI is too different...
BTW
another idea that could help with managing of your ACPI patches. I found that Apple MAC comunity uses a nice tool called MACiASL. It bundles iALS with some editor, patch engine and GUI. The idea is you can create text file patches for specific BIOS/motherboard to share and contribute by other users. They can then choose and download specific patches and apply them to theirs own DSDT (or could be on BIOS image for this purpose). Some patterns that needs to be replaced are generic in various BIOS ACPI tables so this can save some work and could extend patches for other motherboards...
⇗ http://www.macbreaker.com/2014/03/how-to...th-maciasl.html

#309

Mov AX, 0xDEAD

> Zitat von ⇗ RayeR im Beitrag ¶ #308

> They can then choose and download specific patches and apply them to theirs own DSDT (or could be on BIOS image for this purpose). Some patterns that needs to be replaced are generic in various BIOS ACPI tables so this can save some work and could extend patches for other motherboards...

this method is low effective, since the skylake+ bioses has a huge number of new acpi 2.0 commands in many places and the generic patterns will have to replace a lot of lines with their acpi 1.0 equivalents, which still need to be written.

#310

diderius6

History of Windows Vista ( aka Longhorn) is really interesting:)).
It started in 1999 (!) on the files from XP.
Later, they make a mix of XP and Winserver 2003, which makes it instabil.
After version 4094 they make a brake and decided to take only Win2003 SP1 as base for Vista.
So, Vista is an ideal candidate for XP SP4^^
Dietmar

#311

diderius6

⇗ @Mov AX, 0xDEAD
Have you tried Longhorn versions > 5048
for import table match XP?
They are still downloadable
Dietmar
PS: 5384?
EDIT: Nice, 5048 boots XP SP3

#312

Mov AX, 0xDEAD

> Zitat

> Have you tried Longhorn versions > 5048

not yet, i have links to download only 5112(beta1), 5219(beta2), 5229(beta2)

> Zitat von ⇗ diderius6 im Beitrag ¶ #311

> PS: 5384?

vista beta2, big mismath import table like usual vista

#313 | diderius6 | Make try with ⇗ https://winworldpc.com/product/windows-l...-vis/post-reset Dietmar

#314

diderius6

Latest Windows Longhorn (6.0.5840.16384) (rc2)
does not work, needs other ntoskernel,
Dietmar
Edit: 5536, 5384, 5342 the same, also not work.
PS: 5048 on
normal Bios vers. 106 on EVGA z390 dark gives the same BSOD as for you
0xA5 (0x03, xxx, C0140008, yyy)
This sounds like, that least one vocabel from the DSDT table acpi.sys 5048 does not like.
But this is a big step forward.
Ok, small hack, that compi jumps over this deathzone:)) gives now
0x000000A5 (0x00010006, ..., ..., ...)
EDIT2: Next Hack with jump over next deathzone, now compi hangs during boot
after drvmain.sdb , yes this hangs at acpi.sys
AppPatch/drvmain.sdb
DRIVERS/ACPI.sys

#315 | Mov AX, 0xDEAD | ¶ Windows XP SP3 32bit and modern PC parts (21)

## Page 22

#316

diderius6

I can install normal (my own) Vista 32 bit on the EVGA dark z390 motherboard with Bios 106,
without any BSOD (no mouse, brrr:-)).
So they change something in Acpi from version 5048 to last Vista 2006.
This means, there is hope for XP SP4 (Vista^^)
Dietmar
PS: The Bios 106 from the EVGA board contains the ACPI 2.0 words
QwordMemory (and QwordAcc).
This may be the reason for BSOD, because this words do not appear in the Assembler Source
of acpi.sys 5084 (Qword...).

#317

diderius6

Microsoft Windows Vista (''Longhorn'' 6.0.5270.9)
acpi.sys some changes in Hal.dll and ntoskrnl.exe
Dietmar
EDIT: Also some changes needed for acpi.sys in
hal.dll and ntoskrnl.exe for Windows Vista (''Longhorn'' 6.0.5259.0) ,
the same for
Microsoft Windows Vista (''Longhorn'' 6.0.5231.0),
Microsoft Windows Vista (''Longhorn'' 6.0.5219.0)
Microsoft Windows Vista (''Longhorn'' 6.0.5112.0)
Microsoft Windows Vista (''Longhorn'' 6.0.5365.8)
Microsoft Windows Vista (''Longhorn'' 6.0.5472.5)

#318 | Mov AX, 0xDEAD | .del

#319

diderius6

The ACPI 2.0 word Qword..
I do not find in any acpi.sys.
Only the word CreateQwordField.
So, this are 2 different vocabularies,
Dietmar
PS: An the Asus Apex 10 Bios there was a work around as I remember
for XP and Vista for the Qword..
but not for CreateQwordField.

#320

diderius6

When I try to install Vista (calls itself Longhorn^^) 5048 via DVD
on real Evga dark z390 with Bios 106 motherboard,
I get in the very beginning the same BSOD as under XP:
0xA5 (0x03, xxx, C0140008, yyy)
So, it is related to this acpi.sys from 5048
Dietmar
PS: Now hard works start, to find the first Vista, which installs Vista without this BSOD
on this board.
Then you compare this acpi.sys with this BSOD as above vs first acpi.sys without this BSOD,
all under Vista setup.

#321 | diderius6 | Yepp , Microsoft Windows Vista (''Longhorn'' 6.0.5472.5) installs Vista 32 Bit without BSOD on real Evga dark z390 with Bios 106 Dietmar

#322

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #321

> Microsoft Windows Vista (''Longhorn'' 6.0.5472.5) installs Vista 32 Bit without BSOD

5342.2 - bsod
5365.8 - ?
5381.1 - ?
5384.4 - acpi corect

#323

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #319

> The ACPI 2.0 word Qword..
> I do not find in any acpi.sys.

#define AML_QWORD_OP 0x0e
you will never found it, because it has no text presentation, it is opcode for storing 64 bit integer constants
see amlcode.h, it show all you need

#324 | diderius6 | 5384.4 acpi correct I can just confirm:)), 5365.8 acpi also correct, so this is the very first version without any BSOD 5342.2 - same BSOD as before, I just can confirm. This is last version of Vista with BSOD. Dietmar

#325

diderius6

A difference, that I can see at once between this 2 acpi.sys is,
that the Acpi.sys which works, has extra connections to ntoskrnl.exe
via
ETW EventEnabled
ETW Register
ETW Write
Dietmar
PS: But I do not think, that this is the reason why no BSOD.

#326

diderius6

I changed in acpi.sys (5048)

    8BFF558BEC8B4D0C85C98B45148B50187D218B550885D289482074058B4210EB0233C0
    5051526A0368A5000000FF154C620300C74018020000005283C01050E836FFFFFF5DC3

against (from acpi.sys 5365)

    8BFF558BEC8B4D0C85C98B45148B50187D218B550885D289482074058B4210EB0233C0
    5051526A0368A5000000FF15AC420300C74018020000005283C01050E850FFFFFF5DC3

But this gives during start of XP SP3 BSOD 0x7B
Dietmar
EDIT: This you can forget: This BSOD routine is absolut identic, only the adresses changed.

#327

diderius6

The 5048 acpi.sys boots the Asus Apex X (Bios 1901) XP SP3 with full Acpi support
without any modification.
So, for some motherboards no hack at all is needed in acpi.sys.
About the Asus board: They isolate Qword.. in Bios for XP and Vista.
So, may be the Amli Interpreter has a problem with this word.
And it has been undiscovered in so many versions of Vista, because 2006
was no Bios with Acpi 2.0 on the market
Dietmar
PS: Idea from this is: What did change in Amli Interpreter from version
5342.2 to 5365.8 . My favorit is QwordConstant.
If we cant overcome this: The only word in DSDT what has to be isolatet is Qword..
And this would be in the same time the test, if the idea about Qword is right.
EDIT: The problem with timer (needs modified hal.dll) and with Power states (needs modified intelppm.sys)
is the same as before with 5048 acpi.sys. So, this acpi.sys solves only BSOD A5.

#328

diderius6

New acpi.sys for XP SP3 32 bit,
all languages and compis.
Please tell me results for making things better
Dietmar
EDIT: The problem is more complex:
On my asrock fatal1ty z370 gaming k6
with acpi.sys 5048 I get again
BSOD 0xA5 (0x03, xxx, C0140008, yyy).
And in its Bios I isolated ALL CreateQwordField
and CopyObject instructions.
EDIT2: The problem may be really in QwordConstant:
acpi.sys from XP has no problem with this word.
But acpi.sys 5048 has.
This I know, because in DSDT table from the asrock fatal1ty z370 gaming k6
there appear QwordMemory and QwordAcc. I do not isolate them.
XP boots.
And may be because of QwordMemory and QwordAcc
BSOD 0xA5 (0x03, xxx, C0140008, yyy)
with acpi.sys 5084 on the Asrock board.
So, at the moment, acpi.sys 5084 is worse than my modded acpi.sys before.
diderius6 has attached files to this post

- ⇗ acpi.rar

#329 | diderius6 | acpi.sys from Windows Vista (Longhorn) 3683 also match all dependencies from ntoskrnl.exe and hal.dll but it is from 2002 (!) and looks like XP pur, Dietmar

#330

diderius6

acpi.sys from Microsoft Windows Vista (''Longhorn'' 6.0.4011.0)
gives during Vista install on my Asrock board the known error 0xA5 (0x2..).
This BSOD I know, it is the same as from XP SP3 normal acpi.sys.
So, this Vista acpi.sys is not better than the one for XP
Dietmar

## Page 23

#331 | diderius6 | I just isolate the Acpi 2.0 word QwordAcc in Bios 3.20 of the Asrock board. The QwordMemory word stays in Bios. This gives the same BSOD 0xA5 (0x03, xxx, C0140008, yyy) as before on ahci.sys 5084 Dietmar

#332

diderius6

Now I isolate Acpi 2.0 word QwordAcc in Bios 3.20 of the Asrock board and
also word QwordMemory at all its places in Bios.
The resultat is a changed BSOD
0x000000A5 (0x00000003, xxx, 0xC0000034, yyy).
One thing you can see from this: QwordMemory and QwordAcc are not the (only) reason
for BSOD 0x000000A5 (0x00000003 on acpi.sys 5048.
Dietmar
EDIT: When I start with this modified Bios and use my own, modified acpi.sys,
which works for this board, I get now BSOD 0x7b,
so this happens because I isolate QwordMemory in Bios.
There is other important information in this large block with QwordMemory,
which I block. So even Win7 does not want to start from this Bios.
I Flash Bios back, now all ok again.

#333

diderius6

May be, nearly all Bios
have real errors.
Very critical acpi.sys gives them all together out as 0x000000A5 (0x00000003, xxx, C0140008, yyy).
And the only thing, why this error goes away is,
that newer acpi.sys from Vista are more error tolerable
Dietmar

#334

diderius6

After a lot of problems,
I succeed to install Windows Vista (''Longhorn'' 6.0.4011.0)
on the EVGA dark z390 motherboard via installed XP SP3 on it and the Asmedia AHCI connectors.
So acpi.sys 4011 shows no errror in correct Bios
Dietmar
EDIT: The acpi.sys 4011 has also a new dependency on ntoskrnl.exe and also one to hal.dll.
When I try to start XP SP3 with this acpi.sys 4011 I get BSOD 0x7B.
EDIT2: acpi.sys 4008 has no (!) new dependency on ntoskrnl.exe but one to hal.dll,
which gives BSOD 0x7B on try to boot XP SP3.
EDIT3: acpi.sys 3718 has no extra dependencies, but also no ACPI 2.0 in it.
No BSOD but hangs on boot XP SP3.

#335 | infuscomus | I tested ACPI beta 5048 7E BSOD specific to acpi.sys

#336

diderius6

⇗ @infuscomus
The BSOD 7E can happen,
when you have a driver for your harddisk AHCI,
that is similar to the right driver.
For example you use DEV_A353
but the real name is DEV_A352
Dietmar
EDIT: The reason can be in this case something complete different:
When you change acpi.sys, whole structure how windows loads drivers,
changed. So, this alone can make this BSOD.
For to test this, you have to open HIVE "system" in WINDOWS\system32\config
(from your XP with acpi.sys vers 5048)
in another XP and import with regedit from commandline to HKLM (load structure).
When you named the HIVE system for example otto,
you find otto under HKLM of your working XP.
Delete there key MountedDevices (in otto).
After deleting, mark otto blue (with mouseclick on it), go up left corner "Struktur entfernen" (in German).
Then, on your connected XP with acpi.sys 5048 the chances are automaticall stored.
EDIT: BSOD 7E can have a lot of reasons. To me happend the same BSOD with newer versions
of acpi.sys from Win2003.

#337 | infuscomus | It's the ACPI(beta) driver, not AHCI

#338

diderius6

I noticed a difference between acpi.sys XP SP3 and acpi.sys 5048 on the Asus Apex X board, both work on unmodded Bios, here vers. 1704.
The 5048 acpi.sys tries to install a device via acpiec.sys (from XP) but failed to do this:
Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */) // _HID: Hardware ID
Yellow questionmark in device manager: No error, but device does not start.
I just checked, this device is indeed in the DSDT table from Bios 1701 of the Asus Apex X board.
This device does not appear in XP acpi.sys list.
This again makes me think, that nothing importand changed in those acpi.sys,
only the acpi.sys 5048 works more correct as the one from XP
Dietmar
PS: The work together from acpi.sys with acpiec.sys is unclear for me. How can each driver know,
which device is for what driver, when they share one DSDT table???
The driver acpiec.sys is in folder drivers of XP SP3.

#339

diderius6

⇗ @Mov AX, 0xDEAD
Vista 5365 - integers are 32/64 (selectable depending revision of DSDT table, V1=32, V2=64), added Dynamic conversion of types,
PDB published.
Nice finding, this overcomes any problems with 32 bit <-> 64 bit in acpi.sys.
Which version of Windbg do you use for this (Server under XP Windbg?) and where to you find the acpi.pdb for the 5365 version?
Did you understand, how the select mechanism for V1, V2 works (can it easy be faked, meaning always V1=32) and the following "Dynamic conversion of types" and can it be implemented (set V1=32) in 5048 acpi.sys version?
Dietmar

#340 | diderius6 | ⇗ @Mov AX, 0xDEAD Do you think, that 5365 acpi.sys still works, when you just cancel extra questions (dependencies) to XP ha.dll and XP ntoskrnl.exe in it Dietmar
#341 | infuscomus | You can try using blackwingcat's PEMaker to edit the import table? ⇗ http://blog.livedoor.jp/blackwingcat/archives/1313117.html although, I don't know if this will work.

#342

diderius6

⇗ @infuscomus
Waaoh, this is really a nice tool,
thank you very much
Dietmar
PS: At once I come to the idea, to make the INTEL 219 lan driver
to work with XP via this tool.
EDIT: My problem is now, that I do not understand, HOW I can modify the import table from acpi.sys 5048
with this tool. I cant see any option to modify this importlist, only can see it.

#343

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #339

> @Mov AX, 0xDEAD
> Vista 5365 - integers are 32/64 (selectable depending revision of DSDT table, V1=32, V2=64), added Dynamic conversion of types,
> PDB published. Nice finding, this overcomes any problems with 32 bit <-> 64 bit in acpi.sys.
> Which version of Windbg do you use for this (Server under XP Windbg?) and where to you find the acpi.pdb for the 5365 version?
> Did you understand, how the select mechanism for V1, V2 works (can it easy be faked, meaning always V1=32) and the following "Dynamic conversion of types" and can it be implemented (set V1=32) in 5048 acpi.sys version?
> Dietmar

- any windbg has symbol downloader tool, just C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk.exe /v acpi.sys, result in c:\windows'symbol\
- if revision=v1, all internal integers operation are 32 width, this is compatibility mode with old bioses (acpi 1.x only ???), we still can use all qword* opcodes, i think if we need access to 64bit things, we access only low 32 dword, high is forced to zero
- if revision=v2, all ints are 64bit, no limitation, full access to any field/mem
- "Dynamic conversion of types" is not integer conv, this is conversion string to buffer or vice versa or some else, i see this conv in handlers of two opcodes: Index(), LogOp(and,or,not)

#344

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #340

> when you just cancel extra questions (dependencies) to XP ha.dll and XP ntoskrnl.exe in it

remove import, remove call in code and place some code (emulate orig logic) instead, you need be asm hacker to do this...

#345

diderius6

⇗ @Mov AX, 0xDEAD
Yes, but the nice thing in this would be,
that you can use the original, last vista acpi.sys
Dietmar
PS: I take a look at this extra functions in ntoskrnl.exe and hal.dll.
I do not think, that they are really needed for working acpi.sys.

## Page 24

#346 | diderius6 | May be it is not so difficult: Just take import list from acpi.sys 5048 and replace with it import list from acpi.sys 5365 Dietmar

#347

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #342

> @infuscomus
> Waaoh, this is really a nice tool,
> thank you very much
> Dietmar
> PS: At once I come to the idea, to make the INTEL 219 lan driver
> to work with XP via this tool.
> EDIT: My problem is now, that I do not understand, HOW I can modify the import table from acpi.sys 5048
> with this tool. I cant see any option to modify this importlist, only can see it.

I think PEMaker 0.82 is bugged - use PEMaker 0.60
select english
under Import TBL tab - the button ?? next to replace button is delete button - you can delete imports this way
there is another tool - PETool 0.0.5 that can add exports too if you need it
⇗ https://msfn.org/board/topic/146529-pe-t...eating-patches/

#348

diderius6

⇗ @infuscomus
yessa ,
Version PEMKR031 works,
I can edit the Importtable from acpi.sys 5365,
now really fun starts,
Dietmar

#349

diderius6

Yessa, all missmatched dependencys killed from acpi.sys 5365 to
ntoskrnl.exe from XP SP3.
Dependency Walker shows this,
nice,
wow,
now
hal.dll
Dietmar
Edit: hal.dll is also freed from all evil!

#350

diderius6

Not work, acpi.sys 5365 shows BSOD 0x7b,
sniff
Dietmar
⇗
EDIT: The fun is not over,
because I just notice, that acpi.sys 5365 has some more and also some missing components
comparing with acpi.sys from XP SP3.

#351

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #349

> Yessa, all missmatched dependencys killed from acpi.sys 5365 to
> Edit: hal.dll is also freed from all evil!

It reminds me of a runner, who gets shot off one foot after the other )
When you kill import, loader will not reference some function to external dll, and when this function called inside acpi.sys, it will call/jmp to zero or something like that.
example:
KeStartDynamicProcessor not exist in winxp kernel, you killed import, you need write own func inside acpi.sys or avoid calling it.
some funcs like EtwRegister is useless trash and we can avoid calling it without any problem
you can't skip important func like IoConnectInterruptEx, it register ISR handler to interrupt processing, as we know acpi has own interrupt/irq line and need this handler

#352 | diderius6 | Yes, I think this is true. I changed all 67 dependencies, the file acpi.sys from 5365 looks now identic like this one from XP, but still gives at boot BSOD 0x7b, Dietmar

#353

diderius6

No, the Tool is not such stupid.
It also cancel the function call in its routine,
when it is deleted from Importtable.
I make a check:
My last acpi.sys build from 5365 with about 100 changes.
And compare with original acpi.sys 5365.
call ds:KeStartDynamicProcessor
is gone in the modified one
Dietmar
PS: But I understand now, why I get BSOD 0x7B.
The Tool killes all dependencys to hal.dll, I checked this with IDA, crazy,
even they are still shown. But IDA pro shows at once, no dependencies left for hal.dll, brrr..
EDIT: Even I think, you can really make an working acpi.sys via this tool, in the end all the new progress from Vista is gone,
it is a clone from the XP acpi.sys with some new opcodes for XP routines.
EDIT2: For to understand, what is going on, I added the function KeFlushWriteBuffer,
which is normally not in acpi.sys from XP to acpi.sys from XP, ntoskrnl knows about it.
Again the strange thing happens: I got BSOD 0x7B and the dependency for ALL functions on hal.dll are
gone again, brr.
diderius6 has attached files to this post

- ⇗ acpiTEST.rar

#354 | infuscomus | We could try adding forwarded exports to XP ntoskrnl using PETool 0.0.5 - possibly?
#355 | infuscomus | I made an attempt at forwarded exports for ACPI 5365 - but I'm not sure how well I did. I think I messed up XP hal.dll - or not? need to test ⇗ https://ufile.io/mjsgw0r9 fixed pshed dll ⇗ https://ufile.io/toamtpf4

#356

diderius6

⇗ @infuscomus
I make a try similar to this yesterday also.
I put acpi.sys 5365 together with ntoskrnl from its Vista
and all the dll, that I found via Dependency Walker.
But even in this way it becomes Vista:)),
compi always cries, a dll is missing,
Dietmar
PS: I do not think, that the PE Tool from Blackwingcat is so bad.
I take a look with Beyond Compare 2 to it, what happens.
3 sections are always like cut out, changed, but nothing more.
So, even the tool deleted all dependencies to hal.dll,
that Ida Pro cant find them (they are reall gone, I checked),
there is a chance to give them back after operation.
I will make a test today: I take the working acpi.sys from XP
and delete one of its functions and give it after back with the Tool.
Via this way you can precise see, where the Tool went wrong.

#357

diderius6

⇗ @infuscomus
With the tool
Dependecy Walker
you can see, what went wrong in your forwarding,
Dietmar
PS: The idea is nice, only I think then you need a lot of other dll from Vista.

#358

diderius6

It seems, that the Pe-Tool only cancels the name of the dependency,
the dependencies itself as .idata are still at there place.
Ida Pro looks only for the names of dependencies (blind),
but Dependency Walker looks at real dependencies (good).
May be, when you add a new function, there is not enough place in "subtable" aka Pe-Tool.
Not easy to delete a function and then add another,
because which function is not needed,
Dietmar
EDIT: In XP SP3, the Pe-Tool does not work correct.
For to test this, I first delete function KfAcquireSpinLock
and then add it again. Gives just BSOD 0x7B.
A check with Beyond Compare 2 shows, that there are only minimal
differences between the original acpi.sys and this "new" build acpi.sys.
EDIT2: May be, the tool changed the functions against them from Win2000?!

#359 | infuscomus | can you compare the files i have made to yours? - are we getting the same problem? ⇗ https://ufile.io/l2nq5ng9 p.s - I tried to integrate files into install media, i got ntkrnlmp.exe error code 7 in textmode
#360 | diderius6 | When you look at acpi.sys with Dependency Walker, you can see, that some forwarded functions to ntoskrnl.exe are red, means not correct Dietmar

## Page 25

#361 | diderius6 | Yeaaah, I just get the version 0.82 to work. And voila, now the dependency to hal.dll is kept, lets see, if mody mody modified acpi.sys boots XP Dietmar
#362 | infuscomus | do you get strange errors like this? ⇗
#363 | diderius6 | ⇗ @infuscomus No, my problem was, that all was green, but even then modified acpi.sys does not work Dietmar EDIT: Njet, again BSOD 0x7B, brrr..
#364 | diderius6 | Oh, I think I am only 1 step away from break through: Now I get BSOD FC (...) hihi, interesting.. in not executable memory.. Dietmar EDIT: I think this is the fault of the Pe-tool 0.82. It changes adresses and so follows this BSOD in XP. ⇗
#365 | infuscomus | could these files be made to work? ⇗ https://ufile.io/l2nq5ng9 or is this the wrong solution for this problem?
#366 | diderius6 | Forwarding is not correct done. I do not know, if with this forwarding tool Pe 005 it is easier than with 0.82 version from Blackwingcat. I think, the PETool 0.82 does not work correct with XP Dietmar
#367 | infuscomus | If forwarding is not the right solution, any other ideas?

#368

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #364

> Oh, I think I am only 1 step away from break through:
> Now I get BSOD FC (...) hihi, interesting.. in not executable memory..
> Dietmar
> EDIT: I think this is the fault of the Pe-tool 0.82. It changes adresses and so follows this BSOD in XP.

maybe set execute flag for that section? I'm just guessing

#369

diderius6

This is very difficult,
to write own code for acpi.sys. I tried to integrate word "ToInteger" in normal acpi.sys from XP.
This is really crazy work.
For me, using the 0.82 PE-Tool with edit Import Functions, was "best result"
no BSOD, but you can see the running pixel for ever^^
Dietmar
EDIT: Problem is, that I do not understand why and how the Pe-Tool changes adresses.
For me this makes no sense: When you delete a function and afterward add it again,
why should change anything???

#370

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #369

> This is very difficult,
> to write own code for acpi.sys. I tried to integrate word "ToInteger" in normal acpi.sys from XP.
> This is really crazy work.
> For me, using the 0.82 PE-Tool with edit Export Functions, was "best result"
> no BSOD, but you can see the running pixel for ever^^
> Dietmar
> EDIT: Problem is, that I do not understand why and how the Pe-Tool changes adresses.
> For me this makes no sense: When you delete a function and afterward add it again,
> why should change anything???

I mainly used PEMaker 0.82 to remove imports
Try this tool for adding exports maybe? - you might have better luck with this
⇗ https://msfn.org/board/topic/146529-pe-t...eating-patches/
I used this to add new export functions

#371

diderius6

I find out,
what the 0.82 tool did.
For this I produce a *.lst file via Ida Pro before
and one *.lst file after deleting and adding the same function
in original acpi.sys from XP. This 2 textfiles I compare with Beyond Compare 2.
The tool changes
KfReleaseSpinLock <-> WRITE_PORT_ULONG
If all adresses would be changed correct also,
then this would be not a problem.
But it is.
So, may be the tool can be forced to let the adresses combined with the function names
unchanged,
Dietmar
PS: This finding gives me hope:-)!

#372 | infuscomus | have you tried PETool 0.0.5? does it produce the same result as PEMaker 0.82?

#373

diderius6

No, at the moment I have not tried.
The problem is with forwarding, that you have to find all
the dlls, that match the "new" kernel.
With the 0.82 tool, you need nothing, even not the files hal.dll and ntoskrnl.exe.
where the acpi.sys depends on.
I begin to understand, how this tool works.
It is like a text based program.
It delets for you functions and put them in,
without any knowing of the functions itself.
It just operates on their names and adresses.
So, in principle this is a nice idea and much less complicate as
I thought in the beginning.
I wonder, why Blackwingcat does not support it any more,
0.82 is from 2012.
And it does not matter if the operating system is NT4, win2000, XP, Vista, Win7..
because their structure is identic
Dietmar

#374 | diderius6 | Yesssssssssssssssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaa XP SP3 boots with modified acpi.sys via PE-Tool 0.82. You only have to force the PE-Tool, not to change in each function its raw adress Dietmar

#375

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #374

> Yesssssssssssssssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaa
> XP SP3 boots with modified acpi.sys via PE-Tool 0.82.
> You only have to force the PE-Tool,
> not to change in each function its raw adress
> Dietmar

well done!
I'm happy to hear you have got it working,
I'd love to try it out myself (I do hope this solves my 7B BSOD)

## Page 26

#376

diderius6

Now I notice,
that acpi.sys 5365 has much more dependencies than acpi.sys from XP SP3.
NTOSKRNL.EXE
PSHED.DLL
HAL.DLL
BOOTVID.DLL
KDCOM.DLL
CLFS.SYS
CI.DLL
WMILIB.SYS
And the Pe-Tool 0.82 seems not to like to work with Vista,
Dietmar
EDIT: Lucky, that this is only true for 0.82 version. 0.60 version of the Pe-Tool works also for Vista files.

#377

diderius6

Next try with acpi.sys 5365 for XP SP3 boot,
but gives BSOD 0x7B
Dietmar
diderius6 has attached files to this post

- ⇗ acpi.rar

#378 | infuscomus | I tried it out, I got - file acpi.sys is corrupted - in textmode setup edit: missing - RtlInvertRangeListEx
#379 | infuscomus | maybe we can use the reactOS ACPI driver?

#380

diderius6

To modify the DSDT table on XP to an XP friendly DSDT version works,
if you succeed to load this table to registry (HIVE system to ram) before boot.
I tested this with the flag for the legacy timer via s4e method, works.
On Win2003 this is other situation,
because DSDT is not stored in registry,
only read direct from Bios
Dietmar

#381

diderius6

⇗ @Mov AX, 0xDEAD
Do you find out,
why acpi.sys 5048 and all those acpi.sys versions for Vista around crashes on XP unfriendly Bios
always with the same BSOD
0xA5 (0x03, xxx, C0140008, yyy)
When something went wrong, this BSOD takes you to the adress,
where this BSOD happens.
At which part of the DSDT table happens this, when acpi.sys reads DSDT?
The ACPI 2.0 words, which make problems for acpi.sys from XP
CopyObject
CreateQwordfield
QwordConst
are already integrated in acpi.sys 5048,
so this "always the same BSOD" may have a reason,
which can be easy overcome
Dietmar
EDIT: NTStatus Code
C0140008 STATUS_ACPI_INVALID_ARGTYPE An argument with an incorrect type was specified
It is in ntstatus.h .
May be small hack in ntoskrnl.exe and this is gone?

#382

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #380

> To modify the DSDT table on XP to an XP friendly DSDT version works,
> if you succeed to load this table to registry (HIVE system to ram) before boot.
> I tested this with the flag for the legacy timer via s4e method, works.
> On Win2003 this is other situation,
> because DSDT is not stored in registry,
> only read direct from Bios
> Dietmar

Do you mean just edit SETUPREG.HIV or something else?

#383 | infuscomus | ⇗ @diderius6 my test of ACPI 5048 on AMD ⇗ edit: I also tested reactos ACPI driver in virtualbox - 7B BSOD edit2: reactos ACPI and ATAPI in virtualbox - no 7B in XP textmode - I might try this on real hardware

#384

diderius6

⇗ @infuscomus
No, it is the part of registry, called "system".
C:\WINDOWS\system32\config system
If you want, you can send to me this file "system" from your AMD 350 motherboard.
I will delete there key MountedDevices and I look for
the asmedia 106x driver, if it is correct integrated there
Dietmar
dietmar.stoelting@t-online.de

#385

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #384

> @infuscomus
> No, it is the part of registry, called "system".
> C:\WINDOWS\system32\config system
> If you want, you can send to me this file "system" from your AMD 350 motherboard.
> I will delete there key MountedDevices and I look for
> the asmedia 106x driver, if it is correct integrated there
> Dietmar
> dietmar.stoelting@t-online.de

I've never gotten XP to successfully install on this AMD 350 Motherboard, so I don't have a config system file to show you.

#386

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #381

> why acpi.sys 5048 and all those acpi.sys versions for Vista around crashes on XP unfriendly Bios
> always with the same BSOD
> 0xA5 (0x03, xxx, C0140008, yyy)

search acpi.sys for "C0140008" string, error in _ValidateArgTypes, _CreateField or _ObjTypeSizeOf
ValidateArgTypes is called after every opcode, it check arg type vs some string code "D", "C", "I", "..." (for example argument ToInteger() can has only 3 types: Integer,String,Buffer and coded as "D")

#387 | diderius6 | I just got the nice information, that acpi.sys from Winserver 2003 R2 (5.2.3790.16384 ) has all Acpi 2.0 words integrated Dietmar PS: This file match the importtable from XP.

#388

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #387

> I just got the nice information,
> that acpi.sys from Winserver 2003 R2 (5.2.3790.16384 )
> has all Acpi 2.0 words integrated
> Dietmar
> PS: This file match the importtable from XP.

can it work?

#389

diderius6

I just test 2 different versions of acpi.sys Win Server 2003 R2 (2003 R2 5.2.3790.16384 and 2003 R2 5.2.3790.3959 )
They give both BSOD 0x7B on XP SP3.
I think, it is because the load process of DSDT table is different
between XP and Win2003.
Win 2003 takes it from Bios and XP from registry.
At the moment,
they can only boot Win2003
Dietmar
EDIT: Interesting is this for sure:
I also test acpi.sys from winserver 2003 SP1 5.2.3790.1830,
this gives old know BSOD A5.

#390 | infuscomus | I can install and boot XP with 2003 ACPI in a virtualbox VM

## Page 27

#391

diderius6

I make an USB boot with newest acpi.sys from Winserver 2003, for to overcome BSOD 0x7B.
Does anybody know,
what this message mean?
I have never seen before
Dietmar
⇗
EDIT: 0x7E( 0xC0000005: STATUS_ACCESS_VIOLATION indicates a memory access violation occurred.
This may be the old problem of really uncorrect Bios on the Asrock board.
DSDT writes in reserved memory (it is the adress for the COM1 port).
EDIT2: No, it is the fault of acpi.sys from win2003. On the EVGA Dark z390 board with XP friendly Bios
I get BSOD 0xD1 (0x28, 0x02,0x00,0xblabla)
Bug Check 0xD1: DRIVER_IRQL_NOT_LESS_OR_EQUAL
The DRIVER_IRQL_NOT_LESS_OR_EQUAL bug check has a value of 0x000000D1. This indicates that a kernel-mode driver attempted to access pageable memory while the process IRQL that was too high.
EDIT3: acpi.sys 5.2.3790.3959 boots XP friendly Bios.
But on other Bios gives A5 0x11 BSOD. This is the same BSOD, as acpi.sys from XP SP3 gives.
May be the problem with unknow words from ACPI 2.0 is gone in latest acpi.sys from win2003.
But other problems remain.
acpi.sys 5.2.3790.3959 is more complex than from XP. So, easy hack isnt.

#392

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #391

> EDIT: 0x7E( 0xC0000005: STATUS_ACCESS_VIOLATION indicates a memory access violation occurred.
> This may be the old problem of really uncorrect Bios on the Asrock board.
> DSDT writes in reserved memory (it is the adress for the COM1 port).

I got this exact error using ACPI 5048
⇗ @diderius6 can you test reactOS ACPI driver for results?
infuscomus has attached files to this post

- ⇗ reactos-acpi.zip

#393

diderius6

⇗ @infuscomus
I just test the acpi.sys from Reactos on XP SP3.
The importtable match with XP.
But on XP unfriendly and on XP friendly Bios
I always get BSOD 0x7B.
I take a closer look at this acpi.sys from reactos.
It works not via strings like "ToInteger".
But may be this is the future
Dietmar
EDIT: Also BSOD 0x7B for USB boot.
Interesting would be, how this acpi.sys from reactos
will work on a Win2003 installation.

#394

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #393

> I just test the acpi.sys from Reactos on XP SP3.
> The importtable match with XP.
> But on XP unfriendly and on XP friendly Bios
> I always get BSOD 0x7B.
> I take a closer look at this acpi.sys from reactos.
> It works not via strings like "ToInteger".
> But may be this is the future
> Dietmar

I got the same result with my test - BSOD 7B
⇗ @diderius6 maybe try to compile reactos ACPI driver code with windows DDK?

#395 | diderius6 | It will not work, because it is complete different compiler surrounding, Dietmar
#396 | infuscomus | GCC compiled reactos ACPI - no 7B BSOD in virtualbox
#397 | diderius6 | I make some more tests with the newest acpi.sys from WinServer 2003 on XP unfriendly Bios. With first variant I get BSOD A5 (0x11, 0x08,..) with second BSOD A5 (0x02,..). It is exact the same behavior as with acpi.sys from XP SP 3 Dietmar
#398 | infuscomus | ⇗ @diderius6 this compiled reactos ACPI driver works in virtualbox (compiled with GCC) - can you test for result?

#399

diderius6

⇗ @infuscomus
Is it another acpi.sys,
than you send to me?
The one you send, gives always
BSOD 0x7B
Dietmar
Edit: Which cpu is on your mainboard asrock fatal1ty ab350 gaming k4?
You can just flash an older BIOS, look for this on website from Asrock
for compability for your cpu.

#400 | infuscomus | my CPU is a Ryzen 5 2400g - in case running natively cannot work and I have to switch to virtualization with PCI Passthrough

#401

diderius6

⇗ @infuscomus
After some problems because of 3.3 V against 1.8 V on ch341a programmer and versions problems (for me ONLY vers. 118 (!) and 140 work correct). I read Bios chip 4 times out with this 2 versions and compare with Winhex.
Then I compare those files with original Bios P4.60 from the asrock website with Beyond Compare 2.
Because the blocks are identic, I can see that only the special information for example MAC number for board is different.
Now I am 99% sure, that I get all information from the Bios on my motherboard asrock fatal1ty ab350 gaming k4.
I succeed to read out its Bioschip 25Q128FWSQ with Bios Vers. 4.60 on this asrock fatal1ty ab350 gaming k4 board.
This is the oldest Bios version, that supports Ryzen 5 2400g,
Dietmar
PS: Because processor 1700 arrives only tomorrow, then fun continues for ACPI boot XP SP3 on this board.
I read on different russian websites, that until now nobody succeeds with this.

#402 | infuscomus | I wish you good luck.

#403

diderius6

⇗ @infuscomus
I succeed to install XP SP3,
but only without ACPI.
This was really a hard job. No mouse, no USB,
no AHCI.. No PS\2 y-cable possible, only keyboard. But nvme works.
I noticed, that there are errors in the DSDT table.
A variable in CreateQwordfield is without name.
I do nvme boot on this board, because before I have no AHCI driver.
Later I noticed, that the SATA slots on the board are wrong numerated.
The 2 Asmedia Sata slots are the first 2 in the row with the 4(!)
Acpi boot via nvme gives BSOD 0x7E (C0000005,..).
I am quite sure, that this happens because real errors in the DSDT table.
I tried Bios 4.60, 2.50, 3.40 all the same.
A repair of the DSDT table will make acpi boot,
it is not the fault of modified acpi.sys
Dietmar
⇗

#404

infuscomus

⇗ @diderius6
Nice!
you've gone further than I ever did, I seem to always get 7B BSOD even with only ASMedia SATA ports connected.
did you use SATA CD drive? - I will have to go get one - before I only used a USB CD (actually iodd 2531 with XP ISO)
Do Fernando's AMD USB 3.1 drivers work?
for amd SATA try AMD AHCI Driver v1.2.1.321 for W2k3 x86 WHQL with HWID INF edit (add 7901 and 43B7) and win2003 storport.sys file?

#405 | diderius6 | ⇗ @infuscomus I use the Asmedia driver which I send to you and make with them via Nlite a setup CD. Still there is hope for full XP SP3 on this board :)) Dietmar

## Page 28

#406 | infuscomus | ⇗ @diderius6 which version of ASMedia SATA driver should I use? 3.2.0.0? earlier version?
#407 | diderius6 | For me works the Asmedia driver, which I send to you, Dietmar

#408

diderius6

⇗ @Mov AX, 0xDEAD
How is progress on your tool,
which changes XP unfriendly DSDT table to XP friendly one?
And how does it work,
XPbadDSDT.dsl -> XPgoodDSDT.dsl
or in *.raw modus?
I am so curious, how you ban the A5 0x11 errors
and A5 0x02.
Do you just encapsule them via
If ((OSYS >= 0x07D6))
{
..error in XP..
}
have a nice day
Dietmar
EDIT: Is there a possibility, to tell the amli assembler, to produce only ACPI 1.b code?
It should be possible, because as I understand AMLI works as interpreter.
So, make it to work like in German "Dolmetscher".

#409

diderius6

First results on the Asrock fatal1ty ab350 gaming k4 board with latest Bios 5.40
Works (stable) in XP SP3
harddisk, CD-rom (on asmedia AHCI 106x)
keyboard PS/2
mouse PS/2 (via y-cable only AUTO in Bios)
network
sound
graphiccard
USB 3.1 (40MByte/s)
Not works:
APIC mode (only PIC mode)
USB 3.0
ACPI
nvme (it is because of a conflict between scsiport.sys and storport.sys (message nvme device cannot start).
XP can handle both, but not on all boards at the same time. nvme boot also not works BSOD 0x7B.
Sata AHCI AMD Ven_1022&Dev_43B7. I found a driver, but ntoskrnl.exe has 2 not matching dependencies.
Interesting, the 950 pro (with own legacy nvme Bios)
can stay at boot time together with harddisk.
Nearly all other compis fail (Asus Apex X not fails)
Dietmar
PS: I have not seen any AMD USB 3.0 driver for the AB350 chipset for XP 32 bit, Ven_1022&Dev_145C .
⇗

#410 | infuscomus | ⇗ @diderius6 Can USB/AHCI work with existing Fernando drivers with INF mod? (add hwids to INF)

#411

diderius6

AHCI driver for the asmedia 106x ship
I just send to you.
The USB drivers, that are here in the forum,
work only for Win7.
I have not seen them for XP
Dietmar
PS: Board is nice and stable. Only missing USB in XP. Acpi can be done with some more work.

#412

diderius6

Yessa,
I check with dependency walker
the USB files.
And I found one, compiled for WIN7,
which works for XP:)).
Only a little bit faster than USB 2.0
but now I have USB on this board also!!!
Dietmar
EDIT: The normal installer does not work. Cries, not for this OP..
But doing by hand via *.inf works.
It is driver for Ven_1022&Dev_43BB
cool..
diderius6 has attached files to this post

- ⇗ AMD USB 3.1 drivers v1.0.2.0 WHQL.rar

#413

infuscomus

⇗ @diderius6
Working USB!
Nice!
There are newer drivers on these forums - v1.0.5.3 - you might get better performance with new version?
for AMD AHCI try Universal ATA driver for Windows NT3.51/NT4/2000/XP/2003/Vista/7/ReactOS
With PATA/SATA/AHCI support
⇗ http://alter.org.ua/soft/win/uni_ata/

#414

diderius6

I make a try to edit the DSDT table from this board Asrock fatal1ty ab350 gaming k4:
Because I get BSOD A5 (0x2001), which means "ACPI tried to evaluate the PIC control method but failed."
So I change in DSDT table
Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
{
If (Arg0)
{
\_SB.DSPI ()
\_SB.PCI0.NAPE ()
}
PXXX (Arg0)
}
against
Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
{
If ((OSVR >= 0x0C))
{
If (Arg0)
{
\_SB.DSPI ()
\_SB.PCI0.NAPE ()
}
PXXX (Arg0)
}
}
Now I am just flashing the BIOS via CH341a writer,
because flash on compi told me:
Checksum incorrect
Dietmar
EDIT: Compi survives the crazy flash procedure, but BSOD remains the same.
So, maybe it is not the direct fault of the _PIC: Interrupt Model , but something in its pointers went wrong.
EDIT2: I make a check with the new Bios, if my changes are put in. Yes, they are.
Now I think, the method _pic is never called, because I do not find any "_pic" call in DSDT table else, hmm.
So, the error is in a pointer for the interrups.
EDIT3:
_PIC Method
The
\
_PIC optional method is to report to the BIOS the current interrupt model used by the OS.
This control method returns nothing. The argument passed into the method signifies the interrupt model OSPM
has chosen, PIC mode, APIC mode, or SAPIC mode.
Notice that calling this method is optional for OSPM.
If the method is never called, the BIOS must assume PIC mode.
It is important that the BIOS save the value passed in by OSPM for later use during wake operations.
_PIC(x):_PIC(0)=> PIC Mode
_PIC(1) => APIC Mode
_PIC(2) => SAPIC Mode_PIC(3-n)=> Reserved
This may be indeed the reason for this BSOD A5 0x2001. XP uses high irqs, so it makes use of the APIC method.
A try with PIC methode fails then.
EDIT4: Yesssa, I was right. When I chose "ACPI - PC" during setup hitting F5, XP takes ACPI+PIC mode.
This BSOD is gone:)). What a crazy job, to fix step by step a buggy DSDT table. And this is not the fault of XP but
goes to the manufacturers.

#415

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #414

> EDIT4: Yesssa, I was right. When I chose "ACPI - PC" during setup hitting F5, XP takes ACPI+PIC mode.
> This BSOD is gone:)). What a crazy job, to fix step by step a buggy DSDT table. And this is not the fault of XP but
> goes to the manufacturers.

⇗ @diderius6
Wait, so do I just need to press F5 and force use of ACPI PC in setup? or is a BIOS mod still needed for ACPI?

#416

diderius6

⇗ @infuscomus
I try to make the DSDT table of the Asrock fatal1ty ab350 gaming k4 board
XP friendly.
Until now, I solved only one BSOD A5 0x2001 during edit DSDT table.
Then appears next BSOD A5 0x02,
so it is a really hard way to happyness:))
Dietmar

#417 | infuscomus | ⇗ @diderius6 any chance I could test your nvme driver on my PC for XP? same motherboard so it should work, right?

#418

diderius6

Yes, it works, but the problem is,
when it is used together with a scsiport device,
on the fatal1ty ab350 gaming k4 nvme under XP does not work
together with harddisk.
You can integrate the nvme driver in the setup CD from
XP SP3 via nlite. But then you also have to copy storport.sys in the setup CP
by hand, using makecab.exe.
After first TXT install of XP, you have to copy by hand again the driver storport.sys
into windows\system32\drivers because XP didnt do that alone,
Dietmar
diderius6 has attached files to this post

- ⇗ nvme.rar

#419

diderius6

Today I make a try to install an own edit, full DSDT table into XP SP3
without using Bios. Because I notice, there is no tool to flash Bios from AMD..
HKEY_LOCAL_MACHINE\HARDWARE\ACPI\DSDT\842A1\842A1P07\00000004
This key is always build new during start of an ACPI XP. In it is the hexcode of the full DSDT table.
When you have a working ACPI XP, you can make a copy file by file of it.
May be windows\system32\config folder with all its content is enough.
The problem is, that there is no file HKEY_LOCAL_MACHINE\HARDWARE
because it is build new on every boot via Bios.
So, you need this copy from config.
And now the crazy part happens: Boot this XP on a compi with a XP friendly Bios
and change after boot to desktop on running machine the whole content with your wished DSDT hex-file in
HKEY_LOCAL_MACHINE\HARDWARE\ACPI\DSDT\842A1\842A1P07\00000004
Then shut compi down.
When you make a copy of XP as described above,
you have this new DSDT file in its registry.
Then you have to boot XP writeprotected (only possible on Fat32, because then Bios has no chance to overwrite your DSDT table)
and you will have your own DSDT table loaded to ram via XP, reading from registry DSDT table.
And you can check, what happens.
The problem on an compi with an ACPI XP unfriendly Bios is,
that you get always BSOD 0xA5.
But now you can work step by step
against those BSODS 0xA5 via windbg
Dietmar
EDIT: On an Intel board, you can make a test with empty DSDT table, just integrate 00000000000..(with the right number of zeroes as the size of your normal DSDT table(!) is) with Uefi-Tool as *.raw body for DSDT table at
C118F50D-391D-45F4-B3D3-11BC931AA56D
and I think, compi will boot XP with DSDT from to ram loaded registry as written above.
I have not tested this because no time just now and there it is some risk, that your Bios is broken!!!
Never I would make that test without a motherboard with working BIOS flash back possibility.
EDIT2: May be it is really a crazy (good?!) idea. I just tried to integrate a *.raw filled with zeroes as "DSDT" table.
You can integrate it into the Biosfile with Uefi-Tool. But I dont know what happens, because the dependencies
to other tables in Bios are gone also. Tomorrow I make a try on the Asus Apex X board, because it has Bios flashback,
which works to 99%. A question, if this works is, at which Time the DSDT table is loaded.
I think the normal way is: Bios writes DSDT to registry and then XP reads and loads DSDT table from registry.
And if Bios cant write registry because write protected, XP reads in any case DSDT table from registry.

#420

infuscomus

⇗ @diderius6
maybe you can change the permissions for the DSDT registry key so it can not be overwritten?
⇗ https://www.askvg.com/windows-tip-take-o...m-command-line/
edit: for XP textmode setup, you can add DSDT registry key into setupreg.hiv in \ControlSet001\Hardware Profiles\0000\SYSTEM\
For GUI phase of setup - add DSDT to hivesys.inf

## Page 29

#421 | diderius6 | ⇗ @infuscomus Thanks for help, I will test all:)) Dietmar

#422

infuscomus

⇗ @diderius6
This might be an XP friendly DSDT table for AMD AM4 - It does not use CreateQWordField
it's from an ASUS Prime B350 PLUS - BIOS 0805
infuscomus has attached files to this post

- ⇗ Section_Raw_DsdtAsl_body.zip

#423

diderius6

⇗ @infuscomus
Yes, this is interesting, because they change CreateQWordField against CreateDWordField.
So may be, the whole DSDT table is XP friendly.
This would be the first time for an B350 chipset.
Needs to be tested
Dietmar
PS: Until now, I do not understand, why there are so many BSOD
on neuer DSDT table in the form A5 0x02.
This means always conclict with pci devices,
Dietmar
PS: ⇗ @Mov AX, 0xDEAD wrote, that he overcomes this BSOD with his modified acpi.sys.
My modified acpi.sys does not always work correct against this BSOD.
May be, a lot of devices are just ignored from special acpi.sys.
EDIT: Newest Bios 4602 this board has CreateQWordField in DSDT table. So may be, only their old DSDT tables are XP friendly.
Yes, oldest Bios 406 has also only CreateDWordField in its DSDT table.

#424 | infuscomus | ⇗ @diderius6 did you manage to load custom DSDT table in registry? or do we have to go with a BIOS mod?

#425

diderius6

Today I have had long school.
Until now, I do not try.
But I am sure, it will work.
I just find out, that also for your motherboard
old BIOS has no CreateQwordfield in it,
so may be it becomes XP unfriendly only in last time.
This would be a big help
Dietmar

#426 | infuscomus | I tested XP setup in my HTPC which has a Fatal1ty X370 Gaming-ITX/ac motherboard in it with original release BIOS on it. I got a 7E BSOD in acpi.sys I checked with clean install media - same error 7E

#427

diderius6

I try to understand, why all this BSODs via acpi.sys happen.
For this, I find the tool OZMTool_v0.3_win
which works not in XP (but in Win7).
With this tool you can also extract DSDT.aml
raw files from older Bios, which are build for Acpi 1.b (XP friendly).
Then I compare the *.dsl from 2 Asrockboards.
XP friendly (AM3+) : Asrock 970 Pro3 R2.0
XP unfriendly (AM4) : Asrock fatal1ty ab350 gaming k4
Because I noticed, that all Intel DSDT tables are nearly identic but
different to the AMD DSDT tables.
First XP BSOD on Asrock fatal1ty ab350 gaming k4 is A5 0x2001
This goes to a mismach IRQ table (pic: 16 irqs, apic also higher irqs allowed).
When I compare those methods, I see, that those DSDT tables from AMD are also very similar.
XP friendly:

        Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
        {
            If (Arg0)
            {
                DBG8 = 0xAA
                \_SB.IRQC ()
            }
            Else
            {
                DBG8 = 0xAC
            }

            PICM = Arg0
        }

XP unfriendly

        Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
        {
            If (Arg0)
            {
                \_SB.DSPI ()
                \_SB.PCI0.NAPE ()
                DBG8 = 0xAA
            }
            Else
            {
                DBG8 = 0xAC
            }

            PICM = Arg0
        }

Method IRQC is renamed to DSPI , but identic.
So, just delete `\_SB.PCI0.NAPE ()`
hard way, but I do not know other
Dietmar

#428

diderius6

I start XP (on my XP friendly asrock fatal1ty z370 gaming k6).
Then I zero out DSDT in its registry (0000 stays in DSDT binary).
After this I read DSDT out with REWrite everything.
This shows the normal DSDT table.
Then I disconnect power, for to give XP no chance to write anything back from ram
to registry.
From this XP I make a bit to bit copy on an optane USB device, which can be set writeprotect (mechanic).
Then I start XP via this writeprotected device. (By the way, I noticed, that with XP SP3 is also writeprotect boot
possible on NTFS).
But very strange to me, this XP boots normal via s4e method.
This means the following: The DSDT from Bios is written to registry in a later boot phase,
not in first. Because if Bios would write DSDT to registry in early bootphase,
it cant, because there is the writeprotect device, which works alone in this phase.
Then, without any DSDT table in registry XP would crash(?!), who knows..
My previos test with the timer bit in FADT is other. This table speaks with hal.dll
in a very early bootphase. So, this can be faked easy.
Because of this result, it is more difficult to present XP a modified DSDT table during boot.
It happens in second bootstage and because of this, you have to force acpi.sys to make use of this place in
HKEY_LOCAL_MACHINE\HARDWARE\ACPI\DSDT\ and not from Bios! But how?
Dietmar
EDIT: acpi.sys is loaded during first bootphase. And BSOD A5 (not compatible Acpi) happens at the end of this first phase.
Strange, may be acpi.sys from XP SP3 reads now DSDT table like WinServer2003 only direct from Bios?
And at the place HKEY_LOCAL_MACHINE\HARDWARE\ACPI\DSDT\ stays only a not needed copy?
EDIT2: "If the HARDWARE_REDUCED_ACPI flag is set, all fields relating to the ACPI Hardware Specification are ignored by the operating system." And this bit is in FADT. But I have no idea, if acpi.sys from XP take notice from this flag.
May be the acpi.sys from Vista take notice? No, flag works only from Windows 8 up.

#429

infuscomus

⇗ @diderius6
clover boot loader can apparently modify ACPI tables before passing to the OS - This adds a layer of complexity to getting this to work - I've never done this myself so I don't know if this will work.
edit: arch linux can do the same thing? ⇗ https://wiki.archlinux.org/index.php/DSDT
edit2: maybe try acpi.sys from SP1 or SP2 and see if these old versions read DSDT from registry?

#430 | infuscomus | ⇗ @diderius6 If I have to go with the modded BIOS flash option - what should I use to flash? this? CH341A 24 25 Series EEPROM Flash BIOS USB Programmer SOIC8 SOP8 Clip Adapter ⇗ https://www.ebay.com.au/itm/CH341A-24-25...6gAAOSw1Exb6p24

#431

diderius6

Yes, this one. But this programs in 3 Volt.
You need an extra adapter, that fits in first one,
which makes 3->1.8 Volt,
Dietmar
⇗ https://www.ebay.de/i/372582467330?chn=ps
is all what you need:)). The following contents have been linked to this post:

#432 | infuscomus | ⇗ @diderius6 OK, Thanks - I will get the one you recommend. also, do you know if the BIOS chip on the AB350 Gaming K4 is an Aptio V? If is is, there is a BIOS flash utility on the AMI website that might be worth a look?

#433

diderius6

⇗ @infuscomus
The Bios chip on my Asrock AB350 Gaming K4 is a Winbond 25Q128FWSQ, 1.8 Volt(!).
In the description (down) is written, how to patch the DSDT table in registry.
It should work in XP, Win7..
This is a little bit strange for me. May be the used program makes a hirachie in to prefer DSDT table from Bios
over the DSDT table from Bios. It works, but until now for me it is unclear how and why.
⇗ http://notebookequus.blogspot.com/2008/0...dsdt-table.html
Dietmar

#434 | infuscomus | ⇗ @diderius6 maybe it needs to be put in registry like this exactly? HKEY_LOCAL_MACHINE\HARDWARE\ACPI\DSDT\ALASKA\A_M_I_\01072009 Winbond 25Q128FWSQ is flash ROM and AMI Aptio V is firmware? - I thought AMI flash utility might work without needing to brute force with EPROM programmer?

#435

diderius6

To override/overload DSDT on Windows XP/Vista/7, use asl.exe from microsoft ASL compiler:

    C:\Programme\Microsoft ASL Compiler v4.0>asl /?
    Microsoft ACPI Source Language Assembler Version 4.0.0NT [Aug 28 2009, 18:36:36]

    Copyright (c) 1996,2009 Microsoft Corporation
    Compliant with the ACPI 4.0 Specification

    Usage:
    asl /?
    asl [/nologo] /d <BinFile>
    asl [/nologo] /u [/Fa=<ASMFile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>] <AMLFile>
    asl [/nologo] /tab=<TabSig> [/c] [/Fa=<ASMfile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>]

    asl [/nologo] [/Fo=<AMLFile>] [/Fa=<ASMFile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>] <A
    SLFile>
    asl [/nologo] [/loadtable [-v] [-d]] <AMLFile>

            ?            - Print this help message.
            nologo       - Supress logo banner.
            Fo=<AMLFile> - Override the AML file name in the DefinitionBlock.
            Fa=<ASMFile> - Generate .ASM file with the name <ASMFile>.
            Fl=<LSTFile> - Generate .LST file with the name <LSTFile>.
            Fn=<NSDFile> - Generate NameSpace Dump file with the name <NSDFile>.
            d            - Dump the binary file in text form.
            u            - Unassemble AML file to an .ASL file (default)
                           or a .LST file.
            tab=<TabSig> - Unassemble ASL table to an .ASL file (default)
                           or a .LST file.
                           Dump non ASL table to an .TXT file.
                           If <TabSig> is '*', all tables are dump to ACPI.TXT.
                           <TabSig> can also be the physical address of the table.
            c            - Create binary files from tables.
            loadtable [-v] [-d] <AMLFile>
                         - overload existing table with one in the given AML file.
                           <-d> - delete overridden tables
                           <-v> - Verbose

Dietmar

## Page 30

#436 | infuscomus | ⇗ @diderius6 where can i download microsoft asl compiler?
#437 | Lost_N_BIOS | ⇗ @infuscomus - ⇗ http://www.acpi.info/toolkit.htm ⇗ https://acpica.org/downloads/binary-tools ⇗ https://docs.microsoft.com/en-us/previou...n550976(v=vs.85)

#438

infuscomus

⇗ @Lost_N_BIOS
1st link
Thats the Intel version, I'm looking for the Microsoft one.
2nd link
Link is dead - 404
edit: it's in WDK 10 - I'll go grab that

#439

Lost_N_BIOS

⇗ @infuscomus - first link >> Microsoft ASL Assembler/Compiler - link works but doesn't lead to a proper download due to MS is lazy
Second link works fine, and I downloaded the file just fine too, here is the direct link from that page, if you still can't download let me know and I will upload it for you - ⇗ https://acpica.org/sites/acpica/files/iasl-win-20190405.zip
Third link, that's weird, this one is 404 and it was working for me when I gave you the link??!

#440 | infuscomus | ⇗ https://acpica.org/sites/acpica/files/iasl-win-20190405.zip this is the Intel assembler, not the Microsoft one. I managed to get the Microsoft assembler from the windows driver kit.
#441 | Lost_N_BIOS | Glad you were able to get it finally. Please upload a copy and post link here for others, thanks. I'll grab a copy too and keep in case anyone asks me for link later

#442

infuscomus

uploaded here so you don't need to download WDK to get it
infuscomus has attached files to this post

- ⇗ microsoft-asl.zip

#443

diderius6

Here is the whole compiler
Dietmar
diderius6 has attached files to this post

- ⇗ microsoft_asl_compiler-v4-0-0.rar

#444

diderius6

I just check via Multimeter,
that this pin order is correct
for the Bios of the Asrock fatal1ty ab350 gaming k4 board
Dietmar
EDIT: The empty pin is also Ground.
⇗

#445 | diderius6 | Here is photo from Bios on Asrock fatal1ty ab350 gaming k4 board and the 9 pin connector Dietmar ⇗

#446

diderius6

The first and biggest problem of the Asrock fatal1ty ab350 gaming k4 board
via XP install is,
that the crazy Bios always tries to install a pic modell for IRQ
and not APIC (higher irqs are allowed).
This you can see, hitting F5.
On modern XP SP3 only Standard PC works (PIC, noAcpi, one processor).
I have a special XP CD, where I can chose also Compac 100% multiprocessor
(PIC, no ACPI, multiprocessor, but compi hangs on reboot).
So, a lot more is bad with its Bios (vers. 5.40, 3.40, 2.50)
Dietmar

#447 | infuscomus | ⇗ @diderius6 can we load a DSDT table from an AM3 motherboard? or would it break everything?

#448

diderius6

⇗ @infuscomus
I think, compi will not start.
I have done this before to start compi with DSDT from other compi via ch341a epromer , but this was a nearly identic PC,
same chipset, same processor.
There to change DSDT works.
But here we have other situation, new chipset, processor..
I think, we can only use AM3(+) DSDT table for to compare with new DSDT from AM4 chipset.
By the way, now I understand, why I nowhere have seen a compi with AM4 chipset, which boots real XP SP3.
So I think, I am really first one, but I only succeed with "Standard PC", means no ACPI, only PIC model, only one processor.
Dietmar

#449

diderius6

In boot.ini (with "Standard PC") from Asrock fatal1ty ab350 gaming k4 board I add one extra line
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /KERNEL=ntosacpi.exe /HAL=halacpi.dll /PCILOCK
I put in folder windows\system32\ halacpi.dll and ntosacpi.exe (renamed from Acpi-Multiprocessor XP SP3).
Result is BSOD 0x7B.
But via this way you can enable via COM1 a windbg session
and work step by step against BSODs (comparing DSDT AM4 with DSDT AM3+)
Dietmar
EDIT: And I copy acpi.sys to folder windows\system32\drivers.

#450 | infuscomus | ⇗ @diderius6 where do I find the DSDT table in an AM3+ ROM? the GUID for AM4 shows nothing

## Page 31

#451

diderius6

DSDT from AM3+ is in AmiBoardInfo.
Crazy to find.
I use the tool OZMTtoolv0.3.
This tool works in Win7 32 bit,
but not in XP
Dietmar
diderius6 has attached files to this post

- ⇗ OZMTtoolv0.3.rar

#452

diderius6

Now I also succeed to extract DSDT raw table direct from AM3+ Bios.
Search for text DSDT (disable "unicode" in search), find AmiBoardInfo, "PE32 image section", extract body,
look in file for DSDT with Winhex, this is the start of the DSDT raw table
and end is PCI0SBRGSIOWh. (with the point at the end) (this is direct before Hexvalues F7F8F4)
Dietmar
Edit: For me is AmiBoardInfo at guid 9F3A0016-AE55-4288-829D-D22FD344C347

#453 | infuscomus | Nice work! I can extract DSDT from AM3+ BIOS now

#454

diderius6

I just compare DSDT from very first BIOS of
ROG-CROSSHAIR-VI-EXTREME-ASUS-0401
X470 Taichi Ultimate(1.10)ROM
and the first Bios 2.50 for the Asrock fatal1ty ab350 gaming k4 board.
They are all VERY similar,
meaning problems with XP SP3
will be everywhere the same for AMD ryzen,
Dietmar
EDIT: But I can install full ACPI Vista 32 bit
on the Asrock fatal1ty ab350 gaming k4 board
so, there is still hope for full XP .
EDIT2: I also compare XP friendly Bios for AM3+. They are nearly identic.
So, lets make a try to use XP friendly DSDT from AM3+ for AM4.
EDIT3: Interesting candidate for DSDT from other compi is the board asus a320m-c.
It has AM4, but first version has no Ryzen support (R2 has). It comes direct before Ryzen.
In its very first Bios A320M-C-SI-0401.CAP (Oct. 2016) DSDT I found, that _pic methode (IRQs) is the same as for XP friendly Bios in their DSDT table.

#455

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #454

> EDIT3: Interesting candidate for DSDT from other compi is the board asus a320m-c.
> It has AM4, but first version has no Ryzen support (R2 has). It comes direct before Ryzen.
> In its very first Bios A320M-C-SI-0401.CAP (Oct. 2016) DSDT I found, that _pic methode (IRQs) is the same as for XP friendly Bios in their DSDT table.

Cool,
can we load this DSDT through registry, or is a BIOS mod the only way that works properly?

#456

diderius6

⇗ @infuscomus
Today I make a try to load the DSDT table from A320M-C-SI-0401.CAP via the Microsoft tool
to the Asrock fatal1ty ab350 gaming k4 board.
For to reach this, I use a full Acpi Multiprocessor XP installation from an AM3+ board MSI 760GMA-P34 (FX),
which has also the Asmedia Sata AHCI ASM106x.
I add an extra boot.ini entry (for to have the possibility to switch to "Standard PC")
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /KERNEL=ntnoacpi.exe /HAL=halnoacp.dll
Dietmar
EDIT: I can not start with the XP from AM3+ chipset.
And this is, even I do not change anything in DSDT.
On the XP from AM3+ chipset I replace ntoskrnl.exe and hal.dll to the versions of "Standard PC".
The Asrock fatal1ty ab350 gaming k4 starts with this XP, but hangs during last stage of boot.
So, other things also do not work for XP on this board, for example safe boot does not work
and I see no entry for bootlog after hitting F8.
EDIT2: The Asrock fatal1ty ab350 gaming k4 has 2 different problems with XP SP3:
1.) The compi starts always in PIC mode (hangs during enable APIC). Hm, which table is it?
2.) ACPI is broken, this belongs to the DSDT table.

#457 | infuscomus | ⇗ @diderius6 Don't you need to run sysprep on XP before moving it across machines? or am I wrong about that?

#458

diderius6

⇗ @infuscomus
With long training I succeed to move XP from one machine to the other without any tool.
And this can be also done for Vista and Win7 or Win10. Win8 I never tried.
As long as the Windows version is only at one compi at a time, it does not break Microsoft license.
Today I was hit by a new problem: A Bios, that does not work in APIC mode under XP, only PIC mode.
Little bit like stoneage.. I have not seen this in the last 18 years
Dietmar
PS: Interesting, if it is because Ryzen processor.
There are other AM4 processors on the market for example AMD A8 9600, much cheaper and slower.
I will test in next days this 9600 cpu.

#459

diderius6

I just found Bios version 1.30 for the Asrock fatal1ty ab350 gaming k4.
There, the IRQ table in Bios is other.
This is nearly the only difference to Bios 2.50.
I am just flashing
Dietmar
PS: May be problem to flash back to newer Bios,
because in Bios 1.30 is no instant-flash program integrated.

#460 | infuscomus | ⇗ @diderius6 do you have the right CPU for that BIOS? I only have a ryzen 5 2400G so I doubt it will work for me.
#461 | diderius6 | Yes, I have Ryzen 1700. I checked for this before, that I get CPU for ALL Bioses Dietmar
#462 | infuscomus | ⇗ @diderius6 can I have this BIOS? I would like to extract DSDT and try registry method to load DSDT

#463

diderius6

⇗ @infuscomus,
with this 1.3 Bios is the same as before.
Under XP it will not allow you to work in APIC mode,
only PIC. This is a serious problem, because of it only
one core of the cpu can work in XP SP3.
And I was right, you cant flash back to higher BIOS,
because no flash program in this Bios version,
Dietmar
But anyway, here it is
diderius6 has attached files to this post

- ⇗ AB35G4_1.rar

#464 | infuscomus | ⇗ @diderius6 Thanks very much

#465

infuscomus

⇗ @diderius6
in AB350 gaming k4 BIOS 1.30 _PIC is
Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
{
If (Arg0)
{
\_SB.DSPI ()
\_SB.PCI0.NAPE ()
DBG8 = 0xAA
}
Else
{
DBG8 = 0xAC
}
PICM = Arg0
}
in XP Friendly 970A-G3.1
Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
{
If (Arg0)
{
DBG8 = 0xAA
\_SB.IRQC ()
}
Else
{
DBG8 = 0xAC
}
PICM = Arg0
}
have you tried replacing _PIC function?
or if your up for taking a risk, replace entire DSDT with known XP friendly?
infuscomus has attached files to this post

- ⇗ XPFRIENDLYDSDT.zip

## Page 32

#466

diderius6

I think,
really XP friendly would be
Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
{
If (Arg0)
{
DBG8 = 0xAA
}
Else
{
DBG8 = 0xAC
}
PICM = Arg0
}
But at the moment I try to get out of Bios 1.30:))
Dietmar

#467 | infuscomus | ⇗ @diderius6 did you manage to update from BIOS 1.30?
#468 | diderius6 | Until now not, I wait for my 1.8 Volt Epromer, have a nice day, Dietmar

#469

diderius6

My 1.8 Volt Epromer arrives, 3 of them.
But I cannot flash the chip 25q128fwsq with the ch341a and adapter for 1.8 V.
I build my nice, perfect working cablemanagment:)), see photo,
but does not help.
I can read the chip out 2 times,
but even I tested all versions of the ch341a,
no success. I cant even blank the whole chip,
some numbers remain, as I can see with reading.
"Best" results gives vers. 1.29
may be something killed the Bioschip
Dietmar
EDIT: I tested pin 1..8, they work. The connector to motherboard are 2 USB connectors.
⇗

#470 | infuscomus | ⇗ @diderius6 have you bricked your BIOS?

#471

diderius6

I think yes.
I get 2 brandnew Bios chips 25q128fwsq.
Without(!!!) the 1.8V adapter (only ch341a)
and Version 1.40 of the flashtool I can load
my image (5.4 Bios with own settings) back.
Soon I desolder broken chip against this one
Dietmar
EDIT: I just try the same with the second, brandnew 25Q128FWSQ chip.
The adapter 1.8V does not work at all. But without adapter (only ch341a vers 1.4) I succeed to
write my image 5.4 Bios back, crazy.
I disconnect all and connect again and read with version 1.4 the complete
brandnew (both) out. This I store as new image and compare with Winhex,
100% match (on both). Ok, I am going to solder:)).

#472

infuscomus

⇗ @diderius6
maybe try grub2 method to load DSDT? (to avoid bricking BIOS in the future)
⇗ https://www.linuxquestions.org/questions...ion-4175593071/
⇗ https://forums.opensuse.org/showthread.p...use-custom-dsdt
did you want to try the DSDT from that asus 320m-c bios you found?
p.s - I have not had much luck loading DSDT in XP registry

#473

diderius6

This Bioschip is really crazy.
I succeed to solder in a brandnew, with my image 5.4 flashed chip.
All pins work, no short cut.
But compi does not start.
When I read out this chip with epromer,
it gives crazy values, complete different from
before soldering
Dietmar
EDIT: The brandnew, now soldered chip, shows exact the behavior from original Bios chip before.
This simple means, you cant flash this Bios chip with this Epromer, no matter if 1.8V adapter or not.
EDIT: The original, now outsoldered Bioschip can be read and written new.
But only from original Epromer (ver. 1.40) without the Adapter. This means also,
my image ist faulty, which I get from insoldered chip.
So, maybe you can use the Epromer for this chip, when it is not connected to the board.
EDIT2: The original Bios chip can be cleared and rewritten. But it shows after errors. This does not happen to
the brandnew Bios chip (before been soldered). This simply means, this Epromer killed the insoldered, original
Bioschip, brrr... and the 1.8 V adapter does not work for this Bios chip 25Q128FWSQ, no matter if it is in the board or outside and brandnew.

#474 | diderius6 | Has anybody here in the forum success with the 1.8V adapter for flashing Bios with ch341a epromer? I do not mean only to copy, but to write full content to any Bioschip Dietmar
#475 | infuscomus | ⇗ @diderius6 did your BIOS backup somehow get corrupted?

#476

diderius6

⇗ @infuscomus
I make 2 copies of Bios 5.4 with different versions (1.8, 1.4) of the ch341a program. Between I shut down all.
Each copy was verifyied during reading and I compare the copies with Winhex after.
All 100% ok. So, may be the ch341a killed not only the insoldered original Bios,
because I also doublecheck the brandnew Bioschip with my copy of 5.4 , before I solder it in.
Compi does not boot, insoldered Bioschip has different content compared
with start values: Large fiels seems to be FF or 00 and only some other crazy bits,
Dietmar
PS: The conclusion is easy: For the Bios chip 25Q128FWSQ you need a professional Epromer (500 Euro)
and I think it works only outside the compi. I tried to awake the Bioschip to new life, running on compi full power on.
I can write, but veryfing with different Eprom program vers. show errors after about 5%. (I run them about 10 times.)
This was the first time since 1982, that I really succeed to kill a compi.
In the afternoon I try another AMD AM4 board ASUS PRIME B350-PLUS for to boot with XP SP3 with the same 1700 cpu.
EDIT: I also try the original 3.4 Bios from Webside with all program versions ch341a.
I can flash it always, but veryfieing shows always errors at about 5%. The 1.8V adapter is complete useless, this one can program 16KB 24 Eproms.

#477

diderius6

I just notice, that the AMD AM4 board ASUS PRIME B350-PLUS
has the same Bios chip 25Q128FWSQ, brrr..
Dietmar
EDIT: This board with the same Ryzen 1700 cpu shows exact the same behavior as the asrock fatal1ty ab350 gaming k4.
Bios can only install XP SP3 in PIC mode (means only 1 cpu core).
And the Acpi errors are also the same A5 (0x2001).
And you have a problem to install XP at all,
because no Asmedia 106x Sata slots on this board.
Until now, I do not have a generic AHCI XP driver for AMD boards, even this would be possible.
I try nvme boot with "Standard PC", but this gives also BSOD 0x7B as on the Asrock board,
even the nvme disk is recogniced correct
Dietmar
PS: In next days I get another AM4 board ASUS A320M-C R2.0.
And also another AM4 cpu AMD A8 9600, which is complete other cpu than Ryzen.

#478

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #477

> Until now, I do not have a generic AHCI XP driver for AMD boards, even this would be possible.

can you test with this driver?
Universal ATA driver for Windows NT3.51/NT4/2000/XP/2003/Vista/7/ReactOS
With PATA/SATA/AHCI support
⇗ http://alter.org.ua/soft/win/uni_ata/

#479

diderius6

⇗ @infuscomus
Yes, I will try. First you have to build a txtsetup.oem for this driver.
Maybe, it can be done easier: Just add the Ven&Dev number for this special AHCI adapter
to the txtsetup.oem and the *.inf file of the intel AHCI driver
Dietmar
EDIT: "Just add the Ven&Dev number for this special AHCI adapter
to the txtsetup.oem and the *.inf file of the intel AHCI driver" does not work for AMD AHCI.
Gives BSOD 0x7B (driver not there).
EDIT2: First try with the uniata.sys gives also BSOD 0x7B.
I do not know, why this happens, because the right ven&dev of the AMD AHCI
are already in the *.inf file for XP.
May be, that you can install this driver from running XP.
But the settings in TXTSETUP.OEM are unclear for me.
The driver uniata.sys is loaded during XP setup, as I can see.

#480 | infuscomus | ⇗ @diderius6 you can also edit txtsetup.sif manually - i do that sometimes

## Page 33

#481

diderius6

This is what I try with the uniata driver.
But gives BSOD 0x7B.
Any help is welcome,
if I do something wrong
Dietmar
diderius6 has attached files to this post

- ⇗ uniata.rar

#482

infuscomus

⇗ @diderius6
Does uniata work if installed once XP is booted? - boot with NVME driver (no ACPI)
I added some HWIDs and edited registry keys in TXTSETUP.OEM - try it
infuscomus has attached files to this post

- ⇗ uniata.zip

#483

diderius6

⇗ @infuscomus
Also with new txtsetup.oem I get BSOD 0x7B on the Asus AMD board,
means, at the moment I can not install any kind of XP there.
But today I ordered new eprom programer TTL866 II plus (only(!) II plus version supports 1.8 Volt Bios chips)
and with its help I will reanimate my asrock fatal1ty ab350 gaming k4 board.
There I installed XP. And from running XP I can try normal *.inf install
via device manager for the AMD SATA AHCI slots Ven_1022&Dev_43B7
Dietmar

#484 | infuscomus | ⇗ @diderius6 Does this mean the cheap BIOS flash kit I bought is useless for ab350 gaming k4?
#485 | infuscomus | ⇗ @diderius6 I asked about the grub2 method over at reboot.pro ⇗ http://reboot.pro/topic/22016-can-grub4d...ble-like-grub2/ I will try this method when I have time to test it

#486

diderius6

Yes, it even can destroy your Bios on the mainboard.
I tried really everything: Put CMOS battery out, in,
Power on (stand by), Power on(full)...brrr.
The 1.8V adapter is useless,
I do not succeed to write 1 bit to the Bios chip with it.
Version 1.29 of the Tool works best.
It recognices the Bios chip correct.
But maybe the writer itself killed the Bios,
because even chip is recogniced it uses to much voltage
Dietmar
PS: Interesting, if the Bios chip can be reanimated with tl866 II Plus programer.

#487

diderius6

Here is a new acpi.sys
which based on Vista 5048.
It works on a lot of new Intelboards for XP SP3 32 bit,
without need to modify anything in Bios. It has all the new words from ACPI 2.0 integratet.
On Ryzen board I get BSOD 0x7E (C0000005,..)
which I think belongs to PIC mode (no APIC in Bios for XP).
But there is still hope, that this kind of acpi.sys
supports in future ALL boards with full ACPI support,
APIC and multiprocessors, because Vista do this
Dietmar
diderius6 has attached files to this post

- ⇗ acpi.rar

#488

diderius6

I just test this acpi.sys on ASUS PRIME A320M-C R2 for XP SP3 install
with AMD 9600 cpu.
Here I get other BSOD 0xA5( 0x0000000D,..)
interesting, this I never had before
Dietmar
0xA5 (0x0000000D, Parameter2, Parameter3, Parameter4):
There are many objects that must be defined in the ACPI namespace, and one or more of these was not found. This error generally occurs if either the _HID or _ADR object is missing. An _ADR is used to define the address of a device on its parent bus. The _ADR is a static address that defines slot numbers for devices that reside on any number of bus types, including EISA, floppy, IDE controller, IDE channel, PCI, PCMCIA, and CardBus. The _HID contains objects that supply the operating system with Plug and Play hardware ID for a device. Technically, these objects are optional, but they absolutely must be present to describe any device that is enumerated by an ACPI driver.
EDIT: With my own modified acpi.sys (with changes at 3 places) I get known BSOD 0XA5 (0x2001,..)
which again means: The problem is only PIC mode support from Bios! So, also on this board the same happens
as on all AM4 boards, that I tested. But the acpi.sys 5048 from Vista does not show this BSOD, so I think it is the right way.

#489 | infuscomus | ⇗ @diderius6 try loading a different DSDT .aml file using grub2 - maybe that a320m-c R1.0 BIOS with the old _PIC function?

#490

diderius6

⇗ @infuscomus
Yes, something like that may work.
I think, it is not an Acpi related problem.
But this does not make it easier.
We need to find out,
what is different in boot Vista on AMD systems
compared with the XP SP3 with acpi.sys from Vista 5048
Dietmar

#491 | infuscomus | ⇗ @diderius6 we could patch extra functions into XP ntoskrnl to match vista ACPI dependencies?

#492

diderius6

⇗ @infuscomus
The problem via this way is, that there are a lot of other functions
and also new dependencies to other files for acpi.sys in Vista,
as I have to see.
Today my programer tl866ii plus arrives
and first of all I try to reanimate my asrock fatal1ty ab350 gaming k4 board.
Interesting, if on a working Vista (with full Acpi support)
the acpi.sys there can be changed against the one from post 487 and works
Dietmar

#493

diderius6

Report about the Epromer tl866ii plus:
First I update internal flash and software.
On USB 3 it crashes often.
On USB2 works, but slow.
I am not able to programm a Bios Chip 25q128fwsq with this Epromer
without errors. I think, the 3 Bios Chips, that I have, are all killed.
Need to buy new
Dietmar
PS: The Bios chip insoldered in Board is not recogniced and cant be programed.
Only when the Bios Chip is direct connected to the Epromer, it is identified correct.
No possibilities to change anything in the Epromer, for example Voltage.
EDIT: After I erased a lot of times the 25q128fwsq Bios chip,
fill it with random numbers, erase again, I was able to program this chip with the epromer tl866ii plus
and veryfy it after direct and again with Winhex without any errors.
This works only, when the Bios chip is direct connected to the epromer via socket,
no cable(!). The tl866ii plus is the only epromer I know, which works for this chip.

#494 | infuscomus | ⇗ @diderius6 maybe something like this might work? ⇗ https://www.ebay.com/itm/SPI-and-I2C-Fla...M-/290587546215 The following contents have been linked to this post:

#495

Lost_N_BIOS

⇗ @diderius6 - I am not sure about tl866ii programmers, if it works same as $2 CH341A programmers, but you can use other software with the CH341A programmer instead of the standard one, and for the chip you mentioned W25Q128FW you need to use ASProgrammer.
Also, if your programmer does not support voltage changes, then yes you would need 1.8V adapter like this, since that is 1.65-1.95V chip - ⇗ https://www.ebay.com/itm/202046860676 The following contents have been linked to this post:

## Page 34

#496 | diderius6 | ⇗ @Lost_N_BIOS This 1.8V adapter does not work, also not with ASProgrammer on CH341A. It just shows FF FF everywhere, Dietmar

#497

diderius6

I think, the problem in the 25Q128FWSQ
are really the 1.8 Volt.
I even cant erase the whole chip.
But when I use the 1.8 version of the TOOL,
I can erase everything.
The 1.8 ver. of the tool does not know anything about 1.8 V,
so I think it uses 3.3 V.
And only this works,
Dietmar

#498

diderius6

Yesssaa,
I erase the 25Q128FWSQ chip
(without any adaptor, only the ch341a programer)
with CH341A Programmer 1.18 and after
check for blank with CH341A Programmer 1.18. All blank.
Again I check for blank with ASProgrammer on pur CH341A for Bios Chip W25Q128FW_1.8V (WINBOND).
All blank.
Then I program via ASProgrammer on pur CH341A for Bios Chip W25Q128FW_1.8V (WINBOND).
After this I read again the Bioschip and compare with my file.
For the very first time, Winhex shows 100% identic
Dietmar

#499

infuscomus

⇗ @diderius6
I am trying the grub2 method for ACPI
What are the tables that ACPI uses? - I have DSDT, what other tables are there?
I used
acpi --load-only /a320cr1.aml
then boot XP setup - no more A5 BSOD, but freeze on "Setup is starting windows"

#500 | infuscomus | how can I extract RSDT/XSDT from a BIOS/UEFI image?
#501 | diderius6 | Yes, I have done this, crazy to find in Bios file. It is easy from a running compi with iasl or RW everything. At the moment I have a lot of work, from Wednesday I have more time Dietmar
#502 | infuscomus | trying to replace DSDT with grub2 - got this error - ideas? infuscomus has attached images to this post ⇗ P_20190519_170143.jpg

#503

infuscomus

⇗ @diderius6
is this the only BIOS modification necessary for programmable interrupt controller to work?
or is more necessary?
Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
{
If (Arg0)
{
DBG8 = 0xAA
}
Else
{
DBG8 = 0xAC
}
PICM = Arg0
}

#504

diderius6

⇗ @infuscomus
I am not sure, if it is only a problem in the DSDT table on Bios from AM4 boards.
May be, the problem comes from another table,
which is loaded during boot also.
I think this, because MPS multiprocessor works
without any ACPI, meaning XP even does not load
the DSDT table
Dietmar

#505 | infuscomus | ⇗ @diderius6 I'm not so sure, MPS on my ab350 gaming K4 freezes on "Setup is Starting Windows"

#506

diderius6

⇗ @infuscomus
"I'm not so sure, MPS on my ab350 gaming K4 freezes on "Setup is Starting Windows" "
Yes, for me is exact the same.
The only chance to see why this happens is a windbg session,
from a working XP SP3 with hal and ntoskrnl for MPS multiprocessor,
Dietmar
PS: This can also be done, when you install a XP SP3 "Standard PC" on ab350 gaming K4
and in boot.ini you make a line with hal and ntoskrnl for MPS.

#507 | infuscomus | ⇗ @diderius6 can the advanced programmable interrupt controller be fixed without fixing ACPI?
#508 | diderius6 | ⇗ @infuscomus When we find out, why this happens, yes. In 3 days I will test this with windbg Dietmar

#509

infuscomus

⇗ @diderius6
I noticed something in txtsetup.sif
[hal]
486c_up = hal.dll ,2,hal.dll
acpipic_up = halacpi.dll ,2,hal.dll
e_isa_up = hal.dll ,2,hal.dll
mps_up = halapic.dll ,2,hal.dll
mps_mp = halmps.dll ,2,hal.dll
syspro_mp = halsp.dll ,2,hal.dll
acpiapic_up = halaacpi.dll,2,hal.dll
acpiapic_mp = halmacpi.dll,2,hal.dll
[Hal.Load]
486c_up = hal.dll
acpipic_up = halacpi.dll
e_isa_up = hal.dll
mps_up = halapic.dll
mps_mp = halapic.dll
syspro_mp = hal.dll
acpiapic_mp = halaacpi.dll
acpiapic_up = halaacpi.dll
maybe MPS freezes because txtsetup.sif in txtmode loads halapic.dll for uniprocessor instead of halmps.dll for multiprocessor?

#510

diderius6

⇗ @infuscomus
This is really strange.
I noticed, that there is a table in Bios, which configures APIC mode (needed for multiprocessor)
but I do not know their name. Because Vista 32 bit can be installed on the Asrock Ryzen board,
there is a way.
For to test this, install a "Standard PC" XP on the Asrock board.
And make an extra line in boot.ini
for to change hal.dll and ntoskrnl from "Standard PC" to "MPS Muliprocessor".
When it hangs also, with Windbg you can find the reason
Dietmar

## Page 35

#511 | infuscomus | ⇗ @diderius6 programmable interrupt controller is connected to PCI standard ISA bridge - is this normal?

#512

diderius6

⇗ @infuscomus,
yes this is PIC mode (only 16 IRQ).
The same happens during install of XP SP3
on the Asrock Ryzen board.
Something went wrong, so that XP tries to install PIC mode.
I have never seen this before.
It has nothing to do with ACPI,
because this error is gone when you install "Acpi-PC" (is in PIC mode)
Dietmar

#513 | infuscomus | ⇗ @diderius6 programmable interrupt controller is connected to PCI standard ISA bridge in windows 10 too maybe XP ISA bridge driver is causing this problem?

#514

diderius6

⇗ @infuscomus
When ACPI is enabled, XP forget about the MPTABLE.
This may be the reason, why Vista works.
So, if there is an error in this MPTABLE, with using of ACPI it never comes to the light.
⇗ https://community.osr.com/discussion/249...pic-lying-to-me
⇗ https://coreboot.coreboot.narkive.com/XG...brios-mouse-fix
Dietmar

#515 | infuscomus | ⇗ @diderius6 by MPTABLE do you mean MADT table?

#516

diderius6

⇗ @infuscomus
I did a search for "apic" in Bios with the UEFI-Tool.
A *.raw entry I do not find via "apic" search.
So, I have no idea, which table sets the correct apic values
for MPS multiprocessor
Dietmar
PS: I am quiet sure, that it is an error in Bios. Bios for Ryzen can not handle MPS multiprocessor.
In Linux we have for kernel configuration
pirq= [SMP,APIC] Manual mp-table setup
See Documentation/x86/i386/IO-APIC.txt.
EDIT: I just find that:
⇗ https://lore.kernel.org/patchwork/patch/742964/
The APIC ids provided by ACPI are not required to be the same as the
> initial APIC id which can be retrieved by CPUID. The APIC ids provided
> by ACPI are those which are written by the BIOS into the APIC. The
> initial id is set by hardware and can not be changed. The hardware
> provided ids contain the real hardware package information.
>
> Especially AMD sets the effective APIC id different from the hardware id
> as they need to reserve space for the IOAPIC ids starting at id 0.
>
> As a consequence those machines trigger the currently active firmware
> bug printouts in dmesg, These are obviously wrong.
>

#517

diderius6

Yes, I was right:
With RW everything on working XP SP3 (Standard PC) on the Ryzen Asrock board
I get, when I click MPS (is entry for table there, not in ACPI):
MP Configuration Table not found!
Dietmar
PS: This is the very first Bios for me, without an MPSTABLE.

#518 | infuscomus | ⇗ @diderius6 Does the XP friendly Z390 motherboard still have an MPSTABLE?

#519

diderius6

⇗ @infuscomus
I do not know, but I will have a look at. On the Asus X Apex z370 board I can install MPS multiprocessor.
The big problem for XP on Ryzen board is,
that you cant enable APIC mode, only PIC with 16 IRQs.
For to test this, I leave everything as before on XP SP3 on
Asrock Ryzen board. I only change hal.dll against halapic.dll.
This means, no MPS, no ACPI is asked for,
only "Standard PC" with one cpu but APIC ("Standard PC" has PIC mode nativ with hal.dll).
And with APIC (halapic.dll) the PC hangs with blinking cursor, exact as the situation is during install
Dietmar

#520

infuscomus

⇗ @diderius6
if you replace in DSDT Table? no change?
Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
{
If (Arg0)
{
DBG8 = 0xAA
}
Else
{
DBG8 = 0xAC
}
PICM = Arg0
}

#521

diderius6

⇗ @infuscomus
With "Standard PC" the DSDT table is not loaded.
I make a try to install the uniata driver.
It installs, but then tells, not enough resources left (error 12)
even I disable nearly all in device manager.
The reason, why this happens may be also because only 16 IRQs
are free in PIC mode and if the driver used something like for example IRQ 22,
it will not work
Dietmar

#522

diderius6

This is interesting
"The IRQ issue, as it turns out, originates at the chipset, rather than the CPU. While running AMD's chipsets A320 and B350 in PIC mode (versus APIC mode), the interrupt mode could not be set to level, which is needed to share IRQ's among several devices. In addition, while running in the edge mode, we discovered that the signal levels seemed to be inverted. This led to the loss of IRQ's and consequently, the driver was not receiving any reply to its device commands.
Of course we have contacted AMD to inform them of our findings. At this time, we are awaiting their response. We will keep you updated. Stay tuned!"

#523 | infuscomus | ⇗ @diderius6 I meant - if you replace the _PIC method in DSDT table does it enter Advanced PIC mode?
#524 | diderius6 | The DSDT table is just not loaded, complete ignored in "Standard PC" Dietmar
#525 | infuscomus | ⇗ @diderius6 Have you tried "ACPI multiprocessor" option in XP setup after replacing _PIC in DSDT Table? If you did, does it fix A5 BSOD?

## Page 36

#526

diderius6

⇗ @infuscomus
yes, when you succeed with "ACPI multiprocessor" ,
the problem with APIC may be just overridden.
This is what I think, what Vista 32 bit is doing.
I make a try with the modified acpi.sys from Vista 5048,
which I post here and connect to a Windbg session
from an XP SP3 with full Acpi support from an AM3+ board
Dietmar
EDIT: Now I have a full XP SP3 (from an AM3+ board)
with extra boot.ini entries
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /KERNEL=nt1.exe /HAL=hal1.dll
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /KERNEL=ntoskrnl.exe /HAL=hal.dll
First is full Multiprocessor Acpi and second is "Standard PC" PIC modus, one cpu, no Acpi.
Second entry works as "Standard PC".
First gives BSOD 0x7E C0000005 and acpi.sys ist there ,even the modified acpi.sys 5048 from Vista.
0xC0000005: STATUS_ACCESS_VIOLATION indicates a memory access violation
occurred.
yepp, this has to be solved,
Dietmar

#527 | infuscomus | ⇗ @diderius6 do you get C0000005 error with server 2003 acpi.sys too?

#528

diderius6

Yes. It is the problem with APIC, I am quite sure.
But take a look at this:
XP on Ryzen, with Acpi enabled and without at the same time,
such fun is only possible in XP
Dietmar
⇗

#529 | infuscomus | ⇗ @diderius6 After XP Microsoft unified the HAL, so for Vista and later - ACPI-only - no other option
#530 | infuscomus | ⇗ @diderius6 there is a new function in windows 7 ntoskrnl - HvlWriteApicCommandRegister

#531

diderius6

I set up a windbg session.
For ACPI multiprocessor I get
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx.
Die Daten wurden wegen eines E/A-Fehlers in "0x%081x" nicht in den Arbeitsspeicher übertragen.
Dietmar

#532

diderius6

>     Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
>     Copyright (c) Microsoft Corporation. All rights reserved.

>     Opened \\.\com1
>     Waiting to reconnect...
>     Connected to Windows XP 2600 x86 compatible target at (Sun May 26 20:48:12.281 2019 (UTC + 2:00)), ptr64 FALSE
>     Kernel Debugger connection established.
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Symbol search path is: C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386;SRV*c:\symbols
>     *⇗ http://msdl.microsoft.com/download/symbols;C:\symbols
>     Executable search path is: C:\localsymbols
>     Windows XP Kernel Version 2600 MP (1 procs) Free x86 compatible
>     Built by: 2600.xpsp.080413-2111
>     Machine Name:
>     Kernel base = 0x804d7000 PsLoadedModuleList = 0x8055d720
>     System Uptime: not available
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Sun
>      May 26 20:48:15.078 2019 (UTC + 2:00): MM: Loader/HAL memory block
>     indicates large pages cannot be used for 810A6000->8290AFFF
>     Sun May 26 20:48:15.078 2019 (UTC + 2:00):
>     Sun May 26 20:48:15.093 2019 (UTC + 2:00): MM: Disabling large pages for all ranges due to overlap
>     Sun May 26 20:48:20.968 2019 (UTC + 2:00):
>     *** Fatal System Error: 0x0000007e
>                            (0xC0000005,0xB7F75088,0xB84C2E8C,0xB84C2B88)

>     Sun May 26 20:48:21.015 2019 (UTC + 2:00): Break instruction exception - code 80000003 (first chance)

>     A fatal system error has occurred.
>     Debugger entered on first try; Bugcheck callbacks have not been invoked.

>     A fatal system error has occurred.

>     Connected to Windows XP 2600 x86 compatible target at (Sun May 26 20:48:21.203 2019 (UTC + 2:00)), ptr64 FALSE
>     Loading Kernel Symbols
>     .........................
>     Loading User Symbols

>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     Use !analyze -v to get detailed debugging information.

>     BugCheck 7E, {c0000005, b7f75088, b84c2e8c, b84c2b88}

>     *** ERROR: Module load completed but symbols could not be loaded for ACPI.sys
>     *** No owner thread found for resource 8055b4e0
>     *** No owner thread found for resource 8055b4e0
>     *** No owner thread found for resource 8055b4e0
>     *** No owner thread found for resource 8055b4e0
>     *** No owner thread found for resource 8055b4e0
>     Probably caused by : ACPI.sys ( ACPI+e088 )

>     Followup: MachineOwner
>     ---------

>     nt!RtlpBreakWithStatusInstruction:
>     8052b5dc cc              int     3
>     0: kd> !analyze -v
>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (7e)
>     This is a very common bugcheck.  Usually the exception address pinpoints
>     the driver/function that caused the problem.  Always note this address
>     as well as the link date of the driver/image that contains this address.
>     Arguments:
>     Arg1: c0000005, The exception code that was not handled
>     Arg2: b7f75088, The address that the exception occurred at
>     Arg3: b84c2e8c, Exception Record Address
>     Arg4: b84c2b88, Context Record Address

>     Debugging Details:
>     ------------------

>     *** No owner thread found for resource 8055b4e0
>     *** No owner thread found for resource 8055b4e0
>     *** No owner thread found for resource 8055b4e0
>     *** No owner thread found for resource 8055b4e0
>     *** No owner thread found for resource 8055b4e0

>     EXCEPTION_CODE:
>      (NTSTATUS) 0xc0000005 - Die Anweisung "0x%08lx" verweist auf Speicher
>     bei "0x%08lx". Die Daten wurden wegen eines E/A-Fehlers in "0x%081x"
>     nicht in den Arbeitsspeicher  bertragen.

>     FAULTING_IP:
>     ACPI+e088
>     b7f75088 ff5010          call    dword ptr [eax+10h]

>     EXCEPTION_RECORD:  b84c2e8c -- (.exr 0xffffffffb84c2e8c)
>     ExceptionAddress: b7f75088 (ACPI+0x0000e088)
>        ExceptionCode: c0000005 (Access violation)
>       ExceptionFlags: 00000000
>     NumberParameters: 2
>        Parameter[0]: 00000000
>        Parameter[1]: 00000010
>     Attempt to read from address 00000010

>     CONTEXT:  b84c2b88 -- (.cxr 0xffffffffb84c2b88)
>     eax=00000000 ebx=b84c30f4 ecx=8a8ccd80 edx=b84c3030 esi=b84c30e4 edi=00000000
>     eip=b7f75088 esp=b84c2f54 ebp=b84c30bc iopl=0         nv up ei ng nz na pe nc
>     cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010286
>     ACPI+0xe088:
>     b7f75088 ff5010          call    dword ptr [eax+10h]  ds:0023:00000010=????????
>     Resetting default scope

>     PROCESS_NAME:  System

>     ERROR_CODE:
>      (NTSTATUS) 0xc0000005 - Die Anweisung "0x%08lx" verweist auf Speicher
>     bei "0x%08lx". Die Daten wurden wegen eines E/A-Fehlers in "0x%081x"
>     nicht in den Arbeitsspeicher  bertragen.

>     EXCEPTION_PARAMETER1:  00000000

>     EXCEPTION_PARAMETER2:  00000010

>     READ_ADDRESS:  00000010

>     FOLLOWUP_IP:
>     ACPI+e088
>     b7f75088 ff5010          call    dword ptr [eax+10h]

>     BUGCHECK_STR:  0x7E

>     DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE

>     LOCK_ADDRESS:  8055b560 -- (!locks 8055b560)
>     NTSDEXTS: Unable to resolve ntdll!RtlCriticalSectionList
>     NTSDEXTS: Please check your symbols

>     PNP_TRIAGE:
>     	Lock address  : 0x8055b560
>     	Thread Count  : 1
>     	Thread address: 0x8a8b9788
>     	Thread wait   : 0xbf

>     LAST_CONTROL_TRANSFER:  from 804f8df9 to 8052b5dc

>     STACK_TEXT:
>     WARNING: Stack unwind information not available. Following frames may be wrong.
>     b84c30bc b7f9614d 8a8ccd80 b84c30e4 b84c30f4 ACPI+0xe088
>     b84c30e8 b7f9bddf b7f91940 b84c3104 e101128c ACPI+0x2f14d
>     b84c316c b7f95d80 e14c852c b84c31bc b7f91940 ACPI+0x34ddf
>     b84c3180 b7f9be5a b7f91940 b84c31bc e101128c ACPI+0x2ed80
>     b84c319c 80596117 b7f91940 00000009 b84c31bc ACPI+0x34e5a
>     b84c31d8 80597cd1 e14c84d8 00000000 8055b060 nt!IopBootAllocation+0x5f
>     b84c321c 80598602 00000004 e14c84d8 e1436430 nt!IopAllocateBootResourcesInternal+0x65
>     b84c323c 8069dcbc 00000004 8a8ccd80 e1436430 nt!IopAllocateBootResources+0x34
>     b84c325c 8058f193 00000004 8a8ccd80 e1436430 nt!IopReportBootResources+0x3c
>     b84c328c 80591f4d 8a8dbad8 800000a8 00000000 nt!PiQueryAndAllocateBootResources+0xe7
>     b84c337c 8059222b 8a8dbad8 00000000 00000000 nt!PipProcessNewDeviceNode+0xab5
>     b84c35d0 804f68d3 8a881dd8 00000000 00000000 nt!PipProcessDevNodeTree+0x16b
>     b84c3614 804f6b78 00000000 00000000 800916b8 nt!PipDeviceActionWorker+0xad
>     b84c362c 8069d0ee 00000000 00000006 00000000 nt!PipRequestDeviceAction+0x118
>     b84c3690 80699f70 80085000 b84c36ac 00034000 nt!IopInitializeBootDrivers+0x376
>     b84c3838 806983d3 80085000 00000000 8a8b9788 nt!IoInitSystem+0x712
>     b84c3dac 805cff64 80085000 00000000 00000000 nt!Phase1Initialization+0xac7
>     b84c3ddc 805460de 8069790c 80085000 00000000 nt!PspSystemThreadStartup+0x34
>     00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

>     SYMBOL_STACK_INDEX:  0

>     SYMBOL_NAME:  ACPI+e088

>     FOLLOWUP_NAME:  MachineOwner

>     MODULE_NAME: ACPI

>     IMAGE_NAME:  ACPI.sys

>     DEBUG_FLR_IMAGE_TIMESTAMP:  424d8208

>     STACK_COMMAND:  .cxr 0xffffffffb84c2b88 ; kb

>     FAILURE_BUCKET_ID:  0x7E_ACPI+e088

>     BUCKET_ID:  0x7E_ACPI+e088

>     Followup: MachineOwner
>     ---------

>     0: kd> !analyze -v
>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (7e)
>     This is a very common bugcheck.  Usually the exception address pinpoints
>     the driver/function that caused the problem.  Always note this address
>     as well as the link date of the driver/image that contains this address.
>     Arguments:
>     Arg1: c0000005, The exception code that was not handled
>     Arg2: b7f75088, The address that the exception occurred at
>     Arg3: b84c2e8c, Exception Record Address
>     Arg4: b84c2b88, Context Record Address

>     Debugging Details:
>     ------------------

>     *** No owner thread found for resource 8055b4e0
>     *** No owner thread found for resource 8055b4e0
>     *** No owner thread found for resource 8055b4e0
>     *** No owner thread found for resource 8055b4e0
>     *** No owner thread found for resource 8055b4e0

>     EXCEPTION_CODE:
>      (NTSTATUS) 0xc0000005 - Die Anweisung "0x%08lx" verweist auf Speicher
>     bei "0x%08lx". Die Daten wurden wegen eines E/A-Fehlers in "0x%081x"
>     nicht in den Arbeitsspeicher  bertragen.

>     FAULTING_IP:
>     ACPI+e088
>     b7f75088 ff5010          call    dword ptr [eax+10h]

>     EXCEPTION_RECORD:  b84c2e8c -- (.exr 0xffffffffb84c2e8c)
>     ExceptionAddress: b7f75088 (ACPI+0x0000e088)
>        ExceptionCode: c0000005 (Access violation)
>       ExceptionFlags: 00000000
>     NumberParameters: 2
>        Parameter[0]: 00000000
>        Parameter[1]: 00000010
>     Attempt to read from address 00000010

>     CONTEXT:  b84c2b88 -- (.cxr 0xffffffffb84c2b88)
>     eax=00000000 ebx=b84c30f4 ecx=8a8ccd80 edx=b84c3030 esi=b84c30e4 edi=00000000
>     eip=b7f75088 esp=b84c2f54 ebp=b84c30bc iopl=0         nv up ei ng nz na pe nc
>     cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010286
>     ACPI+0xe088:
>     b7f75088 ff5010          call    dword ptr [eax+10h]  ds:0023:00000010=????????
>     Resetting default scope

>     PROCESS_NAME:  System

>     ERROR_CODE:
>      (NTSTATUS) 0xc0000005 - Die Anweisung "0x%08lx" verweist auf Speicher
>     bei "0x%08lx". Die Daten wurden wegen eines E/A-Fehlers in "0x%081x"
>     nicht in den Arbeitsspeicher  bertragen.

>     EXCEPTION_PARAMETER1:  00000000

>     EXCEPTION_PARAMETER2:  00000010

>     READ_ADDRESS:  00000010

>     FOLLOWUP_IP:
>     ACPI+e088
>     b7f75088 ff5010          call    dword ptr [eax+10h]

>     BUGCHECK_STR:  0x7E

>     DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE

>     LOCK_ADDRESS:  8055b560 -- (!locks 8055b560)
>     NTSDEXTS: Unable to resolve ntdll!RtlCriticalSectionList
>     NTSDEXTS: Please check your symbols

>     PNP_TRIAGE:
>     	Lock address  : 0x8055b560
>     	Thread Count  : 1
>     	Thread address: 0x8a8b9788
>     	Thread wait   : 0xbf

>     LAST_CONTROL_TRANSFER:  from 804f8df9 to 8052b5dc

>     STACK_TEXT:
>     WARNING: Stack unwind information not available. Following frames may be wrong.
>     b84c30bc b7f9614d 8a8ccd80 b84c30e4 b84c30f4 ACPI+0xe088
>     b84c30e8 b7f9bddf b7f91940 b84c3104 e101128c ACPI+0x2f14d
>     b84c316c b7f95d80 e14c852c b84c31bc b7f91940 ACPI+0x34ddf
>     b84c3180 b7f9be5a b7f91940 b84c31bc e101128c ACPI+0x2ed80
>     b84c319c 80596117 b7f91940 00000009 b84c31bc ACPI+0x34e5a
>     b84c31d8 80597cd1 e14c84d8 00000000 8055b060 nt!IopBootAllocation+0x5f
>     b84c321c 80598602 00000004 e14c84d8 e1436430 nt!IopAllocateBootResourcesInternal+0x65
>     b84c323c 8069dcbc 00000004 8a8ccd80 e1436430 nt!IopAllocateBootResources+0x34
>     b84c325c 8058f193 00000004 8a8ccd80 e1436430 nt!IopReportBootResources+0x3c
>     b84c328c 80591f4d 8a8dbad8 800000a8 00000000 nt!PiQueryAndAllocateBootResources+0xe7
>     b84c337c 8059222b 8a8dbad8 00000000 00000000 nt!PipProcessNewDeviceNode+0xab5
>     b84c35d0 804f68d3 8a881dd8 00000000 00000000 nt!PipProcessDevNodeTree+0x16b
>     b84c3614 804f6b78 00000000 00000000 800916b8 nt!PipDeviceActionWorker+0xad
>     b84c362c 8069d0ee 00000000 00000006 00000000 nt!PipRequestDeviceAction+0x118
>     b84c3690 80699f70 80085000 b84c36ac 00034000 nt!IopInitializeBootDrivers+0x376
>     b84c3838 806983d3 80085000 00000000 8a8b9788 nt!IoInitSystem+0x712
>     b84c3dac 805cff64 80085000 00000000 00000000 nt!Phase1Initialization+0xac7
>     b84c3ddc 805460de 8069790c 80085000 00000000 nt!PspSystemThreadStartup+0x34
>     00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

>     SYMBOL_STACK_INDEX:  0

>     SYMBOL_NAME:  ACPI+e088

>     FOLLOWUP_NAME:  MachineOwner

>     MODULE_NAME: ACPI

>     IMAGE_NAME:  ACPI.sys

>     DEBUG_FLR_IMAGE_TIMESTAMP:  424d8208

>     STACK_COMMAND:  .cxr 0xffffffffb84c2b88 ; kb

>     FAILURE_BUCKET_ID:  0x7E_ACPI+e088

>     BUCKET_ID:  0x7E_ACPI+e088

>     Followup: MachineOwner
>     ---------

#533

diderius6

Interesting, if this an error in some AM4 chipsets:
"The IRQ issue, as it turns out, originates at the chipset, rather than the CPU. While running AMD's chipsets A320 and B350 in PIC mode (versus APIC mode), the interrupt mode could not be set to level, which is needed to share IRQ's among several devices. In addition, while running in the edge mode, we discovered that the signal levels seemed to be inverted. This led to the loss of IRQ's and consequently, the driver was not receiving any reply to its device commands."
This would mean, that on other AM4 chipsets this APIC error (compi stays in PIC mode) not appears, for example
A/B300
X300
X370
B450
X470
Would be nice, to hear about acpi results for XP SP3 boot on those platforms
Dietmar
PS: With my modified acpi.sys from XP SP3 I get the error: Acpi tries to enable PIC mode, but fails. Because this is a B350 chipset, it may be just true.

#534

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #533

> This would mean, that on other AM4 chipsets this APIC error (compi stays in PIC mode) not appears, for example
> A/B300
> X300
> X370
> B450
> X470

The chipsets are very similar, I would assume same result on the B400 series as with B300 series

#535

diderius6

I just notice,
that no version of Vista can be installed on
Asrock fatal1ty ab350 gaming k4.
It tells: "compi not ACPI conform"
Dietmar
PS: Now I am sure, that it is a bug in the chipset B350 and /or in its Bios.
XP can only be installed there, because it can be done in PIC mode for one cpu (Standard PC).
I try a lot of Vista BETA versions, allways the same. If a beta version starts to install Vista (Longhorn)
few moment later comes BSOD 0x7E c0000005 acpi.sys error.
The problem is just, that Bios offers only PIC mode (16 IRQs) and not APIC mode (24 Irqs).

#536 | infuscomus | ⇗ @diderius6 any luck installing windows 7?

#537

diderius6

⇗ @infuscomus
I cant install Win7 32 bit on MBR on Asrock fatal1ty ab350 gaming k4 via original DVD (from 2009, no service pack at all).
Compi shows on reboot error c0000007. I use Ryzen 1700 with 8 cores 16 threads.
But using the files from another compi works with full ACPI and Hyperthreading as you can see on photo.
This is astonishing, how legacy Win7 32 bit (non UEFI) manage the PIC modus from this Bios.
May be, it takes only very basics information from Bios
and builds everything else by itself
Dietmar
⇗

#538 | infuscomus | ⇗ @diderius6 can we copy APIC from AM3 or FM2+ system BIOS and apply to AM4?

#539

diderius6

⇗ @infuscomus
I read a lot about PIC and APIC mode in Bios.
As far as I see, nobody else succeed to build a XP,
with both "Standard PC" and "Acpi Multiprocessor" at the same time.
I read, that somebody, who builds embedded PC s for XP was looking like crazy for such a solution.
I dont understand, where the switch between PIC and APIC mode is in Bios. May be its just one value of a variable, Arg0 (?)
which can be hacked.
Some BIOS are on a black list and XP always install PIC modus even Bios offers (faulty) APIC mode.
Somebody told, that the MPS multiprocessor table is a good test, if a BIOS works in APIC mode.
I agree, but on this Bios we have no MPS
Dietmar
PS: Interesting if there is a MPS table on any AM4 Bios. Just install RW everything and click on MPS.
On Asrock fatal1ty ab350 gaming k4 there is none. But may be on other chipsets for AM4 there is.
And I also have no idea, where this table is in Bios located.

#540

infuscomus

⇗ @diderius6
in XP unfriendly DSDT on ab350 gaming k4
Device (SBRG)
{
Name (_ADR, 0x00140003) // _ADR: Address
Device (PIC)
{
Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IRQNoFlags ()
{2}
})
}
Device PIC is part of SBRG?
compare XP friendly
Device (PIC)
{
Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IRQNoFlags ()
{2}
})
}
close bracket?
possible solution?
Device (SBRG)
{
Name (_ADR, 0x00140003) // _ADR: Address
}
Device (PIC)
{
Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IRQNoFlags ()
{2}
})
}
maybe?

## Page 37

#541

diderius6

⇗ @infuscomus
I found the Hexpattern, where _MP_ is recogniced.
It is 5F4D505F.
Via this way I found the MP table in Bios from Apex X board.
It is located in Bios in ACPI Section_PE32_image_ACPI
Dietmar
PS: Via this way, all Bios from other AM4 chipsets can be tested for _MP_ table.
I just test this. The PRIME-X470-PRO-ASUS-4602 Bios also has no _MP_ table.
EDIT: The 8259-compatible Programmable Interrupt Controller is the part for PIC mode.
But where is the same for APIC?
⇗ https://habr.com/en/post/446312/
⇗ https://wiki.osdev.org/IOAPIC
⇗ https://wiki.osdev.org/MADT

#542

diderius6

Yesssssa, I find the cause of all evel in APIC for XP in Bios FACP table

    Signature	"FACP"
    Length	0x00000114 (276)
    Revision	0x06 (6)
    Checksum	0xC1 (193)
    OEM ID	"ALASKA"
    OEM Table ID	"A M I "
    OEM Revision	0x01072009 (17244169)
    Creator ID	"AMI "
    Creator Revision	0x00010013 (65555)
    Firmware Control	0xDC6E0D80 - FACS
    DSDT Address	0xDC31A1E8 - DSDT
    Interrupt Mode	0x00 (0) - Dual PIC
    PM Profile	0x01 (1)
    SCI Interrupt	0x0009 (9)
    SMI Port	0x000000B2 (178)
    ACPI Enable	0xA0 (160)
    ACPI Disable	0xA1 (161)
    S4 Request	0x00 (0) - Not supported
    PSTATE_CNT	0x00 (0)
    PM1a_EVT_BLK	0x00000800 (2048)
    PM1b_EVT_BLK	0x00000000 (0) - Not supported
    PM1a_CNT_BLK	0x00000804 (2052)
    PM1b_CNT_BLK	0x00000000 (0) - Not supported
    PM2_CNT_BLK	0x00000000 (0) - Not supported
    PM_TMR_BLK	0x00000808 (2056)
    GPE0_BLK	0x00000820 (2080)
    GPE1_BLK	0x00000000 (0) - Not supported
    PM1_EVT_LEN	0x04 (4)
    PM1_CNT_LEN	0x02 (2)
    PM2_CNT_LEN	0x01 (1)
    PM_TMR_LEN	0x04 (4)
    GPE0_BLK_LEN	0x08 (8)
    GPE1_BLK_LEN	0x00 (0)
    GPE1_BASE	0x00 (0)
    CST_CNT	0x00 (0)
    P_LVL2_LAT	0x0065 (101) - C2 state not supported
    P_LVL3_LAT	0x03E9 (1001) - C3 state not supported
    FLUSH_SIZE	0x0400 (1024)
    FLUSH_STRIDE	0x0010 (16)
    DUTY_OFFSET	0x01 (1)
    DUTY_WIDTH	0x03 (3)
    DAY_ALRM	0x0D (13)
    MON_ALRM	0x00 (0) - Month alarm not supported
    CENTURY	0x32 (50)
    IAPC_Boot_Arch	0x03 0x00
    Reserved	0x00 (0)
    Flags	0x0003C5A5
      WBINVD	1 - WBINVD instruction fully supported
      WBINVD_Flush	0 - WBINVD instruction not for sleep states (Don't care if WBINVD=1)
      PROC_C1	1 - C1 power state: all processors
      P_LVL2_UP	0 - C2 power state: UP system only
      PWR_BUTTON	0 - Power button supported as fixed feature
      SLP_BUTTON	1 - Sleep button not support or handled by ASL code
      FIX_RTC	0 - Fixed register support RTC wake
      RTC_S4	1 - RTC wakeup support: S1, S2, S3, S4
      TMR_VAL_EXT	1 - 32bit PM Timer
      DCK_CAP	0 - Docking not supported
      RESET_REG_SUP	1 - Reset Register supported
      SEALED_CASE	0 - System is not sealed
      HEADLESS	0 - Not headless mode
      CPU_SW_SLP	0 - Normal method to write SLP_TYPx
      PCI_EXP_WAK	1 - PM1 block support PCIE wakeup status/enable bits
      USE_PLATFORM_CLOCK	1 - OSPM use HPET (if exist) or ACPI PM Timer
      S4_RTC_STS_VALID	1 - RTC_STS flag is valid when resume from S4
      REMOTE_POWER_ON_CAPABLE	1 - System compatible with remote power on
      FORCE_APIC_CLUSTER_MODEL	0 - Cluster destination model not required
      FORCE_APIC_PHYSICAL_DESTINATION_MODE	0 - Physical destination mode not required
    RESET_REG	IO: 0xB2, BitWidth: 0x8 (8), BitOffset: 0x00 (0), AccessSize: Undefined
    RESET_VALUE	0xBE (190)
    Reserved	0x00 0x00 0x00
    X_FIRMWARE_CTRL	0x0000000000000000
    X_DSDT	0x00000000DC31A1E8
    X_PM1a_EVT_BLK	IO: 0x800, BitWidth: 0x20 (32), BitOffset: 0x00 (0), AccessSize: Word
    X_PM1b_EVT_BLK	IO: 0x0, BitWidth: 0x0 (0), BitOffset: 0x00 (0), AccessSize: Word
    X_PM1a_CNT_BLK	IO: 0x804, BitWidth: 0x10 (16), BitOffset: 0x00 (0), AccessSize: Word
    X_PM1b_CNT_BLK	IO: 0x0, BitWidth: 0x0 (0), BitOffset: 0x00 (0), AccessSize: Word
    X_PM2_CNT_BLK	IO: 0x0, BitWidth: 0x8 (8), BitOffset: 0x00 (0), AccessSize: Byte
    X_PM_TMR_BLK	IO: 0x808, BitWidth: 0x20 (32), BitOffset: 0x00 (0), AccessSize: Dword
    X_GPE0_BLK	IO: 0x820, BitWidth: 0x40 (64), BitOffset: 0x00 (0), AccessSize: Byte
    X_GPE1_BLK	IO: 0x0, BitWidth: 0x0 (0), BitOffset: 0x00 (0), AccessSize: Byte
    SLEEP_CONTROL	Memory: 0x0, BitWidth: 0x0 (0), BitOffset: 0x0 (0), AccessSize: Undefined
    SLEEP_STATUS	Memory: 0x0, BitWidth: 0x0 (0), BitOffset: 0x0 (0), AccessSize: Undefined

Crazy, so the Bios from Asrock fatal1ty ab350 gaming k4 is really a PIC mode Bios, like 30 years ago
Dietmar

#543

diderius6

This can be hacked, like I did with the timer and s4e method:
Before

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\HARDWARE\ACPI\FADT\ALASKA\A_M_I_\01072009]
    "00000000"=hex:46,41,43,50,14,01,00,00,06,c1,41,4c,41,53,4b,41,41,20,4d,20,49,\
      20,00,00,09,20,07,01,41,4d,49,20,13,00,01,00,80,0d,6e,dc,e8,a1,31,dc,00,01,\
      09,00,b2,00,00,00,a0,a1,00,00,00,08,00,00,00,00,00,00,04,08,00,00,00,00,00,\
      00,00,00,00,00,08,08,00,00,20,08,00,00,00,00,00,00,04,02,01,04,08,00,00,00,\
      65,00,e9,03,00,04,10,00,01,03,0d,00,32,03,00,00,a5,c5,03,00,01,08,00,00,b2,\
      00,00,00,00,00,00,00,be,00,00,00,00,00,00,00,00,00,00,00,e8,a1,31,dc,00,00,\
      00,00,01,20,00,02,00,08,00,00,00,00,00,00,01,00,00,02,00,00,00,00,00,00,00,\
      00,01,10,00,02,04,08,00,00,00,00,00,00,01,00,00,02,00,00,00,00,00,00,00,00,\
      01,08,00,01,00,00,00,00,00,00,00,00,01,20,00,03,08,08,00,00,00,00,00,00,01,\
      40,00,01,20,08,00,00,00,00,00,00,01,00,00,01,00,00,00,00,00,00,00,00,00,00,\
      00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
      00,00,00,00,00

after

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\HARDWARE\ACPI\FADT\ALASKA\A_M_I_\01072009]
    "00000000"=hex:46,41,43,50,14,01,00,00,06,c1,41,4c,41,53,4b,41,41,20,4d,20,49,\
      20,00,00,09,20,07,01,41,4d,49,20,13,00,01,00,80,0d,6e,dc,e8,a1,31,dc,01,01,\
      09,00,b2,00,00,00,a0,a1,00,00,00,08,00,00,00,00,00,00,04,08,00,00,00,00,00,\
      00,00,00,00,00,08,08,00,00,20,08,00,00,00,00,00,00,04,02,01,04,08,00,00,00,\
      65,00,e9,03,00,04,10,00,01,03,0d,00,32,03,00,00,a5,c5,03,00,01,08,00,00,b2,\
      00,00,00,00,00,00,00,be,00,00,00,00,00,00,00,00,00,00,00,e8,a1,31,dc,00,00,\
      00,00,01,20,00,02,00,08,00,00,00,00,00,00,01,00,00,02,00,00,00,00,00,00,00,\
      00,01,10,00,02,04,08,00,00,00,00,00,00,01,00,00,02,00,00,00,00,00,00,00,00,\
      01,08,00,01,00,00,00,00,00,00,00,00,01,20,00,03,08,08,00,00,00,00,00,00,01,\
      40,00,01,20,08,00,00,00,00,00,00,01,00,00,01,00,00,00,00,00,00,00,00,00,00,\
      00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
      00,00,00,00,00

Dietmar

#544

infuscomus

⇗ @diderius6
so in FACP table
Interrupt Mode 0x00 (0) - Dual PIC
should be
Interrupt Mode 0x01
is this correct?

#545

diderius6

⇗ @infuscomus
Yes.
Interrupt Mode 0x00 (0) - Dual PIC --> Interrupt Mode 0x01 (1) - Multiple APIC
When you read, how APIC works, you see, that each cpu core builds an own local Apic.
And all together, the chipset with integrated apic controller (!) makes a working (or not working) Apic from it.
So, I am not sure, if this is a symptom in FACP or the cure:)).
Until know, I do not find the location of FACP in Bios.
When you look for string "FACP" with Uefi-Tool you get some adresses.
But how the table facp is build from it, I dont know.
The hack in Bios would be simple
Dietmar

#546 | infuscomus | ⇗ @diderius6 my guess is FACP is located in Section_PE32_image_ACPI_ACPI_body.efi I think XSDT is there too I don't know how to extract the FACP from the EFI module though
#547 | diderius6 | I succeed to install USB2.0 and full USB 3.1 support on the Asrock fatal1ty ab350 gaming k4 for XP SP3 Dietmar ⇗
#548 | infuscomus | ⇗ @diderius6 which driver version did you use for USB 3.0/3.1?
#549 | infuscomus | ⇗ @diderius6 i'm not 100% sure, butyou may find this useful? Windows Vista ACPI information, incl. advice on common problems in ACPI implementations ⇗ http://download.microsoft.com/download/5...CPA002_WH06.ppt edit: according to this presentation, you need a checked build of acpi.sys to load ACPI tables from registry?

#550

diderius6

⇗ @infuscomus
There are nice tips for to work with windbg, especially on BSOD 0x7E.
About USB3.1 on the AMD Asrock board:
First I copy all USB XP SP1 files (see attach down here) to folder windows\system32\drivers on AMD XP SP3.
Then from device manager I install USB 3.1 files, first xhci, then, when windows ask for it, the hub driver
Dietmar
EDIT: No need for checked build of acpi.sys (I have for XP, but does not help anything).
XP always reads dsdt, facp tables from registry.
What may be different with checked acpi.sys is,
that this driver ONLY looks at registry, while normal XP acpi.sys reads the
entries in registry, which are always loaded new from Bios on next boot.
So, like with the Microsoft tool, you can make an order list of entries
for dsdt, facp in registry, newest files are loaded then.
diderius6 has attached files to this post

- ⇗ USBXPSP1.rar
- ⇗ AMD USB 3.1 drivers v1.0.5.3 WHQL.rar

#551 | infuscomus | ⇗ @diderius6 Thanks for the USB drivers. I recall you saying that server 2003 acpi.sys had ACPI 2.0 words compared to XP ACPI 1.0 words so can checked server 2003 acpi.sys with ACPI 2.0 words help diagnose the problem? p.s I assume acpi.sys 5048 is an unchecked version?
#552 | infuscomus | ⇗ @diderius6 do you have a copy of debug ntkrnlmp.exe for XP? I have found server 2003 version but not XP version

#553

diderius6

⇗ @infuscomus
Here it is,
englisch debug version XP SP3 32 bit ntkrnlmp.exe
Dietmar
diderius6 has attached files to this post

- ⇗ ntkrnlmp.rar

#554 | diderius6 | Hi, I am happy, when all AMD Ryzen users can make a quick test via rw-everything, if there is a MPS table on their board. For this, just click MPS on top of the RW-everything window Dietmar

#555

diderius6

May be a Linux installation on the Asrock fatal1ty ab350 gaming k4
can give more information about the not working APIC mode. Any help using diagnostic tools in Linux is welcome.
Yesterday I booted this board write protect with an XP from an AM3+ board.
Again the 0x7E 0xc0000005 error ACPI.sys error (I use the modified 5048 acpi.sys, which works perfect on intel boards.)
This is strange, because the FACP and DSDT table are now read from the
AM3+ board, because of writeprotect. This would mean: The BSOD happens not because of broken Bios.
More and more I come to the conclusion,
that the APIC controller in the B320 and B350 AMD chipsets has an error
Dietmar
EDIT: May be this problem with APIC is related to 32 bit (adress room),
and because of this, there is no support for legacy Win7 32 bit for Ryzen.
I saw computers with B320 or B350 chipset with Ryzen cpu, which fails during install Win7 32 bit via Acpi.sys error.
It depends not on the ryzen cpu, I tested.

## Page 38

#556 | infuscomus | ⇗ @diderius6 Thanks for XP checked ntkrnlmp server 2003 checked acpi.sys calls missing function not in XP - DbgCommandString damn

#557

diderius6

⇗ @infuscomus
Here it is, original XP SP3 32 bit english acpi.sys debug version, until now not modified,
because big differences in normal acpi.sys version and debug
Dietmar
diderius6 has attached files to this post

- ⇗ acpiDEBUG.rar

#558 | infuscomus | ⇗ @diderius6 Thanks regarding MPS table - can this be added into BIOS for AB350 gaming K4? or would MPS be unnecessary if we can make APIC work?

#559

diderius6

⇗ @infuscomus
MPS table helps you to see at once,
if the compi can work in APIC mode.
Without MPS, you cant say nothing:)).
No real need for the MPS table,
but via MPS you can decide, wether it is an APIC versus PIC
problem or just something went wrong with ACPI.sys.
On the Asrock B350 board, for sure something went wrong with APIC,
and acpi.sys crashes in follow of only PIC mode (no multiprocessor)
Dietmar

#560 | infuscomus | ⇗ @diderius6 can you send me a full acpidump (all tables) of your XP friendly AM3+ board? I don't have an AM3+ board of my own

#561

diderius6

⇗ @infuscomus
Here it the acpidump, translated to human readable.
This Bios from AM3+ FX-8350 processor on MSI 760gma-p34 (fx) board (first version)
has an MPS table, in FACP you can see, that APIC mode is enabled
and really everything works nice in XP SP3, especially MPS multiprocessor and ACPI multiprocessor
Dietmar
diderius6 has attached files to this post

- ⇗ AcpidumpAM3+XPfriendly.rar

#562

diderius6

Waaaoh,
my idea about BSOD from acpi (no apic, only pic model) because of 32 bit is right.
Just in this moment I install legacy Vista 64 bit (very first version from 2007) on MBR.
Now it is clear, why there is no legacy Win7 32 bit support for the Asrock fatal1ty ab350 gaming k4 board
Dietmar

#563 | infuscomus | ⇗ @diderius6 Thanks, was it just these 4 tables? can i get the raw acpidump output file so it gives everything? acpidump -o am3dump
#564 | diderius6 | ⇗ @infuscomus acpidump looks only at registry and in registry hardware are only this 4 files. rw-everything looks in Bios, but it crashes, because it does not like acpi and nonacpi model at the same time Dietmar
#565 | infuscomus | ⇗ @diderius6 OK, Thanks do you know if the facp table is actually generated at boot or stored in BIOS?

#566

diderius6

⇗ @infuscomus
The FACP table is build on boottime always new from XP (with an unknown algorithmus), during reading from Bios.
But you can fake the FACP table, because hal.dll of XP looks only in registry.
I have done this for the timer and the fake FACP table works.
Here with the Asrock board we have the problem,
that there is no FACP table build in Bios, because of no Acpi.
With some handwork, it is possible to build such a hardware entry in registry for ACPI for all the 4 tables by hand.
But the result would be the same BSOD 0x7E 0xC0000005
Dietmar
PS: At the moment I download Ubuntu 16.04 (32-bit),
this is the last version for 32 bit support.
I hope to get some more information, at which place the APIC mode crashes,
as it depends on those 32 bit.

#567 | infuscomus | ⇗ @diderius6 there is also manjaro linux maintaining a 32-bit version if you want something more recent

#568

diderius6

Here ist the registry entry (under hardware) for all ACPI tables Vista 64 bit for the Asrock board.
On XP SP3 32 bit it should be 100% identic
Dietmar
diderius6 has attached files to this post

- ⇗ AcpiVista64.rar

#569

diderius6

I just make a try with faked FACP chosing APIC model there (instead of PIC). This registry entry ACPI I added to working XP on the Asrock board.
I tested with acpidump, acpixtract, iasl -d there
ok, now APIC model is told there^^.
Shut it down. Then I copy everything to a write protected USB stick,
now really funs starts
Dietmar
EDIT: Still the same BSOD 0x7E 0xC0000005, brrr..
So, it is a serious problem in 32 bit. Now I install Ubuntu 16, 32 bit on the Asrock board.
I think, the problem with APIC mode will remain there.
OK, first message during install Ubuntu is: Unknown hardware..
One time starting Firefox, it crashes. Really stable OS, brrr...
Funny, together with crashed Firefox (in black and white, looks interesting^^), now Ubuntu 32 bit is updating:)).
I also downloaded Arch 32 Linux distro from march 2019
and MX Linux 32. We will see. Until now, I think Win95 is the better choice, crazy..

#570

diderius6

Ok, this is advantage in Ubuntu 32 bit after 30 min update on Asrock fatal1ty ab350 gaming k4^^
⇗
After total fail of Ubuntu
now next try with MX-Linux 32 bit from Mai 2019
Dietmar
EDIT: MX-Linux 32 bit: No crash of Firefox, no mouse, english keyboard (no german keyboard layout can be chosen) but sound and network, youtube works.
In the beginning there was a possibility to cancel Acpi. But at the moment I think all 8 core with 16 threads work
with Acpi on this Linux 32 bit version. Ok, clock wrong, micro letters on screen, no possibility to change this on screen..
Oho, my own password, which I have put in repeated, is now told to be wrong^^..arghhh
And take a look at the symbols, left down,..ok I try Arch Linux 32..
⇗
Arch Linux shows only commandline after boot. And when you look for installed hardware, system told: string empty..
Ok, for today its enough with Linux..
I want win95:))

## Page 39

#571 | infuscomus | ⇗ @diderius6 ⇗ https://linuxmint.com/download.php try linux mint 32bit - xfce (easier to run, less resources)
#572 | infuscomus | ⇗ @diderius6 If Win95 doesn't work I know for sure Win98SE works as I have it installed

#573

diderius6

⇗ @infuscomus
Thanks for the link for the Linux Mint 32bit xfce, I just downloaded it.
I take a closer look at the XP friendly DSDT from AM3+ compared with the DSDT from the Asrock board AM4.
In AM3+ DSDT we have in header
* Revision 0x01 **** 32-bit table (V1), no 64-bit math support
It is the compi from my daughter. She installed there Win10 64 bit, so this does not mean, that 64 bit OS do not work.
But vice versa is true, with the DSDT table of any(?) AM4 board big problems with 32 bit OS.
There exist also AM3+ boards (SABERTOOTH-990FX-R20-ASUS) with Acpi2.0 and working XP on it.
In header then is written * Revision 0x02.
So, the problem with XP 32 bit depends not on the Revisions number.
Question is, if it enough to modify DSDT only to XP friendly
Dietmar

#574 | infuscomus | ⇗ @diderius6 can you change DSDT revision with registry mod and test? or find the part in acpi.sys that checks DSDT revision?
#575 | diderius6 | ⇗ @infuscomus There is no part in acpi.sys that checks DSDT version. This entry in DSDT is only for human. acpi.sys stupid reads DSDT loaded to ram and crashes or not Dietmar PS: Question is, if with any new DSDT table XP 32 bit can work in APIC mode on AM4 chipset or not.
#576 | infuscomus | ⇗ @diderius6 you can force iasl to produce revision 1 math from original disassembled revision 2 table iasl -r1 revision2to1.dsl

#577

diderius6

⇗ @infuscomus
This is a nice tip iasl -r1 revision2to1.dsl,
until now I get an 1 error message
when I try, without writing,#
where this error is
Dietmar

#578

diderius6

⇗ @infuscomus
Yessa,
I succeed with it.
Now it becomes really interesting
Dietmar
diderius6 has attached files to this post

- ⇗ DSDTrev1versusrev2.rar

#579 | infuscomus | ⇗ @diderius6 is this DSDT from AB350 GamingK4 (BIOS 5.40) - converted to revision 1?

#580

diderius6

⇗ @infuscomus
yessss:))
And here are the belonging *.aml files.
They are very different from each other, compare with Winhex shows
more than 20000 places different.
So, may be we are on the right way
Dietmar
diderius6 has attached files to this post

- ⇗ DSDTAMLrev1versusrev2.rar

#581 | infuscomus | ⇗ @diderius6 the presence of CreateQWordField wont cause problems?

#582

diderius6

⇗ @infuscomus
I think not.
But this we will see in next BSOD^^
I am going to flash this DSDT on my new Asrock board,
big risk, but no fun without risk^^
Dietmar

#583 | infuscomus | ⇗ @diderius6 Good luck, If this DSDT does not work you can try an earlier version in BIOS 3.30 for AB350 Gaming K4 that does not have CreateQWordField in it

#584

diderius6

Hm, strange things happen.
I first read out the Bios chip on the Asrock board with tl866ii plus,
25u12873f.
mx25u12835f is found via tl866ii plus
with the identic chip ID 0xc22538.
Before the Bios chip was recogniced,
I have to put out cpu, cmos battery and ram.
Then I make 2 copies of the Bios chip and compare them.
They are to 100% identic.
Then I compare them with the read out from the Bios chip made with
Universal BIOS Backup ToolKit 2.0.exe.
They are different, hm..
The tool just ordered some blocks in Bios for boot devices different, as I can see with Beyond Compare2.
Then I change in the Bios (read out made with Universal BIOS Backup ToolKit 2.0.exe)
the DSDT file vers 2->vers 1.
I read those DSDT files out again, all ok.
Then I erase the Bios chip, flash with modded DSDT and verify it after.
All seems ok.
After putting cpu, cmos battery and ram in again,
compi starts.
But now comes the most crazy thing:
With rw-everything looking for DSDT table I was told vers 2
and nothing has changed.
Now I think, there is some kind of write protect for this Bios chip.
But the tl866ii plus told nothing about this, strange
Dietmar

#585 | infuscomus | ⇗ @diderius6 maybe try AFUDOS tool to flash modded BIOS? reference guide ⇗ https://puissanceled.com/vrac/Bios_modding/EN.html

## Page 40

#586

diderius6

Now comes the mostmost crazy:
I read out again whole Bios with the Universal BIOS Backup ToolKit 2.0.exe.
And from this read out I extract with Uefi tool
the DSDT table.
And the most most crazy is,
the DSDT table has changed to version 1, no doubt.
But what does rw-everything tell then?
From where it gots its infomation???
For sure not from the real BIOS
Dietmar
PS: I add the new read out from Universal BIOS Backup ToolKit 2.0.exe.
This means, the crazy flash procedure has had success.
But may be to do this with the AFUDOS tool is more elegant.
Anyway, the way I did it works.
diderius6 has attached files to this post

- ⇗ rawnew.rar

#587 | diderius6 | Waaaoooh, with the new DSDT table I can install Vista 32 bit on the Asrock fatal1ty ab350 gaming k4!!! What a BIG step forward Dietmar
#588 | infuscomus | ⇗ @diderius6 thats good news! any luck with XP?

#589

diderius6

⇗ @infuscomus
On Vista 5048 and on XP Acpi Multiprocessor
I still get the BSOD 0x7E 0xc0000005
Dietmar
PS: The MPS Multiprocessor also not works, because still no MPS table there.
But this is not importand for XP.

#590 | infuscomus | ⇗ @diderius6 do you get 7E BSOD with server 2003 SP2 acpi.sys?

#591

diderius6

⇗ @infuscomus
I tested Win server 2003 SP2 for itself.
It gives BSOD 0xA5 0x11 0x08 as usual.
For me is at the moment the most important,
if APIC mode works now, this I am just testing with XP and halapic.dll
Dietmar
EDIT: APIC mode still does not work. And because of this no ACPI too.
The problem in this is, that the BSOD because of APIC happens so early, that windbg is not awaken.
Vista 32 bit overcomes this problem in some way, but how?

#592 | infuscomus | ⇗ @diderius6 there is also still the BIOS 3.30 DSDT to try without CreateQWordField
#593 | diderius6 | ⇗ @infuscomus The BSOD because of unknown words from ACPI2.0 is other. But who knows:)) Dietmar
#594 | infuscomus | ⇗ @diderius6 try it anyway, see what happens

#595

diderius6

⇗ @infuscomus
I just tried the afudos methode.
But there comes
46 - Error: Problem getting flash information.
"Error 46: Problem Getting Flash Information, it's because you aren't using afudos."
Yes, the flash program here for Asrock board is another.
Ok,
I make try the hard way as before,
I just have Bios vers. 3.30 mod ready with DSDT table vers1 for 32 bit
Dietmar

#596 | infuscomus | ⇗ @diderius6 46 - Error: Problem getting flash information. did you use /gan switches? afudos modbios.rom /gan

#597

diderius6

⇗ @infuscomus
Yes, I use this switch but the afudos program does not work at all for the Asrock board.
There has to be another program (may be with the same name "Afudos" but from other manufacturer) for to flash the Asrock board.
Interesting, in Bios 3.30 for the Asrock board there is in FACP APIC mode enabled.
So, there is a big BREAK in Bios before and after 3.30 Bios for this Board.
Vista 32 bit likes this, you can install it at once.
But XP APIC does not work.
Ok, now I am going to flash DSDT table with vers 1 32 Bit
Dietmar

#598 | diderius6 | ⇗ @infuscomus From where you know this switch and are there other important switches for iasl? iasl -r1 revision2to1.dsl Dietmar
#599 | infuscomus | ⇗ @diderius6 from iasl -h help -r <revision> Override table header Revision (1-255)

#600

diderius6

⇗ @infuscomus
Ok, compi survived second crazy flash operation.
Bios is now 3.30 with rev1 DSDT table.
Now rw-everything told also rev 1 in DSDT table
and APIC mode in FACP.
But XP still crashes with the same BSOD 0x7E 0xc0000005
and APIC does not work in XP, only PIC with 16 IRQs
Dietmar
PS: Now this is the 32 bit friendliest Asrock fatal1ty ab350 gaming k4 board ever,
you can install all systems only XP 32 bit not, until now:))!
diderius6 has attached files to this post

- ⇗ AcpiTbls.rar

## Page 41

#601 | infuscomus | ⇗ @diderius6 maybe we need to look at changing the revisions for the other tables? just a guess, not sure edit: APIC table maybe? ⇗ https://wiki.osdev.org/MADT

#602

diderius6

⇗ @infuscomus
Today I think half of the work for full XP is done.
XP SP3 looks now like HYPER Win98SE,
nvme Optane works, just everything and this with one cpu and one thread,
because APIC not works
Dietmar
⇗
EDIT: Even boot XP SP3 from the nvme Optane disk as only device connected to the Asrock board works.
I put for this ntoskrnl.exe and hal.dll (PIC mode) in windows\system32 and in boot.ini of the Optane boot device
I rename them to nt1.exe and hal1.dll, waaoh.
⇗

#603

diderius6

⇗ @infuscomus
I make a try to change the rev number of the APIC (same as MADT) table.
But this time it does not work.
Always rev3 is written in header no matter if you change this to rev1 or rev2
and the table stays to 100% identic
Dietmar

#604

infuscomus

⇗ @diderius6
as a last resort you could try replacing entire DSDT with a known XP compatible?
in this case an ASRock 970A-G3 motherboard
infuscomus has attached files to this post

- ⇗ 970ag3-DSDT.zip

#605

diderius6

⇗ @infuscomus
Oh, I do not give up so quick:)).
I noticed a strange thing:
When I install Vista 32 bit on the AM3+ board,
the driver for the Asmedia 106x SATA harddisk was found at once on the Vista CD.
But when I install Vista 32 bit to the Asrock board,
Vista aks for this driver for the harddisk even it has the identic Asmedia 106x chip! No USB at all works on the Asrock board during install of Vista, no PS/2 mouse.
This means: No hardware is identified at all on the Asrock board.
The Bios from the Asrock board cant show all its hardware correct to Vista or XP.
This may be the fault of the chipset B350, who knows.
Hm, what can they change on Vista, that this gives NOW (former versions of Vista give) not the BSOD 0x7E 0xc0000005?
Vista learned, to survive with such a crazy situation. (By the way, I think this was the reason for the complete fail of Ubuntu.
In the very first boot stage Ubuntu tells: Unknown hardware (not unknown CPU or something like, whole hardware cant be identified)).
I come to the idea, that they change something in hal.dll.
XP cant help itself very good, so it disables everything and goes to PIC mode (blind for all hardware on the Asrock board).
For Vista was the same, but it survives with this blindness because of more error tolerant hal.dll
Dietmar
PS: I will test this today.

#606

diderius6

Yessa, I am just installing XP SP3 in APIC multiprocessor mode on the Asrock board
Dietmar
EDIT: XP uses multiprocessor ntoskrnl.exe and renamed hal.dll to halsp.dll.
But on next reboot it hangs, even XP is installed nearly complete. But this seems to be
the right way. From Vista, version 5342 does not show the BSOD 0x7E 0xc0000005,
but it hangs during installation.

#607 | infuscomus | ⇗ @diderius6 why is vista 32-bit not detecting hardware? should we be using vista beta driver if vista release also has problems?

#608

diderius6

⇗ @infuscomus
Good question.
On the Vista versions after 5048,
I always get no acpi.sys BSOD but it was told
Blinitializelibrary failed 0xc0000017
I do not know this error,
but for me its sound:
Unknown hardware
Dietmar

#609 | infuscomus | ⇗ @diderius6 acpi 5342 calls functions from ntoskrnl and hal that are not available in XP maybe that is the reason for error?
#610 | diderius6 | ⇗ @infuscomus No, you missunderstood me. This where all the original Vista versions >5048, which tells this error on the Asrock B350 board Dietmar
#611 | infuscomus | ⇗ @diderius6 after acpi 5048 I can only get "acpi.sys is corrupted" error when i try to install XP

#612

diderius6

May be, acpi.sys just tries to read in reserved low memory.

    FAULTING_IP:
    ACPI+e088
    b7f75088 ff5010 call dword ptr [eax+10h]

    EXCEPTION_RECORD: b84c2e8c -- (.exr 0xffffffffb84c2e8c)
    ExceptionAddress: b7f75088 (ACPI+0x0000e088)
    ExceptionCode: c0000005 (Access violation)
    ExceptionFlags: 00000000
    NumberParameters: 2
    Parameter[0]: 00000000
    Parameter[1]: 00000010
    Attempt to read from address 00000010

    CONTEXT: b84c2b88 -- (.cxr 0xffffffffb84c2b88)
    eax=00000000 ebx=b84c30f4 ecx=8a8ccd80 edx=b84c3030 esi=b84c30e4 edi=00000000
    eip=b7f75088 esp=b84c2f54 ebp=b84c30bc iopl=0 nv up ei ng nz na pe nc
    cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010286
    ACPI+0xe088:
    b7f75088 ff5010 call dword ptr [eax+10h] ds:0023:00000010=????????
    Resetting default scope

Because it is always the same error 0x7E 0xc0000005
Later I will set up a checked version of XP SP3
with windbg and amli debugger for to see,
what is going on
Dietmar
PS: I think, with not modified Bios, Win7 32 bit also shows the same error Blinitializelibrary failed 0xc0000017.
Now, with APIC Bios 3.30 on Asrock B350 Win7 32 bit installs without any problem.
PPS: Or BSOD 0x7E 0xc0000005 happens, because we use more than 4 Gbyte ram and Xp does not like this on some motherboards? Needs to be tested.

#613 | infuscomus | ⇗ @diderius6 do you know where i can get a checked build of XP for myself? I managed to find a 2003 checked build but not XP
#614 | diderius6 | ⇗ @infuscomus I think, I used a normal English XP SP2 version and succeed to update this to a full checked XP SP3 version only with a XP SP3 checked servicepack Dietmar

#615

diderius6

When I set up checked XP SP3 on the Asrock B350 board,
I get now during "Multiprocessor Acpi" setup
BSOD 0x7E 0x80000003
Dietmar
EDIT: From Microsoft: If exception code 0x80000003 occurs, a hard-coded breakpoint or assertion was hit, but the system was started with the /NODEBUG switch.
⇗ https://answers.microsoft.com/en-us/wind...bf-13dc940cae63

## Page 42

#616

diderius6

I set up debug modus via F8 and entry in boot.ini in checked XP SP3 setup during 2. phase of install (after reboot)
because even with "Standard PC" the compi crashes.
A lot of times I get via debug the message: "Impossible values from Hal",
which means, XP SP3 cant work (good?) with the information of the Bios from Asrock B350
Dietmar
Sun Jun 2 22:11:32.015 2019 (UTC + 2:00): HalpGetValidPCIFixedIrq: BIOS did not assign an interrupt vector for the device
Sun Jun 2 22:11:32.015 2019 (UTC + 2:00):
Sun Jun 2 22:11:32.109 2019 (UTC + 2:00): HAL: returning impossible range
Sun Jun 2 22:11:32.109 2019 (UTC + 2:00):
Sun Jun 2 22:11:32.250 2019 (UTC + 2:00): HalpGetValidPCIFixedIrq: BIOS did not assign an interrupt vector for the device
Sun Jun 2 22:11:32.250 2019 (UTC + 2:00):
Sun Jun 2 22:11:32.343 2019 (UTC + 2:00): HAL: returning impossible range
Sun Jun 2 22:11:32.343 2019 (UTC + 2:00):
Sun Jun 2 22:11:32.468 2019 (UTC + 2:00): HalpGetValidPCIFixedIrq: BIOS did not assign an interrupt vector for the device
Sun Jun 2 22:11:32.468 2019 (UTC + 2:00):
Sun Jun 2 22:11:32.562 2019 (UTC + 2:00): HAL: returning impossible range
EDIT: Without debugger, XP SP3 debug version always crashs. With windbg it comes to desktop but slow. I want to use it for debugging acpi.sys, after I put halmacpi.dll and ntkrpamp.exe
to windows\system32 , a line in boot.ini and acpi.sys there also. But even now is clear: XP does not know, how to set IRQs
because missing information from Bios.
diderius6 has attached files to this post

- ⇗ XPSP3installdebugprotocol.rar

#617 | infuscomus | ⇗ @diderius6 can XP handle IRQs like 0xFFFFFFF7 (-9) - IRQ of PCI\VEN_1022&DEV_7901 on windows 10 assuming we get APIC working

#618

diderius6

⇗ @infuscomus
XP handles normal APIC, means 24 IRQs.
Yesterday it was a crazy work to install XP SP3 debug version "Standard PC" on the Asrock B350 board.
It lasts more than 2 hours.
And without debugger it always crashs because of not enough help, to
assign Irqs to devices, from Bios.
Today I make a full "Acpi Multiprocessor" install of this debug XP on the AM3+ XP friendly board.
Because it is not possible, to switch from a "Standard PC" installation to "Acpi Multiprocessor",
only vice versa
Dietmar

#619 | infuscomus | ⇗ @diderius6 the acpitbls.rar file you sent earlier - can you send a new copy as binary? rw-everything -> save all as binary I'd like to try grub2 method again with these tables and it is easier to work with binary

#620

diderius6

⇗ @infuscomus
This installation is gone^^. Every day I install something new.
I just install Vista 32 bit on the AM3+ XP friendly board.
After, this will work on the Asrock Am4 board,
and I will send to you the tables
Dietmar
PS: With all the Vista versions, I have the one by one test, what goes wrong with XP.

#621

infuscomus

⇗ @diderius6
I made progress with grub2 method - also switched to AIO multiboot for newer grub2 version
after DSDT replace - different ACPI BSOD using xp sp3 acpi.sys
now
BSOD A5 0x03
previously
BSOD A5 0x11
ACPI 5048 new BSOD
BSOD A5 0x0D
⇗

#622 | infuscomus | ⇗ @diderius6 grub2 method is useful - it can replace DSDT and other ACPI tables without needing to flash BIOS grab a USB stick and download AIO multiboot ⇗ https://www.aioboot.com/en/download/

#623

diderius6

⇗ @infuscomus
Have you used the modified Acpi.sys 5048?
I have a really crazy problem:
After I install Vista 32 Bit (from 2007 original version)
on the AM3+ friendly board,
I try to start with this harddisk with fresh Vista 32 bit on it
the AM4 Asrock Ryzen B350 board.
But even the ASM106x driver works under XP SP3 for both boards,
this was not true for the original Vista driver.
I tried to manually install the driver in registry System\services
in CriticalDeviceDatabase and in PCI.
But even I can handle now Vista like XP (really funny, you can change registry between them, Vista is XP SP4(!))
Vista on the AM4 board crashes alswas, tolding me, I have to use chkdsk on the harddisk.
I can check during system start of Vista, that the ASM106x driver asahci32.sys is not loaded.
But while I write this, I come to the idea to install the XP driver ASM106x driver asahci32.sys on the running AM3+ board,
Dietmar
PS:

    BSOD 0xA5 0x0000000D
    0x0D

    The ACPI extension that ACPI needs the object for

    The (ULONG) name of the method that ACPI looked for

    0: Base case

    1: Conflict

    ACPI could not find a required method or object in the namespace This bug
    check code is used if there is no _HID or _ADR present.

from ⇗ https://docs.microsoft.com/en-us/windows...acpi-bios-error

#624 | infuscomus | ⇗ @diderius6 yes, I tried the modified version first, I have not tried unmodified yet ULONG name - from BSOD 0x4449555f DIU_ - or _UID - There are several of those in DSDT so i am not sure which one? edit: regarding vista 32 bit - have you tried using "load driver" and loading ASMedia 106x driver during install?

#625

diderius6

⇗ @infuscomus
Yes, but the problem is, that Vista does not recognice any USB on the Asrock board.
Now I have a really funny situation:
On the XP friendly AM3+ is the Asm106x driver loaded under Vista 32 bit
and you can boot from.
But on the Asrock board, this driver is not loaded from the same Vista 32 bit.
This is crazy, there seems no ahci driver to be on the market,
which run under Vista 32 bit on the Asrock B350 board
Dietmar

#626 | infuscomus | ⇗ @diderius6 I think vista generic msahci.sys driver conforms to AHCI 1.0 specification - the new boards are AHCI 1.3 specification ^ I may be wrong about this try integrating the ASMedia USB/AHCI drivers into boot.wim and install.wim images ⇗ https://community.spiceworks.com/how_to/...-a-usb-3-0-port

#627

diderius6

⇗ @infuscomus
I make a try to install Vista 5048
direct from working XP on the Asrock board.
It starts installing, but on reboot it tolds
Blinitializelibrary failed 0xc0000017
This is the same message, that all Vista 32 bit versions tell me now when I direct install via DVD.
And before the same error message was told by Win7 32 bit, now not, I installed Win7 32 bit on the Asrock B350 Ryzen board.
No BSOD because of Acpi with Vista 5048.
I think this message means "unknown hardware"
but I am not sure
Dietmar
PS: All other, later Vista 32 bit told me during install from running XP: Compi not Acpi compliant.

#628 | infuscomus | ⇗ @diderius6 To make things easier I recommend you setup AIO multiboot on a USB stick so you can start swapping ACPI tables using grub2 - easier than BIOS flash ⇗ https://www.aioboot.com/en/download/

#629

diderius6

⇗ @infuscomus
I see this and it is nice work!
But before cure you need diagnosis:)).
I read about the 0xc0000017 error,
that Windows wrote: Not enough memory for ramdisk.
So, all those errors seems to happen,
because every version of Windows does not know
how to manage the Bios information from the Asrock B350 board. Yesterday I got via Debugversion of XP
a lot of times the message, that the values, that hal.dll gives to OS, are impossible. XP enables because of this PIC mode.
When I see this, I looks like a miracle, that XP can run on this hardware
anyway
Dietmar
"BlInitializeLibrary failed XXX" error when you install or start an operating system on a 64-bit UEFI-based computer
Applies to: Windows 10, version 1809Windows Server 2019, all versionsWindows Server version 1709 and newer
Symptoms
When you try to install or start an operating system on a 64-bit UEFI-based computer, the system does not start, and you receive the following error message:
BlInitializeLibrary failed XXX
Note The error code could also be "0xc000009a" or "0xc0000001."
Cause
This problem occurs because the boot firmware on the computer generates lots of memory fragmentation.
Note Not all "BlInitializeLibrary failed XXX" errors are caused by this issue.
Workaround
We recommend that you do not let boot firmware create large amounts of fragmentation. Large memory fragmentation degrades the overall startup performance and causes problems.
More information
At the pre-boot stage, Windows Boot Manager sets the maximum number of global memory descriptor for a 64-bit UEFI system at 512. If the boot firmware creates a large amount of memory fragmentation, the memory descriptor count may exceed the set limit. This causes the "BlInitializeLibrary failed XXX" error.
Note This design applies only to the current operating system releases, including Windows 10, Windows Server 2016, and Windows Server 2012 R2. We do not guarantee that this design will apply to future versions.

#630 | infuscomus | ⇗ @diderius6 what is the equivalent function of BlInitializeLibrary for XP? Do we need to patch ntldr (osloader.exe) to allow for more global memory descriptors? to get osloader.exe - open ntldr in hex editor and look for MZ header and delete everything before it

## Page 43

#631

diderius6

⇗ @infuscomus
First I saw this BlInitializeLibrary on Win7 32 bit,
when I try to do a new install on the Asrock B350 board.
When I use a ready Win7 32 bit installation from another
compi, this does not happen. So it depends on, how
the Bios speaks to OS during installation. Using installation from other Bios
does not show this problem
Dietmar
PS: After changing the DSDT table to pur 32 bit and go to Bios 3.30 with APIC mode,
Win7 32 bit does not show this error any more during fresh install on the Asrock B350 board.
It has nothing to do with Acpi. Only, how Bios told OS, where which free memory for a device
has to be. XP goes out of this crazy situation using PIC mode with only 16 IRQs, nearly hard wired.

#632 | diderius6 | The error (not BSOD) Blinitializelibrary failed 0xc0000017 happens very early in bootprocess, about in 1. second when bootlader loads Dietmar

#633

infuscomus

⇗ @diderius6
Blinitializelibrary failed - for Windows 7 or XP?
edit:
I found source code for win2k osloader -
in it i find
//
// memory descriptor array size
//
#define MAX_DESCRIPTORS 60

#634

Mov AX, 0xDEAD

> Zitat

> Acpi tables "in-ram patcher" at boot time like Chameleon/Clover, solved

litle update to ¶ Windows XP SP3 32bit and modern PC parts (12)

#635 | infuscomus | ⇗ @Mov AX, 0xDEAD I have run into a different error after loading an earlier DSDT table for AB350 Gaming K4 using grub2 .......... 0xA5 (0x02, X ,Y ,Z) conflict with E820 Memory list, solved (custom acpi.sys) Can I please try your custom acpi.sys to see if it works?

#636

Mov AX, 0xDEAD

> Zitat von ⇗ infuscomus im Beitrag ¶ #635

> .......... 0xA5 (0x02, X ,Y ,Z) conflict with E820 Memory list, solved (custom acpi.sys)
> Can I please try your custom acpi.sys to see if it works?

e820 fix: ¶ Windows XP SP3 32bit and modern PC parts (16)

#637 | infuscomus | whoops! - parameter 3 is 0x1 - so error actually is - ACPI cannot convert the BIOS' resource list into the proper format. This probably represents an error in the BIOS' list encoding procedure. ⇗ ⇗ https://docs.microsoft.com/en-us/windows...acpi-bios-error

#638

infuscomus

OK,
made some changes to DSDT table
now I think I have E820 error
⇗
⇗ @Mov AX, 0xDEAD ⇗ @diderius6
I looked for the hex values you referenced earlier to fix E820 but could not find exact hex value in either XP SP3, server 2003 or vista 5048 acpi.sys

#639 | diderius6 | I make a try with Vista 5048 on the XP friendly Am3+ board. Again I get there this message Blinitializelibrary failed 0xc0000017. So, it seems to be a problem for the bootloader and not only in this Vista Version Dietmar

#640

Mov AX, 0xDEAD

> Zitat von ⇗ infuscomus im Beitrag ¶ #638

> I looked for the hex values you referenced earlier to fix E820 but could not find exact hex value in either XP SP3, server 2003 or vista 5048 acpi.sys

check acpi.sys win xp sp3, size=187,776, ver 5.1.2600.5512 (xpsp.080413-2111)

#641 | infuscomus | ⇗ @Mov AX, 0xDEAD Thanks, is this function the same in server 2003 and vista 5048 acpi.sys?

#642

infuscomus

⇗ @diderius6
can you hex edit these XP boot loader files to sets the maximum number of global memory descriptors to 512?
infuscomus has attached files to this post

- ⇗ xp bootldrs.zip

#643

Mov AX, 0xDEAD

> Zitat von ⇗ infuscomus im Beitrag ¶ #642

> can you hex edit these XP boot loader files to sets the maximum number of global memory descriptors to 512?

xp doesnt work with uefi(except winxp64+bootmgr), no mem descriptors, only short e820 list of mem regions.
only in case of very large e820 list, xp has problem

#644 | infuscomus | ⇗ @Mov AX, 0xDEAD looking at win2k ntldr source code it uses memory descriptors

#645

Mov AX, 0xDEAD

> Zitat von ⇗ infuscomus im Beitrag ¶ #644

> @Mov AX, 0xDEAD
> looking at win2k ntldr source code it uses memory descriptors

yes, uses, but only few, e820 is really short list, no need much descriptors to fit all regions

## Page 44

#646 | infuscomus | ⇗ @Mov AX, 0xDEAD ⇗ @diderius6 So I bypassed E820 BSOD error with hex edit to acpi.sys - damn! 7E BSOD

#647

diderius6

⇗ @infuscomus
Yes, this is the same, that happens to me. This is best until now, what you can reach for Acpi on the Asrock board.
Until now, it is absolut unclear, why this BSOD 7E happens, means Acpi.sys writes or looks in forbidden memory..
I also cant install a full XP SP3 debug version on the XP friendly AM3+ board.
Today I make a new try: I change the ram on the Asrock B350 board against 2*2Gbyte DDR4 ram.
Then I make a brandnew install of normal XP SP3 on the AM3+ board,
no extra drivers, only the Asm106x for harddsik.
This full Acpi XP I copie then to the Asrock board. There I change hal.dll, acpi.sys, ntoskrnl.exe against them from
the XP SP3 debug version and set up a windbg session
Dietmar

#648

diderius6

Diagnostic is on its way:)).. I put on normal XP SP3 change acpi.sys, halmacpi.dll, ntkrnlmp.exe to the XP SP3 DEBUG version and run windbg

>     Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
>     Copyright (c) Microsoft Corporation. All rights reserved.

>     Opened \\.\com1
>     Waiting to reconnect...
>     Connected to Windows XP 2600 x86 compatible target at (Thu Jun  6 19:27:18.937 2019 (UTC + 2:00)), ptr64 FALSE
>     Kernel Debugger connection established.
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Symbol search path is: C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386;SRV*c:\symbols
>     *⇗ http://msdl.microsoft.com/download/symbols;C:\symbols
>     Executable search path is: C:\localsymbols
>     Windows XP Kernel Version 2600 MP (1 procs) Checked x86 compatible
>     Built by: 2600.xpsp.080413-2133
>     Machine Name:
>     Kernel base = 0x80a02000 PsLoadedModuleList = 0x80af5708
>     System Uptime: not available
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Thu
>      Jun  6 19:27:21.718 2019 (UTC + 2:00): MM: Loader/HAL memory block
>     indicates large pages cannot be used for 80A02000->80D8DFFF
>     Thu Jun  6 19:27:21.718 2019 (UTC + 2:00):
>     Thu
>      Jun  6 19:27:21.734 2019 (UTC + 2:00): MM: Loader/HAL memory block
>     indicates large pages cannot be used for 80100000->8012777F
>     Thu Jun  6 19:27:28.640 2019 (UTC + 2:00):
>     *** Assertion failed: PciInterfacesInstantiated
>     ***   Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3512

>     Thu Jun  6 19:27:28.640 2019 (UTC + 2:00):
>     Thu
>      Jun  6 19:27:28.671 2019 (UTC + 2:00): Break repeatedly, break Once,
>     Ignore, terminate Process, or terminate Thread (boipt)? i
>     i

>     Thu Jun  6 19:27:28.671 2019 (UTC + 2:00):
>     Thu Jun  6 19:27:56.671 2019 (UTC + 2:00):
>     *** Assertion failed: pciInterface
>     ***   Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3518

>     Thu Jun  6 19:27:56.671 2019 (UTC + 2:00):
>     Thu
>      Jun  6 19:27:56.703 2019 (UTC + 2:00): Break repeatedly, break Once,
>     Ignore, terminate Process, or terminate Thread (boipt)? i
>     i

>     Thu Jun  6 19:27:56.703 2019 (UTC + 2:00):
>     Thu Jun  6 19:28:08.343 2019 (UTC + 2:00): PS: Unhandled Kernel Mode Exception Pointers = 0xF789D9D4
>     Thu Jun  6 19:28:08.343 2019 (UTC + 2:00):
>     Thu
>      Jun  6 19:28:08.359 2019 (UTC + 2:00): Code c0000005 Addr F7578561
>     Info0 00000000 Info1 00000010 Info2 00000010 Info3 00000000
>     Thu Jun  6 19:28:08.359 2019 (UTC + 2:00):
>     Thu Jun  6 19:28:08.390 2019 (UTC + 2:00):
>     *** Fatal System Error: 0x0000007e
>                            (0xC0000005,0xF7578561,0xF789DE88,0xF789DB84)

>     Thu Jun  6 19:28:08.421 2019 (UTC + 2:00): Break instruction exception - code 80000003 (first chance)

>     A fatal system error has occurred.
>     Debugger entered on first try; Bugcheck callbacks have not been invoked.

>     A fatal system error has occurred.

>     Connected to Windows XP 2600 x86 compatible target at (Thu Jun  6 19:28:08.609 2019 (UTC + 2:00)), ptr64 FALSE
>     Loading Kernel Symbols
>     ............................
>     Loading User Symbols

>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     Use !analyze -v to get detailed debugging information.

>     BugCheck 7E, {c0000005, f7578561, f789de88, f789db84}

>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     Probably caused by : ACPI.sys ( ACPI!AcpiArbCrackPRT+113 )

>     Followup: MachineOwner
>     ---------

>     nt!RtlpBreakWithStatusInstruction:
>     80ab9138 cc              int     3
>     0: kd> !analyze -v
>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (7e)
>     This is a very common bugcheck.  Usually the exception address pinpoints
>     the driver/function that caused the problem.  Always note this address
>     as well as the link date of the driver/image that contains this address.
>     Arguments:
>     Arg1: c0000005, The exception code that was not handled
>     Arg2: f7578561, The address that the exception occurred at
>     Arg3: f789de88, Exception Record Address
>     Arg4: f789db84, Context Record Address

>     Debugging Details:
>     ------------------

>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0

>     EXCEPTION_CODE:
>      (NTSTATUS) 0xc0000005 - Die Anweisung "0x%08lx" verweist auf Speicher
>     bei "0x%08lx". Die Daten wurden wegen eines E/A-Fehlers in "0x%081x"
>     nicht in den Arbeitsspeicher  bertragen.

>     FAULTING_IP:
>     ACPI!AcpiArbCrackPRT+113
>     f7578561 ff5710          call    dword ptr [edi+10h]

>     EXCEPTION_RECORD:  f789de88 -- (.exr 0xfffffffff789de88)
>     ExceptionAddress: f7578561 (ACPI!AcpiArbCrackPRT+0x00000113)
>        ExceptionCode: c0000005 (Access violation)
>       ExceptionFlags: 00000000
>     NumberParameters: 2
>        Parameter[0]: 00000000
>        Parameter[1]: 00000010
>     Attempt to read from address 00000010

>     CONTEXT:  f789db84 -- (.cxr 0xfffffffff789db84)
>     eax=f789e008 ebx=00000000 ecx=0000bb40 edx=00000056 esi=8acca710 edi=00000000
>     eip=f7578561 esp=f789df50 ebp=f789e0a0 iopl=0         nv up ei ng nz na pe nc
>     cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010286
>     ACPI!AcpiArbCrackPRT+0x113:
>     f7578561 ff5710          call    dword ptr [edi+10h]  ds:0023:00000010=????????
>     Resetting default scope

>     PROCESS_NAME:  System

>     ERROR_CODE:
>      (NTSTATUS) 0xc0000005 - Die Anweisung "0x%08lx" verweist auf Speicher
>     bei "0x%08lx". Die Daten wurden wegen eines E/A-Fehlers in "0x%081x"
>     nicht in den Arbeitsspeicher  bertragen.

>     EXCEPTION_PARAMETER1:  00000000

>     EXCEPTION_PARAMETER2:  00000010

>     READ_ADDRESS:  00000010

>     FOLLOWUP_IP:
>     ACPI!AcpiArbCrackPRT+113
>     f7578561 ff5710          call    dword ptr [edi+10h]

>     BUGCHECK_STR:  0x7E

>     DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE

>     LOCK_ADDRESS:  80af1640 -- (!locks 80af1640)
>     NTSDEXTS: Unable to resolve ntdll!RtlCriticalSectionList
>     NTSDEXTS: Please check your symbols

>     PNP_TRIAGE:
>     	Lock address  : 0x80af1640
>     	Thread Count  : 1
>     	Thread address: 0x8acc5020
>     	Thread wait   : 0xdd

>     LAST_CONTROL_TRANSFER:  from 80a30d41 to 80ab9138

>     STACK_TEXT:
>     f789e0a0 f75b865b 8acca710 f789e0cc f789e0e0 ACPI!AcpiArbCrackPRT+0x113
>     f789e0d4 f75c882d f75ae2a0 f789e0f0 f789e1a8 ACPI!AcpiArbAddAllocation+0x9f
>     f789e158 f75b7375 f75ae2a0 e100d1e4 f75ae2a0 ACPI!ArbBootAllocation+0x17b
>     f789e16c f75c8d89 f75ae2a0 e100d1e4 e100d1e4 ACPI!AcpiArbBootAllocation+0x4b
>     f789e188 80b5d111 f75ae2a0 00000009 f789e1a8 ACPI!ArbArbiterHandler+0x1bd
>     f789e1c4 80b5e093 f789e1b8 00000000 80af1140 nt!IopBootAllocation+0xbb
>     f789e208 80b5e80b 00000004 e1552b68 e15261e8 nt!IopAllocateBootResourcesInternal+0xc5
>     f789e228 80d24c8b 00000004 8acca710 e15261e8 nt!IopAllocateBootResources+0x75
>     f789e24c 80b4753a 00000004 8acca710 e15261e8 nt!IopReportBootResources+0x65
>     f789e27c 80b4db93 8ac5fd48 80000248 00000001 nt!PiQueryAndAllocateBootResources+0x150
>     f789e36c 80b4e26d 8ac5fd48 00000000 00000000 nt!PipProcessNewDeviceNode+0xc9d
>     f789e5c4 80a2cfb6 8ac8ecc8 00000000 00000000 nt!PipProcessDevNodeTree+0x1bd
>     f789e608 80a2d2c1 00000000 00000000 8007b060 nt!PipDeviceActionWorker+0xc4
>     f789e620 80d23f53 00000000 00000006 00000000 nt!PipRequestDeviceAction+0x13b
>     f789e684 80d201f1 80085000 f789e6a0 00034000 nt!IopInitializeBootDrivers+0x39b
>     f789e830 80d1d940 80085000 00000000 8acc5020 nt!IoInitSystem+0x82d
>     f789edac 80bc761c 80085000 00000000 00000000 nt!Phase1Initialization+0xb12
>     f789eddc 80ad9b52 80d1ce2e 80085000 00000000 nt!PspSystemThreadStartup+0x34
>     00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

>     SYMBOL_STACK_INDEX:  0

>     SYMBOL_NAME:  ACPI!AcpiArbCrackPRT+113

>     FOLLOWUP_NAME:  MachineOwner

>     MODULE_NAME: ACPI

>     IMAGE_NAME:  ACPI.sys

>     DEBUG_FLR_IMAGE_TIMESTAMP:  4802b4e5

>     STACK_COMMAND:  .cxr 0xfffffffff789db84 ; kb

>     FAILURE_BUCKET_ID:  0x7E_ACPI!AcpiArbCrackPRT+113

>     BUCKET_ID:  0x7E_ACPI!AcpiArbCrackPRT+113

>     Followup: MachineOwner
>     ---------

>     0: kd> lm
>     start    end        module name
>     80100000 80127780   HAL1       (deferred)
>     80a02000 80d8e000   nt         (pdb symbols)          c:\symbols\ntkrnlmp.pdb\23BD599C4BEE49C0B7E2E3FD595D2ACB1\ntkrnlmp.pdb
>     f740c000 f742bb00   fltMgr     (deferred)
>     f742c000 f7441000   nvme       (deferred)
>     f7441000 f7458880   SCSIPORT   (deferred)
>     f7459000 f7470900   atapi      (deferred)
>     f7471000 f7496a00   dmio       (deferred)
>     f7497000 f74b5d80   ftdisk     (deferred)
>     f7556000 f7566a80   pci        (deferred)
>     f7567000 f75d5480   ACPI       (pdb symbols)          c:\symbols\acpi.pdb\F3A2E52867724F8EAB957EA99ABA93031\acpi.pdb
>     f75f7000 f7600300   isapnp     (deferred)
>     f7607000 f7611580   MountMgr   (deferred)
>     f7617000 f7624200   VolSnap    (deferred)
>     f7627000 f7637000   asahci32   (deferred)
>     f7637000 f763fe00   disk       (deferred)
>     f7647000 f7653180   CLASSPNP   (deferred)
>     f7707000 f770d180   PCIIDEX    (deferred)
>     f770f000 f7713d00   PartMgr    (deferred)
>     f782e000 f7844880   KSecDD     (deferred)
>     f7845000 f7856f00   sr         (deferred)
>     f7857000 f7897000   storport   (deferred)
>     f7897000 f789a000   BOOTVID    (deferred)
>     f795a000 f7986980   NDIS       (deferred)
>     f7987000 f7988b80   kdcom      (deferred)
>     f7989000 f798a100   WMILIB     (deferred)
>     f798b000 f798c700   dmload     (deferred)
>     f7a35000 f7a4eb80   Mup        (deferred)
>     f7a4f000 f7a4fd00   pciide     (deferred)
>     f7b52000 f7bde600   Ntfs       (deferred)
>     0: kd> !devnode 0 1
>     Dumping IopRootDeviceNode (= 0x8ac8ecc8)
>     DevNode 0x8ac8ecc8 for PDO 0x8ac8ee10
>       InstancePath is "HTREE\ROOT\0"
>       State = DeviceNodeStarted (0x308)
>       Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8e8b8 for PDO 0x8ac8ea18
>         InstancePath is "Root\ACPI_HAL\0000"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>         DevNode 0x8ace2358 for PDO 0x8ace3830
>           InstancePath is "ACPI_HAL\PNP0C08\0"
>           ServiceName is "ACPI"
>           State = DeviceNodeStarted (0x308)
>           Previous State = DeviceNodeEnumerateCompletion (0x30d)
>           DevNode 0x8ac37b08 for PDO 0x8acd2248
>             InstancePath is "ACPI\PNP0A08\0"
>             ServiceName is "pci"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>           DevNode 0x8ac37630 for PDO 0x8ace8760
>             InstancePath is "ACPI\PNP0C0C\aa"
>             State = DeviceNodeDriversAdded (0x303)
>             Previous State = DeviceNodeInitialized (0x302)
>           DevNode 0x8ac37500 for PDO 0x8acc99a8
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_0"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8accacf8 for PDO 0x8ac364e8
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_1"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8accabc8 for PDO 0x8acd15c8
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_2"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8acea310 for PDO 0x8acd0630
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_3"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8acea1e0 for PDO 0x8acd61b0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_4"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac88008 for PDO 0x8acd3248
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_5"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac881c8 for PDO 0x8ac36cd0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_6"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8accf450 for PDO 0x8acca190
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_7"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8accf320 for PDO 0x8accf6a0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_8"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8accf1f0 for PDO 0x8acd2f18
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_9"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8accf0c0 for PDO 0x8ac601d8
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\10"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac4e430 for PDO 0x8acd1ba8
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\11"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac4e300 for PDO 0x8ace11d0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\12"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac4e1d0 for PDO 0x8ace10b0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\13"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac4e0a0 for PDO 0x8ace2200
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\14"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac5fe78 for PDO 0x8ace20e0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\15"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac5fd48 for PDO 0x8acca710
>             InstancePath is "ACPI\AMDI0030\0"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac5fc18 for PDO 0x8acca5f0
>             State = DeviceNodeUninitialized (0x301)
>             Previous State = Unknown State (0x0)
>           DevNode 0x8ac5fae8 for PDO 0x8acc9460
>             State = DeviceNodeUninitialized (0x301)
>             Previous State = Unknown State (0x0)
>           DevNode 0x8acd0008 for PDO 0x8acc9340
>             State = DeviceNodeUninitialized (0x301)
>             Previous State = Unknown State (0x0)
>           DevNode 0x8acd0468 for PDO 0x8acc9f18
>             State = DeviceNodeUninitialized (0x301)
>             Previous State = Unknown State (0x0)
>           DevNode 0x8acd0338 for PDO 0x8acc9df8
>             State = DeviceNodeUninitialized (0x301)
>             Previous State = Unknown State (0x0)
>           DevNode 0x8acd0208 for PDO 0x8ac37c68
>             State = DeviceNodeUninitialized (0x301)
>             Previous State = Unknown State (0x0)
>       DevNode 0x8ace7db0 for PDO 0x8ace7f10
>         InstancePath is "Root\dmio\0000"
>         ServiceName is "dmio"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace7b58 for PDO 0x8ace7cb8
>         InstancePath is "Root\ftdisk\0000"
>         ServiceName is "ftdisk"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace7900 for PDO 0x8ace7a60
>         InstancePath is "Root\LEGACY_ACPI\0000"
>         ServiceName is "ACPI"
>         State = DeviceNodeRemoved (0x312)
>         Previous State = DeviceNodeStarted (0x308)
>         Problem = CM_PROB_DEVICE_NOT_THERE
>       DevNode 0x8ace76a8 for PDO 0x8ace7808
>         InstancePath is "Root\LEGACY_AFD\0000"
>         ServiceName is "AFD"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace7418 for PDO 0x8ace7578
>         InstancePath is "Root\LEGACY_AMPA\0000"
>         ServiceName is "ampa"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace71c0 for PDO 0x8ace7320
>         InstancePath is "Root\LEGACY_ATAPI\0000"
>         ServiceName is "atapi"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8ded8 for PDO 0x8ac8d038
>         InstancePath is "Root\LEGACY_BEEP\0000"
>         ServiceName is "Beep"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8dc38 for PDO 0x8ac8dd98
>         InstancePath is "Root\LEGACY_DMBOOT\0000"
>         ServiceName is "dmboot"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8d9e0 for PDO 0x8ac8db40
>         InstancePath is "Root\LEGACY_DMLOAD\0000"
>         ServiceName is "dmload"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8d788 for PDO 0x8ac8d8e8
>         InstancePath is "Root\LEGACY_FIPS\0000"
>         ServiceName is "Fips"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8d4e0 for PDO 0x8ac8d640
>         InstancePath is "Root\LEGACY_GPC\0000"
>         ServiceName is "Gpc"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8d288 for PDO 0x8ac8d3e8
>         InstancePath is "Root\LEGACY_HTTP\0000"
>         ServiceName is "HTTP"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace6008 for PDO 0x8ac8d190
>         InstancePath is "Root\LEGACY_IPNAT\0000"
>         ServiceName is "IpNat"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace6db0 for PDO 0x8ace6f10
>         InstancePath is "Root\LEGACY_IPSEC\0000"
>         ServiceName is "IPSec"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace6b58 for PDO 0x8ace6cb8
>         InstancePath is "Root\LEGACY_KSECDD\0000"
>         ServiceName is "ksecdd"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace6900 for PDO 0x8ace6a60
>         InstancePath is "Root\LEGACY_MNMDD\0000"
>         ServiceName is "mnmdd"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace66a8 for PDO 0x8ace6808
>         InstancePath is "Root\LEGACY_MOUNTMGR\0000"
>         ServiceName is "mountmgr"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace6450 for PDO 0x8ace65b0
>         InstancePath is "Root\LEGACY_NDIS\0000"
>         ServiceName is "NDIS"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace61f8 for PDO 0x8ace6358
>         InstancePath is "Root\LEGACY_NDISTAPI\0000"
>         ServiceName is "NdisTapi"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8ced8 for PDO 0x8ac8c038
>         InstancePath is "Root\LEGACY_NDISUIO\0000"
>         ServiceName is "Ndisuio"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8cc80 for PDO 0x8ac8cde0
>         InstancePath is "Root\LEGACY_NDPROXY\0000"
>         ServiceName is "NDProxy"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8ca28 for PDO 0x8ac8cb88
>         InstancePath is "Root\LEGACY_NETBT\0000"
>         ServiceName is "NetBT"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8c7d0 for PDO 0x8ac8c930
>         InstancePath is "Root\LEGACY_NULL\0000"
>         ServiceName is "Null"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8c578 for PDO 0x8ac8c6d8
>         InstancePath is "Root\LEGACY_NVME\0000"
>         ServiceName is "nvme"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8c320 for PDO 0x8ac8c480
>         InstancePath is "Root\LEGACY_PARTMGR\0000"
>         ServiceName is "PartMgr"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace5008 for PDO 0x8ac8c228
>         InstancePath is "Root\LEGACY_PARVDM\0000"
>         ServiceName is "ParVdm"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace5db0 for PDO 0x8ace5f10
>         InstancePath is "Root\LEGACY_PCIIDE\0000"
>         ServiceName is "PCIIde"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace5b58 for PDO 0x8ace5cb8
>         InstancePath is "Root\LEGACY_RASACD\0000"
>         ServiceName is "RasAcd"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace5900 for PDO 0x8ace5a60
>         InstancePath is "Root\LEGACY_RDPCDD\0000"
>         ServiceName is "RDPCDD"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace56a8 for PDO 0x8ace5808
>         InstancePath is "Root\LEGACY_TCPIP\0000"
>         ServiceName is "Tcpip"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace5450 for PDO 0x8ace55b0
>         InstancePath is "Root\LEGACY_VGASAVE\0000"
>         ServiceName is "VgaSave"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace51f8 for PDO 0x8ace5358
>         InstancePath is "Root\LEGACY_VOLSNAP\0000"
>         ServiceName is "VolSnap"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8bed8 for PDO 0x8ac8b038
>         InstancePath is "Root\LEGACY_WANARP\0000"
>         ServiceName is "Wanarp"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8bc80 for PDO 0x8ac8bde0
>         InstancePath is "Root\MEDIA\MS_MMACM"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8ba28 for PDO 0x8ac8bb88
>         InstancePath is "Root\MEDIA\MS_MMDRV"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8b7d0 for PDO 0x8ac8b930
>         InstancePath is "Root\MEDIA\MS_MMMCI"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8b578 for PDO 0x8ac8b6d8
>         InstancePath is "Root\MEDIA\MS_MMVCD"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8b320 for PDO 0x8ac8b480
>         InstancePath is "Root\MEDIA\MS_MMVID"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace4008 for PDO 0x8ac8b228
>         InstancePath is "Root\MS_L2TPMINIPORT\0000"
>         ServiceName is "Rasl2tp"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace4db0 for PDO 0x8ace4f10
>         InstancePath is "Root\MS_NDISWANIP\0000"
>         ServiceName is "NdisWan"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace4b58 for PDO 0x8ace4cb8
>         InstancePath is "Root\MS_PPPOEMINIPORT\0000"
>         ServiceName is "RasPppoe"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace4900 for PDO 0x8ace4a60
>         InstancePath is "Root\MS_PPTPMINIPORT\0000"
>         ServiceName is "PptpMiniport"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace46a8 for PDO 0x8ace4808
>         InstancePath is "Root\MS_PSCHEDMP\0000"
>         ServiceName is "PSched"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace4450 for PDO 0x8ace45b0
>         InstancePath is "Root\MS_PSCHEDMP\0001"
>         ServiceName is "PSched"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace41f8 for PDO 0x8ace4358
>         InstancePath is "Root\MS_PSCHEDMP\0002"
>         ServiceName is "PSched"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8aed8 for PDO 0x8ac8a038
>         InstancePath is "Root\MS_PTIMINIPORT\0000"
>         ServiceName is "Raspti"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8ac80 for PDO 0x8ac8ade0
>         InstancePath is "Root\PCI_HAL\0000"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8aa28 for PDO 0x8ac8ab88
>         InstancePath is "Root\RDPDR\0000"
>         ServiceName is "rdpdr"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8a7d0 for PDO 0x8ac8a930
>         InstancePath is "Root\RDP_KBD\0000"
>         ServiceName is "TermDD"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8a578 for PDO 0x8ac8a6d8
>         InstancePath is "Root\RDP_MOU\0000"
>         ServiceName is "TermDD"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8a320 for PDO 0x8ac8a480
>         InstancePath is "Root\SYSTEM\0000"
>         ServiceName is "swenum"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace3008 for PDO 0x8ac8a228
>         InstancePath is "Root\SYSTEM\0001"
>         ServiceName is "update"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace3db0 for PDO 0x8ace3f10
>         InstancePath is "Root\SYSTEM\0002"
>         ServiceName is "mssmbios"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>     0: kd> !pcitree
>     PciFdoExtensionListHead forward pointer is NULL, list is empty
>     0: kd> pci
>             ^ pass count must be preceeded by whitespace error in 'pci'
>     0: kd> !pci
>     PCI Segment 0 Bus 0
>     00:0  1022:1450.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge  SubID:1849:1450
>     00:2  1022:1451.00  Cmd[0004:..b...]  Sts[0010:c....]  AMD Class:8:6:0  SubID:1022:1451
>     01:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     01:3  1022:1453.00  Cmd[0007:imb...]  Sts[0010:c....]  AMD PCI-PCI Bridge 0->0x3-0xa
>     02:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     03:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     03:1  1022:1453.00  Cmd[0007:imb...]  Sts[0010:c....]  AMD PCI-PCI Bridge 0->0xb-0xb
>     04:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     07:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     07:1  1022:1454.00  Cmd[0007:imb...]  Sts[0010:c....]  AMD PCI-PCI Bridge 0->0x11-0x11
>     08:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     08:1  1022:1454.00  Cmd[0007:imb...]  Sts[0010:c....]  AMD PCI-PCI Bridge 0->0x12-0x12
>     14:0  1022:790b.59  Cmd[0403:im....]  Sts[0220:.6...]  AMD SMBus Controller  SubID:1849:ffff
>     14:3  1022:790e.51  Cmd[000f:imb...]  Sts[0220:.6...]  AMD ISA Bridge  SubID:1849:ffff
>     18:0  1022:1460.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:1  1022:1461.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:2  1022:1462.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:3  1022:1463.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:4  1022:1464.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:5  1022:1465.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:6  1022:1466.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:7  1022:1467.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     0: kd> acpi
>     *** ERROR: Module load completed but symbols could not be loaded for nvme.sys
>     *** ERROR: Module load completed but symbols could not be loaded for ftdisk.sys
>     *** ERROR: Module load completed but symbols could not be loaded for asahci32.sys
>     *** ERROR: Symbol file could not be found.  Defaulted to export symbols for BOOTVID.dll -
>     *** ERROR: Symbol file could not be found.  Defaulted to export symbols for kdcom.dll -
>     *** ERROR: Symbol file could not be found.  Defaulted to export symbols for WMILIB.SYS -
>     *** ERROR: Module load completed but symbols could not be loaded for dmload.sys
>     *** ERROR: Module load completed but symbols could not be loaded for pciide.sys
>     Couldn't resolve error at 'cpi'
>     0: kd> !acpi
>     No export acpi found

#649

diderius6

May be the device HPET has to be deleted in DSDT:

        Device (HPET)
        {
            Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
            Name (CRS, ResourceTemplate ()
            {
                Memory32Fixed (ReadOnly,
                    0xFED00000,         // Address Base
                    0x00000400,         // Address Length
                    _Y29)
                IRQNoFlags ()
                    {0}
                IRQNoFlags ()
                    {8}
            })
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((HPEN == One))
                {
                    If ((OSVR >= 0x0C))
                    {
                        Return (0x0F)
                    }

                    HPEN = Zero
                    Return (One)
                }

                Return (One)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateDWordField (CRS, \HPET._Y29._BAS, HPTX)  // _BAS: Base Address
                CreateDWordField (CRS, \HPET._Y29._LEN, HPTY)  // _LEN: Length
                HPTX = HPTB /* \HPTB */
                HPTY = HPTL /* \HPTL */
                Return (CRS) /* \HPET.CRS_ */
            }
        }

Dietmar

#650

Mov AX, 0xDEAD

> Zitat

> edi=00000000
> call dword ptr [edi+10h]

clasic nullpointer

#651 | diderius6 | ⇗ @Mov AX, 0xDEAD Yes, I see this. Question is, if there is no pointer at all for the IRQ devices build by ACPI on the Asrock B350 board, or if the edi is just not loaded with it Dietmar

#652

Mov AX, 0xDEAD

edi must point to some struct with list of proc (like methods in c++)
wrong was before this call
*** Assertion failed: PciInterfacesInstantiated
*** Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3512
*** Assertion failed: pciInterface
*** Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3518

#653 | diderius6 | But what can be done, to solve this? Dietmar

#654

diderius6

Now, all 16 cores are identified via windbg and the first message is gone
*** Assertion failed: PciInterfacesInstantiated
*** Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3512

>     Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
>     Copyright (c) Microsoft Corporation. All rights reserved.

>     Opened \\.\com1
>     Waiting to reconnect...
>     Break repeatedly, break Once, Ignore, terminate Process, or terminate Thread (boipt)? i
>     i

>     *** Assertion failed: pciInterface
>     ***   Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3518

>     Break repeatedly, break Once, Ignore, terminate Process, or terminate Thread (boipt)? i
>     i
>     PS: Unhandled Kernel Mode Exception Pointers = 0xF789D9D4
>     Code c0000005 Addr F7578561 Info0 00000000 Info1 00000010 Info2 00000010 Info3 00000000

>     *** Fatal System Error: 0x0000007e
>                            (0xC0000005,0xF7578561,0xF789DE88,0xF789DB84)

>     Connected to Windows XP 2600 x86 compatible target at (Thu Jun  6 21:58:23.375 2019 (UTC + 2:00)), ptr64 FALSE
>     Kernel Debugger connection established.
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Symbol search path is: C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386;SRV*c:\symbols
>     *⇗ http://msdl.microsoft.com/download/symbols;C:\symbols
>     Executable search path is: C:\localsymbols
>     Windows XP Kernel Version 2600 (Service Pack 3) MP (16 procs) Checked x86 compatible
>     Product: WinNt, suite: TerminalServer SingleUserTS
>     Built by: 2600.xpsp.080413-2133
>     Machine Name:
>     Kernel base = 0x80a02000 PsLoadedModuleList = 0x80af5708
>     Debug session time: Thu Jun  6 21:41:40.937 2019 (UTC + 2:00)
>     System Uptime: 0 days 0:00:03.562
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Thu Jun  6 21:58:25.109 2019 (UTC + 2:00): Break instruction exception - code 80000003 (first chance)

>     A fatal system error has occurred.
>     Debugger entered on first try; Bugcheck callbacks have not been invoked.

>     A fatal system error has occurred.

>     Connected to Windows XP 2600 x86 compatible target at (Thu Jun  6 21:58:25.187 2019 (UTC + 2:00)), ptr64 FALSE
>     Loading Kernel Symbols
>     ............................
>     Loading User Symbols

>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     Use !analyze -v to get detailed debugging information.

>     BugCheck 7E, {c0000005, f7578561, f789de88, f789db84}

>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     Probably caused by : ACPI.sys ( ACPI!AcpiArbCrackPRT+113 )

>     Followup: MachineOwner
>     ---------

>     nt!RtlpBreakWithStatusInstruction:
>     80ab9138 cc              int     3
>     0: kd> !pcitree
>     PciFdoExtensionListHead forward pointer is NULL, list is empty
>     0: kd> !analyze -v
>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (7e)
>     This is a very common bugcheck.  Usually the exception address pinpoints
>     the driver/function that caused the problem.  Always note this address
>     as well as the link date of the driver/image that contains this address.
>     Arguments:
>     Arg1: c0000005, The exception code that was not handled
>     Arg2: f7578561, The address that the exception occurred at
>     Arg3: f789de88, Exception Record Address
>     Arg4: f789db84, Context Record Address

>     Debugging Details:
>     ------------------

>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0

>     EXCEPTION_CODE:
>      (NTSTATUS) 0xc0000005 - Die Anweisung "0x%08lx" verweist auf Speicher
>     bei "0x%08lx". Die Daten wurden wegen eines E/A-Fehlers in "0x%081x"
>     nicht in den Arbeitsspeicher  bertragen.

>     FAULTING_IP:
>     ACPI!AcpiArbCrackPRT+113
>     f7578561 ff5710          call    dword ptr [edi+10h]

>     EXCEPTION_RECORD:  f789de88 -- (.exr 0xfffffffff789de88)
>     ExceptionAddress: f7578561 (ACPI!AcpiArbCrackPRT+0x00000113)
>        ExceptionCode: c0000005 (Access violation)
>       ExceptionFlags: 00000000
>     NumberParameters: 2
>        Parameter[0]: 00000000
>        Parameter[1]: 00000010
>     Attempt to read from address 00000010

>     CONTEXT:  f789db84 -- (.cxr 0xfffffffff789db84)
>     eax=f789e008 ebx=00000000 ecx=0000bb40 edx=00000056 esi=8accab78 edi=00000000
>     eip=f7578561 esp=f789df50 ebp=f789e0a0 iopl=0         nv up ei ng nz na pe nc
>     cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010286
>     ACPI!AcpiArbCrackPRT+0x113:
>     f7578561 ff5710          call    dword ptr [edi+10h]  ds:0023:00000010=????????
>     Resetting default scope

>     PROCESS_NAME:  System

>     ERROR_CODE:
>      (NTSTATUS) 0xc0000005 - Die Anweisung "0x%08lx" verweist auf Speicher
>     bei "0x%08lx". Die Daten wurden wegen eines E/A-Fehlers in "0x%081x"
>     nicht in den Arbeitsspeicher  bertragen.

>     EXCEPTION_PARAMETER1:  00000000

>     EXCEPTION_PARAMETER2:  00000010

>     READ_ADDRESS:  00000010

>     FOLLOWUP_IP:
>     ACPI!AcpiArbCrackPRT+113
>     f7578561 ff5710          call    dword ptr [edi+10h]

>     BUGCHECK_STR:  0x7E

>     DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE

>     LOCK_ADDRESS:  80af1640 -- (!locks 80af1640)
>     NTSDEXTS: Unable to resolve ntdll!RtlCriticalSectionList
>     NTSDEXTS: Please check your symbols

>     PNP_TRIAGE:
>     	Lock address  : 0x80af1640
>     	Thread Count  : 1
>     	Thread address: 0x8acc5020
>     	Thread wait   : 0xe4

>     LAST_CONTROL_TRANSFER:  from 80a30d41 to 80ab9138

>     STACK_TEXT:
>     f789e0a0 f75b865b 8accab78 f789e0cc f789e0e0 ACPI!AcpiArbCrackPRT+0x113
>     f789e0d4 f75c882d f75ae2a0 f789e0f0 f789e1a8 ACPI!AcpiArbAddAllocation+0x9f
>     f789e158 f75b7375 f75ae2a0 e15334c4 f75ae2a0 ACPI!ArbBootAllocation+0x17b
>     f789e16c f75c8d89 f75ae2a0 e15334c4 e15334c4 ACPI!AcpiArbBootAllocation+0x4b
>     f789e188 80b5d111 f75ae2a0 00000009 f789e1a8 ACPI!ArbArbiterHandler+0x1bd
>     f789e1c4 80b5e093 f789e1b8 00000000 80af1140 nt!IopBootAllocation+0xbb
>     f789e208 80b5e80b 00000004 e156b878 e1541578 nt!IopAllocateBootResourcesInternal+0xc5
>     f789e228 80d24c8b 00000004 8accab78 e1541578 nt!IopAllocateBootResources+0x75
>     f789e24c 80b4753a 00000004 8accab78 e1541578 nt!IopReportBootResources+0x65
>     f789e27c 80b4db93 8ac8e6c0 80000234 00000001 nt!PiQueryAndAllocateBootResources+0x150
>     f789e36c 80b4e26d 8ac8e6c0 00000000 00000000 nt!PipProcessNewDeviceNode+0xc9d
>     f789e5c4 80a2cfb6 8ac8ecc8 00000000 00000000 nt!PipProcessDevNodeTree+0x1bd
>     f789e608 80a2d2c1 00000000 00000000 8007b060 nt!PipDeviceActionWorker+0xc4
>     f789e620 80d23f53 00000000 00000006 00000000 nt!PipRequestDeviceAction+0x13b
>     f789e684 80d201f1 80085000 f789e6a0 00034000 nt!IopInitializeBootDrivers+0x39b
>     f789e830 80d1d940 80085000 00000000 8acc5020 nt!IoInitSystem+0x82d
>     f789edac 80bc761c 80085000 00000000 00000000 nt!Phase1Initialization+0xb12
>     f789eddc 80ad9b52 80d1ce2e 80085000 00000000 nt!PspSystemThreadStartup+0x34
>     00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

>     SYMBOL_STACK_INDEX:  0

>     SYMBOL_NAME:  ACPI!AcpiArbCrackPRT+113

>     FOLLOWUP_NAME:  MachineOwner

>     MODULE_NAME: ACPI

>     IMAGE_NAME:  ACPI.sys

>     DEBUG_FLR_IMAGE_TIMESTAMP:  4802b4e5

>     STACK_COMMAND:  .cxr 0xfffffffff789db84 ; kb

>     FAILURE_BUCKET_ID:  0x7E_ACPI!AcpiArbCrackPRT+113

>     BUCKET_ID:  0x7E_ACPI!AcpiArbCrackPRT+113

>     Followup: MachineOwner
>     ---------

#655 | diderius6 | I delete the Hpet device in DSDT, flash Bios new, but same BSOD 0x7E 0xc0000005 as before Dietmar

#656

infuscomus

⇗ @diderius6
testing with grub2, i notice that if i use
acpi --no-ebda
I always get 7E BSOD
from grub2 documentation:
Normally, this command will replace the Root System Description Pointer (RSDP) in the Extended BIOS Data Area to point to the new tables. If the --no-ebda option is used, the new tables will be known only to GRUB, but may be used by GRUBs EFI emulation.
if I use command without --no-ebda
acpi /facp.dat /dsdt.dat
I get A5 BSOD
A5 0x02 or 0x0D
so maybe for 7E BSOD there is an error in Extended BIOS Data Area?

#657

diderius6

⇗ @infuscomus
I think, it is a problem with all the timers for XP.
I read, that in Qemu they have the same BSOD with the Hpet timer.
⇗ https://patchwork.ozlabs.org/patch/312207/
And even more, in win7 is a conflict between the other both timers, using Irq 0 and Irq 8.
When I look at my XP without Acpi on the Asrock B350 board,
no timer at all(!) can be seen in the device list. The Irq 0 and Irq 8 are not used there.
So, may be the other both timers have to be deleted in DSDT also.
Until now, I have no other idea, why acpi not works
Dietmar

#658 | infuscomus | ⇗ @diderius6 are you able to get the same BSODs I get using grub2?

#659

diderius6

⇗ @infuscomus
yes, my modded Bios for the Asrock fatal1ty ab350 gaming k4
is so good now, that I can use the normal acpi.sys from XP SP3.
I am quite sure, that the BSOD 0x7E 0xc0000005 comes from the Hpet clock.
Now I am on the way for next try.
In FACP, the bit for the Hpet timer is enabled.
This I try to set back to zero.
From my experiance from intel boards,
there are Bios with hard wired Hpet clocks.
But even in this case, because XP reads registry and not Bios for Acpi,
it is possible to fake the FACP table there
Dietmar
EDIT: Until now, in FACP there are the Hexvalues A5 85 03 00.
They need to be changed to A5 05 03 00.
EDIT2: I succeed to set the USE_PLATFORM_CLOCK 0 - OSPM may use HPET, ACPI PM Timer or internal Timer
and flash this Bios. This I test with RW-everything. But after this crazy hack still the BSOD 0x7E 0xc0000005.

#660

diderius6

All devices are set to Irq 0,
pcitree is empty. The pointer for Irqs is empty.

>     Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
>     Copyright (c) Microsoft Corporation. All rights reserved.

>     Opened \\.\com1
>     Waiting to reconnect...
>     Connected to Windows XP 2600 x86 compatible target at (Fri Jun  7 16:47:38.703 2019 (UTC + 2:00)), ptr64 FALSE
>     Kernel Debugger connection established.
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Symbol search path is: C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386;SRV*c:\symbols
>     *⇗ http://msdl.microsoft.com/download/symbols;C:\symbols
>     Executable search path is: C:\localsymbols
>     Windows XP Kernel Version 2600 MP (1 procs) Checked x86 compatible
>     Built by: 2600.xpsp.080413-2133
>     Machine Name:
>     Kernel base = 0x80a02000 PsLoadedModuleList = 0x80af5708
>     System Uptime: not available
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Fri
>      Jun  7 16:47:41.437 2019 (UTC + 2:00): MM: Loader/HAL memory block
>     indicates large pages cannot be used for 80A02000->80D8DFFF
>     Fri Jun  7 16:47:41.437 2019 (UTC + 2:00):
>     Fri
>      Jun  7 16:47:41.453 2019 (UTC + 2:00): MM: Loader/HAL memory block
>     indicates large pages cannot be used for 80100000->8012777F
>     Fri Jun  7 16:47:48.312 2019 (UTC + 2:00):
>     *** Assertion failed: PciInterfacesInstantiated
>     ***   Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3512

>     Fri Jun  7 16:47:48.312 2019 (UTC + 2:00):
>     Fri
>      Jun  7 16:47:48.328 2019 (UTC + 2:00): Break repeatedly, break Once,
>     Ignore, terminate Process, or terminate Thread (boipt)? t
>     t

>     Fri Jun  7 16:47:48.328 2019 (UTC + 2:00):
>     Fri Jun  7 16:48:14.250 2019 (UTC + 2:00):
>     *** Assertion failed: Thread->Tcb.KernelApcDisable == 0
>     ***   Source File: d:\xpsp\base\ntos\ps\psdelete.c, line 1028

>     Fri Jun  7 16:48:14.250 2019 (UTC + 2:00):
>     Fri
>      Jun  7 16:48:14.281 2019 (UTC + 2:00): Break repeatedly, break Once,
>     Ignore, terminate Process, or terminate Thread (boipt)? i
>     i

>     Fri Jun  7 16:48:14.281 2019 (UTC + 2:00):
>     Fri Jun  7 16:48:28.921 2019 (UTC + 2:00):
>     *** Assertion failed: Thread->Tcb.KernelApcDisable == 0
>     ***   Source File: d:\xpsp\base\ntos\ps\psdelete.c, line 1333

>     Fri Jun  7 16:48:28.921 2019 (UTC + 2:00):
>     Fri
>      Jun  7 16:48:28.937 2019 (UTC + 2:00): Break repeatedly, break Once,
>     Ignore, terminate Process, or terminate Thread (boipt)? i
>     i

>     Fri Jun  7 16:49:25.921 2019 (UTC + 2:00): Break instruction exception - code 80000003 (first chance)
>     *******************************************************************************
>     *                                                                             *
>     *   You are seeing this message because you pressed either                    *
>     *       CTRL+C (if you run kd.exe) or,                                        *
>     *       CTRL+BREAK (if you run WinDBG),                                       *
>     *   on your debugger machine's keyboard.                                      *
>     *                                                                             *
>     *                   THIS IS NOT A BUG OR A SYSTEM CRASH                       *
>     *                                                                             *
>     * If you did not intend to break into the debugger, press the "g" key, then   *
>     * press the "Enter" key now.  This message might immediately reappear.  If it *
>     * does, press "g" and "Enter" again.                                          *
>     *                                                                             *
>     *******************************************************************************
>     nt!RtlpBreakWithStatusInstruction:
>     80ab9138 cc              int     3
>     0: kd> lm
>     start    end        module name
>     80100000 80127780   HAL1       (deferred)
>     80a02000 80d8e000   nt         (pdb symbols)          c:\symbols\ntkrnlmp.pdb\23BD599C4BEE49C0B7E2E3FD595D2ACB1\ntkrnlmp.pdb
>     f740c000 f742bb00   fltMgr     (deferred)
>     f742c000 f7441000   nvme       (deferred)
>     f7441000 f7458880   SCSIPORT   (deferred)
>     f7459000 f7470900   atapi      (deferred)
>     f7471000 f7496a00   dmio       (deferred)
>     f7497000 f74b5d80   ftdisk     (deferred)
>     f7556000 f7566a80   pci        (deferred)
>     f7567000 f75d5480   ACPI       (deferred)
>     f75f7000 f7600300   isapnp     (deferred)
>     f7607000 f7611580   MountMgr   (deferred)
>     f7617000 f7624200   VolSnap    (deferred)
>     f7627000 f7637000   asahci32   (deferred)
>     f7637000 f763fe00   disk       (deferred)
>     f7647000 f7653180   CLASSPNP   (deferred)
>     f7707000 f770d180   PCIIDEX    (deferred)
>     f770f000 f7713d00   PartMgr    (deferred)
>     f782e000 f7844880   KSecDD     (deferred)
>     f7845000 f7856f00   sr         (deferred)
>     f7857000 f7897000   storport   (deferred)
>     f7897000 f789a000   BOOTVID    (deferred)
>     f795a000 f7986980   NDIS       (deferred)
>     f7987000 f7988b80   kdcom      (deferred)
>     f7989000 f798a100   WMILIB     (deferred)
>     f798b000 f798c700   dmload     (deferred)
>     f7a35000 f7a4eb80   Mup        (deferred)
>     f7a4f000 f7a4fd00   pciide     (deferred)
>     f7b52000 f7bde600   Ntfs       (deferred)
>     0: kd> !pcitree
>     PciFdoExtensionListHead forward pointer is NULL, list is empty
>     0: kd> pci
>             ^ pass count must be preceeded by whitespace error in 'pci'
>     0: kd> !pci
>     PCI Segment 0 Bus 0
>     00:0  1022:1450.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge  SubID:1849:1450
>     00:2  1022:1451.00  Cmd[0004:..b...]  Sts[0010:c....]  AMD Class:8:6:0  SubID:1022:1451
>     01:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     01:3  1022:1453.00  Cmd[0007:imb...]  Sts[0010:c....]  AMD PCI-PCI Bridge 0->0x3-0xa
>     02:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     03:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     03:1  1022:1453.00  Cmd[0007:imb...]  Sts[0010:c....]  AMD PCI-PCI Bridge 0->0xb-0xb
>     04:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     07:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     07:1  1022:1454.00  Cmd[0007:imb...]  Sts[0010:c....]  AMD PCI-PCI Bridge 0->0x11-0x11
>     08:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     08:1  1022:1454.00  Cmd[0007:imb...]  Sts[0010:c....]  AMD PCI-PCI Bridge 0->0x12-0x12
>     14:0  1022:790b.59  Cmd[0403:im....]  Sts[0220:.6...]  AMD SMBus Controller  SubID:1849:ffff
>     14:3  1022:790e.51  Cmd[000f:imb...]  Sts[0220:.6...]  AMD ISA Bridge  SubID:1849:ffff
>     18:0  1022:1460.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:1  1022:1461.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:2  1022:1462.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:3  1022:1463.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:4  1022:1464.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:5  1022:1465.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:6  1022:1466.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:7  1022:1467.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     0: kd> !devnode 0 1
>     Dumping IopRootDeviceNode (= 0x8ac8ecc8)
>     DevNode 0x8ac8ecc8 for PDO 0x8ac8ee10
>       InstancePath is "HTREE\ROOT\0"
>       State = DeviceNodeStarted (0x308)
>       Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8e898 for PDO 0x8ac8e9f8
>         InstancePath is "Root\ACPI_HAL\0000"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>         DevNode 0x8ace2358 for PDO 0x8ace3830
>           InstancePath is "ACPI_HAL\PNP0C08\0"
>           ServiceName is "ACPI"
>           State = DeviceNodeStarted (0x308)
>           Previous State = DeviceNodeEnumerateCompletion (0x30d)
>           DevNode 0x8ac881c8 for PDO 0x8acc9b48
>             InstancePath is "ACPI\PNP0A08\0"
>             ServiceName is "pci"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>           DevNode 0x8ac60d00 for PDO 0x8ace87b8
>             InstancePath is "ACPI\PNP0C0C\aa"
>             State = DeviceNodeDriversAdded (0x303)
>             Previous State = DeviceNodeInitialized (0x302)
>           DevNode 0x8ac60bd0 for PDO 0x8accf810
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_0"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac60aa0 for PDO 0x8acd31e8
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_1"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac4ecc0 for PDO 0x8acca190
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_2"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac4eb90 for PDO 0x8ac760f8
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_3"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac4ea60 for PDO 0x8ac89130
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_4"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac4e930 for PDO 0x8accfcc8
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_5"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac5fea8 for PDO 0x8acc9620
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_6"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac5fd78 for PDO 0x8acd1c80
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_7"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac5fc48 for PDO 0x8ac39db0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_8"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac5fb18 for PDO 0x8ac391d8
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_9"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac4ae48 for PDO 0x8ac397d0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\10"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac4ad18 for PDO 0x8ac396b0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\11"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac4abe8 for PDO 0x8ac5f940
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\12"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac4aab8 for PDO 0x8ac5f820
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\13"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8ac4a988 for PDO 0x8acd6038
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\14"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8accf008 for PDO 0x8acd61d0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\15"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8accf600 for PDO 0x8ace1038
>             InstancePath is "ACPI\AMDI0030\0"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8accf4d0 for PDO 0x8ace11d0
>             State = DeviceNodeUninitialized (0x301)
>             Previous State = Unknown State (0x0)
>           DevNode 0x8accf3a0 for PDO 0x8ace2038
>             State = DeviceNodeUninitialized (0x301)
>             Previous State = Unknown State (0x0)
>           DevNode 0x8accf270 for PDO 0x8ace2200
>             State = DeviceNodeUninitialized (0x301)
>             Previous State = Unknown State (0x0)
>           DevNode 0x8accf140 for PDO 0x8ac88038
>             State = DeviceNodeUninitialized (0x301)
>             Previous State = Unknown State (0x0)
>       DevNode 0x8ace7db0 for PDO 0x8ace7f10
>         InstancePath is "Root\dmio\0000"
>         ServiceName is "dmio"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace7b58 for PDO 0x8ace7cb8
>         InstancePath is "Root\ftdisk\0000"
>         ServiceName is "ftdisk"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace7900 for PDO 0x8ace7a60
>         InstancePath is "Root\LEGACY_ACPI\0000"
>         ServiceName is "ACPI"
>         State = DeviceNodeRemoved (0x312)
>         Previous State = DeviceNodeStarted (0x308)
>         Problem = CM_PROB_DEVICE_NOT_THERE
>       DevNode 0x8ace76a8 for PDO 0x8ace7808
>         InstancePath is "Root\LEGACY_AFD\0000"
>         ServiceName is "AFD"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace7418 for PDO 0x8ace7578
>         InstancePath is "Root\LEGACY_AMPA\0000"
>         ServiceName is "ampa"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace71c0 for PDO 0x8ace7320
>         InstancePath is "Root\LEGACY_ATAPI\0000"
>         ServiceName is "atapi"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8ded8 for PDO 0x8ac8d038
>         InstancePath is "Root\LEGACY_BEEP\0000"
>         ServiceName is "Beep"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8dc38 for PDO 0x8ac8dd98
>         InstancePath is "Root\LEGACY_DMBOOT\0000"
>         ServiceName is "dmboot"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8d9e0 for PDO 0x8ac8db40
>         InstancePath is "Root\LEGACY_DMLOAD\0000"
>         ServiceName is "dmload"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8d788 for PDO 0x8ac8d8e8
>         InstancePath is "Root\LEGACY_FIPS\0000"
>         ServiceName is "Fips"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8d4e0 for PDO 0x8ac8d640
>         InstancePath is "Root\LEGACY_GPC\0000"
>         ServiceName is "Gpc"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8d288 for PDO 0x8ac8d3e8
>         InstancePath is "Root\LEGACY_HTTP\0000"
>         ServiceName is "HTTP"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace6008 for PDO 0x8ac8d190
>         InstancePath is "Root\LEGACY_IPNAT\0000"
>         ServiceName is "IpNat"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace6db0 for PDO 0x8ace6f10
>         InstancePath is "Root\LEGACY_IPSEC\0000"
>         ServiceName is "IPSec"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace6b58 for PDO 0x8ace6cb8
>         InstancePath is "Root\LEGACY_KSECDD\0000"
>         ServiceName is "ksecdd"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace6900 for PDO 0x8ace6a60
>         InstancePath is "Root\LEGACY_MNMDD\0000"
>         ServiceName is "mnmdd"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace66a8 for PDO 0x8ace6808
>         InstancePath is "Root\LEGACY_MOUNTMGR\0000"
>         ServiceName is "mountmgr"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace6450 for PDO 0x8ace65b0
>         InstancePath is "Root\LEGACY_NDIS\0000"
>         ServiceName is "NDIS"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace61f8 for PDO 0x8ace6358
>         InstancePath is "Root\LEGACY_NDISTAPI\0000"
>         ServiceName is "NdisTapi"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8ced8 for PDO 0x8ac8c038
>         InstancePath is "Root\LEGACY_NDISUIO\0000"
>         ServiceName is "Ndisuio"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8cc80 for PDO 0x8ac8cde0
>         InstancePath is "Root\LEGACY_NDPROXY\0000"
>         ServiceName is "NDProxy"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8ca28 for PDO 0x8ac8cb88
>         InstancePath is "Root\LEGACY_NETBT\0000"
>         ServiceName is "NetBT"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8c7d0 for PDO 0x8ac8c930
>         InstancePath is "Root\LEGACY_NULL\0000"
>         ServiceName is "Null"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8c578 for PDO 0x8ac8c6d8
>         InstancePath is "Root\LEGACY_NVME\0000"
>         ServiceName is "nvme"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8c320 for PDO 0x8ac8c480
>         InstancePath is "Root\LEGACY_PARTMGR\0000"
>         ServiceName is "PartMgr"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace5008 for PDO 0x8ac8c228
>         InstancePath is "Root\LEGACY_PARVDM\0000"
>         ServiceName is "ParVdm"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace5db0 for PDO 0x8ace5f10
>         InstancePath is "Root\LEGACY_PCIIDE\0000"
>         ServiceName is "PCIIde"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace5b58 for PDO 0x8ace5cb8
>         InstancePath is "Root\LEGACY_RASACD\0000"
>         ServiceName is "RasAcd"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace5900 for PDO 0x8ace5a60
>         InstancePath is "Root\LEGACY_RDPCDD\0000"
>         ServiceName is "RDPCDD"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace56a8 for PDO 0x8ace5808
>         InstancePath is "Root\LEGACY_TCPIP\0000"
>         ServiceName is "Tcpip"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace5450 for PDO 0x8ace55b0
>         InstancePath is "Root\LEGACY_VGASAVE\0000"
>         ServiceName is "VgaSave"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ace51f8 for PDO 0x8ace5358
>         InstancePath is "Root\LEGACY_VOLSNAP\0000"
>         ServiceName is "VolSnap"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8bed8 for PDO 0x8ac8b038
>         InstancePath is "Root\LEGACY_WANARP\0000"
>         ServiceName is "Wanarp"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8ac8bc80 for PDO 0x8ac8bde0
>         InstancePath is "Root\MEDIA\MS_MMACM"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8ba28 for PDO 0x8ac8bb88
>         InstancePath is "Root\MEDIA\MS_MMDRV"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8b7d0 for PDO 0x8ac8b930
>         InstancePath is "Root\MEDIA\MS_MMMCI"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8b578 for PDO 0x8ac8b6d8
>         InstancePath is "Root\MEDIA\MS_MMVCD"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8b320 for PDO 0x8ac8b480
>         InstancePath is "Root\MEDIA\MS_MMVID"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace4008 for PDO 0x8ac8b228
>         InstancePath is "Root\MS_L2TPMINIPORT\0000"
>         ServiceName is "Rasl2tp"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace4db0 for PDO 0x8ace4f10
>         InstancePath is "Root\MS_NDISWANIP\0000"
>         ServiceName is "NdisWan"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace4b58 for PDO 0x8ace4cb8
>         InstancePath is "Root\MS_PPPOEMINIPORT\0000"
>         ServiceName is "RasPppoe"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace4900 for PDO 0x8ace4a60
>         InstancePath is "Root\MS_PPTPMINIPORT\0000"
>         ServiceName is "PptpMiniport"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace46a8 for PDO 0x8ace4808
>         InstancePath is "Root\MS_PSCHEDMP\0000"
>         ServiceName is "PSched"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace4450 for PDO 0x8ace45b0
>         InstancePath is "Root\MS_PSCHEDMP\0001"
>         ServiceName is "PSched"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace41f8 for PDO 0x8ace4358
>         InstancePath is "Root\MS_PSCHEDMP\0002"
>         ServiceName is "PSched"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8aed8 for PDO 0x8ac8a038
>         InstancePath is "Root\MS_PTIMINIPORT\0000"
>         ServiceName is "Raspti"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8ac80 for PDO 0x8ac8ade0
>         InstancePath is "Root\PCI_HAL\0000"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8aa28 for PDO 0x8ac8ab88
>         InstancePath is "Root\RDPDR\0000"
>         ServiceName is "rdpdr"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8a7d0 for PDO 0x8ac8a930
>         InstancePath is "Root\RDP_KBD\0000"
>         ServiceName is "TermDD"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8a578 for PDO 0x8ac8a6d8
>         InstancePath is "Root\RDP_MOU\0000"
>         ServiceName is "TermDD"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ac8a320 for PDO 0x8ac8a480
>         InstancePath is "Root\SYSTEM\0000"
>         ServiceName is "swenum"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace3008 for PDO 0x8ac8a228
>         InstancePath is "Root\SYSTEM\0001"
>         ServiceName is "update"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8ace3db0 for PDO 0x8ace3f10
>         InstancePath is "Root\SYSTEM\0002"
>         ServiceName is "mssmbios"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>     0: kd> !amli ?

>     Help                     - ? [<Cmd>]
>     Clear Breakpoints        - bc <bp list> | *
>     Disable Breakpoints      - bd <bp list> | *
>     Enable Breakpoints       - be <bp list> | *
>     List Breakpoints         - bl
>     Set Breakpoints          - bp <MethodName> | <CodeAddr> ...
>     Clear Event Log          - cl
>     Request entering debugger- debugger
>     Dump Heap                - dh [<Addr>]
>     Dump Event Log           - dl
>     Dump Name Space Object   - dns [[/s] [<NameStr> | <Addr>]]
>     Dump Data Object         - do <Addr>
>     Dump Stack               - ds [/v] [<Addr>]
>     Find NameSpace Object    - find <NameSeg>
>     List All Contexts        - lc
>     Display Nearest Method   - ln [<MethodName> | <CodeAddr>]
>     Display Context Info.    - r <Context>
>     Set Debugger Options     - set [traceon | traceoff] [nesttraceon | nesttraceoff] [spewon | spewoff]
>                                    [lbrkon | lbrkoff] [errbrkon | errbrkoff] [verboseon | verboseoff]
>                                    [logon | logoff] [logmuton | logmutoff]
>     Unassemble AML code      - u [<MethodName> | <CodeAddr>]

>     0: kd> !amli dl
>     0:00:03.437 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PCI0._UID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.437 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PCI0._UID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.437 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PCI0._UID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.437 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PCI0._UID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.437 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PCI0._UID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.437 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.437 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.PCI0._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.437 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PCI0._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.437 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PCI0._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.437 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PCI0._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.437 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PCI0._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.437 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PCI0._HID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.437 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.437 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.PCI0._CID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.437 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PCI0._CID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.437 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PCI0._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.437 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PCI0._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.437 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PCI0._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.437 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PCI0._CID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.437 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.437 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.437 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.437 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.437 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.437 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.437 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.437 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.PCI0._STA
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PCI0._STA
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PCI0._STA
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PCI0._STA
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PCI0._STA
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PCI0._STA
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.453 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.453 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PCI0._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PCI0._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PCI0._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PCI0._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PCI0._HID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.453 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PCI0._CID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PCI0._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PCI0._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PCI0._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PCI0._CID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.453 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.453 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PCI0._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PCI0._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PCI0._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PCI0._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PCI0._HID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.453 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PCI0._CID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PCI0._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PCI0._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PCI0._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PCI0._CID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.453 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PCI0._CRS
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.453 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.PWRB._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PWRB._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PWRB._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PWRB._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PWRB._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PWRB._HID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.453 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.PWRB._UID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PWRB._UID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PWRB._UID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PWRB._UID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PWRB._UID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PWRB._UID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.453 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.PWRB._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.PWRB._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.453 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.PWRB._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.PWRB._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.PWRB._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.453 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.PWRB._HID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.453 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.GPIO._STA
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._STA
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._STA
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._STA
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._STA
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._STA
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.GPIO._UID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._UID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._UID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._UID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._UID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._UID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.GPIO._CRS
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._CRS
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._CRS
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.GPIO._STA
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._STA
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._STA
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._STA
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._STA
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._STA
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] SyncEvalObject        IRQL= 0
>         \_SB.GPIO._CRS
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._CRS
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._CRS
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._CRS
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._HID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] AsyncEvalObject       IRQL= 0
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000

>     0:00:03.546 [8acc5020] RestartContext        Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] InsertReadyQueue      Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] EvaluateContext       Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=0 QCt=0 QFg=00000000 pbOp=0

>     0:00:03.546 [8acc5020] RunContext            Context=8aaf3000
>         \_SB.GPIO._CID
>         QTh=8acc5020 QCt=8aaf3000 QFg=00000000

>     0:00:03.546 [8acc5020] FinishedContext       Context=8aaf3000 rc=0
>         QTh=0 QCt=0 QFg=00000000

## Page 45

#661 | infuscomus | ⇗ @diderius6 grub2 method gets rid of 7E BSOD, but there are still A5 0x02 and 0x0D errors to fix

#662

diderius6

I found all this errors via Ida Pro in the Debug version of acpi.sys
*** Assertion failed: PciInterfacesInstantiated
*** Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3512
*** Assertion failed: pciInterface
*** Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3518
They can be easy hacked, but what is the real underlying problem?
Is there a PciInterface in Bios or not?
In the Bios from the Asrock B350 board there is a switch "Hpet table".
It has no effekt for XP, if I enable or disable this.
I read, that the Hpet timer cant be disabled at all on the Ryzen boards
Dietmar

#663 | infuscomus | ⇗ @diderius6 I'm guessing that part of the problem is the Root System Description Pointer (RSDP) in the Extended BIOS Data Area since replacing that when using grub2 makes the 7E BSOD go away

#664

diderius6

⇗ @infuscomus
Here is my registry extract from all the Acpi tables from Win7 32 bit
from my Asrock fatal1ty ab350 gaming k4.
Under Win7 32 bit it works perfect
Dietmar
PS: I make a new try to install Vista 32 bit. Everything looks good, no comment about incompatible Acpi,
but at reboot after first install I get BSOD 0x7B.
It has nothing to do with the boot device. Vista 32 bit also dont like to run on the Asrock board (it has forced Acpi)
but Vista 64 bit works there.
diderius6 has attached files to this post

- ⇗ hardwareWin7.rar

#665 | infuscomus | ⇗ @diderius6 So we need to figure out whatever windows 7 acpi.sys driver is doing to make it work?

#666

diderius6

I still find with RW-everything in the Hpet table this entry, even it is disabled in Bios:
Bit[15]=LegacyReplacement IRQ Routing Capable
With cpu-z (tools timers) I can see,
that in XP and Win7 the Hpet timer is empty. There are 3 clocks shown and work: ACPI, QPC, RTC (same in Win7 and XP).
So, may be really Hpet is the one and only reason for BSOD 0x7E 0xc0000005
Dietmar

#667 | diderius6 | ⇗ @infuscomus ⇗ @Mov AX, 0xDEAD May be, you or Mov AX, 0xDEAD can load this Acpi tables, which I send to registry of this Asrock board B350 and this is all to make Acpi work in XP Dietmar PS: I think, Win7 has learned to survive with Hpet.
#668 | infuscomus | ⇗ @diderius6 so how do we properly disable HPET?

#669

diderius6

⇗ @infuscomus
I dont know. The authors from qemu use the switch
-no-hpet
Disable HPET support.
-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n] [,asl_compiler_id=str][,asl_compiler_rev=n][,data=file1[:file2]...]
Add ACPI table with specified header fields and context from specified files. For file=, take whole ACPI table from the specified files, including all ACPI headers (possible overridden by other options). For data=, only data portion of the table is used, all header information is specified in the command line. If a SLIC table is supplied to QEMU, then the SLICs oem_id and oem_table_id fields will override the same in the RSDT and the FADT (a.k.a. FACP), in order to ensure the field matches required by the Microsoft SLIC spec and the ACPI spec.
Dietmar

#670 | diderius6 | Is it possible to install Qemu on Win7 32 bit and install in this Qemu an Acpi XP SP3 Dietmar

#671

Mov AX, 0xDEAD

> Zitat

> Enable TCO Timer
> (Enable/Disable TCO timer. When disabled, it disables PCH ACPI timer, and stops TCO timer)

this hidden bios option by default is disabled and break pm_timer, thanks to MB vendors :(

#672

Mov AX, 0xDEAD

> Zitat von ⇗ infuscomus im Beitrag ¶ #668

> so how do we properly disable HPET?

by default win doesnt use hpet, force disabling:
- remove hpet acpi table
- set status of device in dsdt to Zero, (method _sta)

#673

diderius6

⇗ @Mov AX, 0xDEAD
How can single Acpi tables like hpet acpi table
been removed?
There is no *.raw entry for them in Bios, even not the table itself is listed there, I think needs an algorithmus to
build the pur table (also for example FACP)
Dietmar

#674

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #673

> How can single Acpi tables like hpet acpi table
> been removed?

rename header of table to HPEZ for example
but be ready to hang bios if it check for signature HPET

#675 | infuscomus | ⇗ @diderius6 I tested your DSDT export from windows 7 in XP - 7E BSOD ⇗ @Mov AX, 0xDEAD Do you know to write ASL code? to at least make progress on solving A5 02 and 0D BSODs with grub2 method?

## Page 46

#676

diderius6

⇗ @infuscomus
I make next try:
With Uefi tool I found 6 places with ASCII HPET.
I will extract each of those 6 bodies, rename one by one there with Winhex HPET ->
HPEU HPEV HPEW HPEX HPEY HPEZ,
change body with Uefi tool
and flash whole Bios
Dietmar
⇗ https://ibb.co/vjmSYsc
EDIT: Funny, HPET table has now name HPEU in rw-everything,
but BSOD is still 0x7E 0xc0000005, grrr^^..
But the Hpet table is really killed. There stands now version 1 for the Hpeu table and
the possibility to change legacy Irqs is gone.

#677 | diderius6 | But still no timer is shown in device list of XP. Irq 0 and Irq 8 are free. And I see an UEFI table entry in rw-everything. Has this been there before also(?) Dietmar
#678 | infuscomus | ⇗ @diderius6 in rw-everything i see HPET table before I empty HPET table and load empty with grub2 without DSDT - 7E BSOD Because of results with grub2, I think the cause of 7E BSOD is in RSDP or EBDA area
#679 | infuscomus | ⇗ @Mov AX, 0xDEAD are you any good at understanding ACPI code?

#680

diderius6

⇗ @infuscomus
I also start to think, that the error is not in the DSDT table. But which table acpi.sys also reads???
This line from windbg
FAILURE_BUCKET_ID: 0x7E_ACPI!AcpiArbCrackPRT+113
means, that AcpiArbCrackPRT (I do not find any information about that pointer)
looks just at a wrong adress (10h reserved low memory, because edi is empty)
But at which adress this pointer has to look, the adress can be handcoded (edi+10h, change 10h against correct adress)
Dietmar

#681 | infuscomus | ⇗ @diderius6 can you find what the correct address is? the address that windows 7 uses?

#682

diderius6

⇗ @infuscomus
I just make a reread and I see,
that indeed only DSDT can make exact this crash:
"7. On QEMU, XP does indeed show the HPET alongside the TMR and RTC in
its device tree, obviously without any IRQ resources under properties,
since the only way it boots is if HPET._CRS doesn't include IRQNoFlags.
8. Windows 7, while it boots and runs fine when HPET._CRS contains
IRQNoFlags, will show an unresolved IRQ conflict between the HPET and
the RTC in the device tree. Commenting out IRQNoFlags from the RTC
in QEMU does NOT solve that (still shows up as a conflict in the
device tree).
9. I followed Igor's advice and ran a debug session, but unlike with
ConcatenateResTemplate, XP didn't choke on AML byte code itself, but
appears to die of a memory access violation:
*** Fatal System Error: 0x0000007e (0x...)
...
Probably caused by: ACPI.sys (ACPI!AcpiArbCrackPRT+113)
80527bdc cc int 3
Poking around with various !amli debugger commands does not show
anything AML-related as abnormal, so I think the problem is that
either XP specifically expects the HPET._CRS buffer to be of a
certain hardcoded size (which doesn't include any extra room for
IRQNoFlags), or attempts to somehow process the values given via
IRQNoFlags (0 and 8) in ways that cause it to then kill itself.
Hard to tell without knowing more about XP internals (e.g., without
XP kernel and/or acpi.sys source code).
At this point, conditionally inserting IRQNoFlags {0,8} only for OS X
sounds less of a hack and more like the right thing to do. I would be
comfortable using ConcatenateResTemplate since XP never gets a chance
to attempt to interpret that bytecode, which gets exercised only by
the _OSI("Darwin") branch. I tested this, and both XP and OSX seem
happy with it."
There is a problem with the timer. But when a single device (via DSDT) can make exact this crash,
may be another device, that XP not likes, can make this crash also.
So, my first idea after this is, to "delete via OSVR" in DSDT all devices with a given IRQNoFlags number
Dietmar

#683

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #682

> Hard to tell without knowing more about XP internals (e.g., without
> XP kernel and/or acpi.sys source code).

There is the windows research kernel you can use on github

#684

diderius6

This would be a nice idea,
to set up a Qemu session,
give to Qemu the DSDT table from the Asrock fatal1ty ab350 gaming k4 board,
chose RYZEN processor
and install ACPI XP SP3.
Oh, so much hope, that the same BSOD 0x7E 0xc0000005 happens in Qemu,
than fun can start to find out which device in DSDT makes this BSDOD
Dietmar

#685 | infuscomus | ⇗ @diderius6 why QEMU over real hardware?

#686

diderius6

⇗ @infuscomus
Because it is much easier with Qemu to change quick everything:)) and to see, that the error is NOT on your hardware.
Here comes my next try.
Please load the DSDT table for the Asrock B350 board
and see, if the BSOD 0x7E 0xc0000005 still happens.
I deleted everything about timer and Irqnoflags() with given numbers there.
May be, the APIC from the B350 chipset dies, when you give numbers for IRQ
Dietmar
diderius6 has attached files to this post

- ⇗ DSDTIrqnoflag.rar

#687

infuscomus

⇗ @diderius6
I loaded you IRQnoflags DSDT into grub2 - BSOD A5 02
⇗
however, I get this same BSOD when loading unmodified smaller DSDT from BIOS 3.30 (in DsdtAsl)
with larger DSDT from BIOS 3.30 (in 7FD41B4B-42AE-47BA-BA77-87D3BD829E86)
I get BSOD A5 0D
⇗

#688

diderius6

⇗ @infuscomus
Before you get with full DSDT and grub2 BSOD 0x7E 0xc0000005?
And now with my IRQnoflags DSDT into grub2 - BSOD A5 02
and you changed nothing other?
This would be a big step forward
Dietmar
EDIT: In this case my modified acpi.sys would solve this problem BSOD A5 02.

#689 | infuscomus | ⇗ @diderius6 with grub2 loading DSDT from BIOS 5.00 and 5.40 always 7E BSOD I have not tried DSDT from BIOSs 4.30 to 4.90 or the Bridge BIOS 3.40 BIOS 3.30 is either A5 02 or A5 0D
#690 | diderius6 | ⇗ @infuscomus I just flash this Bios with IRQnoflags DSDT to Asrock fatal1ty ab350 gaming k4 board, same BSOD 0x7E 0xc0000005 as before Dietmar

## Page 47

#691 | infuscomus | ⇗ @diderius6 When you have the time, try AIO multiboot with grub2 method

#692

diderius6

⇗ @infuscomus
The problem is, that I do not understand, what happens there.
With direct flash Bios to real hardware I understand чуть чуть :)).
Now all clocks and their Irqs are gone in Win7,
but cpu-z shows again all clocks working, only HPET not(!) listened.
Dietmar
EDIT: In XP SP3, also no clocks at all in device list, no IRQ 0 or 8 is used.
But the most crazy for me is, that the 3 timers, shown with cpu-z (tools timers)
shows them as working correct?!
ACPI QPC RTC
3.580 MHZ 1.193 MHZ 1.000KHZ
Dietmar
EDIT: This simple means, because DSDT table is not loaded for "Standard PC" that all the clocks
are elsewhere listed too.
EDIT2: XP (first, gold version) and XP SP1 show exact the same error: 0x7E 0xc0000005.

#693 | infuscomus | ⇗ @diderius6 can I try your modified acpi.sys for acpi A5 02 and 0D errors?

#694

diderius6

⇗ @infuscomus
Here it is
Dietmar
diderius6 has attached files to this post

- ⇗ acpi.rar

#695 | infuscomus | ⇗ @diderius6 Thanks, unfortunately, no change - BSOD A5 02 ⇗ Thanks anyway
#696 | infuscomus | ⇗ @diderius6 ⇗ @Mov AX, 0xDEAD how do I interpret parameter2 to locate DSDT error? or am I going about it the wrong way?

#697

diderius6

⇗ @infuscomus
I still think, the big problem is, that the Asrock B350 board
does not give a full APIC Irq list to XP. This may be an error in this chipset.
May be this is the real problem and not ACPI.
I just look, but a Qemu, special for Ryzen processors, is not out there until now.
With the wrong configured HPET timer (Irq 0 and Irq 8) you can get the same BSOD via windbg "acpi!acpiarbcrackprt+113"
as I have.
This means, that the DSDT table CAN be the reason.
Now I make a new try with deleted device "PIC" in DSDT (it gets Irq 2 there) and flash this Bios.
Not much hope, that this will change anything.
But not much devices are left in DSDT, which makes sense to be killed there.
After this, I do another way: I put the halapic.dll from Debug XP SP3 into XP and also ntkrnlmp.exe.
Then I look, what windbg tells EDIT: windbg tells nothing with halapic.dll, the BSOD happens so early (I think in halapic, just blinking cursor),
so that the debugger does not start, brrr..
Dietmar

#698 | infuscomus | ⇗ @diderius6 I'm not sure, but this might help? ⇗ http://2012.zeronights.org/includes/docs/Oleksiuk.pdf page 26

#699

diderius6

⇗ @infuscomus
interesting:))
I have news: With deleted PIC device in DSDT,
XP does not want to start any longer in Acpi Multiprocessor mode, no(!) bluescreen, just reboot.
But as "Standard PC", everything works like before.
In my eyes this means: XP uses ALWAYS PIC mode
and this is forbidden for Acpi Multiprocessor
and because of this no valid pointer to PCI-Interface,
it just not exists
Dietmar
PS: That are interesting but bad news. Because it means, as long as XP can only enable PIC mode on the asrock board,
there will be no ACPI Multiprocessor for XP. The same happens to Vista 32 bit. Vista 64 and Win7 32bit generate their own
Irqs (as you can see on negative Irq numbers).
EDIT: This is wrong, what I wrote: I forget, that I have done \pcilock switch in boot.ini.
And only with this switch, compi boots new in Acpi Multiprocessor mode.
Without \pcilock in boot.ini, compi gives for Acpi Multiprocessor the same BSOD 0x7E 0xc0000005 as usual.

#700 | infuscomus | ⇗ @diderius6 XP apparently supports negative IRQs? ⇗ http://maxedtech.com/show-devices-by-irq-in-windows/ Devices that have positive (PCI) values are working in Line-based interrupts mode. Those that have negative (PCI) values are working in MSI (Message signaled interrupts) mode.

#701

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #699

> EDIT: This is wrong, what I wrote: I forget, that I have done pcilock switch in boot.ini.
> And only with this switch, compi boots new in Acpi Multiprocessor mode.

⇗ @diderius6
So you have multiprocessor and ACPI working on AB350? but not APIC?

#702

diderius6

⇗ @infuscomus
I do not think, that something changed.
Still no correct Irqs for the pci devices
Dietmar

>     Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
>     Copyright (c) Microsoft Corporation. All rights reserved.

>     Opened \\.\com1
>     Waiting to reconnect...
>     Break repeatedly, break Once, Ignore, terminate Process, or terminate Thread (boipt)? i
>     i

>     *** Assertion failed: pciInterface
>     ***   Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3518

>     Break repeatedly, break Once, Ignore, terminate Process, or terminate Thread (boipt)? t
>     t

>     *** Assertion failed: Thread->Tcb.KernelApcDisable == 0
>     ***   Source File: d:\xpsp\base\ntos\ps\psdelete.c, line 1028

>     Break repeatedly, break Once, Ignore, terminate Process, or terminate Thread (boipt)? t
>     t

>     *** Assertion failed: Thread->Tcb.KernelApcDisable == 0
>     ***   Source File: d:\xpsp\base\ntos\ps\psdelete.c, line 1028

>     Break repeatedly, break Once, Ignore, terminate Process, or terminate Thread (boipt)? t
>     t

>     *** Assertion failed: Thread->Tcb.KernelApcDisable == 0
>     ***   Source File: d:\xpsp\base\ntos\ps\psdelete.c, line 1028

>     Break repeatedly, break Once, Ignore, terminate Process, or terminate Thread (boipt)? t
>     t

>     *** Assertion failed: Thread->Tcb.KernelApcDisable == 0
>     ***   Source File: d:\xpsp\base\ntos\ps\psdelete.c, line 1028

>     Break repeatedly, break Once, Ignore, terminate Process, or terminate Thread (boipt)? t
>     t

>     *** Fatal System Error: 0x0000007f
>                            (0x00000008,0x80042000,0x00000000,0x00000000)

>     Connected to Windows XP 2600 x86 compatible target at (Sun Jun  9 20:36:31.250 2019 (UTC + 2:00)), ptr64 FALSE
>     Kernel Debugger connection established.
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Symbol search path is: C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386;SRV*c:\symbols
>     *⇗ http://msdl.microsoft.com/download/symbols;C:\symbols
>     Executable search path is: C:\localsymbols
>     Windows XP Kernel Version 2600 (Service Pack 3) MP (16 procs) Checked x86 compatible
>     Product: WinNt, suite: TerminalServer SingleUserTS
>     Built by: 2600.xpsp.080413-2133
>     Machine Name:
>     Kernel base = 0x80a02000 PsLoadedModuleList = 0x80af5708
>     Debug session time: Sat Jun  8 20:36:11.015 2019 (UTC + 2:00)
>     System Uptime: 0 days 0:00:03.640
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Sun Jun  9 20:36:32.968 2019 (UTC + 2:00): Break instruction exception - code 80000003 (first chance)

>     A fatal system error has occurred.
>     Debugger entered on first try; Bugcheck callbacks have not been invoked.

>     A fatal system error has occurred.

>     Connected to Windows XP 2600 x86 compatible target at (Sun Jun  9 20:36:33.046 2019 (UTC + 2:00)), ptr64 FALSE
>     Loading Kernel Symbols
>     ............................
>     Loading User Symbols
>     WARNING: Process directory table base DD5E0000 doesn't match CR3 00039000

>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     Use !analyze -v to get detailed debugging information.

>     BugCheck 7F, {8, 80042000, 0, 0}

>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     Probably caused by : ntkrnlmp.exe ( nt!PspExitThread+3dc )

>     Followup: MachineOwner
>     ---------

>     nt!RtlpBreakWithStatusInstruction:
>     80ab9138 cc              int     3
>     0: kd> !analyze -v
>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     UNEXPECTED_KERNEL_MODE_TRAP (7f)
>     This means a trap occurred in kernel mode, and it's a trap of a kind
>     that the kernel isn't allowed to have/catch (bound trap) or that
>     is always instant death (double fault).  The first number in the
>     bugcheck params is the number of the trap (8 = double fault, etc)
>     Consult an Intel x86 family manual to learn more about what these
>     traps are. Here is a *portion* of those codes:
>     If kv shows a taskGate
>             use .tss on the part before the colon, then kv.
>     Else if kv shows a trapframe
>             use .trap on that value
>     Else
>             .trap on the appropriate frame will show where the trap was taken
>             (on x86, this will be the ebp that goes with the procedure KiTrap)
>     Endif
>     kb will then show the corrected stack.
>     Arguments:
>     Arg1: 00000008, EXCEPTION_DOUBLE_FAULT
>     Arg2: 80042000
>     Arg3: 00000000
>     Arg4: 00000000

>     Debugging Details:
>     ------------------

>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0

>     BUGCHECK_STR:  0x7f_8

>     TSS:  00000028 -- (.tss 0x28)
>     eax=00000390 ebx=f789c210 ecx=f789c1fc edx=00000001 esi=f789c32c edi=00000078
>     eip=80acdf8a esp=f789be40 ebp=f789c1e0 iopl=0         nv up di ng nz na po nc
>     cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010082
>     nt!_SEH_prolog+0x1a:
>     80acdf8a 53              push    ebx
>     Resetting default scope

>     DEFAULT_BUCKET_ID:  DRIVER_FAULT

>     PROCESS_NAME:  System

>     LOCK_ADDRESS:  80af1640 -- (!locks 80af1640)
>     NTSDEXTS: Unable to resolve ntdll!RtlCriticalSectionList
>     NTSDEXTS: Please check your symbols

>     PNP_TRIAGE:
>     	Lock address  : 0x80af1640
>     	Thread Count  : 1
>     	Thread address: 0x8b0c5020
>     	Thread wait   : 0xe9

>     LAST_CONTROL_TRANSFER:  from 80a30d41 to 80ab9138

>     ASSERT_DATA:  pciInterface

>     ASSERT_FILE_LOCATION:  d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c at Line 3518

>     STACK_TEXT:
>     80ae33c0 80a30d41 00000003 80ae371c 00000000 nt!RtlpBreakWithStatusInstruction
>     80ae340c 80a319ac 00000003 00000000 00000000 nt!KiBugCheckDebugBreak+0x19
>     80ae37ec 80ad6907 0000007f 00000008 80042000 nt!KeBugCheck2+0x574
>     80ae37ec 80acdf8a 0000007f 00000008 80042000 nt!KiTrap08+0x48
>     f789c1e0 80ad5349 f789c1fc 00000000 f789c250 nt!_SEH_prolog+0x1a
>     f789c248 80ad5b11 f789c2d8 80ac10a1 badb0d00 nt!CommonDispatchException+0x4d
>     f789c248 80ac10a2 f789c2d8 80ac10a1 badb0d00 nt!KiTrap03+0xb9
>     f789c2d8 80ac10ec 00000001 f789c32c 00000078 nt!DebugService+0x1c
>     f789c2f4 80ab9243 f789c314 ffffffff 00000000 nt!DebugPrint+0x1c
>     f789c548 80ab93d8 80ab93b8 ffffffff 00000000 nt!vDbgPrintExWithPrefix+0x101
>     f789c564 80abad6c 80abac22 80abac1e 80bcb16c nt!DbgPrint+0x1a
>     f789c874 80abae30 80bcb16c 80bcb14c 00000404 nt!RtlAssert2+0x82
>     f789c890 80bcb644 80bcb16c 80bcb14c 00000404 nt!RtlAssert+0x18
>     f789c93c 80bcbd80 c0000001 00000000 8b0c5020 nt!PspExitThread+0x3dc
>     f789c960 80bcc315 8b0c5020 c0000001 f789c990 nt!PspTerminateThreadByPointer+0x88
>     f789c980 80ad4718 fffffffe c0000001 00000030 nt!NtTerminateThread+0xc3
>     f789c980 80a3c7e1 fffffffe c0000001 00000030 nt!KiFastCallEntry+0x158
>     f789ca0c 80abadc0 fffffffe c0000001 8b0c6468 nt!ZwTerminateThread+0x11
>     f789cd04 80abae30 80bcb16c 80bcb14c 00000404 nt!RtlAssert2+0xd6
>     f789cd20 80bcb644 80bcb16c 80bcb14c 00000404 nt!RtlAssert+0x18
>     f789cdcc 80bcbd80 c0000001 00000000 8b0c5020 nt!PspExitThread+0x3dc
>     f789cdf0 80bcc315 8b0c5020 c0000001 f789ce20 nt!PspTerminateThreadByPointer+0x88
>     f789ce10 80ad4718 fffffffe c0000001 00000030 nt!NtTerminateThread+0xc3
>     f789ce10 80a3c7e1 fffffffe c0000001 00000030 nt!KiFastCallEntry+0x158
>     f789ce9c 80abadc0 fffffffe c0000001 8b0c6468 nt!ZwTerminateThread+0x11
>     f789d194 80abae30 80bcb16c 80bcb14c 00000404 nt!RtlAssert2+0xd6
>     f789d1b0 80bcb644 80bcb16c 80bcb14c 00000404 nt!RtlAssert+0x18
>     f789d25c 80bcbd80 c0000001 00000000 8b0c5020 nt!PspExitThread+0x3dc
>     f789d280 80bcc315 8b0c5020 c0000001 f789d2b0 nt!PspTerminateThreadByPointer+0x88
>     f789d2a0 80ad4718 fffffffe c0000001 00000030 nt!NtTerminateThread+0xc3
>     f789d2a0 80a3c7e1 fffffffe c0000001 00000030 nt!KiFastCallEntry+0x158
>     f789d32c 80abadc0 fffffffe c0000001 8b0c6468 nt!ZwTerminateThread+0x11
>     f789d624 80abae30 80bcb16c 80bcb14c 00000404 nt!RtlAssert2+0xd6
>     f789d640 80bcb644 80bcb16c 80bcb14c 00000404 nt!RtlAssert+0x18
>     f789d6ec 80bcbd80 c0000001 00000000 8b0c5020 nt!PspExitThread+0x3dc
>     f789d710 80bcc315 8b0c5020 c0000001 f789d740 nt!PspTerminateThreadByPointer+0x88
>     f789d730 80ad4718 fffffffe c0000001 00000030 nt!NtTerminateThread+0xc3
>     f789d730 80a3c7e1 fffffffe c0000001 00000030 nt!KiFastCallEntry+0x158
>     f789d7bc 80abadc0 fffffffe c0000001 8b0c6468 nt!ZwTerminateThread+0x11
>     f789dab4 80abae30 80bcb16c 80bcb14c 00000404 nt!RtlAssert2+0xd6
>     f789dad0 80bcb644 80bcb16c 80bcb14c 00000404 nt!RtlAssert+0x18
>     f789db7c 80bcbd80 c0000001 00000000 8b0c5020 nt!PspExitThread+0x3dc
>     f789dba0 80bcc315 8b0c5020 c0000001 f789dbd0 nt!PspTerminateThreadByPointer+0x88
>     f789dbc0 80ad4718 fffffffe c0000001 00000030 nt!NtTerminateThread+0xc3
>     f789dbc0 80a3c7e1 fffffffe c0000001 00000030 nt!KiFastCallEntry+0x158
>     f789dc4c 80abadc0 fffffffe c0000001 00000000 nt!ZwTerminateThread+0x11
>     f789df44 80abae30 f75782b2 f7578286 00000dbe nt!RtlAssert2+0xd6
>     f789df60 f757852e f75782b2 f7578286 00000dbe nt!RtlAssert+0x18
>     f789e0a0 f75b865b 8b0d2d00 f789e0cc f789e0e0 ACPI!AcpiArbCrackPRT+0xe0
>     f789e0d4 f75c882d f75ae2a0 f789e0f0 f789e1a8 ACPI!AcpiArbAddAllocation+0x9f
>     f789e158 f75b7375 f75ae2a0 e19e6184 f75ae2a0 ACPI!ArbBootAllocation+0x17b
>     f789e16c f75c8d89 f75ae2a0 e19e6184 e19e6184 ACPI!AcpiArbBootAllocation+0x4b
>     f789e188 80b5d111 f75ae2a0 00000009 f789e1a8 ACPI!ArbArbiterHandler+0x1bd
>     f789e1c4 80b5e093 f789e1b8 00000000 80af1140 nt!IopBootAllocation+0xbb
>     f789e208 80b5e80b 00000004 e1a1c548 e1a04238 nt!IopAllocateBootResourcesInternal+0xc5
>     f789e228 80d24c8b 00000004 8b0d2d00 e1a04238 nt!IopAllocateBootResources+0x75
>     f789e24c 80b4753a 00000004 8b0d2d00 e1a04238 nt!IopReportBootResources+0x65
>     f789e27c 80b4db93 8b0881c8 80000240 00000001 nt!PiQueryAndAllocateBootResources+0x150
>     f789e36c 80b4e26d 8b0881c8 00000000 00000000 nt!PipProcessNewDeviceNode+0xc9d
>     f789e5c4 80a2cfb6 8b08ecc8 00000000 00000000 nt!PipProcessDevNodeTree+0x1bd
>     f789e608 80a2d2c1 00000000 00000000 800809e8 nt!PipDeviceActionWorker+0xc4
>     f789e620 80d23f53 00000000 00000006 00000000 nt!PipRequestDeviceAction+0x13b
>     f789e684 80d201f1 80085000 f789e6a0 00034000 nt!IopInitializeBootDrivers+0x39b
>     f789e830 80d1d940 80085000 00000000 8b0c5020 nt!IoInitSystem+0x82d
>     f789edac 80bc761c 80085000 00000000 00000000 nt!Phase1Initialization+0xb12
>     f789eddc 80ad9b52 80d1ce2e 80085000 00000000 nt!PspSystemThreadStartup+0x34
>     00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

>     STACK_COMMAND:  kb

>     FOLLOWUP_IP:
>     nt!PspExitThread+3dc
>     80bcb644 8b9edc010000    mov     ebx,dword ptr [esi+1DCh]

>     SYMBOL_STACK_INDEX:  d

>     SYMBOL_NAME:  nt!PspExitThread+3dc

>     FOLLOWUP_NAME:  MachineOwner

>     MODULE_NAME: nt

>     IMAGE_NAME:  ntkrnlmp.exe

>     DEBUG_FLR_IMAGE_TIMESTAMP:  4802b3ce

>     FAILURE_BUCKET_ID:  0x7f_8_nt!PspExitThread+3dc

>     BUCKET_ID:  0x7f_8_nt!PspExitThread+3dc

>     Followup: MachineOwner
>     ---------

>     0: kd> !pcitree
>     PciFdoExtensionListHead forward pointer is NULL, list is empty
>     0: kd> !pci
>     PCI Segment 0 Bus 0
>     00:0  1022:1450.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge  SubID:1849:1450
>     00:2  1022:1451.00  Cmd[0004:..b...]  Sts[0010:c....]  AMD Class:8:6:0  SubID:1022:1451
>     01:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     01:3  1022:1453.00  Cmd[0007:imb...]  Sts[0010:c....]  AMD PCI-PCI Bridge 0->0x3-0xa
>     02:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     03:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     03:1  1022:1453.00  Cmd[0007:imb...]  Sts[0010:c....]  AMD PCI-PCI Bridge 0->0xb-0xb
>     04:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     07:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     07:1  1022:1454.00  Cmd[0007:imb...]  Sts[0010:c....]  AMD PCI-PCI Bridge 0->0x11-0x11
>     08:0  1022:1452.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     08:1  1022:1454.00  Cmd[0007:imb...]  Sts[0010:c....]  AMD PCI-PCI Bridge 0->0x12-0x12
>     14:0  1022:790b.59  Cmd[0403:im....]  Sts[0220:.6...]  AMD SMBus Controller  SubID:1849:ffff
>     14:3  1022:790e.51  Cmd[000f:imb...]  Sts[0220:.6...]  AMD ISA Bridge  SubID:1849:ffff
>     18:0  1022:1460.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:1  1022:1461.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:2  1022:1462.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:3  1022:1463.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:4  1022:1464.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:5  1022:1465.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:6  1022:1466.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     18:7  1022:1467.00  Cmd[0000:......]  Sts[0000:.....]  AMD Host Bridge
>     0: kd> lm
>     start    end        module name
>     80100000 80127780   HAL1       (deferred)
>     80a02000 80d8e000   nt         (pdb symbols)          c:\symbols\ntkrnlmp.pdb\23BD599C4BEE49C0B7E2E3FD595D2ACB1\ntkrnlmp.pdb
>     f740c000 f742bb00   fltMgr     (deferred)
>     f742c000 f7441000   nvme       (deferred)
>     f7441000 f7458880   SCSIPORT   (deferred)
>     f7459000 f7470900   atapi      (deferred)
>     f7471000 f7496a00   dmio       (deferred)
>     f7497000 f74b5d80   ftdisk     (deferred)
>     f7556000 f7566a80   pci        (pdb symbols)          c:\symbols\pci.pdb\46927BAFB8E740B6B4BAC813675A82871\pci.pdb
>     f7567000 f75d5480   ACPI       (pdb symbols)          c:\symbols\acpi.pdb\F3A2E52867724F8EAB957EA99ABA93031\acpi.pdb
>     f75f7000 f7600300   isapnp     (deferred)
>     f7607000 f7611580   MountMgr   (deferred)
>     f7617000 f7624200   VolSnap    (deferred)
>     f7627000 f7637000   asahci32   (deferred)
>     f7637000 f763fe00   disk       (deferred)
>     f7647000 f7653180   CLASSPNP   (deferred)
>     f7707000 f770d180   PCIIDEX    (deferred)
>     f770f000 f7713d00   PartMgr    (deferred)
>     f782e000 f7844880   KSecDD     (deferred)
>     f7845000 f7856f00   sr         (deferred)
>     f7857000 f7897000   storport   (deferred)
>     f7897000 f789a000   BOOTVID    (deferred)
>     f795a000 f7986980   NDIS       (deferred)
>     f7987000 f7988b80   kdcom      (deferred)
>     f7989000 f798a100   WMILIB     (deferred)
>     f798b000 f798c700   dmload     (deferred)
>     f7a35000 f7a4eb80   Mup        (deferred)
>     f7a4f000 f7a4fd00   pciide     (deferred)
>     f7b52000 f7bde600   Ntfs       (deferred)
>     0: kd> !devnode 0 1
>     Dumping IopRootDeviceNode (= 0x8b08ecc8)
>     DevNode 0x8b08ecc8 for PDO 0x8b08ee10
>       InstancePath is "HTREE\ROOT\0"
>       State = DeviceNodeStarted (0x308)
>       Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08e898 for PDO 0x8b08e9f8
>         InstancePath is "Root\ACPI_HAL\0000"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>         DevNode 0x8b0e2358 for PDO 0x8b0e3830
>           InstancePath is "ACPI_HAL\PNP0C08\0"
>           ServiceName is "ACPI"
>           State = DeviceNodeStarted (0x308)
>           Previous State = DeviceNodeEnumerateCompletion (0x30d)
>           DevNode 0x8b0600c0 for PDO 0x8b0e86c8
>             InstancePath is "ACPI\PNP0A08\0"
>             ServiceName is "pci"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>           DevNode 0x8b0e8420 for PDO 0x8b0d45c8
>             InstancePath is "ACPI\PNP0C0C\aa"
>             State = DeviceNodeDriversAdded (0x303)
>             Previous State = DeviceNodeInitialized (0x302)
>           DevNode 0x8b0e82f0 for PDO 0x8b04b798
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_0"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b0caed8 for PDO 0x8b0c9670
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_1"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b0cada8 for PDO 0x8b091038
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_2"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b087678 for PDO 0x8b0d2620
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_3"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b087548 for PDO 0x8b04e4c0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_4"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b04b008 for PDO 0x8b0478a0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_5"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b04b190 for PDO 0x8b0625c0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_6"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b0ea280 for PDO 0x8b0624a0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_7"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b0ea150 for PDO 0x8b0ca418
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_8"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b0d2008 for PDO 0x8b0ca2f8
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\_9"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b0d2198 for PDO 0x8b0c9c88
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\10"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b0e2008 for PDO 0x8b0c9b68
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\11"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b0e21c0 for PDO 0x8b0d55b0
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\12"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b0e1008 for PDO 0x8b0d5490
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\13"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b0e11c0 for PDO 0x8b05ff18
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\14"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b088008 for PDO 0x8b05fdf8
>             InstancePath is "ACPI\AuthenticAMD_-_x86_Family_23_Model_1\15"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b0881c8 for PDO 0x8b0d2d00
>             InstancePath is "ACPI\AMDI0030\0"
>             State = DeviceNodeInitialized (0x302)
>             Previous State = DeviceNodeUninitialized (0x301)
>             Problem = CM_PROB_NOT_CONFIGURED
>           DevNode 0x8b05f008 for PDO 0x8b0d2be0
>             State = DeviceNodeUninitialized (0x301)
>             Previous State = Unknown State (0x0)
>           DevNode 0x8b05f278 for PDO 0x8b076218
>             State = DeviceNodeUninitialized (0x301)
>             Previous State = Unknown State (0x0)
>           DevNode 0x8b05f148 for PDO 0x8b0760f8
>             State = DeviceNodeUninitialized (0x301)
>             Previous State = Unknown State (0x0)
>           DevNode 0x8b046c68 for PDO 0x8b060220
>             State = DeviceNodeUninitialized (0x301)
>             Previous State = Unknown State (0x0)
>       DevNode 0x8b0e7db0 for PDO 0x8b0e7f10
>         InstancePath is "Root\dmio\0000"
>         ServiceName is "dmio"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e7b58 for PDO 0x8b0e7cb8
>         InstancePath is "Root\ftdisk\0000"
>         ServiceName is "ftdisk"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e7900 for PDO 0x8b0e7a60
>         InstancePath is "Root\LEGACY_ACPI\0000"
>         ServiceName is "ACPI"
>         State = DeviceNodeRemoved (0x312)
>         Previous State = DeviceNodeStarted (0x308)
>         Problem = CM_PROB_DEVICE_NOT_THERE
>       DevNode 0x8b0e76a8 for PDO 0x8b0e7808
>         InstancePath is "Root\LEGACY_AFD\0000"
>         ServiceName is "AFD"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e7418 for PDO 0x8b0e7578
>         InstancePath is "Root\LEGACY_AMPA\0000"
>         ServiceName is "ampa"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e71c0 for PDO 0x8b0e7320
>         InstancePath is "Root\LEGACY_ATAPI\0000"
>         ServiceName is "atapi"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08ded8 for PDO 0x8b08d038
>         InstancePath is "Root\LEGACY_BEEP\0000"
>         ServiceName is "Beep"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08dc38 for PDO 0x8b08dd98
>         InstancePath is "Root\LEGACY_DMBOOT\0000"
>         ServiceName is "dmboot"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08d9e0 for PDO 0x8b08db40
>         InstancePath is "Root\LEGACY_DMLOAD\0000"
>         ServiceName is "dmload"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08d788 for PDO 0x8b08d8e8
>         InstancePath is "Root\LEGACY_FIPS\0000"
>         ServiceName is "Fips"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08d4e0 for PDO 0x8b08d640
>         InstancePath is "Root\LEGACY_GPC\0000"
>         ServiceName is "Gpc"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08d288 for PDO 0x8b08d3e8
>         InstancePath is "Root\LEGACY_HTTP\0000"
>         ServiceName is "HTTP"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e6008 for PDO 0x8b08d190
>         InstancePath is "Root\LEGACY_IPNAT\0000"
>         ServiceName is "IpNat"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e6db0 for PDO 0x8b0e6f10
>         InstancePath is "Root\LEGACY_IPSEC\0000"
>         ServiceName is "IPSec"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e6b58 for PDO 0x8b0e6cb8
>         InstancePath is "Root\LEGACY_KSECDD\0000"
>         ServiceName is "ksecdd"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e6900 for PDO 0x8b0e6a60
>         InstancePath is "Root\LEGACY_MNMDD\0000"
>         ServiceName is "mnmdd"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e66a8 for PDO 0x8b0e6808
>         InstancePath is "Root\LEGACY_MOUNTMGR\0000"
>         ServiceName is "mountmgr"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e6450 for PDO 0x8b0e65b0
>         InstancePath is "Root\LEGACY_NDIS\0000"
>         ServiceName is "NDIS"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e61f8 for PDO 0x8b0e6358
>         InstancePath is "Root\LEGACY_NDISTAPI\0000"
>         ServiceName is "NdisTapi"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08ced8 for PDO 0x8b08c038
>         InstancePath is "Root\LEGACY_NDISUIO\0000"
>         ServiceName is "Ndisuio"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08cc80 for PDO 0x8b08cde0
>         InstancePath is "Root\LEGACY_NDPROXY\0000"
>         ServiceName is "NDProxy"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08ca28 for PDO 0x8b08cb88
>         InstancePath is "Root\LEGACY_NETBT\0000"
>         ServiceName is "NetBT"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08c7d0 for PDO 0x8b08c930
>         InstancePath is "Root\LEGACY_NULL\0000"
>         ServiceName is "Null"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08c578 for PDO 0x8b08c6d8
>         InstancePath is "Root\LEGACY_NVME\0000"
>         ServiceName is "nvme"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08c320 for PDO 0x8b08c480
>         InstancePath is "Root\LEGACY_PARTMGR\0000"
>         ServiceName is "PartMgr"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e5008 for PDO 0x8b08c228
>         InstancePath is "Root\LEGACY_PARVDM\0000"
>         ServiceName is "ParVdm"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e5db0 for PDO 0x8b0e5f10
>         InstancePath is "Root\LEGACY_PCIIDE\0000"
>         ServiceName is "PCIIde"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e5b58 for PDO 0x8b0e5cb8
>         InstancePath is "Root\LEGACY_RASACD\0000"
>         ServiceName is "RasAcd"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e5900 for PDO 0x8b0e5a60
>         InstancePath is "Root\LEGACY_RDPCDD\0000"
>         ServiceName is "RDPCDD"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e56a8 for PDO 0x8b0e5808
>         InstancePath is "Root\LEGACY_TCPIP\0000"
>         ServiceName is "Tcpip"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e5450 for PDO 0x8b0e55b0
>         InstancePath is "Root\LEGACY_VGASAVE\0000"
>         ServiceName is "VgaSave"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e51f8 for PDO 0x8b0e5358
>         InstancePath is "Root\LEGACY_VOLSNAP\0000"
>         ServiceName is "VolSnap"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08bed8 for PDO 0x8b08b038
>         InstancePath is "Root\LEGACY_WANARP\0000"
>         ServiceName is "Wanarp"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08bc80 for PDO 0x8b08bde0
>         InstancePath is "Root\MEDIA\MS_MMACM"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08ba28 for PDO 0x8b08bb88
>         InstancePath is "Root\MEDIA\MS_MMDRV"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08b7d0 for PDO 0x8b08b930
>         InstancePath is "Root\MEDIA\MS_MMMCI"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08b578 for PDO 0x8b08b6d8
>         InstancePath is "Root\MEDIA\MS_MMVCD"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08b320 for PDO 0x8b08b480
>         InstancePath is "Root\MEDIA\MS_MMVID"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e4008 for PDO 0x8b08b228
>         InstancePath is "Root\MS_L2TPMINIPORT\0000"
>         ServiceName is "Rasl2tp"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e4db0 for PDO 0x8b0e4f10
>         InstancePath is "Root\MS_NDISWANIP\0000"
>         ServiceName is "NdisWan"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e4b58 for PDO 0x8b0e4cb8
>         InstancePath is "Root\MS_PPPOEMINIPORT\0000"
>         ServiceName is "RasPppoe"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e4900 for PDO 0x8b0e4a60
>         InstancePath is "Root\MS_PPTPMINIPORT\0000"
>         ServiceName is "PptpMiniport"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e46a8 for PDO 0x8b0e4808
>         InstancePath is "Root\MS_PSCHEDMP\0000"
>         ServiceName is "PSched"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e4450 for PDO 0x8b0e45b0
>         InstancePath is "Root\MS_PSCHEDMP\0001"
>         ServiceName is "PSched"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e41f8 for PDO 0x8b0e4358
>         InstancePath is "Root\MS_PSCHEDMP\0002"
>         ServiceName is "PSched"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08aed8 for PDO 0x8b08a038
>         InstancePath is "Root\MS_PTIMINIPORT\0000"
>         ServiceName is "Raspti"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08ac80 for PDO 0x8b08ade0
>         InstancePath is "Root\PCI_HAL\0000"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08aa28 for PDO 0x8b08ab88
>         InstancePath is "Root\RDPDR\0000"
>         ServiceName is "rdpdr"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08a7d0 for PDO 0x8b08a930
>         InstancePath is "Root\RDP_KBD\0000"
>         ServiceName is "TermDD"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08a578 for PDO 0x8b08a6d8
>         InstancePath is "Root\RDP_MOU\0000"
>         ServiceName is "TermDD"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08a320 for PDO 0x8b08a480
>         InstancePath is "Root\SYSTEM\0000"
>         ServiceName is "swenum"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e3008 for PDO 0x8b08a228
>         InstancePath is "Root\SYSTEM\0001"
>         ServiceName is "update"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e3db0 for PDO 0x8b0e3f10
>         InstancePath is "Root\SYSTEM\0002"
>         ServiceName is "mssmbios"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)

>     0: kd> !AcpiArbCrackPRT+0xe0
>     No export AcpiArbCrackPRT+0xe0 found
>     0: kd> devnode !AcpiArbCrackPRT+0xe0
>     Couldn't resolve error at 'evnode !AcpiArbCrackPRT+0xe0'
>     0: kd> !devnode !AcpiArbCrackPRT+0xe0
>     DevNode 0xf757852e for PDO 0x5a850f02
>       Parent 0x8dffa44d   Sibling 0xff688d83   Child 0x83ffffff
>       InterfaceType 0xce8bd38a  Bus Number 0x15fff88b
>     Duplicate PDO 0xe8f75ae3  InstancePath is ""
>       ServiceName is ""
>       TargetDeviceNotify List - f 0xc0840004  b 0x006a1775
>       State = Unknown State (0x8d50a945)
>       Previous State = Unknown State (0x8d50a845)
>       StateHistory[19] = Unknown State (0xa7505a1)
>       StateHistory[18] = Unknown State (0x45f62050)
>       StateHistory[17] = Unknown State (0xff53ffff)
>       StateHistory[16] = Unknown State (0xff68b5ff)
>       StateHistory[15] = Unknown State (0xf75ae4b0)
>       StateHistory[14] = Unknown State (0xa1a475ff)
>       StateHistory[13] = Unknown State (0x50a1458d)
>       StateHistory[12] = Unknown State (0x96a016a)
>       StateHistory[11] = Unknown State (0x2a7501a9)
>       StateHistory[10] = Unknown State (0x7d803075)
>       StateHistory[09] = Unknown State (0x1a87d80)
>       StateHistory[08] = Unknown State (0x5af)
>       StateHistory[07] = Unknown State (0xe9c00002)
>       StateHistory[06] = Unknown State (0x25b80a7d)
>       StateHistory[05] = Unknown State (0xc0851057)
>       StateHistory[04] = Unknown State (0xff5650ff)
>       StateHistory[03] = Unknown State (0xffff6885)
>       StateHistory[02] = Unknown State (0x8d50a445)
>       StateHistory[01] = Unknown State (0x8d50a345)
>       StateHistory[00] = Unknown State (0x8d50ab45)
>       Flags (0x0fc33b8c)  DNF_HAL_NODE, DNF_REENUMERATE,
>                           DNF_BOOT_CONFIG_RESERVED, DNF_NO_RESOURCE_REQUIRED,
>                           DNF_RESOURCE_REQUIREMENTS_NEED_FILTERED, DNF_NON_STOPPED_REBALANCE,
>                           DNF_LEGACY_DRIVER, DNF_HAS_PROBLEM,
>                           DNF_DEVICE_GONE, DNF_LEGACY_RESOURCE_DEVICENODE,
>                           DNF_ASYNC_START_NOT_SUPPORTED, DNF_ASYNC_ENUMERATION_NOT_SUPPORTED,
>                           DNF_LOCKED_FOR_REBALANCE, DNF_UNINSTALLED,
>                           DNF_NO_LOWER_DEVICE_FILTERS, DNF_NO_LOWER_CLASS_FILTERS
>       UserFlags (0x00055c85)  DNUF_WILL_BE_REMOVED, DNUF_NEED_RESTART
>                               Unknown flags 0x00055c80
>       CapabilityFlags (0xfef19be8)  EjectSupported, DockDevice,
>                                     UniqueID, SilentInstall,
>                                     RawDeviceOK, SurpriseRemovalOK,
>                                     WakeFromD1, WakeFromD2,
>                                     NonDynamic, WarmEjectSupported
>                                     Unknown flags 0xfef00000
>       DisableableDepends = 1300496383 (from children)
>       Problem = Unknown problem (-1807354368)

#703 | infuscomus | ⇗ @diderius6 maybe try this flag in FACP table - MSI Not Supported (V4) : 0 set it to 1

#704

Mov AX, 0xDEAD

> Zitat von ⇗ infuscomus im Beitrag ¶ #700

> XP apparently supports negative IRQs?

No, only line based irqs

#705

diderius6

⇗ @infuscomus
I make a crazy try:
I delete nearly everything in DSDT,
compile and add this mini DSDT to Bios and flash.
Result:
No keyboard (even not in "Standard PC"), I cant go to Bios because no keyboard,
no mouse, no COM1, means no debugging, Standard PC XP SP3 works.
Acpi BSOD for Acpi Multiprocessor changes to
0x7B , which remembers me a lot at the behavior from Vista 32 bit on this Asrock B350 board.
So, the BSOD 0x7E 0xc0000005 seems to depend also(?) on DSDT
Dietmar
EDIT: Vista 32 bit setup shows : No Acpi compatible PC^^.
PS: Here is my mini DSDT:

>     /*
>      * Intel ACPI Component Architecture
>      * AML/ASL+ Disassembler version 20190405 (32-bit version)
>      * Copyright (c) 2000 - 2019 Intel Corporation
>      *
>      * Disassembling to symbolic ASL+ operators
>      *
>      * Disassembly of hackDSDT.raw, Fri Jun 07 09:09:50 2019
>      *
>      * Original Table Header:
>      *     Signature        "DSDT"
>      *     Length           0x00005CA1 (23713)
>      *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
>      *     Checksum         0x2D
>      *     OEM ID           "ALASKA"
>      *     OEM Table ID     "A M I "
>      *     OEM Revision     0x01072009 (17244169)
>      *     Compiler ID      "INTL"
>      *     Compiler Version 0x20190405 (538510341)
>      */
>     DefinitionBlock ("", "DSDT", 1, "ALASKA", "A M I ", 0x01072009)
>     {
>         External (APTS, MethodObj)    // 1 Arguments
>         External (AWAK, MethodObj)    // 1 Arguments

>         Name (ENTK, 0x87)
>         Name (EXTK, 0xAA)
>         Name (IO1B, 0x0280)
>         Name (IO1L, 0x10)
>         Name (IO2B, 0x0290)
>         Name (IO2L, 0x10)
>         Name (IO3B, 0x02A0)
>         Name (IO3L, 0x10)
>         Name (IO4B, 0x02B0)
>         Name (IO4L, 0x10)
>         Name (SP1O, 0x2E)
>         Name (IOES, Zero)
>         Name (PEBL, 0x04000000)
>         Name (ACPM, One)
>         Name (NBTS, 0x5000)
>         Name (CPVD, One)
>         Name (SMBB, 0x0B20)
>         Name (SMBL, 0x20)
>         Name (SMB0, 0x0B00)
>         Name (SMBM, 0x10)
>         Name (PMBS, 0x0800)
>         Name (PMLN, 0xA0)
>         Name (SMIO, 0xB2)
>         Name (GPBS, Zero)
>         Name (GPLN, Zero)
>         Name (APCB, 0xFEC00000)
>         Name (APCL, 0x1000)
>         Name (SPIB, 0xFEC10000)
>         Name (SPIL, 0x1000)
>         Name (HPTB, 0xFED00000)
>         Name (HPTL, 0x0400)
>         Name (WDTB, Zero)
>         Name (WDTL, Zero)
>         Name (GIOB, 0xFED81500)
>         Name (IOMB, 0xFED80D00)
>         Name (SSMB, 0xFED80200)
>         Name (CAFS, 0xBB)
>         Name (RXST, Zero)
>         Name (U3ST, Zero)
>         Name (UTDB, Zero)
>         Name (ASSB, Zero)
>         Name (AOTB, Zero)
>         Name (AAXB, Zero)
>         Name (PEHP, One)
>         Name (SHPC, Zero)
>         Name (PEPM, One)
>         Name (PEER, One)
>         Name (PECS, One)
>         Name (ITKE, Zero)
>         Name (PEBS, 0xF8000000)
>         Name (PELN, 0x04000000)
>         Name (SRSI, 0xB2)
>         Name (CSMI, 0x61)
>         Name (DSSP, Zero)
>         Name (FHPP, One)
>         Name (SMIA, 0xB2)
>         Name (SMIB, 0xB3)
>         Name (OFST, 0x35)
>         Name (TRST, 0x02)
>         Name (TCMF, Zero)
>         Name (TMF1, Zero)
>         Name (TMF2, Zero)
>         Name (TMF3, Zero)
>         Name (TTPF, One)
>         Name (DTPT, Zero)
>         Name (TTDP, Zero)
>         Name (TPMB, Ones)
>         Name (TPMC, Ones)
>         Name (TPMM, 0xFED40000)
>         Name (FTPM, Ones)
>         Name (PPIM, 0xFFFF0000)
>         Name (PPIL, 0xF0)
>         Name (AMDT, Zero)
>         Name (TPMF, Zero)
>         Name (PPIV, Zero)
>         Name (HIDK, "MSFT0001")
>         Name (HIDM, "MSFT0003")
>         Name (CIDK, 0x0303D041)
>         Name (CIDM, 0x030FD041)
>         Name (ATIS, 0xB0)
>         Name (MBEC, Zero)
>         Name (THPN, Zero)
>         Name (ALST, Zero)
>         Name (NBTP, 0xFEC30000)
>         Name (PICM, Zero)
>     }

## Page 48

#706 | infuscomus | ⇗ @diderius6 OK, So we start from scratch - then start adding things back into DSDT table until we run into either A5 or 7E BSOD?
#707 | diderius6 | ⇗ @infuscomus Yes, this would be possible, but no mood for this at the moment. I noticed, that the CPU definition went out from DSDT to SSDT. But as far as I understand, acpi.sys reads ONLY DSDT Dietmar

#708

diderius6

I make a new try.
I use the DSDT from the SABERTOOTH-990FX-R20-ASUS-2901.
It is a AM3+ XP friendly board.
In the DSDT the Hpet is handled correct and there are no Externals at all.
This DSDT I flash to Bios from Asrock B350 board.
Some things change, I think to better:
Vista 32 bit setup tells now: BSOD 0xA5 0x1000
which means:
0x1000 : ACPI_BIOS_USING_OS_MEMORY
ACPI had a fatal error when processing a memory operation region.
The memory operation region tried to map memory that has been
allocated for OS usage. The BSOD 0x7E 0xc0000005 happens with normal XP also,
meaning acpi.sys is writing and reading in system memory. Here is XP SP3 debug,
windbg with this DSDT:

>     Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
>     Copyright (c) Microsoft Corporation. All rights reserved.

>     Opened \\.\com1
>     Waiting to reconnect...
>     Connected to Windows XP 2600 x86 compatible target at (Mon Jun 10 01:26:40.187 2019 (UTC + 2:00)), ptr64 FALSE
>     Kernel Debugger connection established.
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Symbol search path is: C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386;SRV*c:\symbols
>     *⇗ http://msdl.microsoft.com/download/symbols;C:\symbols
>     Executable search path is: C:\localsymbols
>     Windows XP Kernel Version 2600 (Service Pack 3) MP (16 procs) Checked x86 compatible
>     Product: WinNt, suite: TerminalServer SingleUserTS
>     Built by: 2600.xpsp.080413-2133
>     Machine Name:
>     Kernel base = 0x80a02000 PsLoadedModuleList = 0x80af5708
>     Debug session time: Mon Jun 10 01:26:50.812 2019 (UTC + 2:00)
>     System Uptime: 0 days 0:00:03.421
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Mon Jun 10 01:26:42.015 2019 (UTC + 2:00): Break instruction exception - code 80000003 (first chance)

>     A fatal system error has occurred.
>     Debugger entered on first try; Bugcheck callbacks have not been invoked.

>     A fatal system error has occurred.

>     Connected to Windows XP 2600 x86 compatible target at (Mon Jun 10 01:26:42.093 2019 (UTC + 2:00)), ptr64 FALSE
>     Loading Kernel Symbols
>     ............................
>     Loading User Symbols
>     WARNING: Process directory table base DD5E0000 doesn't match CR3 00039000

>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     Use !analyze -v to get detailed debugging information.

>     BugCheck 7F, {8, f7787d70, 0, 0}

>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     Probably caused by : ntkrnlmp.exe ( nt!PspExitThread+3dc )

>     Followup: MachineOwner
>     ---------

>     nt!RtlpBreakWithStatusInstruction:
>     80ab9138 cc              int     3
>     15: kd> !analyze -v
>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     UNEXPECTED_KERNEL_MODE_TRAP (7f)
>     This means a trap occurred in kernel mode, and it's a trap of a kind
>     that the kernel isn't allowed to have/catch (bound trap) or that
>     is always instant death (double fault).  The first number in the
>     bugcheck params is the number of the trap (8 = double fault, etc)
>     Consult an Intel x86 family manual to learn more about what these
>     traps are. Here is a *portion* of those codes:
>     If kv shows a taskGate
>             use .tss on the part before the colon, then kv.
>     Else if kv shows a trapframe
>             use .trap on that value
>     Else
>             .trap on the appropriate frame will show where the trap was taken
>             (on x86, this will be the ebp that goes with the procedure KiTrap)
>     Endif
>     kb will then show the corrected stack.
>     Arguments:
>     Arg1: 00000008, EXCEPTION_DOUBLE_FAULT
>     Arg2: f7787d70
>     Arg3: 00000000
>     Arg4: 00000000

>     Debugging Details:
>     ------------------

>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0
>     *** No owner thread found for resource 80af15c0

>     BUGCHECK_STR:  0x7f_8

>     TSS:  00000028 -- (.tss 0x28)
>     eax=00000390 ebx=f789c2cc ecx=f789c2b8 edx=00000001 esi=f789c3e8 edi=00000078
>     eip=80acdf8a esp=f789befc ebp=f789c29c iopl=0         nv up di ng nz na pe nc
>     cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010086
>     nt!_SEH_prolog+0x1a:
>     80acdf8a 53              push    ebx
>     Resetting default scope

>     DEFAULT_BUCKET_ID:  DRIVER_FAULT

>     PROCESS_NAME:  System

>     LOCK_ADDRESS:  80af1640 -- (!locks 80af1640)
>     NTSDEXTS: Unable to resolve ntdll!RtlCriticalSectionList
>     NTSDEXTS: Please check your symbols

>     PNP_TRIAGE:
>     	Lock address  : 0x80af1640
>     	Thread Count  : 1
>     	Thread address: 0x8b0c5020
>     	Thread wait   : 0xd9

>     ASSERT_FILE_LOCATION:  d:\xpsp\base\ntos\mm\iosup.c at Line 6745

>     LAST_CONTROL_TRANSFER:  from 80a30d41 to 80ab9138

>     ASSERT_DATA:  (Pfn1->u3.e2.ReferenceCount != 0) || ((Pfn1->u3.e1.Rom == 1) && (CacheType == MmCached))

>     STACK_TEXT:
>     f778ad10 80a30d41 00000003 f778b06c 00000000 nt!RtlpBreakWithStatusInstruction
>     f778ad5c 80a319ac 00000003 00000000 00000000 nt!KiBugCheckDebugBreak+0x19
>     f778b13c 80ad6907 0000007f 00000008 f7787d70 nt!KeBugCheck2+0x574
>     f778b13c 80acdf8a 0000007f 00000008 f7787d70 nt!KiTrap08+0x48
>     f789c29c 80ad5349 f789c2b8 00000000 f789c30c nt!_SEH_prolog+0x1a
>     f789c304 80ad5b11 f789c394 80ac10a1 badb0d00 nt!CommonDispatchException+0x4d
>     f789c304 80ac10a2 f789c394 80ac10a1 badb0d00 nt!KiTrap03+0xb9
>     f789c394 80ac10ec 00000001 f789c3e8 00000078 nt!DebugService+0x1c
>     f789c3b0 80ab9243 f789c3d0 ffffffff 00000000 nt!DebugPrint+0x1c
>     f789c604 80ab93d8 80ab93b8 ffffffff 00000000 nt!vDbgPrintExWithPrefix+0x101
>     f789c620 80abad6c 80abac22 80abac1e 80bcb16c nt!DbgPrint+0x1a
>     f789c930 80abae30 80bcb16c 80bcb14c 00000404 nt!RtlAssert2+0x82
>     f789c94c 80bcb644 80bcb16c 80bcb14c 00000404 nt!RtlAssert+0x18
>     f789c9f8 80bcbd80 c0000001 00000000 8b0c5020 nt!PspExitThread+0x3dc
>     f789ca1c 80bcc315 8b0c5020 c0000001 f789ca4c nt!PspTerminateThreadByPointer+0x88
>     f789ca3c 80ad4718 fffffffe c0000001 00000030 nt!NtTerminateThread+0xc3
>     f789ca3c 80a3c7e1 fffffffe c0000001 00000030 nt!KiFastCallEntry+0x158
>     f789cac8 80abadc0 fffffffe c0000001 8b0c6468 nt!ZwTerminateThread+0x11
>     f789cdc0 80abae30 80bcb16c 80bcb14c 00000404 nt!RtlAssert2+0xd6
>     f789cddc 80bcb644 80bcb16c 80bcb14c 00000404 nt!RtlAssert+0x18
>     f789ce88 80bcbd80 c0000001 00000000 8b0c5020 nt!PspExitThread+0x3dc
>     f789ceac 80bcc315 8b0c5020 c0000001 f789cedc nt!PspTerminateThreadByPointer+0x88
>     f789cecc 80ad4718 fffffffe c0000001 00000030 nt!NtTerminateThread+0xc3
>     f789cecc 80a3c7e1 fffffffe c0000001 00000030 nt!KiFastCallEntry+0x158
>     f789cf58 80abadc0 fffffffe c0000001 8b0c6468 nt!ZwTerminateThread+0x11
>     f789d250 80abae30 80bcb16c 80bcb14c 00000404 nt!RtlAssert2+0xd6
>     f789d26c 80bcb644 80bcb16c 80bcb14c 00000404 nt!RtlAssert+0x18
>     f789d318 80bcbd80 c0000001 00000000 8b0c5020 nt!PspExitThread+0x3dc
>     f789d33c 80bcc315 8b0c5020 c0000001 f789d36c nt!PspTerminateThreadByPointer+0x88
>     f789d35c 80ad4718 fffffffe c0000001 00000030 nt!NtTerminateThread+0xc3
>     f789d35c 80a3c7e1 fffffffe c0000001 00000030 nt!KiFastCallEntry+0x158
>     f789d3e8 80abadc0 fffffffe c0000001 8b0c6468 nt!ZwTerminateThread+0x11
>     f789d6e0 80abae30 80bcb16c 80bcb14c 00000404 nt!RtlAssert2+0xd6
>     f789d6fc 80bcb644 80bcb16c 80bcb14c 00000404 nt!RtlAssert+0x18
>     f789d7a8 80bcbd80 c0000001 00000000 8b0c5020 nt!PspExitThread+0x3dc
>     f789d7cc 80bcc315 8b0c5020 c0000001 f789d7fc nt!PspTerminateThreadByPointer+0x88
>     f789d7ec 80ad4718 fffffffe c0000001 00000030 nt!NtTerminateThread+0xc3
>     f789d7ec 80a3c7e1 fffffffe c0000001 00000030 nt!KiFastCallEntry+0x158
>     f789d878 80abadc0 fffffffe c0000001 8b0c6468 nt!ZwTerminateThread+0x11
>     f789db70 80abae30 80bcb16c 80bcb14c 00000404 nt!RtlAssert2+0xd6
>     f789db8c 80bcb644 80bcb16c 80bcb14c 00000404 nt!RtlAssert+0x18
>     f789dc38 80bcbd80 c0000001 00000000 8b0c5020 nt!PspExitThread+0x3dc
>     f789dc5c 80bcc315 8b0c5020 c0000001 f789dc8c nt!PspTerminateThreadByPointer+0x88
>     f789dc7c 80ad4718 fffffffe c0000001 00000030 nt!NtTerminateThread+0xc3
>     f789dc7c 80a3c7e1 fffffffe c0000001 00000030 nt!KiFastCallEntry+0x158
>     f789dd08 80abadc0 fffffffe c0000001 f798f0a0 nt!ZwTerminateThread+0x11
>     f789e000 80abae30 80a4a5aa 80a4a58a 00001a59 nt!RtlAssert2+0xd6
>     f789e01c 80a4a9c0 80a4a5aa 80a4a58a 00001a59 nt!RtlAssert+0x18
>     f789e088 f758abb3 00e000a0 00000000 00001000 nt!MmMapIoSpace+0x24c
>     f789e0a8 f758c4be 00e000a0 00001000 8b07b5a0 ACPI!MapPhysMem+0x46
>     f789e0c8 f75919a5 8b0dc000 00e000a0 00001000 ACPI!MapUnmapPhysMem+0x5b
>     f789e0f8 f759895b 8b0dc000 8b0dded8 8b0dded8 ACPI!OpRegion+0x131
>     f789e114 f758d34c 8b0dc000 8b0dded8 00000000 ACPI!ParseTerm+0x1c1
>     f789e13c f7590551 00000000 4556414c 8b0dc000 ACPI!RunContext+0x124
>     f789e164 f7590778 8b0dc000 00000000 f75ad4a8 ACPI!InsertReadyQueue+0x15c
>     f789e184 f758f5aa 8b0dc000 00000000 80000000 ACPI!RestartContext+0xb5
>     f789e1bc f75831d6 8b0dc000 f77971d8 000000d8 ACPI!SyncLoadDDB+0xb1
>     f789e1e0 f75c5bf1 f77971d8 f789e1fc 00000012 ACPI!AMLILoadDDB+0x164
>     f789e200 f75c5f4f 00000012 8b0e41f0 80ad38c0 ACPI!ACPIInitializeDDB+0x75
>     f789e214 f75c667e 80102a40 f75ae1a0 80102940 ACPI!ACPIInitializeDDBs+0x8f
>     f789e22c f7576303 8b0877e0 8b087660 00000000 ACPI!ACPIInitialize+0x22e
>     f789e260 f75c17fc 8b0877e0 00000000 f75c16c6 ACPI!ACPIInitStartACPI+0x71
>     f789e28c f75718ea 8b0877e0 8b089200 8b0877e0 ACPI!ACPIRootIrpStartDevice+0x136
>     f789e2c0 80a21c1b 8b0877e0 8b0892f0 8b0877e0 ACPI!ACPIDispatchIrp+0x1a0
>     f789e2d8 80b4f526 f789e348 8b0e2358 8b0e35d8 nt!IopfCallDriver+0x51
>     f789e304 80b4f66e 8b0877e0 f789e324 00000000 nt!IopSynchronousCall+0xf0
>     f789e34c 80a2c0e9 8b0e35d8 00000001 00000000 nt!IopStartDevice+0x82
>     f789e368 80b4e2e8 8b0e35d8 00000000 00000000 nt!PipProcessStartPhase1+0x9f
>     f789e5c4 80a2cfb6 8b08ecc8 00000000 00000000 nt!PipProcessDevNodeTree+0x238
>     f789e608 80a2d2c1 00000000 00000000 800809e8 nt!PipDeviceActionWorker+0xc4
>     f789e620 80d23f53 00000000 00000006 00000000 nt!PipRequestDeviceAction+0x13b
>     f789e684 80d201f1 80085000 f789e6a0 00034000 nt!IopInitializeBootDrivers+0x39b
>     f789e830 80d1d940 80085000 00000000 8b0c5020 nt!IoInitSystem+0x82d
>     f789edac 80bc761c 80085000 00000000 00000000 nt!Phase1Initialization+0xb12
>     f789eddc 80ad9b52 80d1ce2e 80085000 00000000 nt!PspSystemThreadStartup+0x34

>     STACK_COMMAND:  kb

>     FOLLOWUP_IP:
>     nt!PspExitThread+3dc
>     80bcb644 8b9edc010000    mov     ebx,dword ptr [esi+1DCh]

>     SYMBOL_STACK_INDEX:  d

>     SYMBOL_NAME:  nt!PspExitThread+3dc

>     FOLLOWUP_NAME:  MachineOwner

>     MODULE_NAME: nt

>     IMAGE_NAME:  ntkrnlmp.exe

>     DEBUG_FLR_IMAGE_TIMESTAMP:  4802b3ce

>     FAILURE_BUCKET_ID:  0x7f_8_nt!PspExitThread+3dc

>     BUCKET_ID:  0x7f_8_nt!PspExitThread+3dc

>     Followup: MachineOwner
>     ---------

>     15: kd> !amli
>     Usage: amli <cmd> [arguments ...]
>     where <cmd> is one of the following:

>     Help                     - ? [<Cmd>]
>     Clear Breakpoints        - bc <bp list> | *
>     Disable Breakpoints      - bd <bp list> | *
>     Enable Breakpoints       - be <bp list> | *
>     List Breakpoints         - bl
>     Set Breakpoints          - bp <MethodName> | <CodeAddr> ...
>     Clear Event Log          - cl
>     Request entering debugger- debugger
>     Dump Heap                - dh [<Addr>]
>     Dump Event Log           - dl
>     Dump Name Space Object   - dns [[/s] [<NameStr> | <Addr>]]
>     Dump Data Object         - do <Addr>
>     Dump Stack               - ds [/v] [<Addr>]
>     Find NameSpace Object    - find <NameSeg>
>     List All Contexts        - lc
>     Display Nearest Method   - ln [<MethodName> | <CodeAddr>]
>     Display Context Info.    - r <Context>
>     Set Debugger Options     - set [traceon | traceoff] [nesttraceon | nesttraceoff] [spewon | spewoff]
>                                    [lbrkon | lbrkoff] [errbrkon | errbrkoff] [verboseon | verboseoff]
>                                    [logon | logoff] [logmuton | logmutoff]
>     Unassemble AML code      - u [<MethodName> | <CodeAddr>]

>     15: kd> !amli lc
>     *Ctxt=ffffffff8b0dc000, ThID=ffffffff8b0c5020, Flgs=----R----, pbOp=fffffffff7797957, Obj=<null>

>     15: kd> !amli ln
>     fffffffff7797957

#709

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #708

> I use the DSDT from the SABERTOOTH-990FX-R20-ASUS-2901.
> It is a AM3+ XP friendly board.
> In the DSDT the Hpet is handled correct and there are no Externals at all.
> This DSDT I flash to Bios from Asrock B350 board.

- dsdt is not very portable on modern plarforms because uses hardcoded mem ranges, bios fill memory with values, windows read acpi code and read these memory, this is communication os<->bios. For portability need similar platform/chipset.
- dsdt (body.bin) from bios filesystem is template (on intel platform), final state produced by bios before os loading
example of template in dsdt:

> Zitat

> Name (PNVB, 0xFFFF0000)
> Name (PNVL, 0xAA55)

final state:

> Zitat

> Name (PNVB, 0xCEF8D018) - dynamic adress filled by bios
> Name (PNVL, 0x022E)

#710

diderius6

⇗ @Mov AX, 0xDEAD
The problem is, to find any DSDT table from a compi with Ryzen platform,
which is XP friendly
Dietmar
PS: Do you think, it is possible to find out the hardcoded mem ranges of the Asrock fatal1ty ab350 gaming k4 board
and put them one by one into this DSDT table?
And I have another question: Do you think, that there exist a DSDT table for this Asrock board,
that starts XP with Acpi Multiprocessor mode? I mean, is it enough to edit DSDT table or is need to change other tables too?
For example I noticed, that the whole cpu definition now went out from DSDT to an SSDT table.
But as far as I know, acpi.sys looks ONLY at DSDT.

#711

diderius6

⇗ @Mov AX, 0xDEAD
I change in the DSDT table of the Sabertooth board
Name (PEBS, 0xE0000000) -> Name (PEBS, 0xF8000000)
Name (PEBL, 0x10000000) -> Name (PEBL, 0x04000000)
The values on the right site are from Asrock B350 board.
Most of the NAME (..,) are identic.
Are there some other importand values, which need to fit via DSDT Asrock -> DSDT Sabertooth
Dietmar
EDIT: I changed this values in DSDT but exact the same BSOD as before.

#712

diderius6

From the Acpi 1.b (1999) specification:
ACPI is by nature more portable across operating systems and processors. ACPIs
command methods allow very flexible implementations of particular features.
Taking this word by word, it should be even possible to use a DSDT table from an Intel board for any AMD board
Dietmar
PS: What I do not understand is the difference between DSDT and SSDT tables.
acpi.sys reads only DSDT. But from yesterday I know, that not only acpi.sys is reading DSDT, strange enough.
Who reads the other tables?

#713

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #712

> PS: What I do not understand is the difference between DSDT and SSDT tables.
> acpi.sys reads only DSDT. But from yesterday I know, that not only acpi.sys is reading DSDT, strange enough.
> Who reads the other tables?

mssmbios reads ssdt, facp and other
nvidia driver reads ssdt
acpi.sys do some magic with ssdt too:

> Zitat

> mov dword ptr [eax], 54445353h

#714

diderius6

Mov AX, 0xDEAD
"mssmbios reads ssdt"
is interesting, because the last module (lm) what is loaded before crash is always mssmbios
I can see it with windbg
Dietmar
PS: So, the real problem may be outside from DSDT!
acpi.sys do some magic with ssdt too:
mov dword ptr [eax], 54445353h
From where you know this? And can it help?
EDIT: Aha, I found with Ida Pro in acpi.sys from XP SP3 "mov dword ptr [eax], 54445353h" and in Winhex there is written that it is from SSDT, cool.
And there is another place with SSDT in acpi.sys too.
PAGE:00036973 cmp ecx, 54445353h
And also FACP, RSDT, XSDT, DSDT, SSDT.. oha, acpi.sys looks everywhere.

#715

diderius6

⇗ @infuscomus
Can you also load another FACP table with your grub2 method before XP boots
instead of the FACP table from Bios?
May this is importand, because Acpi can also crash because of information
in other tables
Dietmar
PS: A short tutorial how to use this grub2 method would be nice.

#716 | infuscomus | ⇗ @diderius6 I can load a FACP table before DSDT with grub2

#717

diderius6

Today is a good day,
because I succeed to repair my first Asrock B350 board with hardware killed Bios Chip Winbond 25Q128FWSQ.
I desolder the Bios chip with a hot air desolder gun at 500 degree Celsius. Crazy part, look very good for your fingers!
Then I clean the 8 solder pins on the board (for the new Bios socket) careful off all solder with a Copper desoldering wire.
Clean clean clean again with a STANNOL X32-10I flux and cleaning pen.
As you can see, then I solder a socket for this Bios chip into the board.
Not with the crazy Hot Air gun, just with small normal soldering iron with normal 0.5mm solder wire.
Then I test all 8 pins for contact, put my new and also new flashed Bios Chip from Winbond via Epromer "tl866ii plus" in socket.
When I change the Ryzen 1700 cpu from the other Asrock board to this one, the chip fell down and bent pins, brrr.
Ok, after 20 min repair of bent pins
I start compi new
and here you can see nice result
Dietmar
PS: The socket with the Bios Chip is the white quadrat right down in the corner.
⇗

#718 | infuscomus | nice!

#719

diderius6

⇗ @infuscomus
I would not recommend this procedure to everyone.
Many electronic devices I soldered years ago.
The white socket here has nearly zero sized legs but I found no better with fit into this board
Dietmar
PS: infuscomus, please write short Tutorial about grub2 and FACP load. Because even I can now easy put in and out the Bios chip,
the FACP table itself I cannot write direct to Bios, because I dont have the algoritmus for to put the changed FACP table back to Bios.

#720

infuscomus

⇗ @diderius6
I followed this guide to get AIO boot to prepare my USB drive
⇗ https://www.aioboot.com/en/how-to-use/
after i confirmed the drive was bootable I opened AIOcreator.exe on the USB drive - selected Integration tab, chose Windows XP, then pointed to my XP ISO
For ACPI
Copy the ACPI AML or DAT files to the root of the AIOboot USB drive
boot AIOboot USB drive
Press C to drop to grub2 command line
type desired commands
e.g.
acpi /facp.dat /dsdt.dat
Press ENTER
Press ESC to return to grub2 menu
Select Windows XP/2003 Setup
Select Windows XP Setup Boot Disk
XP Install as normal

## Page 49

#721

diderius6

⇗ @infuscomus
Thanks a lot!
Interesting, how XP decides, whether this is a Acpi friendly Bios or not.
Maybe, XP looks only in FACP for this.
Like on the Intel Asrock board I find out,
that XP writes also on the Asrock B350 ryzen board in the memory, which is reserved for the COM1 port,
even without Acpi
Dietmar

#722

infuscomus

⇗ @diderius6
I found on coreboot wiki
Windows XP or Server 2003 setup might fail with an error message such as:
"An unexpected error (805262864) occurred at line 1768 of d:\xpclient\base\boot\setup\arcdisp.c"
The value 805262864 varies, and is the physical address, in decimal, of one of the ACPI tables.
The error message is displayed when a 1024 dword page table array used by setupldr runs out of space.
This table is used for mapping various physical addresses, such as those of ACPI tables (a separate table identity maps the lower 16MB used by setupldr code and data). Setupldr only looks at ACPI tables (FACP) to determine make and model of the system. The make and model of the system is needed when setupldr scans the good/bad bios lists contained in txtsetup.sif. The good/bad bios lists are used to bypass installation of the ACPI enabled kernel on certain systems known to have ACPI problems. The code loop that scans the lists creates a new mapping each time it reads an ACPI table, and never frees mappings. The code uses FACP OEM ID to determine the system model. The code sequentially reads tables listed in the RSDT array until the FACP is found. Each read consumes one page table entry. If more that 4 tables precede the FACP in the RSDT array, the 1024 entry page table array will run out of space before the good/bad bios list processing completes.
BIOS can work around this Windows XP/Server 2003 limitation by placing the FACP early in the RSDT array.

#723 | diderius6 | ⇗ @infuscomus I just found this via windbg on new/old Asrock board:))! MAPIC - dumpFACS: Invalid Signature 0x00000000 != APIC_SIGNATURE (43495041) May be this is the only reason, why we have no Acpi on XP on the Asrock B350 ryzen board Dietmar

#724

diderius6

Be careful!!!
When you flash the Asrock B350 to the newest Bios Version 5.70,
you cant go back with normal Eflash via Bios on the Asrock 350 board:
There is written: Invalid file,
brrr..
Dietmar

#725 | infuscomus | ⇗ @diderius6 does your epromer still work around this?
#726 | diderius6 | ⇗ @infuscomus Yessssaaa, flash back to Bios version 3.30 lasts only 2 min because now Bios on socket Dietmar
#727 | diderius6 | When you use Bios 3.30 on the Asrock B350 board, XP SP3 boot from nvme device works. On Bios 5.40 and 5.70 boot from nvme device for XP SP3 gives BSOD Dietmar

#728

diderius6

This
MAPIC - dumpFACS: Invalid Signature 0x00000000 != APIC_SIGNATURE (43495041)
may be interesting.
"APIC" word in Hex is vice versa written 43 49 50 41.
With Bios 5.40 the !amli .. command shows everywhere Irq 2,
this is the Irq for the PIC model.
But all adresses for every Acpi device where filled with numbers, crash happens because Acpi in PIC mode does not work on a Multiprocessor System (needs Apic model).
So, in the DSDT table is the PIC model chosen on Bios 5.40.
On Bios 3.30 (with Apic model in FACP) nothing(?) is chosen in DSDT,
all ACPI devices are filled with 00000000 and all Irqs are 0
Dietmar

#729

diderius6

Does anybody know,
how to find the MADT table in Bios?
⇗ https://wiki.osdev.org/MADT
BIOS creates tables on boot
Table of contents (RSDT/XSDT), pointed to by RSDP
DSDT: AML bytecode and device tree
MADT: APIC table for SMP and interrupt routing
FADT: fixed features, superceded by DSDT in many cas
Dietmar

#730

diderius6

I am very happy, when somebody can explain this lines to me.
Does it mean, we can chose for ourselfes, if we use PIC or APIC method?
And if yes, how has APIC to be set here in which variable
Dietmar
PCI IRQ Routing (PIC vs. APIC mode)
If the _PIC control method is present, the _PRT method should return interrupt routing information based on the value _PIC was called with
Method(_PIC,1)
{
Store(Arg0, PICS)
}
Method(_PRT)
{
if (PICS)
{
}
else
{
}
}
_PIC(0) => PIC Mode
_PIC(1) => APIC Mode

#731 | infuscomus | ⇗ @diderius6 I'm sorry I'm not knowledgeable enough to be of much help for this Ask around on hackintosh forums, they do DSDT hacking, maybe they can help?

#732

diderius6

I start to understand.
In the DSDT table are for every device 2 entries.
One for APIC mode and one for PIC mode.
In the DSDT of the Asrock B350 board
Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
{
If (Arg0)
{
\_SB.DSPI ()
\_SB.PCI0.NAPE ()
DBG8 = 0xAA
}
Else
{
DBG8 = 0xAC
}
PICM = Arg0
}
When (from an unknown place set) Arg0=1, then APIC mode is enabled in DSDT, all devices use APIC.
Is Arg0=0 then the devices in DSDT table all use PIC mode.
This simple means, even without any ACPI, the DSDT and SSDT tables have to be read for to decide APIC or PIC mode.
This information is in Arg0.
Here if APIC mode, then set DBG8 = 0xAA
and for PIC mode DBG8 = 0xAC.
This variable DBG8 is not used in DSDT table, but seems to be needed at other place.
For APIC and for PIC mode, this information is now given via PICM = Arg0
to PICM, means APIC for PICM=1 , PIC for PICM=0
Dietmar
⇗ https://os.inf.tu-dresden.de/papers_ps/tr-atare-2009.pdf
⇗ https://uefi.org/sites/default/files/res..._2_A_Sept29.pdf

#733

infuscomus

⇗ @diderius6
I found old iasl compiler from 2005
and pdf
infuscomus has attached files to this post

- ⇗ iasl-win-20051117.zip
- ⇗ ACPICA-ProgRef.zip

#734

diderius6

Multiple APIC Description Table:
The Multiple APIC Description Table (APIC or MADT) is used on systems supporting the APIC to
describes the APIC implementation. Following the Multiple APIC Description Table is a
list of APIC structures that declare the APIC features of the machine.
This is from ACPI 1.b (XP).
Now it is clear: The Asrock fatal1ty ab350 gaming k4 does not support APIC
and because of this there is no MADT table.
But I think, ACPI for XP there is possible,
but needs a lot of handwork
Dietmar

#735

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #732

> Here if APIC mode, then set DBG8 = 0xAA
> and for PIC mode DBG8 = 0xAC.
> This variable DBG8 is not used in DSDT table, but seems to be needed at other place.

DBG8 is I/O Port 80 (port for POST codes from ancient times), you can skip any operations with it

> Zitat

>     OperationRegion (DEB0, SystemIO, 0x80, One)
>         Field (DEB0, ByteAcc, NoLock, Preserve)
>         {
>             DBG8,   8
>         }

> Zitat

> When (from an unknown place set) Arg0=1, then APIC mode is enabled in DSDT, all devices use APIC.
> Is Arg0=0 then the devices in DSDT table all use PIC mode.
> This simple means, even without any ACPI, the DSDT and SSDT tables have to be read for to decide APIC or PIC mode.
> This information is in Arg0.

see apci spec, method _pic() called by OS to inform bios about needed pic mode.
i think method called by HAL.dll, because we have variation of it (pic, apic, apci+apic, mp+*, ...)
in your case if xp want apic, first call _pic(1), then call DSPI(), NAPE()
dspi does some magic with 0x0c00 port (amd specific port ?)

## Page 50

#736

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #723

> MAPIC - dumpFACS: Invalid Signature 0x00000000 != APIC_SIGNATURE (43495041)

APIC table presented in xsdt list ? in rsdt list too ? table is really empty ?

#737

diderius6

Bug Description
I'm on a Ryzen 1800X and Biostar B350GT5 on bionic kubuntu.
There are lots of AMD-Vi logged events and I get irq crashes or acpi hangups with a 'normal' boot. I got it to boot by disabling IOMMU in the BIOS and adding "iommu=soft" to the kernel booting options in grub.
linux can then detect everything properly (all cores) and I've had zero crashes. The only issue is that it's using software IOMMU which could have a performance penalty because it has to copy all the data of some PCI devices to sub 4G regions.
Alternatively it boots with the kernel option "acpi=off" but only detects a single core/thread.

#738

diderius6

⇗ @Mov AX, 0xDEAD
The problem is,
that without acpi amli cant read correct the tables.
With rw-everything, even without ACPI and without APIC,
there is the MADT (APIC) table listened.
And because Win7 32 works with full Multiprocessor ACPI,
there must be an APIC list
but under XP it is impossible until now to read the APIC table.
I heard from GEODE and other embedded board manufactures,
who take a deep look in implementic the chipset local APIC for the B350 and B320,
that there may be errors between calling Level-triggered and Edge-triggered Irqs
Dietmar

#739

diderius6

1036 When IOMMU Interrupt Remapping Is Enabled the
Remapped TM (Trigger Mode) Bit Is Incorrectly Ignored
Description
When IOMMU interrupt remapping is enabled the remapped TM (trigger mode) bit in the IOMMU interrupt
remapping table entry is incorrectly ignored, and as a result all remapped interrupts will have TM=0 indicating
edge-triggered mode.
Potential Effect on System
Remapped interrupts with TM=1 indicating level-triggered mode will result in IO devices not receiving EOI
(end of interrupt).
Suggested Workaround
No workaround. Only use devices with edge-triggered interrupts.
Fix Planned
Yes

#740

diderius6

1043 IOMMU May Fail to Deliver an Interrupt or Incorrectly
Send an Interrupt to the Host OS
Description
IOMMU may fail to deliver an interrupt or incorrectly send an interrupt to the host OS under the following
conditions:
The vAPIC (Virtual Advanced Programmable Interrupt Controller) backing page is programmed in IRTE
(Interrupt Remapping Table Entry), and
GA (Guest Virtual APIC) mode is enabled.
Potential Effect on System
Unpredictable system behavior.
Suggested Workaround
System software may contain the workaround for this erratum.
Fix Planned
No fix planned

#741

diderius6

Bug Description
[Impact]
Gigabyte AM4 boards users cannot boot Ubuntu successfully.
Commit linux-gpio/fixes babdc22b0ccf4ef5a3075ce6e4afc26b7a279faf "pinctrl/amd: Use regular interrupt instead of chained" can fix the issue.
[Test Case]
All Gigabyte AM4 boards can reproduce the issue.
With the patch, the issue is resolved, per comment #170.
[Regression Potential]
Regression Potential is low. It limits to rather new AMD platform which has pinctrl-amd.
As the commit log says, use chained interrupt is not a good idea. Use regular interrupt is the correct way.
I also test the patch on an AMD laptop, where its touchpad depends on pinctrl-amd. No regression found.
Original bug report:
I'm trying to run ubuntu on Ryzen 1700x with Gigabyte GA-AB350-gaming-3 motherboard,
and it has a load of problems, starting with not being able to boot normally.
During normal boot, on 16.10 as well as 17.04 beta:
system doesn't boot normally, hangs with a lot of "unexpected irq trap at vector 07"
messages displayed.
Following advice from various places, I've tried:disable cpu freq governor and cpu handling in acpi settings
1. add "acpi=off" to boot params
That helps, allowing me to boot into recovery mode, though it leaves me with system seeing only one core, is really slow and still only boots in recovery mode.
2. Compile own kernel using 4.11.rc1 and disabling cpu freq governor and cpu handling in acpi settings. Boot with "quiet loglevel=3" option.
That gets me even further - system sees all cores now. Still only recovery mode though,
but its enough to get info for this bug report.
Some observed problems:
1. dmesg reports *a lot* of messages like this all the time:
[ 163.362068] ->handle_irq(): ffffffff87a7e090,
[ 163.362081] bad_chained_irq+0x0/0x40
[ 163.362089] ->handle_irq(): ffffffff87a7e090,
[ 163.362090] amd_gpio_irq_handler+0x0/0x200
[ 163.362090] ->irq_data.chip(): ffffffff88587e20,
[ 163.362090] ioapic_ir_chip+0x0/0x120
[ 163.362090] ->action(): ffffffff884601c0
[ 163.362091] IRQ_NOPROBE set
[ 163.362099] ->handle_irq(): ffffffff87a7e090,
[ 163.362099] amd_gpio_irq_handler+0x0/0x200
[ 163.362100] ->irq_data.chip(): ffffffff88587e20,
[ 163.362100] ioapic_ir_chip+0x0/0x120
[ 163.362101] ->action(): ffffffff884601c0
I've tried to redirect dmesg to a file, stopped after a short while, it generated 400M of those.
2. Systemd cannot start journald. Perhaps because it cannot cope with amount of kernel logs?
3. Looking at pci, I've noticed something called AMDI0040 (/sys/bus/acpi/devices/AMDI0040, path=_SB_.EMMC), among AMDI0010, AMDI0020, AMDI0030. Those however are mentioned in kernel source, kernel and google are completely silent about AMDI0040.
Phoronix tested ryzen using different motherboard, and it worked better (though not well),
so I suspect it is an issue with motherboard.
---
ApportVersion: 2.20.4-0ubuntu2
Architecture: amd64
DistroRelease: Ubuntu 17.04
InstallationDate: Installed on 2015-08-06 (581 days ago)
InstallationMedia: Kubuntu 15.10 "Wily Werewolf" - Alpha amd64 (20150728.1)
Package: linux (not installed)
ProcEnviron:
LANGUAGE=en_US:en
TERM=linux
PATH=(custom, no user)
LANG=en_US.UTF-8
SHELL=/bin/bash
Tags: zesty
Uname: Linux 4.11.0-rc1-custom x86_64
UnreportableReason: The running kernel is not an Ubuntu kernel
UpgradeStatus: Upgraded to zesty on 2017-03-03 (6 days ago)
UserGroups:
_MarkForUpload: True

#742

diderius6

Lukas Kahnert 2018-04-26 15:13:12 UTC
Created attachment 275599 [details]
Disassembled ACPI Table
I tried to get the touchscreen work for HP Envy x360(Ryzen 2500u) on current kernel and found out that the Interrupt for the GPIO driver get wrong detected and configured. Maybe a typical bug in the ACPI table from BIOS.
In ACPI Table the IRQ is defined as

    Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                        {
                            0x00000007,
                        }

but in dmesg it prints

    [    0.098531] ACPI: IRQ 7 override to edge, high

I just made a dirty hack to force "level, low" for this IRQ (and a change related to other bug) and the touchscreen works as expected.
But it needs a true fix in the hardware detection and configuration.

#743

diderius6

The device GPIO is also in the DSDT of the Asrock B350 board.
And there it comes together with AMDs own saying:
Only use devices with edge-triggered interrupts.

            Device (GPIO)
            {
                Name (_HID, "AMDI0030")  // _HID: Hardware ID
                Name (_CID, "AMDI0030")  // _CID: Compatible ID
                Name (_UID, Zero)  // _UID: Unique ID
                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    Name (RBUF, ResourceTemplate ()
                    {
                        Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                        {
                            0x00000007,
                        }
                        Memory32Fixed (ReadWrite,
                            0xFED81500,         // Address Base
                            0x00000400,         // Address Length
                            )
                    })
                    Return (RBUF) /* \_SB_.GPIO._CRS.RBUF */
                }

                Method (_STA, 0, NotSerialized)  // _STA: Status
                {
                    If ((TSOS >= 0x70))
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
            }

#744

diderius6

May be this will work and that's all :))

    {
                     Name (RBUF, ResourceTemplate ()
                     {
                          Interrupt (ResourceConsumer, Edge, ActiveHigh, Shared, ,, )
                         {
                             0x00000007,
                         }

Dietmar

#745

diderius6

I replace at 9 places (just all) in DSDT from Asrock B350
Level, ActiveLow, => Edge, ActiveHigh,
and flash Bios.
But the BSOD is still the same 0x7E 0xc0000005 after
*** Assertion failed: PciInterfacesInstantiated
*** Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3512
But I think, we are on the right way.
I disabled IOMMU in Bios 3.30.
The problems are in Irqs
Dietmar

#746

diderius6

Win7 32 bit starts with the changed Irqs as normal.
I make with rw-everything a read out of all ACPI tables from the Asrock board B350.
And, at the end of the APIC table you can find the entry

    Interrupt Source Override Structure
      Type	0x02 (2)
      Length	0x0A (10)
      Bus	0x00 (0) - ISA
      Source	IRQ9
      System Interrupt	0x00000009 (9)
      Flags	0x000F
      Polarity	0x03 - Active low
      Trigger Mode	0x03 - Level triggered

Dietmar
PS: But I do not know, how to change this table in Bios to Edge, ActiveHigh
diderius6 has attached files to this post

- ⇗ AcpiTbls.rar

#747

diderius6

I succeed to hack the APIC table,
so as wished with only Edge, ActiveHigh entries,
here for Irq 9.
Now, I look for somebody,
who can load this APIC (MADT) table up during boot of XP
Dietmar
EDIT: New file, checksum repaired.
diderius6 has attached files to this post

- ⇗ APICnewIRQ.rar

#748

diderius6

⇗ @infuscomus
Make a try with this FACP
Dietmar
diderius6 has attached files to this post

- ⇗ FACPhack3.rar

#749 | diderius6 | Can the MADT table be loaded with the Microsoft asl.exe tool (vers. 4 from 2009)? asl.exe /loadtable apic.aml Dietmar PS: You need to set the version of the table higher than before, if you want your new table loaded.
#750 | infuscomus | ⇗ @diderius6 I tried your APIC and FACP tables with grub2 instant restart, no BSOD

## Page 51

#751

diderius6

⇗ @infuscomus
Please try this new DSDT also.
I deleted all timers there and set all Irq to Edge ActiveHigh
Dietmar
PS: And make mix, 1 table, 2 tables, all 3 tables.
diderius6 has attached files to this post

- ⇗ DSDTnew.rar

#752

infuscomus

⇗ @diderius6
some tests
APIC only - instant restart
FACP only - 7E BSOD
DSDT only - arcdisp.c error - FACP must come before DSDT
FACP + DSDT - BSOD A5 0x02
APIC + any table - instant restart
edit:
Oh, you have 8 core processor right? I have 4 core - maybe your APIC is enabling processor cores i don't have
edit2:
maybe not
edited my own APIC, same result -instant restart

#753

diderius6

⇗ @infuscomus
Thanks a lot for testing!
May be, that the APIC table cant be loaded via this way
Dietmar
PS: Yes, the Ryzen 1700, which I have, has 8 cores, 16 threads.
Today I will test the Microsoft way for upload ACPI tables via
asl /loadtable dsdt.aml
For this, I change the versionsnumber of the table +1.
Also I will try 2 other AM4 processors on the Asrock B350 board
AM4 Athlon X4 950 (this one has no integrated graphik)
AM4 A8 A8-9600

#754

infuscomus

⇗ @diderius6
This may eventually work- grub2 is loading APIC table at least
I made this APIC table - It freezes on "Setup is Starting Windows"
infuscomus has attached files to this post

- ⇗ freeze-apic.zip

#755

diderius6

⇗ @infuscomus
I see,
that you use very old compiler.
Who knows..
I changed for you the IRQ mode there.
Compile it with the old compiler and try
Dietmar
diderius6 has attached files to this post

- ⇗ APIC2.rar

#756

diderius6

I loaded up all 3 new tables with the Microsoft tool asl.exe.
In each of the 3 tables tool asl.exe answeres, that table has correct
been overridden.
For me is the problem, that I cant prove this,
because rw-everything told always the same.
But may be rw-everything just cant read new tables.
Something changed to better:
windbg tells

    0: kd> !acpiirqarb
    ACPI IRQ Arbiter:  fffffffff75ae2a0   Extension: ffffffff8b04c0f8

    Link nodes in use:  (list head at 8b04c0f88b04c0f8 )

    IRQ Hash Table (at ffffffffe19fe890 ):
    0009  Count/temp: 00/01  Flags: (edge high)  TempFlags(edge high)

Dietmar

#757

diderius6

Nice news:
BSOD 0x7E 0xc0000005 is complete gone.
I think, the strange device ACPI\PNP0A08-0
now gives the new BSOD 0xA5 0x02
Dietmar
EDIT: May be, ACPI\PNP0A08-0 has something to do with PciExpress.

#758

infuscomus

⇗ @diderius6
I edited APIC a bit more, no more freeze or restart, but I'm back to BSOD A5 02 where I started.
infuscomus has attached files to this post

- ⇗ nofreezorrestart-apic.zip

#759

diderius6

I deleted
Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID
in DSDT, set -r4 for the reversnr of this DSDT table and overload DSDT table new with asl.exe.
Even the asl.exe told, that the DSDT table has been succesfull overridden,
no prove for this.
Now the line
*** Assertion failed: PciInterfacesInstantiated
*** Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3512
appears again in windbg
Dietmar

#760

diderius6

⇗ @infuscomus
Ok, I read whole "with new tables "Bios out.
The DSDT does not change at all,
so question remains, for what the Microsoft asl.exe is good..
Dietmar
EDIT: Oho, I make a mistake. The Bios tables are all as before.
BUT all the new ACPI tables are in some magic way stored in registry(!) of XP.
Until now, I do not find them there, but for sure they are, cool.

#761

diderius6

Here is the prove:
Registry without new tables gives via windbg

    ACPI IRQ Arbiter:  fffffffff75ae2a0   Extension: ffffffff8b0d3520
    Link nodes in use:  (list head at 8b0d35208b0d3520 )
    IRQ Hash Table (at ffffffffe19fe890 ):
    0009  Count/temp: 00/01  Flags: (level low)  TempFlags(level low)

And with new tables loaded via asl.exe in some magic way to registry (NOT(!) Bios)

    0: kd> !acpiirqarb
    ACPI IRQ Arbiter: fffffffff75ae2a0 Extension: ffffffff8b04c0f8
    Link nodes in use: (list head at 8b04c0f88b04c0f8 )
    IRQ Hash Table (at ffffffffe19fe890 ):
    0009 Count/temp: 00/01 Flags: (edge high) TempFlags(edge high)

Dietmar

#762 | infuscomus | ⇗ @diderius6 which one gives A5 0x02 BSOD?

#763

diderius6

⇗ @infuscomus
windbg told A5 0x02 BSOD because of
ACPI\PNP0A08-0
Only ACPI\PNP0A08 is listed in DSDT from the Asrock board,
it is in comment there written as PCIe device.
I take a look in the DSDT from the Am3+ Sabertooth board,
there this line with PNP0A08 does not exist.
And the AM3+ Sabertooth board DSDT is even on AM4 much more XP friendly
than the DSDT from Asrock B350
Dietmar

#764

infuscomus

⇗ @diderius6
XP Friendly
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A03") /* PCI Bus */) // _HID: Hardware ID
Name (_ADR, 0x00180000) // _ADR: Address
Method (^BN00, 0, NotSerialized)
{
Return (Zero)
}
Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number
{
Return (BN00 ())
}

#765

diderius6

⇗ @infuscomus
I can change with asl.exe from Microsoft ACPI tables
as much as I want.
I changed nearly everything, but always the message
*** Assertion failed: PciInterfacesInstantiated
*** Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3512
appears. The acpi.sys driver is loaded, is started
all seems ok but isnt
Dietmar
PS: I noticed, that the adress for the DSDT table in XP is a little bit different from Win7.
Apic table and FACP are identic in XP and Win7. In Win7 ACPI multiprocessor starts, in XP not.
Now I am sure, that the error is NOT in APIC or in FACP table.

## Page 52

#766 | diderius6 | May be the problem is, that there is no XP driver for the IOMMU device. Can the option "iommu=soft" also for XP be given in grub before boot? Dietmar

#767

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #765

> *** Assertion failed: PciInterfacesInstantiated
> *** Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3512

proper init PciInterfacesInstantiated variable is in AcpiArbInitializePciRouting()
AcpiArbInitializePciRouting() do IRP request to self (i mean acpi.sys)
some handler inside acpi.sys do jobs with this request and return "not zero"
not zero mean variable still be zero and we skip calling magic "call dword ptr [esi+8]"

#768

diderius6

⇗ @Mov AX, 0xDEAD
I think I understand idea for hack:
AcpiArbInitializePciRouting() gives a value 0 back, when all is ok.
And after some work in acpi.sys this work gives a value (starting from 0) not 0.
If this work gives 0, we got BSOD.
But I do not find function AcpiArbInitializePciRouting() and its result.
I can only hack the work in acpi.sys, that the message *** Assertion failed: PciInterfacesInstantiated
is killed,
but then I get again BSOD 0x7E 0xc0000005,
because edi is empty. So, the pointer AcpiArbCrackPRT (I also dont find this word in acpi.sys) is still called
FAULTING_IP:
ACPI!AcpiArbCrackPRT+113
f7578561 ff5710 call dword ptr [edi+10h]
I dont know, how to set the variable given from AcpiArbInitializePciRouting() always = 0
Dietmar
diderius6 has attached files to this post

- ⇗ DebugAcpisys.rar

#769 | infuscomus | ⇗ @diderius6 could the problem be in pci.sys? or is pci.sys never called?

#770

diderius6

⇗ @infuscomus
Where the real problem is lying in, I dont know, may be errors in Irq settings from chipset B350.
But may be, this can be hacked in acpi.sys.
At the moment I think about, how to change in acpi.sys the conditional jump
jnz loc_21568 => jmp loc_21568
This is not so easy as before, because this change means in HEX
0F 85 83 00 00 00 => ?? ?? ?? ?? ?? ??
Dietmar
PS: May be ?? ?? ?? ?? ?? ?? = EB 84 90 90 90 90

#771 | infuscomus | ⇗ @diderius6 where is jnz loc_21568? is it in AcpiArbInitializePciRouting?

#772

diderius6

⇗ @infuscomus
Look for Hex values in Debug Acpi.sys
02 0B C3 0F 85 83 00 00 00 80 3D
This is the right place I think, which we can hack.
The conditional jump has to become a forced jump
Dietmar

#773 | infuscomus | ⇗ @diderius6 in here? ⇗
#774 | diderius6 | ⇗ @infuscomus This looks complete other than with Ida Pro, but it is the place, which I mean Dietmar

#775

diderius6

⇗ @infuscomus
I change
02 0B C3 0F 85 83 00 00 00 80 3D =>
02 0B C3 E9 84 00 00 00 90 80 3D
now I test
Dietmar

#776

diderius6

First BSOD is gone, but now I get 0x7B, brrr
Dietmar

>     Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
>     Copyright (c) Microsoft Corporation. All rights reserved.

>     Opened \\.\com1
>     Waiting to reconnect...
>     Connected to Windows XP 2600 x86 compatible target at (Fri Jun 14 15:46:56.906 2019 (UTC + 2:00)), ptr64 FALSE
>     Kernel Debugger connection established.
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Symbol search path is: C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386;SRV*c:\symbols
>     *⇗ http://msdl.microsoft.com/download/symbols;C:\symbols
>     Executable search path is: C:\localsymbols
>     Windows XP Kernel Version 2600 MP (1 procs) Checked x86 compatible
>     Built by: 2600.xpsp.080413-2133
>     Machine Name:
>     Kernel base = 0x80a02000 PsLoadedModuleList = 0x80af5708
>     System Uptime: not available
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Fri
>      Jun 14 15:46:59.125 2019 (UTC + 2:00): MM: Loader/HAL memory block
>     indicates large pages cannot be used for 80A02000->80D8DFFF
>     Fri Jun 14 15:46:59.125 2019 (UTC + 2:00):
>     Fri
>      Jun 14 15:46:59.125 2019 (UTC + 2:00): MM: Loader/HAL memory block
>     indicates large pages cannot be used for 80100000->8012777F
>     Fri Jun 14 15:47:05.687 2019 (UTC + 2:00):
>     *** Assertion failed: IopInitHalResources == NULL
>     ***   Source File: d:\xpsp\base\ntos\io\pnpmgr\pnpinit.c, line 1455

>     Fri Jun 14 15:47:05.687 2019 (UTC + 2:00):
>     Fri
>      Jun 14 15:47:05.703 2019 (UTC + 2:00): Break repeatedly, break Once,
>     Ignore, terminate Process, or terminate Thread (boipt)? ii
>     ii

>     Fri Jun 14 15:47:05.703 2019 (UTC + 2:00):
>     Fri Jun 14 15:47:40.531 2019 (UTC + 2:00):
>     *** Assertion failed: IopInitReservedResourceList == NULL
>     ***   Source File: d:\xpsp\base\ntos\io\pnpmgr\pnpinit.c, line 1456

>     Fri Jun 14 15:47:40.531 2019 (UTC + 2:00):
>     Fri
>      Jun 14 15:47:40.546 2019 (UTC + 2:00): Break repeatedly, break Once,
>     Ignore, terminate Process, or terminate Thread (boipt)? i
>     i

>     Fri Jun 14 15:47:40.546 2019 (UTC + 2:00):
>     Fri Jun 14 15:47:43.812 2019 (UTC + 2:00):
>     *** Fatal System Error: 0x0000007b
>                            (0xF789E518,0xC0000034,0x00000000,0x00000000)

>     Fri Jun 14 15:47:43.843 2019 (UTC + 2:00): Break instruction exception - code 80000003 (first chance)

>     A fatal system error has occurred.
>     Debugger entered on first try; Bugcheck callbacks have not been invoked.

>     A fatal system error has occurred.

>     Connected to Windows XP 2600 x86 compatible target at (Fri Jun 14 15:47:43.984 2019 (UTC + 2:00)), ptr64 FALSE
>     Loading Kernel Symbols
>     ...........................
>     Loading User Symbols

>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     Use !analyze -v to get detailed debugging information.

>     BugCheck 7B, {f789e518, c0000034, 0, 0}

>     Probably caused by : ntkrnlmp.exe ( nt!IopMarkBootPartition+f5 )

>     Followup: MachineOwner
>     ---------

>     nt!RtlpBreakWithStatusInstruction:
>     80ab9138 cc              int     3
>     0: kd> !analyze -v
>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     INACCESSIBLE_BOOT_DEVICE (7b)
>     During the initialization of the I/O system, it is possible that the driver
>     for the boot device failed to initialize the device that the system is
>     attempting to boot from, or it is possible for the file system that is
>     supposed to read that device to either fail its initialization or to simply
>     not recognize the data on the boot device as a file system structure that
>     it recognizes.  In the former case, the argument (#1) is the address of a
>     Unicode string data structure that is the ARC name of the device from which
>     the boot was being attempted.  In the latter case, the argument (#1) is the
>     address of the device object that could not be mounted.
>     If this is the initial setup of the system, then this error can occur if
>     the system was installed on an unsupported disk or SCSI controller.  Note
>     that some controllers are supported only by drivers which are in the Windows
>     Driver Library (WDL) which requires the user to do a custom install.  See
>     the Windows Driver Library for more information.
>     This error can also be caused by the installation of a new SCSI adapter or
>     disk controller or repartitioning the disk with the system partition.  If
>     this is the case, on x86 systems the boot.ini file must be edited or on ARC
>     systems setup must be run.  See the "Advanced Server System Administrator's
>     User Guide" for information on changing boot.ini.
>     If the argument is a pointer to an ARC name string, then the format of the
>     first two (and in this case only) longwords will be:
>         USHORT Length;
>         USHORT MaximumLength;
>         PWSTR Buffer;
>     That is, the first longword will contain something like 00800020 where 20
>     is the actual length of the Unicode string, and the next longword will
>     contain the address of buffer.  This address will be in system space, so
>     the high order bit will be set.
>     If the argument is a pointer to a device object, then the format of the first
>     word will be:
>         USHORT Type;
>     That is, the first word will contain a 0003, where the Type code will ALWAYS
>     be 0003.
>     Note that this makes it immediately obvious whether the argument is a pointer
>     to an ARC name string or a device object, since a Unicode string can never
>     have an odd number of bytes, and a device object will always have a Type
>     code of 3.
>     Arguments:
>     Arg1: f789e518, Pointer to the device object or Unicode string of ARC name
>     Arg2: c0000034
>     Arg3: 00000000
>     Arg4: 00000000

>     Debugging Details:
>     ------------------

>     DEFAULT_BUCKET_ID:  DRIVER_FAULT

>     BUGCHECK_STR:  0x7B

>     PROCESS_NAME:  System

>     LAST_CONTROL_TRANSFER:  from 80a30d41 to 80ab9138

>     STACK_TEXT:
>     f789e080 80a30d41 00000003 f789e3dc 00000000 nt!RtlpBreakWithStatusInstruction
>     f789e0cc 80a319ac 00000003 80085000 e10171f8 nt!KiBugCheckDebugBreak+0x19
>     f789e4ac 80a31f3d 0000007b f789e518 c0000034 nt!KeBugCheck2+0x574
>     f789e4cc 80d1e863 0000007b f789e518 c0000034 nt!KeBugCheckEx+0x1b
>     f789e634 80d240f6 80085000 00000000 80085000 nt!IopMarkBootPartition+0xf5
>     f789e684 80d201f1 80085000 f789e6a0 00034000 nt!IopInitializeBootDrivers+0x53e
>     f789e830 80d1d940 80085000 00000000 8b0c5020 nt!IoInitSystem+0x82d
>     f789edac 80bc761c 80085000 00000000 00000000 nt!Phase1Initialization+0xb12
>     f789eddc 80ad9b52 80d1ce2e 80085000 00000000 nt!PspSystemThreadStartup+0x34
>     00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

>     STACK_COMMAND:  kb

>     FOLLOWUP_IP:
>     nt!IopMarkBootPartition+f5
>     80d1e863 8d85e0feffff    lea     eax,[ebp-120h]

>     SYMBOL_STACK_INDEX:  4

>     SYMBOL_NAME:  nt!IopMarkBootPartition+f5

>     FOLLOWUP_NAME:  MachineOwner

>     MODULE_NAME: nt

>     IMAGE_NAME:  ntkrnlmp.exe

>     DEBUG_FLR_IMAGE_TIMESTAMP:  4802b3ce

>     FAILURE_BUCKET_ID:  0x7B_nt!IopMarkBootPartition+f5

>     BUCKET_ID:  0x7B_nt!IopMarkBootPartition+f5

>     Followup: MachineOwner
>     ---------

>     0: kd> !acpiinf
>     Sorry: Unable to get ACPI!AcpiInformation.
>     dumpAcpiInformation: Could not read ACPI!AcpiInformation
>     0: kd> !lm
>     No export lm found
>     0: kd> lm
>     start    end        module name
>     80100000 80127780   HAL1       (deferred)
>     80a02000 80d8e000   nt         (pdb symbols)          c:\symbols\ntkrnlmp.pdb\23BD599C4BEE49C0B7E2E3FD595D2ACB1\ntkrnlmp.pdb
>     f7412000 f7428880   KSecDD     (deferred)
>     f7429000 f743af00   sr         (deferred)
>     f743b000 f745ab00   fltMgr     (deferred)
>     f745b000 f749b000   storport   (deferred)
>     f749b000 f74b0000   nvme       (deferred)
>     f74b0000 f74c7880   SCSIPORT   (deferred)
>     f74c8000 f74df900   atapi      (deferred)
>     f74e0000 f7505a00   dmio       (deferred)
>     f7506000 f7524d80   ftdisk     (deferred)
>     f75c5000 f75d5a80   pci        (deferred)
>     f75f7000 f7600300   isapnp     (deferred)
>     f7607000 f7611580   MountMgr   (deferred)
>     f7617000 f7624200   VolSnap    (deferred)
>     f7627000 f7637000   asahci32   (deferred)
>     f7637000 f763fe00   disk       (deferred)
>     f7647000 f7653180   CLASSPNP   (deferred)
>     f7707000 f770d180   PCIIDEX    (deferred)
>     f770f000 f7713d00   PartMgr    (deferred)
>     f7850000 f7869b80   Mup        (deferred)
>     f786a000 f7896980   NDIS       (deferred)
>     f7897000 f789a000   BOOTVID    (deferred)
>     f7987000 f7988b80   kdcom      (deferred)
>     f7989000 f798a100   WMILIB     (deferred)
>     f798b000 f798c700   dmload     (deferred)
>     f7a4f000 f7a4fd00   pciide     (deferred)
>     f7b52000 f7bde600   Ntfs       (deferred)
>     0: kd> !devnode 0 1
>     Dumping IopRootDeviceNode (= 0x8b08ecc8)
>     DevNode 0x8b08ecc8 for PDO 0x8b08ee10
>       InstancePath is "HTREE\ROOT\0"
>       State = DeviceNodeStarted (0x308)
>       Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08e8f0 for PDO 0x8b08ea50
>         InstancePath is "Root\ACPI_HAL\0000"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>         DevNode 0x8b0e2358 for PDO 0x8b0e3830
>           InstancePath is "ACPI_HAL\PNP0C08\0"
>           ServiceName is "ACPI"
>           State = DeviceNodeInitialized (0x302)
>           Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e7db0 for PDO 0x8b0e7f10
>         InstancePath is "Root\dmio\0000"
>         ServiceName is "dmio"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e7b58 for PDO 0x8b0e7cb8
>         InstancePath is "Root\ftdisk\0000"
>         ServiceName is "ftdisk"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e7900 for PDO 0x8b0e7a60
>         InstancePath is "Root\LEGACY_ACPI\0000"
>         ServiceName is "ACPI"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e76a8 for PDO 0x8b0e7808
>         InstancePath is "Root\LEGACY_AFD\0000"
>         ServiceName is "AFD"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e7450 for PDO 0x8b0e75b0
>         InstancePath is "Root\LEGACY_AMPA\0000"
>         ServiceName is "ampa"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e71f8 for PDO 0x8b0e7358
>         InstancePath is "Root\LEGACY_ATAPI\0000"
>         ServiceName is "atapi"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08d008 for PDO 0x8b0e70c0
>         InstancePath is "Root\LEGACY_BEEP\0000"
>         ServiceName is "Beep"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08dc88 for PDO 0x8b08dde8
>         InstancePath is "Root\LEGACY_DMBOOT\0000"
>         ServiceName is "dmboot"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08da30 for PDO 0x8b08db90
>         InstancePath is "Root\LEGACY_DMLOAD\0000"
>         ServiceName is "dmload"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08d7d8 for PDO 0x8b08d938
>         InstancePath is "Root\LEGACY_FIPS\0000"
>         ServiceName is "Fips"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08d530 for PDO 0x8b08d690
>         InstancePath is "Root\LEGACY_GPC\0000"
>         ServiceName is "Gpc"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08d2d8 for PDO 0x8b08d438
>         InstancePath is "Root\LEGACY_HTTP\0000"
>         ServiceName is "HTTP"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e6008 for PDO 0x8b08d1e0
>         InstancePath is "Root\LEGACY_IPNAT\0000"
>         ServiceName is "IpNat"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e6db0 for PDO 0x8b0e6f10
>         InstancePath is "Root\LEGACY_IPSEC\0000"
>         ServiceName is "IPSec"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e6b58 for PDO 0x8b0e6cb8
>         InstancePath is "Root\LEGACY_KSECDD\0000"
>         ServiceName is "ksecdd"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e6900 for PDO 0x8b0e6a60
>         InstancePath is "Root\LEGACY_MNMDD\0000"
>         ServiceName is "mnmdd"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e66a8 for PDO 0x8b0e6808
>         InstancePath is "Root\LEGACY_MOUNTMGR\0000"
>         ServiceName is "mountmgr"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e6450 for PDO 0x8b0e65b0
>         InstancePath is "Root\LEGACY_NDIS\0000"
>         ServiceName is "NDIS"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e61f8 for PDO 0x8b0e6358
>         InstancePath is "Root\LEGACY_NDISTAPI\0000"
>         ServiceName is "NdisTapi"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08ced8 for PDO 0x8b08c038
>         InstancePath is "Root\LEGACY_NDISUIO\0000"
>         ServiceName is "Ndisuio"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08cc80 for PDO 0x8b08cde0
>         InstancePath is "Root\LEGACY_NDPROXY\0000"
>         ServiceName is "NDProxy"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08ca28 for PDO 0x8b08cb88
>         InstancePath is "Root\LEGACY_NETBT\0000"
>         ServiceName is "NetBT"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08c7d0 for PDO 0x8b08c930
>         InstancePath is "Root\LEGACY_NULL\0000"
>         ServiceName is "Null"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08c578 for PDO 0x8b08c6d8
>         InstancePath is "Root\LEGACY_NVME\0000"
>         ServiceName is "nvme"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08c320 for PDO 0x8b08c480
>         InstancePath is "Root\LEGACY_PARTMGR\0000"
>         ServiceName is "PartMgr"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e5008 for PDO 0x8b08c228
>         InstancePath is "Root\LEGACY_PARVDM\0000"
>         ServiceName is "ParVdm"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e5db0 for PDO 0x8b0e5f10
>         InstancePath is "Root\LEGACY_PCIIDE\0000"
>         ServiceName is "PCIIde"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e5b58 for PDO 0x8b0e5cb8
>         InstancePath is "Root\LEGACY_RASACD\0000"
>         ServiceName is "RasAcd"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e5900 for PDO 0x8b0e5a60
>         InstancePath is "Root\LEGACY_RDPCDD\0000"
>         ServiceName is "RDPCDD"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e56a8 for PDO 0x8b0e5808
>         InstancePath is "Root\LEGACY_TCPIP\0000"
>         ServiceName is "Tcpip"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e5450 for PDO 0x8b0e55b0
>         InstancePath is "Root\LEGACY_VGASAVE\0000"
>         ServiceName is "VgaSave"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b0e51f8 for PDO 0x8b0e5358
>         InstancePath is "Root\LEGACY_VOLSNAP\0000"
>         ServiceName is "VolSnap"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08bed8 for PDO 0x8b08b038
>         InstancePath is "Root\LEGACY_WANARP\0000"
>         ServiceName is "Wanarp"
>         State = DeviceNodeStarted (0x308)
>         Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       DevNode 0x8b08bc80 for PDO 0x8b08bde0
>         InstancePath is "Root\MEDIA\MS_MMACM"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08ba28 for PDO 0x8b08bb88
>         InstancePath is "Root\MEDIA\MS_MMDRV"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08b7d0 for PDO 0x8b08b930
>         InstancePath is "Root\MEDIA\MS_MMMCI"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08b578 for PDO 0x8b08b6d8
>         InstancePath is "Root\MEDIA\MS_MMVCD"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08b320 for PDO 0x8b08b480
>         InstancePath is "Root\MEDIA\MS_MMVID"
>         ServiceName is "audstub"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e4008 for PDO 0x8b08b228
>         InstancePath is "Root\MS_L2TPMINIPORT\0000"
>         ServiceName is "Rasl2tp"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e4db0 for PDO 0x8b0e4f10
>         InstancePath is "Root\MS_NDISWANIP\0000"
>         ServiceName is "NdisWan"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e4b58 for PDO 0x8b0e4cb8
>         InstancePath is "Root\MS_PPPOEMINIPORT\0000"
>         ServiceName is "RasPppoe"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e4900 for PDO 0x8b0e4a60
>         InstancePath is "Root\MS_PPTPMINIPORT\0000"
>         ServiceName is "PptpMiniport"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e46a8 for PDO 0x8b0e4808
>         InstancePath is "Root\MS_PSCHEDMP\0000"
>         ServiceName is "PSched"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e4450 for PDO 0x8b0e45b0
>         InstancePath is "Root\MS_PSCHEDMP\0001"
>         ServiceName is "PSched"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e41f8 for PDO 0x8b0e4358
>         InstancePath is "Root\MS_PSCHEDMP\0002"
>         ServiceName is "PSched"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08aed8 for PDO 0x8b08a038
>         InstancePath is "Root\MS_PTIMINIPORT\0000"
>         ServiceName is "Raspti"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08ac80 for PDO 0x8b08ade0
>         InstancePath is "Root\PCI_HAL\0000"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08aa28 for PDO 0x8b08ab88
>         InstancePath is "Root\RDPDR\0000"
>         ServiceName is "rdpdr"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08a7d0 for PDO 0x8b08a930
>         InstancePath is "Root\RDP_KBD\0000"
>         ServiceName is "TermDD"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08a578 for PDO 0x8b08a6d8
>         InstancePath is "Root\RDP_MOU\0000"
>         ServiceName is "TermDD"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b08a320 for PDO 0x8b08a480
>         InstancePath is "Root\SYSTEM\0000"
>         ServiceName is "swenum"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e3008 for PDO 0x8b08a228
>         InstancePath is "Root\SYSTEM\0001"
>         ServiceName is "update"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e3db0 for PDO 0x8b0e3f10
>         InstancePath is "Root\SYSTEM\0002"
>         ServiceName is "mssmbios"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)
>       DevNode 0x8b0e16d0 for PDO 0x8b088390
>         InstancePath is "Root\*PNP0501\1_0_17_0_0_0"
>         ServiceName is "Serial"
>         State = DeviceNodeInitialized (0x302)
>         Previous State = DeviceNodeUninitialized (0x301)

#777 | infuscomus | ⇗ @diderius6 does uniata driver or amd sata 1.2.1.321 driver fix 7B BSOD?

#778

diderius6

⇗ @infuscomus, ⇗ @Mov AX, 0xDEAD
Yesssssssssssssssssssssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ,
I got it to work full XP SP3 ACPI Multiprocessor with Ryzen 1700 cpu
8 cpu cores, 16 Threads on the Asrock fatal1ty ab350 gaming k4 board
Dietmar
⇗

#779 | infuscomus | Awesome! can you help me to do the same?

#780

diderius6

⇗ @infuscomus
Yes, of course.
Few days ago, I take a look at the source code from Debug acpi.sys for XP SP3.
My problem there was, that I found 2 places for the messages, that windbg always
gives with
*** Assertion failed: PciInterfacesInstantiated
*** Source File: d:\xpsp\base\busdrv\acpi\driver\nt\irqarb.c, line 3512
But today in the morning I get message from ⇗ @Mov AX, 0xDEAD,
that the value 0 is stored only in 1 variable.
Rest is easy, tell XP that this is always 0
Dietmar
PS: I do not change anything in Bios. I do not load any extra Acpi table.
I only use my hacked acpi.sys (may be this can be done with the nondebug version of acpi.sys also)
and after your question about BSOD 0x7B I came to the idea to use my nvme device for boot,
thats all.
⇗
⇗
diderius6 has attached files to this post

- ⇗ acpi.rar

## Page 53

#781 | infuscomus | ⇗ @diderius6 I receive different 7E BSOD ⇗ are you sure you are running unmodified BIOS? I'm on unmodified 5.40 bios (has CreateQwordField)

#782

diderius6

⇗ @infuscomus
This message I know.
It depends on Bios settings.
Now I flash Bios 3.30 new,
for to make 100% sure,
that in Bios is nothing changed
Dietmar

#783

diderius6

⇗ @infuscomus
I flashed Bios 3.30 new
Acpi Multiprocessor works
Dietmar
PS: Now I try 5.40 with bridge Bios 3.40.
5.70 I do not use, because NO way back via Bios updater!!!

#784 | diderius6 | ⇗ @infuscomus Bios 3.40 works also. Now I try 5.40 Dietmar
#785 | infuscomus | ⇗ @diderius6 5.40 has CreateQwordField, so you might need to make a patch for ACPI 5048

#786

diderius6

⇗ @infuscomus
The problem is,
that nvme boot not works on Bios 5.40.
I try from normal harddisk
Dietmar
EDIT: From harddisk I get BSOD 0xA5 0x11,
this means Acpi cant be loaded,
so I need to look for to use my other acpi.sys drivers
Dietmar

#787 | infuscomus | ⇗ @diderius6 Can you patch non-debug XP or 2003 acpi.sys driver or would ACPI 5048 be the best driver?

#788

diderius6

⇗ @infuscomus
For me,
best work my own modified acpi.sys from XP SP3.
But until now, I do not succeed to find the new hackplace in this file,
because no names as in debugversion and identical Hexvalues are not there
Dietmar

#789 | diderius6 | ⇗ @infuscomus I get now Acpi Multiprocessor to work via normal harddisk at asm106x port. Bios I flash back for this to vers. 3.30 Dietmar PS: And how nice, irqs run up to 55.

#790

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #788

> @infuscomus
> For me,
> best work my own modified acpi.sys from XP SP3.
> But until now, I do not succeed to find the new hackplace in this file,
> because no names as in debugversion and identical Hexvalues are not there
> Dietmar

⇗ @diderius6
It's in AcpiArbCrackPRT correct?
Try Relyze disassembler, it shows names
⇗ https://www.relyze.com/download.html

#791 | infuscomus | ⇗ @diderius6 I think in ACPI 5048, using relyze, AcpiArbCrackPRT is func_0xDFEE
#792 | diderius6 | ⇗ @infuscomus This version of Relyze does not work under XP Dietmar
#793 | infuscomus | ⇗ @diderius6 do you have any PCs with newer windows to install Relyze disassembler onto?

#794

Mov AX, 0xDEAD

> Zitat von ⇗ infuscomus im Beitrag ¶ #790

> Try Relyze disassembler, it shows names

Names stored in PDB, without .pdb any disasm show only name of entry point

#795 | infuscomus | ⇗ @Mov AX, 0xDEAD well, for whatever reason, Relyze always seems to give me function names (except in acpi.sys 5048)

## Page 54

#796

diderius6

I have all the Symbols for acpi.sys
but Ida pro shows me no text, only for the debug version
Dietmar
EDIT: I put the acpi.pdb and the acpi.sys file in one folder
and force Ida Pro to use it, now I have text, as much as never before:))!
EDIT2: On the normal acpi.sys this hack seems not to work.
Dietmar

#797 | infuscomus | ⇗ @diderius6 There are lots of instances of _PciInterfacesInstantiated - do we need to jmp them all?

#798

diderius6

⇗ @infuscomus
Good question.
Very evil structurated is normal acpi.sys.
The debug version of acpi.sys is clear.
And also funny: Because I have had very small text, not the variable
has been written in code from Ida Pro but only naked Hex with some comments for Debug version.
Because I was used to read this, it was much easier for me than now with
the soso much text via acpi.pdb for the normal acpi.sys
Dietmar
diderius6 has attached files to this post

- ⇗ Neu Textdokument (10).rar

#799

infuscomus

⇗ @diderius6
I think in non-debug XP acpi.sys
0000BD20 C2 75 4A 8D 55 8B 52 8D 55 8C 52
C2 75 4A 8D 55 8B 52 8D 55 8C 52 =>
C2 EB 4A 8D 55 8B 52 8D 55 8C 52
or in 5048
0000D440 D2 0B C2 75 4A 8D 55 8B 52 8D
D2 0B C2 75 4A 8D 55 8B 52 8D =>
D2 0B C2 EB 4A 8D 55 8B 52 8D
what do you think?

#800

diderius6

⇗ @infuscomus
I am not sure about. I make 2 different tries, both fail.
Last try was with change on the normal (german) acpi.sys
02 00 75 06 53 E8 => 02 00 75 00 53 E8 and at the same time also
0B C1 74 1D 38 0D => 0B C1 74 00 38 0D
Until the structure of this acpi.sys is not clear, a lot of try and error
we will have
Dietmar

#801 | infuscomus | ⇗ @diderius6 can you upload AML of your working XP DSDT too for me to try?

#802

infuscomus

⇗ @diderius6
So I just got a 7B BSOD with this acpi.sys 5048 on BIOS 5.40 - without DSDT patch
can you confirm the same result on your AB350 gaming K4 on 5.40?
infuscomus has attached files to this post

- ⇗ jmpacpi.zip

#803

diderius6

⇗ @infuscomus
Here they are the Acpi tables, just fresh from running XP via acpidump, acpixtract
Dietmar
diderius6 has attached files to this post

- ⇗ acpitables.rar

#804

diderius6

⇗ @infuscomus
Waaaooohh,
on Bios 3.30 it boots from asm106x harddisk,
Dietmar
PS: Now I try Bios 5.40.
⇗
Bios 3.40 works.

#805 | infuscomus | ⇗ @diderius6 BIOS 3.40 or 5.40? any luck getting AMD SATA ports to work?
#806 | diderius6 | ⇗ @infuscomus ⇗ Nice, look at the Bios Version. So, this is until now the best acpi.sys for XP SP3 Dietmar
#807 | infuscomus | ⇗ @diderius6 excellent! for sata ASMedia asm106x - which driver version is best? p.s now we should also fix amd sata too

#808

diderius6

Very easy, the one I send to you!
diderius6 has attached files to this post

- ⇗ asmXPAHCI.rar

#809 | infuscomus | ⇗ @diderius6 upload driver here please edit: Thanks very much

#810

diderius6

⇗ @infuscomus
In Bios 5.40 the network card works without problems.
But no nvme boot possible, no nvme as codevice. Uni-Ata not works. Dont install this, always installs itself wrong new on reboot, brrr..
I tested all drivers from Uni-Ata. So we have to wait for next version.
In Bios 3.30 problem with network card, can be fixed in DSDT,
just look, what they changed for the network card in 5.40 Bios. Uni-Ata not tested.
In Bios 5.40 is a conflict between Hpet and the other clocks, can be solved, just look at the DSDT from the Sabertooth board.
In Bios 3.30 this conflict with Hpet cant be seen, but I think it is there also.
When Standard PC changes to ACPI Multiprocessor, all
devices have to be recogniced new, because we change from PIC to APIC model.
When problems appear, just go via safe mode F8
or use windbg for to see, what is going on
Dietmar

## Page 55

#811 | infuscomus | ⇗ @diderius6 can you run a debug session with uniata debug version to try and find the problem? ⇗ http://alter.org.ua/soft/win/uni_ata/BusMaster_v47a_Dbg.rar
#812 | diderius6 | ⇗ @infuscomus On Bios 5.40 this uniata version was a fail. But now I try on Bios 3.30 Dietmar

#813

diderius6

⇗ @infuscomus
First I get now message
*** Assertion failed: KeGetCurrentIrql() == PASSIVE_LEVEL
*** Source File: d:\xpsp\base\ntos\mm\sysload.c, line 7480
This I have never seen before. It does not crash the compi.
I think it has to with the Irqs, how we call them
Dietmar

#814 | infuscomus | ⇗ @diderius6 so the uniata driver can not allocate an IRQ? p.s I test with last official amd_sata 1.2.1.321 for XP/2k3 - 7B BSOD

#815

diderius6

⇗ @infuscomus
I tested everything,
in Bios 5.40 the Uni-Ata driver
does not work
Dietmar
diderius6 has attached files to this post

- ⇗ Neu Textdokument (11).rar

#816 | infuscomus | ⇗ @diderius6 can you try force enabling registry hack? ⇗ http://alter.org.ua/soft/win/uni_ata/registry.php

#817

diderius6

⇗ @infuscomus
As you can see,
the driver uniata is loaded but does not start
Dietmar
PS: This is Bios 3.30
diderius6 has attached files to this post

- ⇗ uniataBios330.rar

#818 | infuscomus | ⇗ @diderius6 I think force GeomType = 0x00000002 in registry in debug log GeomType = 0xffffffff is hidden
#819 | diderius6 | ⇗ @infuscomus Uni-ata driver crashes whole XP installation, brrr.. ok, I am going to install XP with acpi.sys 5048 new Dietmar

#820

diderius6

I install XP fresh on the Asrock B350 board.
All is ok, survives reboot.
Only when loaded hacked acpi.sys XP cries,
file wrong..
hit "esc" and continue
Dietmar
⇗

#821

infuscomus

⇗ @diderius6
I ran into the same error of XP saying acpi.sys is wrong in a VM
I fixed checksum, OK now
remember to replace acpi.sys in driver.cab file as well
infuscomus has attached files to this post

- ⇗ jmpacpi checksum fixed.zip

#822

diderius6

⇗ @infuscomus
Yes, this I just notice:
Crazy XP changed acpi.sys back to original version on last boot,
I hope that this is last time that I see BSOD 0x7E 0xc0000005 ^^
Dietmar
EDIT: Voila, there is XP SP3 with "ACPI Multiprocessor" fresh after direct installation on the Asrock B350 board.
⇗

#823 | diderius6 | Problem with network card and HPET timer is still there. Now I make a try to upload the DSDT from 5.40 Bios with asl.exe direct to registry and we will see Dietmar
#824 | infuscomus | ⇗ @diderius6 you got the 7E BSOD because there is a backup copy of acpi.sys stored in driver.cab that setup ended up copying over

#825

diderius6

⇗ @infuscomus
Yes.
The DSDT (now vers. 3 from Bios 5.40) table upload with asl.exe works:
On next boot I got BSOD 0xA5 0x11,
even I use acpi.sys 5048 modmod version
Dietmar
PS: So, I installed also again "Standard PC",
noticed, that network card there works fantastic, looks in dsdt table from 5.40 Bios.
Then I delete the DSDT table via boot to "Standard PC"
asl /loadtable -d dsdt.aml
and on next boot all is as before,
meaning no BSOD and problem with network card^^.

## Page 56

#826 | infuscomus | ⇗ @diderius6 what error code does network card show?

#827

diderius6

⇗ @infuscomus
No error code at all.
In device manager all is ok, but on task bar yellow exclamationmark.
I got very slow internetconnection, but get.
When I change this card against T-Link Pcie card,
this one works.
So, it depends on DSDT of the Asrockboard or maybe Bios settings.
Until now, I do not find the device name of the Realtek RTL8111GR
in the Asrock B350 board
any one an idea, how this device can be named in DSDT?
I compare DSDT from Bios 3.30 with DSDT from Bios 5.40 but the device for lan I do not find.
I look for nic, lan, eth,..
nothing
Dietmar
EDIT: In Bios I found one place with name Broadcom in it. I extract both from Bios 5.40 and from Bios 3.30. A compare with Winhex shows 100% identic.
Other users with the Asrock B350 board write about the same problem. With Bios 5.40 this is gone, I think via DSDT.
EDIT2: I found the reason for slow Internet: The networkcard has the same Irq 32 as the USB 3.1 hostcontroller
in Bios 3.30.
EDIT3: The TP-Link network card also shares Irq 32 and works good.
So, Irq sharing is not the reason for not work correkt of the RT card.

#828 | infuscomus | ⇗ @diderius6 now that we have working acpi.sys for XP on AMD Ryzen, is there a possibility of also achieving a working storahci.sys?
#829 | diderius6 | ⇗ @infuscomus There exists an AMD driver for the AMD ahci drive. This needs to be hacked for to work under XP also Dietmar
#830 | infuscomus | ⇗ @diderius6 which driver are you referring to?
#831 | diderius6 | ⇗ @infuscomus On the Fernando site, as far as I remember, there was only one unsolved dependency to XP Dietmar
#832 | infuscomus | ⇗ @diderius6 there are several versions of AMD driver, which version?
#833 | infuscomus | ⇗ @diderius6 storahci.sys has no missing dependencies, but it gives a different BSOD
#834 | diderius6 | I think, it is not for harddisk Dietmar

#835

infuscomus

⇗ @diderius6
I attach debug versions of storahci and storport - can you load driver and debug?
infuscomus has attached files to this post

- ⇗ storahci debug.zip

#836 | diderius6 | ⇗ @infuscomus Both files have unsolved dependencies to ntoskrnl.exe Dietmar
#837 | infuscomus | ⇗ @diderius6 only 1 missing storahci.sys - depends on storport.sys only storport.sys - missing KeTestSpinLock found in Server 2003 checked ntoskrnl.exe
#838 | infuscomus | ⇗ @diderius6 normal non-debug storahci.sys gives 7E BSOD
#839 | infuscomus | ⇗ @diderius6 are you able to debug why nvme driver fails on BIOS 5.40? maybe it's related to why ahci fails?

#840

diderius6

⇗ @infuscomus
I read, that edge Interrups are better than level Interrupts. AMD wrote the same about Ryzen.
But then I found this:
"
Consider the scenario where an interrupt IS shared by two devices with the following scenario:
Device 1 requests service.
The processor starts serving device 1.
Device 2 requests service.
Device 1 no longer requests service.
The processor finishes serving device 1.
The processor starts serving device 2.
Here device 1 will assert an interrupt request in step 1. It de-asserts that request in step 5, but the request remains asserted due to step 3.
Now in step 6, if level triggered requests are used, the processor will service the other device since the request level is still asserted. With edge triggered requests, nothing will happen because there will be no new "edge" to be detected. The request remained asserted throughout the scenario. This is a failure of the interrupt system.
This is why only level triggered interrupts, in general. may be shared.
"
Dietmar

## Page 57

#841 | infuscomus | ⇗ @diderius6 how do we fix this?

#842

diderius6

⇗ @infuscomus
The handle of Irqs is a problem of the B350 chipset. I think other AM4 boards too, because no normal XP there.
Only because of that we needed the new hack in acpi.sys.
Now I make a check by check, at which places windbg tells, that there is a problem with Irq.
Hm, how to make windbg search especially for this kind of errors, dont know,
I try.
At the moment we have no DEBUG acpi.sys,
which overcomes the BSODs 0xA5 together with 0x11, 0x02..
like acpi.sys 5048 modmod, last from you
Dietmar

#843

diderius6

⇗ @infuscomus
First message from windbg about Irqs
*** Assertion failed: KeGetCurrentIrql() == PASSIVE_LEVEL
*** Source File: d:\xpsp\base\ntos\mm\sysload.c, line 7480
Dietmar
EDIT: "The documentation clearly says: This routine can only be called at IRQL
= PASSIVE_LEVEL.
Interrupts are disabled. This is the *equivalent* of running at IRQL
HIGH_LEVEL, without that nasty TPR programming."
sysload.c is in halmacpi.dll but the message may be in ntkrnlmp.exe or in acpi.sys (all debug versions) also.
⇗ https://sysinternals.d4rk4.ru/Informatio...SourceTree.html
'KeGetCurrentIrql() == PASSIVE_LEVEL',0 is in acpi.sys (debug version)
But I think, this message comes not from acpi.sys because in acpi.sys is written

    loc_34D12: ; CODE XREF: .text:00034CF7 j
    .text:00034D12                 inc     dword_56D34
    .text:00034D18                 call    ds:KeGetCurrentIrql
    .text:00034D1E                 test    al, al
    .text:00034D20                 jz      short loc_34D39
    .text:00034D22                 push    0
    .text:00034D24                 push    419h
    .text:00034D29                 push    offset asc_4B070 ; "d:\\xpsp\\base\\busdrv\\acpi\\driver\\amlinew"...
    .text:00034D2E                 push    offset aKegetcurren_19 ; "KeGetCurrentIrql() == PASSIVE_LEVEL"
    .text:00034D33                 call    ds:__imp_RtlAssert

EDIT2: This message comes from ntkrnlmp.exe, found it with Ida Pro

>     PAGE:005884F8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
>     PAGE:005884F8
>     PAGE:005884F8 ; Attributes: bp-based frame
>     PAGE:005884F8
>     PAGE:005884F8 ; PVOID __stdcall MmGetSystemRoutineAddress@4(PUNICODE_STRING SystemRoutineName)
>     PAGE:005884F8                 public _MmGetSystemRoutineAddress@4
>     PAGE:005884F8 _MmGetSystemRoutineAddress@4 proc near
>     PAGE:005884F8
>     PAGE:005884F8 var_20          = dword ptr -20h
>     PAGE:005884F8 var_18          = dword ptr -18h
>     PAGE:005884F8 var_10          = dword ptr -10h
>     PAGE:005884F8 var_8           = dword ptr -8
>     PAGE:005884F8 var_4           = dword ptr -4
>     PAGE:005884F8 SystemRoutineName= dword ptr  4
>     PAGE:005884F8 arg_4           = dword ptr  8
>     PAGE:005884F8
>     PAGE:005884F8                 mov     edi, edi
>     PAGE:005884FA                 push    ebp
>     PAGE:005884FB                 mov     ebp, esp
>     PAGE:005884FD                 sub     esp, 20h
>     PAGE:00588500                 push    ebx
>     PAGE:00588501                 push    esi
>     PAGE:00588502                 push    edi
>     PAGE:00588503                 call    ds:__imp__KeGetCurrentIrql@0 ; __declspec(dllimport) KeGetCurrentIrql()
>     PAGE:00588509                 xor     esi, esi
>     PAGE:0058850B                 test    al, al
>     PAGE:0058850D                 jz      short loc_588524
>     PAGE:0058850F                 push    esi
>     PAGE:00588510                 push    1D38h
>     PAGE:00588515                 push    offset asc_5883F4 ; "d:\\xpsp\\base\\ntos\\mm\\sysload.c"
>     PAGE:0058851A                 push    offset aKegetcurren_50 ; "KeGetCurrentIrql() == PASSIVE_LEVEL"
>     PAGE:0058851F                 call    _RtlAssert@16   ; RtlAssert(x,x,x,x)
>     PAGE:00588524

>     PAGE:00588524 loc_588524: ; CODE XREF: MmGetSystemRoutineAddress(x)+15 j
>     PAGE:00588524                 push    offset off_588438
>     PAGE:00588529                 lea     eax, [ebp+var_18]
>     PAGE:0058852C                 push    eax
>     PAGE:0058852D                 mov     [ebp+var_4], esi
>     PAGE:00588530                 mov     [ebp+var_8], esi
>     PAGE:00588533                 call    _RtlInitUnicodeString@8 ; RtlInitUnicodeString(x,x)
>     PAGE:00588538                 push    offset off_588454
>     PAGE:0058853D                 lea     eax, [ebp+var_20]
>     PAGE:00588540                 push    eax
>     PAGE:00588541                 call    _RtlInitUnicodeString@8 ; RtlInitUnicodeString(x,x)
>     PAGE:00588546                 jmp     short loc_588554
>     PAGE:00588548 ; ---------------------------------------------------------------------------
>     PAGE:00588548

>     PAGE:00588548 loc_588548: ; CODE XREF: MmGetSystemRoutineAddress(x)+6C j
>     PAGE:00588548                 push    offset _MmShortTime
>     PAGE:0058854D                 push    esi
>     PAGE:0058854E                 push    esi
>     PAGE:0058854F                 call    _KeDelayExecutionThread@12 ; KeDelayExecutionThread(x,x,x)
>     PAGE:00588554

>     PAGE:00588554 loc_588554: ; CODE XREF: MmGetSystemRoutineAddress(x)+4E j
>     PAGE:00588554                 push    1
>     PAGE:00588556                 push    [ebp+arg_4]
>     PAGE:00588559                 lea     eax, [ebp+var_10]
>     PAGE:0058855C                 push    eax
>     PAGE:0058855D                 call    _RtlUnicodeStringToAnsiString@12 ; RtlUnicodeStringToAnsiString(x,x,x)
>     PAGE:00588562                 test    eax, eax
>     PAGE:00588564                 jl      short loc_588548
>     PAGE:00588566                 mov     eax, large fs:124h
>     PAGE:0058856C                 mov     edi, eax
>     PAGE:0058856E                 mov     eax, large fs:124h
>     PAGE:00588574                 cmp     edi, eax
>     PAGE:00588576                 jz      short loc_58858D
>     PAGE:00588578                 push    esi
>     PAGE:00588579                 push    1D52h
>     PAGE:0058857E                 push    offset asc_588464 ; "d:\\xpsp\\base\\ntos\\mm\\sysload.c"
>     PAGE:00588583                 push    offset aCurrentthrea_4 ; "CurrentThread == KeGetCurrentThread ()"
>     PAGE:00588588                 call    _RtlAssert@16   ; RtlAssert(x,x,x,x)
>     PAGE:0058858D

>     PAGE:0058858D loc_58858D: ; CODE XREF: MmGetSystemRoutineAddress(x)+7E j
>     PAGE:0058858D                 dec     dword ptr [edi+0D4h]
>     PAGE:00588593                 push    1
>     PAGE:00588595                 mov     ebx, offset _PsLoadedModuleResource
>     PAGE:0058859A                 push    ebx
>     PAGE:0058859B                 call    _ExAcquireResourceSharedLite@8 ; ExAcquireResourceSharedLite(x,x)
>     PAGE:005885A0                 mov     esi, _PsLoadedModuleList
>     PAGE:005885A6                 jmp     short loc_5885EC
>     PAGE:005885A8 ; ---------------------------------------------------------------------------
>     PAGE:005885A8

>     PAGE:005885A8 loc_5885A8: ; CODE XREF: MmGetSystemRoutineAddress(x)+FA j
>     PAGE:005885A8                 push    1
>     PAGE:005885AA                 lea     eax, [esi+2Ch]
>     PAGE:005885AD                 push    eax
>     PAGE:005885AE                 lea     eax, [ebp+var_18]
>     PAGE:005885B1                 push    eax
>     PAGE:005885B2                 call    _RtlEqualUnicodeString@12 ; RtlEqualUnicodeString(x,x,x)
>     PAGE:005885B7                 test    al, al
>     PAGE:005885B9                 jnz     short loc_5885CE
>     PAGE:005885BB                 push    1
>     PAGE:005885BD                 lea     eax, [esi+2Ch]
>     PAGE:005885C0                 push    eax
>     PAGE:005885C1                 lea     eax, [ebp+var_20]
>     PAGE:005885C4                 push    eax
>     PAGE:005885C5                 call    _RtlEqualUnicodeString@12 ; RtlEqualUnicodeString(x,x,x)
>     PAGE:005885CA                 test    al, al
>     PAGE:005885CC                 jz      short loc_5885EA
>     PAGE:005885CE

>     PAGE:005885CE loc_5885CE: ; CODE XREF: MmGetSystemRoutineAddress(x)+C1 j
>     PAGE:005885CE                 inc     [ebp+var_4]
>     PAGE:005885D1                 lea     eax, [ebp+var_10]
>     PAGE:005885D4                 push    eax
>     PAGE:005885D5                 push    dword ptr [esi+18h]
>     PAGE:005885D8                 call    _MiFindExportedRoutineByName@8 ; MiFindExportedRoutineByName(x,x)
>     PAGE:005885DD                 test    eax, eax
>     PAGE:005885DF                 mov     [ebp+var_8], eax
>     PAGE:005885E2                 jnz     short loc_5885F4
>     PAGE:005885E4                 cmp     [ebp+var_4], 2
>     PAGE:005885E8                 jz      short loc_5885F4
>     PAGE:005885EA

>     PAGE:005885EA loc_5885EA: ; CODE XREF: MmGetSystemRoutineAddress(x)+D4 j
>     PAGE:005885EA                 mov     esi, [esi]
>     PAGE:005885EC

>     PAGE:005885EC loc_5885EC: ; CODE XREF: MmGetSystemRoutineAddress(x)+AE j
>     PAGE:005885EC                 cmp     esi, offset _PsLoadedModuleList
>     PAGE:005885F2                 jnz     short loc_5885A8
>     PAGE:005885F4

>     PAGE:005885F4 loc_5885F4: ; CODE XREF: MmGetSystemRoutineAddress(x)+EA j

>     PAGE:005885F4 ; MmGetSystemRoutineAddress(x)+F0 j
>     PAGE:005885F4                 mov     ecx, ebx
>     PAGE:005885F6                 call    @ExReleaseResourceLite@4 ; ExReleaseResourceLite(x)
>     PAGE:005885FB                 mov     eax, large fs:124h
>     PAGE:00588601                 cmp     edi, eax
>     PAGE:00588603                 jz      short loc_58861B
>     PAGE:00588605                 push    0
>     PAGE:00588607                 push    1D84h
>     PAGE:0058860C                 push    offset asc_5884AC ; "d:\\xpsp\\base\\ntos\\mm\\sysload.c"
>     PAGE:00588611                 push    offset aCurrentthrea_5 ; "CurrentThread == KeGetCurrentThread ()"
>     PAGE:00588616                 call    _RtlAssert@16   ; RtlAssert(x,x,x,x)
>     PAGE:0058861B

>     PAGE:0058861B loc_58861B: ; CODE XREF: MmGetSystemRoutineAddress(x)+10B j
>     PAGE:0058861B                 inc     dword ptr [edi+0D4h]
>     PAGE:00588621                 jnz     short loc_588636
>     PAGE:00588623                 lea     eax, [edi+34h]
>     PAGE:00588626                 cmp     [eax], eax
>     PAGE:00588628                 jz      short loc_588636
>     PAGE:0058862A                 mov     cl, 1
>     PAGE:0058862C                 mov     byte ptr [edi+49h], 1
>     PAGE:00588630
>                      call    ds:__imp_@HalRequestSoftwareInterrupt@4 ;
>     __declspec(dllimport) HalRequestSoftwareInterrupt(x)
>     PAGE:00588636

>     PAGE:00588636 loc_588636: ; CODE XREF: MmGetSystemRoutineAddress(x)+129 j

>     PAGE:00588636 ; MmGetSystemRoutineAddress(x)+130 j
>     PAGE:00588636                 lea     eax, [ebp+var_10]
>     PAGE:00588639                 push    eax
>     PAGE:0058863A                 call    _RtlFreeAnsiString@4 ; RtlFreeAnsiString(x)
>     PAGE:0058863F                 mov     eax, [ebp+var_8]
>     PAGE:00588642                 pop     edi
>     PAGE:00588643                 pop     esi
>     PAGE:00588644                 pop     ebx
>     PAGE:00588645                 leave
>     PAGE:00588646                 retn    4
>     PAGE:00588646 _MmGetSystemRoutineAddress@4 endp ; sp =  4
>     PAGE:00588646
>     PAGE:00588646 ; ---------------------------------------------------------------------------
>     PAGE:00588649                 db 0CCh ; ¦
>     PAGE:0058864A asc_58864A      db 'EX: Pageable code called at IRQL %d',0Ah,0

>     PAGE:0058864A ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+21 o
>     PAGE:0058866F                 db    0
>     PAGE:00588670                 db    0
>     PAGE:00588671                 db    0
>     PAGE:00588672 asc_588672      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:00588672 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+35 o
>     PAGE:00588691                 db    0

>     PAGE:00588692 asc_588692 db 'FALSE',0 ; DATA XREF:
>     MmLoadSystemImage(x,x,x,x,x,x)+3A o
>     PAGE:00588698                 db    0
>     PAGE:00588699                 db    0
>     PAGE:0058869A asc_58869A      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:0058869A ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+B0 o
>     PAGE:005886B9                 db    0
>     PAGE:005886BA aNameprefixNull db 'NamePrefix == NULL',0

>     PAGE:005886BA ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+B5 o
>     PAGE:005886CD                 db    0
>     PAGE:005886CE asc_5886CE      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:005886CE ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+CA o
>     PAGE:005886ED                 db    0
>     PAGE:005886EE aLoadedbasename db 'LoadedBaseName == NULL',0

>     PAGE:005886EE ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+CF o
>     PAGE:00588705                 db    0
>     PAGE:00588706 asc_588706      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:00588706 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+10A o
>     PAGE:00588725                 db    0
>     PAGE:00588726 aMmisaddressv_5 db 'MmIsAddressValid (MmSessionSpace) == TRUE',0

>     PAGE:00588726 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+10F o
>     PAGE:00588750                 db    0
>     PAGE:00588751                 db    0

>     PAGE:00588752 aInSessionSpace db 'in session space',0 ; DATA XREF:
>     MmLoadSystemImage(x,x,x,x,x,x)+22B o
>     PAGE:00588763                 db    0
>     PAGE:00588764                 db    0
>     PAGE:00588765                 db    0

>     PAGE:00588766 asc_588766: ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+232 o
>     PAGE:00588766                 unicode 0, < >,0
>     PAGE:0058876A aMmSysldrLoadin db 'MM:SYSLDR Loading %wZ (%wZ) %s',0Ah,0

>     PAGE:0058876A ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+240 o
>     PAGE:0058878A asc_58878A      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:0058878A ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+270 o
>     PAGE:005887A9                 db    0
>     PAGE:005887AA asc_5887AA      db 'CurrentThread == KeGetCurrentThread ()',0

>     PAGE:005887AA ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+275 o
>     PAGE:005887D1                 db    0
>     PAGE:005887D2 asc_5887D2      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:005887D2 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+2DC o
>     PAGE:005887F1                 db    0
>     PAGE:005887F2 aAlreadyopenTru db 'AlreadyOpen == TRUE || NextEntry == &PsLoadedModuleList',0

>     PAGE:005887F2 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+2E1 o
>     PAGE:0058882A aMmloadsystemim db 'MmLoadSystemImage: Pulled %wZ from kd',0Ah,0

>     PAGE:0058882A ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+31E o
>     PAGE:00588851                 db    0
>     PAGE:00588852 aMiloadimagesec db 'MiLoadImageSection: cannot open %wZ',0Ah,0

>     PAGE:00588852 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+380 o
>     PAGE:00588877                 db    0
>     PAGE:00588878                 db    0
>     PAGE:00588879                 db    0
>     PAGE:0058887A asc_58887A      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:0058887A ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+3B0 o
>     PAGE:00588899                 db    0
>     PAGE:0058889A asc_58889A      db 'CurrentThread == KeGetCurrentThread ()',0

>     PAGE:0058889A ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+3B5 o
>     PAGE:005888C1                 db    0
>     PAGE:005888C2 asc_5888C2      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:005888C2 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+641 o
>     PAGE:005888E1                 db    0
>     PAGE:005888E2 aAlreadyopenT_0 db 'AlreadyOpen == TRUE',0

>     PAGE:005888E2 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+646 o
>     PAGE:005888F6 asc_5888F6      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:005888F6 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+65B o
>     PAGE:00588915                 db    0
>     PAGE:00588916 aLoadflagsMm_lo db 'LoadFlags & MM_LOAD_IMAGE_IN_SESSION',0

>     PAGE:00588916 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+660 o
>     PAGE:0058893B                 db    0
>     PAGE:0058893C                 db    0
>     PAGE:0058893D                 db    0
>     PAGE:0058893E asc_58893E      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:0058893E ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+674 o
>     PAGE:0058895D                 db    0
>     PAGE:0058895E aDatatableentry db 'DataTableEntry != NULL',0

>     PAGE:0058895E ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+679 o
>     PAGE:00588975                 db    0
>     PAGE:00588976 asc_588976      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:00588976 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+690 o
>     PAGE:00588995                 db    0
>     PAGE:00588996 aDatatableent_0 db 'DataTableEntry->LoadCount > 1',0

>     PAGE:00588996 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+695 o
>     PAGE:005889B4                 db    0
>     PAGE:005889B5                 db    0
>     PAGE:005889B6 aPppagepathassi db 'PpPagePathAssign FAILED for win32k.sys: %x',0Ah,0

>     PAGE:005889B6 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+6DA o
>     PAGE:005889E2 asc_5889E2      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:005889E2 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+717 o
>     PAGE:00588A01                 db    0
>     PAGE:00588A02 aDatatableent_1 db 'DataTableEntry != NULL',0

>     PAGE:00588A02 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+71C o
>     PAGE:00588A19                 db    0
>     PAGE:00588A1A aMmSessionDImag db 'MM: Session %d image %wZ is linked at a nonsharable address '

>     PAGE:00588A1A ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+76D o
>     PAGE:00588A1A                 db '(%p)',0Ah,0
>     PAGE:00588A5C                 db    0
>     PAGE:00588A5D                 db    0
>     PAGE:00588A5E                 db    0
>     PAGE:00588A5F                 db    0
>     PAGE:00588A60                 db    0
>     PAGE:00588A61                 db    0
>     PAGE:00588A62 aMmImageWzHasBe db 'MM: Image %wZ has been moved to address (%p) by the system s'

>     PAGE:00588A62 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+77C o
>     PAGE:00588A62                 db 'o it can run,',0Ah,0
>     PAGE:00588AAD                 db    0
>     PAGE:00588AAE                 db    0
>     PAGE:00588AAF                 db    0
>     PAGE:00588AB0                 db    0
>     PAGE:00588AB1                 db    0
>     PAGE:00588AB2 aButThisNeedsTo db ' but this needs to be fixed in the image for sharing to occu'

>     PAGE:00588AB2 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+786 o
>     PAGE:00588AB2                 db 'r.',0Ah,0

>     PAGE:00588AF2 aSysldr db 'SYSLDR',0 ; DATA XREF:
>     MmLoadSystemImage(x,x,x,x,x,x)+7A1 o
>     PAGE:00588AF9                 db    0
>     PAGE:00588AFA                 db  4Dh ; M
>     PAGE:00588AFB                 db  4Dh ; M
>     PAGE:00588AFC                 db  3Ah ; :
>     PAGE:00588AFD                 db  73h ; s
>     PAGE:00588AFE                 db  79h ; y
>     PAGE:00588AFF                 db  73h ; s
>     PAGE:00588B00                 db  6Ch ; l
>     PAGE:00588B01                 db  6Fh ; o
>     PAGE:00588B02                 db  61h ; a
>     PAGE:00588B03                 db  64h ; d
>     PAGE:00588B04                 db  20h
>     PAGE:00588B05                 db  2Dh ; -
>     PAGE:00588B06                 db  20h
>     PAGE:00588B07                 db  4Ch ; L
>     PAGE:00588B08                 db  64h ; d
>     PAGE:00588B09                 db  72h ; r
>     PAGE:00588B0A                 db  52h ; R
>     PAGE:00588B0B                 db  65h ; e
>     PAGE:00588B0C                 db  6Ch ; l
>     PAGE:00588B0D                 db  6Fh ; o
>     PAGE:00588B0E                 db  63h ; c
>     PAGE:00588B0F                 db  61h ; a
>     PAGE:00588B10                 db  74h ; t
>     PAGE:00588B11                 db  65h ; e
>     PAGE:00588B12                 db  49h ; I
>     PAGE:00588B13                 db  6Dh ; m
>     PAGE:00588B14                 db  61h ; a
>     PAGE:00588B15                 db  67h ; g
>     PAGE:00588B16                 db  65h ; e
>     PAGE:00588B17                 db  20h
>     PAGE:00588B18                 db  66h ; f
>     PAGE:00588B19                 db  61h ; a
>     PAGE:00588B1A                 db  69h ; i
>     PAGE:00588B1B                 db  6Ch ; l
>     PAGE:00588B1C                 db  65h ; e
>     PAGE:00588B1D                 db  64h ; d
>     PAGE:00588B1E                 db  20h
>     PAGE:00588B1F                 db  73h ; s
>     PAGE:00588B20                 db  74h ; t
>     PAGE:00588B21                 db  61h ; a
>     PAGE:00588B22                 db  74h ; t
>     PAGE:00588B23                 db  75h ; u
>     PAGE:00588B24                 db  73h ; s
>     PAGE:00588B25                 db  20h
>     PAGE:00588B26                 db  25h ; %
>     PAGE:00588B27                 db  6Ch ; l
>     PAGE:00588B28                 db  78h ; x
>     PAGE:00588B29                 db  0Ah
>     PAGE:00588B2A                 db    0
>     PAGE:00588B2B                 db    0
>     PAGE:00588B2C                 db    0
>     PAGE:00588B2D                 db    0
>     PAGE:00588B2E                 db  4Dh ; M
>     PAGE:00588B2F                 db  4Dh ; M
>     PAGE:00588B30                 db  3Ah ; :
>     PAGE:00588B31                 db  73h ; s
>     PAGE:00588B32                 db  79h ; y
>     PAGE:00588B33                 db  73h ; s
>     PAGE:00588B34                 db  6Ch ; l
>     PAGE:00588B35                 db  6Fh ; o
>     PAGE:00588B36                 db  61h ; a
>     PAGE:00588B37                 db  64h ; d
>     PAGE:00588B38                 db  20h
>     PAGE:00588B39                 db  2Dh ; -
>     PAGE:00588B3A                 db  20h
>     PAGE:00588B3B                 db  52h ; R
>     PAGE:00588B3C                 db  65h ; e
>     PAGE:00588B3D                 db  73h ; s
>     PAGE:00588B3E                 db  6Fh ; o
>     PAGE:00588B3F                 db  6Ch ; l
>     PAGE:00588B40                 db  76h ; v
>     PAGE:00588B41                 db  65h ; e
>     PAGE:00588B42                 db  49h ; I
>     PAGE:00588B43                 db  6Dh ; m
>     PAGE:00588B44                 db  61h ; a
>     PAGE:00588B45                 db  67h ; g
>     PAGE:00588B46                 db  65h ; e
>     PAGE:00588B47                 db  52h ; R
>     PAGE:00588B48                 db  65h ; e
>     PAGE:00588B49                 db  66h ; f
>     PAGE:00588B4A                 db  65h ; e
>     PAGE:00588B4B                 db  72h ; r
>     PAGE:00588B4C                 db  65h ; e
>     PAGE:00588B4D                 db  6Eh ; n
>     PAGE:00588B4E                 db  63h ; c
>     PAGE:00588B4F                 db  65h ; e
>     PAGE:00588B50                 db  73h ; s
>     PAGE:00588B51                 db  20h
>     PAGE:00588B52                 db  66h ; f
>     PAGE:00588B53                 db  61h ; a
>     PAGE:00588B54                 db  69h ; i
>     PAGE:00588B55                 db  6Ch ; l
>     PAGE:00588B56                 db  65h ; e
>     PAGE:00588B57                 db  64h ; d
>     PAGE:00588B58                 db  20h
>     PAGE:00588B59                 db  73h ; s
>     PAGE:00588B5A                 db  74h ; t
>     PAGE:00588B5B                 db  61h ; a
>     PAGE:00588B5C                 db  74h ; t
>     PAGE:00588B5D                 db  75h ; u
>     PAGE:00588B5E                 db  73h ; s
>     PAGE:00588B5F                 db  20h
>     PAGE:00588B60                 db  25h ; %
>     PAGE:00588B61                 db  78h ; x
>     PAGE:00588B62                 db  0Ah
>     PAGE:00588B63                 db    0
>     PAGE:00588B64                 db    0
>     PAGE:00588B65                 db    0
>     PAGE:00588B66 asc_588B66      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:00588B66 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+BBE o
>     PAGE:00588B85                 db    0
>     PAGE:00588B86 aMissingprocedu db 'MissingProcedureName == NULL',0

>     PAGE:00588B86 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+BC3 o
>     PAGE:00588BA3                 db    0
>     PAGE:00588BA4                 db    0
>     PAGE:00588BA5                 db    0
>     PAGE:00588BA6 aMissingproce_0 db 'MissingProcedureName %s',0Ah,0

>     PAGE:00588BA6 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+BEF o
>     PAGE:00588BBF                 db    0
>     PAGE:00588BC0                 db    0
>     PAGE:00588BC1                 db    0
>     PAGE:00588BC2 aMissingproce_1 db 'MissingProcedureName 0x%p',0Ah,0

>     PAGE:00588BC2 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x):loc_5898D4 o
>     PAGE:00588BDD                 db    0
>     PAGE:00588BDE aMissingdrivern db 'MissingDriverName %ws',0Ah,0

>     PAGE:00588BDE ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+C0D o
>     PAGE:00588BF5                 db    0

>     PAGE:00588BF6 off_588BF6 dd offset loc_53005B+1 ; DATA XREF:
>     MmLoadSystemImage(x,x,x,x,x,x)+CCB o
>     PAGE:00588BFA                 db  79h ; y
>     PAGE:00588BFB                 db    0
>     PAGE:00588BFC                 db  73h ; s
>     PAGE:00588BFD                 db    0
>     PAGE:00588BFE                 db  74h ; t
>     PAGE:00588BFF                 db    0
>     PAGE:00588C00                 db  65h ; e
>     PAGE:00588C01                 db    0
>     PAGE:00588C02                 db  6Dh ; m
>     PAGE:00588C03                 db    0
>     PAGE:00588C04                 db  52h ; R
>     PAGE:00588C05                 db    0
>     PAGE:00588C06                 db  6Fh ; o
>     PAGE:00588C07                 db    0
>     PAGE:00588C08                 db  6Fh ; o
>     PAGE:00588C09                 db    0
>     PAGE:00588C0A                 db  74h ; t
>     PAGE:00588C0B                 db    0
>     PAGE:00588C0C                 db    0
>     PAGE:00588C0D                 db    0

>     PAGE:00588C0E unk_588C0E db 25h ; % ; DATA XREF:
>     MmLoadSystemImage(x,x,x,x,x,x)+D09 o
>     PAGE:00588C0F                 db  77h ; w
>     PAGE:00588C10                 db  73h ; s
>     PAGE:00588C11                 db  25h ; %
>     PAGE:00588C12                 db  77h ; w
>     PAGE:00588C13                 db  5Ah ; Z
>     PAGE:00588C14                 db    0
>     PAGE:00588C15                 db    0
>     PAGE:00588C16 off_588C16      dd offset aHandleinfoSing+25h

>     PAGE:00588C16 ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+D1F o
>     PAGE:00588C1A asc_588C1A      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:00588C1A ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+DF3 o
>     PAGE:00588C39                 db    0
>     PAGE:00588C3A aDatatableent_2 db 'DataTableEntry->LoadCount > 1',0

>     PAGE:00588C3A ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+DF8 o
>     PAGE:00588C58                 db    0
>     PAGE:00588C59                 db    0
>     PAGE:00588C5A asc_588C5A      db 'd:\xpsp\base\ntos\mm\sysload.c',0

>     PAGE:00588C5A ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+E42 o
>     PAGE:00588C79                 db    0
>     PAGE:00588C7A asc_588C7A      db 'CurrentThread == KeGetCurrentThread ()',0

>     PAGE:00588C7A ; DATA XREF: MmLoadSystemImage(x,x,x,x,x,x)+E47 o
>     PAGE:00588CA1                 db    0

>     PAGE:00588CA2 off_588CA2 dd offset loc_610060+3 ; DATA XREF:
>     MmLoadSystemImage(x,x,x,x,x,x):loc_589BAE o
>     PAGE:00588CA6                 db  6Eh ; n
>     PAGE:00588CA7                 db    0
>     PAGE:00588CA8                 db  6Eh ; n
>     PAGE:00588CA9                 db    0
>     PAGE:00588CAA                 db  6Fh ; o
>     PAGE:00588CAB                 db    0
>     PAGE:00588CAC                 db  74h ; t
>     PAGE:00588CAD                 db    0
>     PAGE:00588CAE                 db  20h
>     PAGE:00588CAF                 db    0
>     PAGE:00588CB0                 db  66h ; f
>     PAGE:00588CB1                 db    0
>     PAGE:00588CB2                 db  69h ; i
>     PAGE:00588CB3                 db    0
>     PAGE:00588CB4                 db  6Eh ; n
>     PAGE:00588CB5                 db    0
>     PAGE:00588CB6                 db  64h ; d
>     PAGE:00588CB7                 db    0
>     PAGE:00588CB8                 db    0
>     PAGE:00588CB9                 db    0

>     PAGE:00588CBA off_588CBA dd offset loc_610066 ; DATA XREF:
>     MmLoadSystemImage(x,x,x,x,x,x)+F8E o
>     PAGE:00588CBE                 db  69h ; i
>     PAGE:00588CBF                 db    0
>     PAGE:00588CC0                 db  6Ch ; l
>     PAGE:00588CC1                 db    0
>     PAGE:00588CC2                 db  65h ; e
>     PAGE:00588CC3                 db    0
>     PAGE:00588CC4                 db  64h ; d
>     PAGE:00588CC5                 db    0
>     PAGE:00588CC6                 db  20h
>     PAGE:00588CC7                 db    0
>     PAGE:00588CC8                 db  74h ; t
>     PAGE:00588CC9                 db    0
>     PAGE:00588CCA                 db  6Fh ; o
>     PAGE:00588CCB                 db    0
>     PAGE:00588CCC                 db  20h
>     PAGE:00588CCD                 db    0
>     PAGE:00588CCE                 db  6Ch ; l
>     PAGE:00588CCF                 db    0
>     PAGE:00588CD0                 db  6Fh ; o
>     PAGE:00588CD1                 db    0
>     PAGE:00588CD2                 db  61h ; a
>     PAGE:00588CD3                 db    0
>     PAGE:00588CD4                 db  64h ; d
>     PAGE:00588CD5                 db    0
>     PAGE:00588CD6                 db    0
>     PAGE:00588CD7                 db    0
>     PAGE:00588CD8                 db 0CCh ; ¦
>     PAGE:00588CD9                 db 0CCh ; ¦
>     PAGE:00588CDA                 db 0CCh ; ¦
>     PAGE:00588CDB                 db 0CCh ; ¦
>     PAGE:00588CDC                 db 0CCh ; ¦
>     PAGE:00588CDD                 db 0CCh ; ¦
>     PAGE:00588CDE

#844 | infuscomus | ⇗ @diderius6 for debugging we could hack debug acpi.sys from server 2003 with the same hacks we used for 5048, but it will only work for server 2003
#845 | diderius6 | ⇗ @infuscomus I think, Longhorn-Vista 5048 is server 2003. May be, the acpi.sys 5048 modmod is enough for debugging Dietmar

#846

diderius6

This are next error messages from windbg
*** Assertion failed: ((Timer)->Header.Type == TimerNotificationObject) || ((Timer)->Header.Type == TimerSynchronizationObject)
*** Source File: d:\xpsp\base\ntos\ke\timerobj.c, line 195
*** Assertion failed: (MemoryDescriptorList->MdlFlags & ( MDL_MAPPED_TO_SYSTEM_VA | MDL_SOURCE_IS_NONPAGED_POOL | MDL_PARTIAL_HAS_BEEN_MAPPED)) == 0
*** Source File: d:\xpsp\base\ntos\mm\iosup.c, line 3542
*** Assertion failed: (MemoryDescriptorList->MdlFlags & ( MDL_PAGES_LOCKED | MDL_PARTIAL)) != 0
*** Source File: d:\xpsp\base\ntos\mm\iosup.c, line 3546

#847 | infuscomus | ⇗ @diderius6 so there is a problem in ntoskrnl?

#848

diderius6

⇗ @infuscomus
I do not know. For sure there is a problem with setting Irqs on AM4 boards.
The most crazy is, that with !MAPIC windbg told you, that it is empty,
even now with running XP Acpi Multiprocessor
Dietmar
PS: I found out, that Irq with "edge" setting has always exclusive Irq (means each device has its own Irq).
Irq with "level" setting can have share or exclusive Irq.
The most crazy things happen, when 2 devices share one Irq
and one of them is "edge" and the other "level", because this one with "edge"
thinks, there cant be another device with same Irq.
And I do not understand the message from ntkrnlmp.exe very early in boot process,
that
*** Assertion failed: KeGetCurrentIrql() == PASSIVE_LEVEL
*** Source File: d:\xpsp\base\ntos\mm\sysload.c, line 7480
This looks like, if the whole system after this runs without any Irqs.
EDIT: I know that certain operations can only be performed at IRQL PASSIVE_LEVEL.
Microsoft has this sample code of how to write to a file from a kernel driver:
if (KeGetCurrentIrql() != PASSIVE_LEVEL)
return STATUS_INVALID_DEVICE_STATE;

#849 | infuscomus | ⇗ @diderius6 can we somehow force hardware to use "edge" IRQs?

#850

diderius6

⇗ @infuscomus
In the DSDT table should (?) the hardwired devices from the board are listened.
For the hardwired networkcard RTL8111GR from the Asrock B350 board I do not find an device entry there!
And when you use another networkcard like the TP-Link, the Irq setting is described in their software I think.
So, I do not know, if this setting for Irq (level, edge) can be changed without problems for any hardware
Dietmar

#851 | infuscomus | ⇗ @diderius6 maybe BIOS 5.40 is using a newer network OpROM?

#852

infuscomus

⇗ @diderius6
also,
any luck with patching AMD AHCI driver 1.2.1.402?
we need to patch
PoUnregisterPowerSettingCallback
PoRegisterPowerSettingCallback

#853

diderius6

⇗ @infuscomus
The broadcom is only at 1 place in Bios.
They are identic for 3.30 and 5.40 Bios.
Dietmar
PS: Now I have to work. Yes, to try patch for the AMD AHCI driver 1.2.1.402
would be possible way, but I dont know how hard it is.
May be it is enough just to delete this functions.

#854 | infuscomus | ⇗ @diderius6 I'm not sure how to properly delete a function p.s I thought the network chip was a realtek?

#855

infuscomus

⇗ @diderius6
I made attempt to load AMD AHCI driver
first I attempted to load
amd_sata - from 1.2.1.402 with
amd_xata - from 1.2.1.321 - this resulted in 7F BSOD - Kernel Trap
next I try to patch out PoRegisterPowerSettingCallback PoUnregisterPowerSettingCallback from amd_xata.sys
uploaded if you want to test for yourself
infuscomus has attached files to this post

- ⇗ 32bit Win7 AMD AHCI Driver v1.2.1.402 patch attempt.zip

## Page 58

#856 | diderius6 | ⇗ @infuscomus It can be done with blackwingcat's PEMaker, if those 2 functions do nothing importand else Dietmar
#857 | infuscomus | ⇗ @diderius6 I attempted to load my modded 1.2.1.402 driver 7B BSOD :(
#858 | diderius6 | ⇗ @infuscomus Have you just deleted the 2 functions with blackwingcat's PEMaker Dietmar
#859 | infuscomus | ⇗ @diderius6 I changed the dword ptr that calls the function and I redirect the imports PoRegisterPowerSettingCallback PoUnregisterPowerSettingCallback to DbgPrint
#860 | infuscomus | ⇗ @diderius6 I recall you mentioning mixing scsiport and storport on the same system is bad?
#861 | diderius6 | ⇗ @infuscomus Have you done a dependency check with Dependency Walker? No red is allowed there. Yes, but now I know about scsiport and storport, that they can work at the same time Dietmar
#862 | infuscomus | ⇗ @diderius6 yes, I checked with dependency walker - all green check my attachment earlier for yourself if you do not believe me
#863 | infuscomus | ⇗ @diderius6 known working driver storahci - gives 7F BSOD - Kernel Trap - in XP can this be debugged?

#864

diderius6

⇗ @infuscomus
This storport 5.2.3790.3959 driver will not work together with nvme, because therefor you need storport vers. 5.2.3790.4173.
But maybe storport vers. 5.2.3790.4173 works with the storahci.sys driver.
In any case you need an storahci.inf for this.
Both need KeTestSpinLock function from ntoskrnl.exe, it is in WinServer2003
but not in XP kernel.
So, you have to cancel this KeTestSpinLock function or maximum it will work with WinServer2003
Dietmar

#865 | infuscomus | ⇗ @diderius6 If you have a WinServer2003 debug setup available, can you debug storahci?
#866 | diderius6 | ⇗ @infuscomus Today and tomorrow I have a lot of work for school because of examen. Make a try, install windbg and test via WinServer debug storahci. But for this you need registry entries or a working *.inf file Dietmar

#867

infuscomus

⇗ @diderius6
good luck with your exams!
I think maybe this is the right .inf file? it contains reference to storahci (i could not find a storahci.inf)
infuscomus has attached files to this post

- ⇗ mshdc.zip

#868 | diderius6 | ⇗ @infuscomus I think yes, but you have to add your Ven_&Dev_ id for your ahci controller to this *.inf file Dietmar
#869 | diderius6 | ⇗ @infuscomus In very short time we will have Storahci x86 and x64 for all AHCI controllers under XP Dietmar

#870

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #869

> In very short time we will have Storahci x86 and x64 for all AHCI controllers under XP

is this storahci from which os ?

## Page 59

#871 | diderius6 | Win8

#872

infuscomus

⇗ @diderius6
I tried to patch pciidex.sys of windows 7 to work with XP, so that I would be able to use msahci.sys of windows 7 with XP (msahci of win7 detects all drives properly)
attempted patch of pciidex.sys result is BSOD 7F - 0D
0x0000000D -- An exception not covered by some other exception; a protection fault that pertains to access violations for applications
same BSOD as storahci.sys
maybe there is something in driver that prevents modification that we need to find?

#873

diderius6

⇗ @infuscomus, ⇗ @Mov AX, 0xDEAD
Here is storahci driver 32 and 64 bit.
Please test on your compi under XP / win2003
Dietmar
PS: I tested it on the Asrock Ryzen B350 board
with ahci device VEN_1022 DEV_43B7, works, just nice!
Before installing the storahci driver, you need to copy by hand this storport.sys from nvme device to
folder windows\system32\drivers
⇗
diderius6 has attached files to this post

- ⇗ storahci.rar
- ⇗ storport.rar

#874

infuscomus

⇗ @diderius6
I have a slightly newer version of 2003 storport 5.2.3790.4485
can I use this version? or I must use 5.2.3790.4173?
infuscomus has attached files to this post

- ⇗ storport-4485.zip

#875

infuscomus

⇗ @diderius6
I've got only a SATA WD Green 120gb m.2 drive in m.2 slot and a separate JMicron card with non-ahci IDE BIOS for installation media connected to the motherboard and nothing else
(except some cables going to empty hot swap bays - should i remove these?)
I integrated storport.sys and storahci.sys and relevant HWIDs manually into txtsetup.sif and added storahci.reg entries into setupreg.hiv
boot into XP setup - 7B BSOD!! argh!!!
edit:
if i send you a copy of my installation media ISO can you check if i have integrated correctly?

#876

diderius6

⇗ @infuscomus
About storport:
Kai Schtrom makes a check with Ida Pro,
which functions are needed. This was new to me,
because I always think, that Dependency Walker is enough.
But now I understand: Dependency Walker with only "green" is necessary
but not sufficient. The only version of storport that I know with all needed functions
is the storport.sys 5.2.3790.4173 which I sent here.
You can compare it with storport from Vista (has some more functions but also not all) and from Win7 (has all).
Have you tested the storahci, which I sent on your board
Dietmar
PS: The empty slots do nothing. May be, the signal is worse a little bit, but unimportand.
You can use my generic *.inf from Reactos with
[STORAHCI.NTx86]
%SATA_AHCI.DeviceDesc%=storahci_Inst, PCI\CC_010601; Standard SATA AHCI Controller
Next ist USB.
Why you try to make in first step installations media?
I think, if you do so, via txtsetup.oem or nlite it is easier.
Much more easy is to test new version of driver on working XP.
I always go this way, because so you have all possibilities to see,
what works and what not. Install windbg for this.

#877

diderius6

⇗ @infuscomus
How do you correct checksum in acpi.sys 5048
for to make it XP installations friendly
Dietmar
PS: Can you install with this checksum correct checksum acpi.sys now normal via CD or *.iso file
XP on Ryzen without crying from XP, that acpi.sys is wrong?

#878

infuscomus

⇗ @diderius6
I use CFF explorer to fix the checksum
⇗ https://ntcore.com/?page_id=388
It fixes acpi.sys is wrong error (at least in a VM)
remember to replace acpi.sys in driver.cab too
I have not yet managed to do a successful install of XP on Ryzen - either A5 BSOD (solved) or 7B BSOD (not solved)

#879

diderius6

⇗ @infuscomus
1.) Extract full content of XP CD to a folder.
2.) Change there in folder i386 acpi.sy_ against modded acpi.sy_ (compressed files with makecab.exe).
3.) Integrate with nlite the driver for asm106x, which I send.
If you have an XP SP3 installation. If other versions of XP, also integrate update pack to XP SP3.
Make winlite.iso.
Burn winlite.iso to CD and install on Ryzen board with a connected harddisk at asmedia 106x slot (first black in row of 4)
Dietmar

#880 | infuscomus | ⇗ @diderius6 OK, Do you mind if I send you my modified installation ISO for you to check? p.s if possible, I would like to install xp onto the m.2 sata drive

#881

diderius6

⇗ @infuscomus
Test install on m.2 sata drive, I just make new txtsetup.oem for this
Dietmar
PS: You have to copy this version of storport.sys first into i386 installations folder also,
and again after first reboot, because crazy installation deleted it,
because XP does not have an own storport.sys.
diderius6 has attached files to this post

- ⇗ storahcitxtsetup.rar

#882 | infuscomus | ⇗ @diderius6 Thanks, I will test

#883

diderius6

⇗ @infuscomus
I just test install XP SP3 with new txtsetup.oem on normal AMD sata slot (not asm106x),
works nice
Dietmar
PS: But I still get message, that acpi.sys is wrong.
It is not a big problem because of hit "Esc" on keyboard,
but how to make this acpi.sys that XP likes:)) it?
After 1. reboot I get message 0x7B, it is normal, because XP deleted storport.sys
in windows\system32\drivers
so you have to copy storport.sys there by hand again.

#884 | infuscomus | ⇗ @diderius6 I sent you an email with my XP installation media. can you test it? see if it works for you? let me know of any problems you find

#885

diderius6

⇗ @infuscomus
I am just downloading,
slow, needs 30 min:)).
Then I compare it with Beyond Compare 2
and try to install.
I am 100% sure,
that we will have an XP SP3 installation,
which works on any compi and can be installed everywhere there,
I think even via COM1 port^^
Dietmar

## Page 60

#886

diderius6

About the rtl8111gr network chip on the Asrock B350 motherboard.
I just see, that the chip on the TP-Link adapter is identic
to this one on the Asrock board.
Now I am sure, that it is a design error on the Asrock board.
With the same driver, the rtl8111gr works without problem
on another PCIe slot with the same IRQ 32
But it does not work as inbuild chip on Bios 3.30
Dietmar

#887

diderius6

⇗ @infuscomus
Soso much drivers on this XP.iso.
I found the error:
You make a mistake in .SIF file for STORAHCI.
Why just dont use Nlite with txtsetup.oem which I sent?
Dietmar
PS: If I where you: Flash back to Bios 3.30.
Use a fresh XP install CD without this big amount of drivers.
Integrate acpi.sys and storport.sys by hand into setupfolder i386.
Dont change any entry in *.sif.
Use nlite for to integrate storahci, which I send here with txtsetup.oem.
EDIT: I think, you forget in TXTSETUP.SIF
[SCSI]
STORAHCI = "STORAHCI Installation Disk"

#888

infuscomus

⇗ @diderius6
Can you test your storahci driver with BIOS 5.40?
BIOS 3.30 does not support my CPU
[SCSI]
STORAHCI = "STORAHCI Installation Disk"
I thought this part was just for human readability - [SCSI.Load] is where it is loaded
I will start over with untouched source and load storahci with your txtsetup.oem using nlite

#889

diderius6

I just edit your TXTSETUP.SIF
adding only in
[SCSI]
STORAHCI = "STORAHCI Installation Disk"
and voila,
I can install XP
Dietmar

#890

diderius6

⇗ @infuscomus
But on reboot,
I got BSOD 0x7B.
It depends not on storport,
storport is there.
So, another mistake happens in TXTSETUP.SIF.
Better use Nlite
Dietmar

#891

diderius6

⇗ @infuscomus
Good news:))!!!
I just flash Bios 5.40 on the Asrock B350 board.
And installation works.
No BSOD 0x7B after reboot.
On nvme device this was other,
no nvme device at all under Bios 5.40 in XP
Dietmar
EDIT: I am just installing on the normal sata AMD port (not asm106x).
EDIT2: Storahci works only with alignment of 2048 at installationsmedia.
EDIT3: Bad news: On last reboot compi crashs, exact as with nvme device.
Now I try with Bios 4.60. Compi crashs also.
EDIT4: I set up a windbg session and I see, it is an ACPI related error
0x000000a5 (0x00000011,0x00000008,0xF778F1E8,0x20120913).
EDIT5: GOOD NEWS(!!!): This crazy XP changed a second time the acpi.sys back to its original version.
Just in this moment I start XP SP3 with Bios 5.40 on normal sata AMD (not asm106.x).
⇗

#892 | infuscomus | ⇗ @diderius6 how do i make sure that storahci is aligned to 2048 of installation media?
#893 | diderius6 | ⇗ @infuscomus You can look with Winhex or with AOMEI. On normal harddisk 63 sectors before 1. partition and on aligned 2048, mostly from beginning on SSD Dietmar
#894 | infuscomus | ⇗ @diderius6 is this for install ISO or harddisk? or both?
#895 | diderius6 | ⇗ @infuscomus It is for your sata ssd, how it is formatted. Aligned to 2048 is normal for ssd, from beginning. But not for harddisks, Dietmar
#896 | infuscomus | ⇗ @diderius6 I think I can use windows 10 to properly format SSD? also, do i need to do anything to the ISO? or does nlite align correctly?

#897

diderius6

⇗ @infuscomus
"I think I can use windows 10 to properly format SSD?"
Yes.
I noticed, that when I install on medium (harddisk with 63 sectors before first partition)
on next reboot compi hangs.
I come to the idea, that this may be because of not using 2048 alignment.
I reformat hd with 2048 and all went ok
Dietmar
PS: Has nothing to do with *.iso

#898 | infuscomus | ⇗ @diderius6 can you send me your known working XP install media with integrated storahci? That way, if I get a 7B BSOD I will know that there is something with my hardware causing the problem and not the install media
#899 | diderius6 | I am very interested to know, if somebody other get XP SP3 to work on Ryzen board Dietmar
#900 | infuscomus | ⇗ @diderius6 upload it here ⇗ https://uploadfiles.io/ then send me the link

## Page 61

#901 | infuscomus | ⇗ @diderius6 does the 2nd (lower) m.2 slot (the SATA one) on the AB350 gaming K4 work for you in XP?

#902

diderius6

⇗ @infuscomus
I have no real ssd SATA M.2. Only nvme devices with different connections and harddrives and a SATA ssd with a sata connector
exact like for harddisk.
XP on harddisk works in the sata slot, which is dedicated also to the M.2 sata ssd
Dietmar
PS: What is the name of your sata ssd with M.2 layout?
How is this device recogniced in Bios and later at boottime from XP via storahci?
I dont know, if the Asrock fatal1ty ab350 gaming k4 is compatible with sata M.2 devices.
EDIT: I just make a quick test: XP boots, works correct at each of the 6 Sata slots on the board.
This XP SP3 is build only direct via this installationsmedium.
EDIT2 : I just found this: Slot 1 is for a PCI-E M.2....SLot 2 is for SATA

#903

infuscomus

⇗ @diderius6
It's an WDS120G1G0B WD Green 120gb M.2 SATA SSD - It is in Slot 2 and is recognized by BIOS, linux and freedos can boot from it
I'm not sure if storahci recognizes it
can you post a screenshot of the harddisk selection screen you get to in XP textmode on AB350 K4?
p.s can you send me your known working install media?

#904 | diderius6 | ⇗ @infuscomus I will test it with sata M.2 ssd in slot 2 Dietmar EDIT: SATA port 3 is disabled if an M.2 SATA SSD is used in the secondary slot. EDIT2: SATA cable connector SATA3_3 blocks the use of the M2_2 slot!
#905 | infuscomus | ⇗ @diderius6 I have made sure not to use SATA3_3 on my board
#906 | infuscomus | ⇗ @diderius6 Does M.2 SATA work for you?

#907

diderius6

⇗ @infuscomus
I have no M.2 SATA here.
I ordered the same WD green 120 GB M.2 SATA as you have
and it will arrive in next days.
For USB mod until now no success
Dietmar

#908 | infuscomus | ⇗ @diderius6 can you upload a copy of your known working for ryzen XP install media?
#909 | diderius6 | ⇗ @infuscomus The installationsmedia works on any Sata slot on the Asrock B350 board Dietmar
#910 | infuscomus | ⇗ @diderius6 thanks
#911 | diderius6 | I would be happy to know, if somebody else also succeed to install XP SP3 on Ryzen board Dietmar

#912

diderius6

I found out that the WdfCoInstaller01011.dll and WUDFUpdate_01011.dll used in the Microchip winUsb inf file are not compatible to Windows XP at all. So I downloaded the Windows Driver Kit WDK 8.1 (it's about 400MB but we just need ~4Mb as always wink ) which contains the WdfCoInstaller01009.dll and WUDFUpdate_01009.dll.
Changing the Microchip Inf file to the Version 1.9 let it work in Windows XP, so this is what I changed:

    [CoInstallers_AddReg]
    HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01009.dll,WdfCoInstaller",
    "WinUSBCoInstaller2.dll","WUDFUpdate_01009.dll"
    [CoInstallers_CopyFiles]
    WinUSBCoInstaller2.dll
    WdfCoInstaller01009.dll
    WUDFUpdate_01009.dll

    [DestinationDirs]
    CoInstallers_CopyFiles=11

    [USB_Install.Wdf]
    KmdfService=WINUSB, WinUsb_Install
    UmdfServiceOrder=WINUSB

    [WinUSB_Install]
    KmdfLibraryVersion=1.9

#913 | infuscomus | ⇗ @diderius6 I tried your XP install media in my system - 7B BSOD, so it's my hardware on your install media. before the BSOD, the screen goes black to a blinking cursor - weird my guess is XP does not like my iodd 2531 - I'll have to go and get the real optical drive and media to test
#914 | infuscomus | ⇗ @diderius6 I was beginning to think I would never see this screen ⇗ yay! now that I've made it this far, when do i use storahci.reg?
#915 | diderius6 | ⇗ @infuscomus No need for storahci.reg, it is only, when you want to install storahci.sys on running XP, I am happy, that it worked for you Dietmar

## Page 62

#916

infuscomus

something strange I noticed with the AB350 Gaming K4
In my topmost pcie 1x slot I have a pcie USB2.0 card
⇗ https://www.aliexpress.com/i/32819465989.html
I have noticed that this USB2.0 card will not function (usb devices plugged in wont do anything) unless I install the drivers for the graphics card that is below it.
once i install the graphics card driver, the USB2.0 works fine
very strange
edit:
I think it is the power state - D3

#917 | kukonosau | To take me about installing acpi.sys please. I don't understand you. How to integrate or install new driver acpi.sys without acpi.inf? Can you show this process installation driver acpi.sys on new motherboard with B350 chipset?

#918

diderius6

⇗ @kukonosau
By hand you have to put modded acpi.sys into folder i386 on installationsmedium.
For this, put XP SP3 CD in and extract all content of the CD to a folder XPSP3.
In this folder via commandline type
makecab acpi.sys
this gives you acpi.sy_ which you have to copy into folder i386 in folder XPSP3.
With nlite make a bootable xp.iso from folder XPSP3
and burn it to CD
Dietmar

#919 | infuscomus | ⇗ @diderius6 got this error with XP today ⇗ any ideas for what causes it?
#920 | infuscomus | ⇗ @diderius6 have you seen this c021a error before?

#921

diderius6

⇗ @infuscomus
Yes, I have seen this error c021a before.
As far as i remember it happens, when an arcpath was not found.
You can go to registry with regedit
and delete whole key "Mounted Devices".
Now XP has no information about the arcpath at boottime and takes first partition on first harddisk
as drive c:\
Dietmar
EDIT: May be you can start compi in Safe Mode, using F8 at boottime.
Then delete key "Mounted Devices" in registry.

#922 | infuscomus | ⇗ @diderius6 is there a way to access the registry of the XP installation from within windows 10?

#923

diderius6

⇗ @infuscomus
Yes, you can import HIVE "system" (in windows\system32\config) from connected XP drive,
name it "otto"
via registry of Win10. Do all wished changes in "otto"
and then unload it. It is automatically stored back into Hive SYSTEM
for XP
Dietmar
PS: The bootloader seems to chose USB1.0 during XP setup and this makes it slow.

#924

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #923

> PS: The bootloader seems to chose USB1.0 during XP setup and this makes it slow.

That would explain why it took 20 hours

#925 | kukonosau | I already did BSOD, but not ACPI compliant. I forgot errors. Sorry, I speak in English very bad. I speak in Russian. Do you speak in Russian? Can you tell me about errors ACPI in Russian? Answer me, please. I have not English practics. I sometimes used google- or yandex-translater.
#926 | kukonosau | Sorry, I must be use disks only or flash also? Because I often used flash device, but sometimes used DVD disks. I recorded Windows XP in flash with program YUMI. USB-ports detected in our time installation, but not ready operating system. Fortunatelly, I have keyboard and mouse PS/2 that support in almost everywhere. If use USB mouse she is uncorrectly work and after stopped worked 2 mouses before restarting system!!!

#927

cedar

⇗ @diderius6
Great works. I am happy to see XP works on your Ryzen board. I burned 2 discs, integrated with Nlite. Installing to hard
drive. first disc failed with bsod 7E. 2nd disc failed with 7b, both failed during installation before first boot. My
motherboard is Asus prime b350 plus with 2 PCI slots, and Ryzen 2600. Probably didn't integrate it right.
I RWEverything Asus prime b350 plus, it has no MPS. Does your acpi work on your Asus b350?
Only 1 hdd connected. I used acpi.sys ver 5512.
1st disc, I integrated all: storahci,nvme,asm106x, got bsod 7E
2nd disc, integrated only storahci, got bsod 7b.
q1. Is sfc disabled a "must" during Nlite for Ryzen? I probably forgot did it here.
q2. Do I need to add my hardware id to your storahci.inf?
Under win8. I saw 2 entries, one is VEN_1022 DEV_43B7. the other has 7901, Should both ID needed to put into storahci.inf?
q3. I just noticed 5048 posted a day later. I think v5512 is the right one, right?
q4. I also have a Kingston A400 120GB SSD. Can I combine STORAHCI.sys's TXTSETUP.OEM and nvme.sys's TXTSETUP.OEM into 1
file like below so that I can choose(connect only) either HDisk or SSD before installation with the same iso disc.
Will 2 disk0 and 2 [Defaults] entries interfere?

    [Disks]
    disk0 = "STORAHCI Installation Disk", \storahci.inf, \
    disk0 = "nvme Installation Disk", \nvme.inf, \

    ;;; change disk0 of nvme to disk1?

    [Defaults]
    SCSI = STORAHCI
    SCSI = nvme

    ;;; two Defaults entries! likely will not work?

    [SCSI]
    STORAHCI = "STORAHCI Installation Disk", STORAHCI
    nvme = "nvme Installation Disk", nvme

    [Files.SCSI.STORAHCI]
    inf	= disk0, STORAHCI.inf
    driver	= disk0, STORAHCI.sys, STORAHCI

    [Files.SCSI.nvme]
    inf	= disk0, nvme.inf
    driver	= disk0, nvme.sys, nvme

    [HardwareIds.SCSI.STORAHCI]
    id = "PCI\CC_010601","STORAHCI"
    id = "PCI\CC_010802","nvme"

    [Config.STORAHCI]
    value = "", Tag, REG_DWORD, 1

    [Config.nvme]
    value = "", Tag, REG_DWORD, 1

#928

diderius6

⇗ @cedar
It is possibel to integrate many drivers in one txtsetup.oem.
But in the beginning, one step after the other is better I think.
You can test your STORAHCI integration via Nlite,
when you hit F5 during installation and chose "Standard PC" there.
When you can install XP, then do next step
Dietmar
PS: Here is example for 2 different drivers in one txtsetup.oem
; Copyright (c) 2010 Asmedia Technology
;#############################################################################
;#
;# Filename: TXTSETUP.OEM
;#
;#############################################################################
[Disks]
disk1 = "Asmedia 106x SATA Controller", \ASM106x, \i386
disk2 = "Asmedia 106x SATA Controller", \ASM106x, \amd64
[Defaults]
scsi = asAHCI_32bit
;#############################################################################
[scsi]
; asahci32.inf
asAHCI_32bit = "Asmedia 106x SATA Controller 32bit"
; asahci64.inf
asAHCI_64bit = "Asmedia 106x SATA Controller 64bit"
;#############################################################################
; asahci32.inf
[Files.scsi.asAHCI_32bit]
driver = disk1, asahci32.sys, asahci32
inf = disk1, asahci32.inf
dll = disk1, ahcipp32.dll
catalog = disk1, asahci32.cat
;------------asahxp64.inf---------------------------
; asahci64.inf
[Files.scsi.asAHCI_64bit]
driver = disk2, asahci64.sys, asahci64
inf = disk2, asahci64.inf
dll = disk2, ahcipp64.dll
catalog = disk2, asahci64.cat
;#############################################################################
[Config.asahci32]
value = parameters\PnpInterface,5,REG_DWORD,1
value = "", ErrorControl, REG_DWORD, 1
value = "", Group, REG_SZ, "SCSI Miniport"
value = "", Start, REG_DWORD, 0
value = "", Type, REG_DWORD, 1
[Config.asahci64]
value = parameters\PnpInterface,5,REG_DWORD,1
value = "", ErrorControl, REG_DWORD, 1
value = "", Group, REG_SZ, "SCSI Miniport"
value = "", Start, REG_DWORD, 0
value = "", Type, REG_DWORD, 1
;#############################################################################
; asahci32.inf
[HardwareIds.scsi.asAHCI_32bit]
id = "PCI\VEN_1B21&DEV_0601","asahci32"
id = "PCI\VEN_1B21&DEV_0602","asahci32"
id = "PCI\VEN_1B21&DEV_0611","asahci32"
id = "PCI\VEN_1B21&DEV_0612","asahci32"
; asahci64.inf
[HardwareIds.scsi.asAHCI_64bit]
id = "PCI\VEN_1B21&DEV_0601","asahci64"
id = "PCI\VEN_1B21&DEV_0602","asahci64"
id = "PCI\VEN_1B21&DEV_0611","asahci64"
id = "PCI\VEN_1B21&DEV_0612","asahci64"

#929

diderius6

⇗ @kukonosau
Use last 5048 modmod acpi.sys from ⇗ @infuscomus,
see here in download below.
For normal XP installation it is best until now
Dietmar
PS: Use real CD an PS/2. XP install via flash drive and USB, strange things happen to me.
diderius6 has attached files to this post

- ⇗ best5048acpi.rar

#930

cedar

@infuscomus.
Glad to know XP also work on your Ryzen board. I BSOD on two iso discs and also Winntsetup and get stuck on install loop. I can't boot back to win8x64 easily and need to repair boot manager to get back bootmenu.
I have no experience on VM. what (stable)version do you use to test xp installations.
Is there a preferred platform for your Asrock board? win7 or win8, 32 or 64bit?
Under VM, is winntsetup the best way to go?

## Page 63

#931 | kukonosau | Where is file ACPI from infuscomus? How to install Windows XP SP2 x64 on motherboard ASUS AM4 B350 PRIME B350M-K?
#932 | cedar | ⇗ @kukonosau I think at post #821
#933 | kukonosau | How to add acpi.sys in driver.cab?!
#934 | diderius6 | I think, because storahci needs storport.sys only XP SP3 can work with it Dietmar
#935 | cedar | ⇗ @kukonosau extract driver.cab to a folder using winrar or 7z put acpi.sys into folder. cabarc -r -m LZX:21 n driver.cab c:\folder\*.*
#936 | kukonosau | cabarc -r -m LZX:21 n driver.cab c:\folder\*.* is error in cmd: "cabarc" не является внутренней или внешней командой, пакетом или исполняемым файлом. Sorry, I can't translate in English. May be need this command in flash with MS-DOS? I don't understand.
#937 | infuscomus | ⇗ @kukonosau i think you need to download cabarc ⇗ https://stackoverflow.com/questions/3361...-cabarc-utility
#938 | kukonosau | Thanks. I used utility iexpress, create DRIVER.CAB, but BSOD after 2nd restart from install Windows XP when end registry components.
#939 | kukonosau | Congratulations!!! I can install XP with ACPI!!! I specially install and need BSOD. Before continue in Windows 10 and change old ACPI in folder C:\Windows\system32\drivers modify ACPI. Also before install I change file ACPI.SY_. DRIVER.CAB don't help me((( But where find files ACPI for Windows XP x64? ACPI from x32 doesn't work!

#940

infuscomus

⇗ @kukonosau
i don't have a patched acpi for XP x64
does it have to be XP x64? programs for XP were usually x32
edit:
try here
⇗ http://shorthornproject.com/allcategorie...em=item-drivers

#941 | kukonosau | How to correct acpi.sys for Windows XP x64? How you can correct acpi.sys for Windows XP x32?
#942 | infuscomus | ⇗ @diderius6 can you patch acpi 5048 64bit for ⇗ @kukonosau ? p.s I got my pcie usb2.0 card to function properly for xp testmode setup - i plugged a device into every port. now i can use my iodd 2531 for xp install
#943 | kukonosau | But how to patch acpi.sys? Do you can teach me?
#944 | infuscomus | ⇗ @kukonosau do you have a disassembler? such as ida pro?
#945 | kukonosau | No. I wont know, how disassemble file with expansion .sys

## Page 64

#946 | kukonosau | But I have Hxd.

#947

diderius6

⇗ @infuscomus
I get with XP 64 bit the same error on the Ryzen board
0x7E 0xc0000005 (now in 64 bit much loonger)
as with XP 32 bit.
I change storport.sys against the new version and acpi.sys against original 5048 (64 bit) version.
Then I make new txtsetup.oem and new *.inf for the storahci driver, integrate storahci with nlite, works as you can see during setup. But on XP 64 bit, there is no "Standard PC", only uniprocessor and multiprocessor, all with Acpi.
But because I do not see any symbols with Ida Pro,
I cannot hack the acpi.sys vers Longhorn 5048 64 bit.
I think, it is also exact in the same place as in the 32 bit version, one byte change,
means conditional jmp => forced jmp
but I cant see where to do this
Dietmar
diderius6 has attached files to this post

- ⇗ 64bit.rar

#948

cedar

⇗ @diderius6
Thanks for the suggestions. I have tried many variations last few days, even the 486 Standard PC option.
Installing ACPI Multiprocessor or Standard PC mode end up BSOD at the exact moment "Windows setup is starting" message appeared for my Asus Prime B350-Plus board.
So I used a working XP sp3 running storport.sys from a Gigabyte P75 D3 board, then added newest 5048 acpi.sys and swapped the hard disk to the Asus board.
Now, I can boot Standard PC only in "safe mode" with no usb mouse. It is stable inside this mode. It will BSOD on normal boot before entering Windows , however.
Could it be this Asus board has 2 PCI slots, causing acpi.sys some incompatibility issues.
Only an PCIE Geforce 8400 card was installed, nothing else, to isolate potential issues.

#949 | diderius6 | ⇗ @cedar What kind of BSOD you see, Dietmar

#950

diderius6

⇗ @cedar
I make a test with the asus prime b350 plus board.
Oha, I got BSOD like you.
NVME boot works, but only for "Standard PC".
Booting with mod mod 5048 acpi.sys
which works until now on any compi gives via windbg:

>     Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
>     Copyright (c) Microsoft Corporation. All rights reserved.

>     Opened \\.\com1
>     Waiting to reconnect...
>     Connected to Windows XP 2600 x86 compatible target at (Sat Jun 29 21:17:16.812 2019 (UTC + 2:00)), ptr64 FALSE
>     Kernel Debugger connection established.
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Symbol search path is: C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386;SRV*c:\symbols
>     *⇗ http://msdl.microsoft.com/download/symbols;C:\symbols
>     Executable search path is: C:\localsymbols
>     Windows XP Kernel Version 2600 MP (1 procs) Free x86 compatible
>     Built by: 2600.xpsp.080413-2111
>     Machine Name:
>     Kernel base = 0x804d7000 PsLoadedModuleList = 0x8055d720
>     System Uptime: not available
>     WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
>     Sat Jun 29 21:17:23.625 2019 (UTC + 2:00):
>     *** Fatal System Error: 0x000000a5
>                            (0x0000000D,0x8B6333C0,0x4449555F,0x00000000)

>     Sat Jun 29 21:17:23.656 2019 (UTC + 2:00): Break instruction exception - code 80000003 (first chance)

>     A fatal system error has occurred.
>     Debugger entered on first try; Bugcheck callbacks have not been invoked.

>     A fatal system error has occurred.

>     Connected to Windows XP 2600 x86 compatible target at (Sat Jun 29 21:17:23.843 2019 (UTC + 2:00)), ptr64 FALSE
>     Loading Kernel Symbols
>     ...........................
>     Loading User Symbols

>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     Use !analyze -v to get detailed debugging information.

>     BugCheck A5, {d, 8b6333c0, 4449555f, 0}

>     *** ERROR: Module load completed but symbols could not be loaded for ACPI.sys
>     Probably caused by : ACPI.sys ( ACPI+527b )

>     Followup: MachineOwner
>     ---------

>     nt!RtlpBreakWithStatusInstruction:
>     8052b5dc cc              int     3
>     2: kd> !analyze -v
>     *******************************************************************************
>     *                                                                             *
>     *                        Bugcheck Analysis                                    *
>     *                                                                             *
>     *******************************************************************************

>     ACPI_BIOS_ERROR (a5)
>     The ACPI Bios in the system is not fully compliant with the ACPI specification.
>     The first value indicates where the incompatibility lies:
>     This bug check covers a great variety of ACPI problems.  If a kernel debugger
>     is attached, use "!analyze -v".  This command will analyze the precise problem,
>     and display whatever information is most useful for debugging the specific
>     error.
>     Arguments:
>     Arg1: 0000000d, ACPI_REQUIRED_METHOD_NOT_PRESENT
>     	ACPI could not find a required method/object in the namespace
>     	This is the bugcheck that is used if a vendor does not have an
>     	_HID or _ADR present
>     Arg2: 8b6333c0, The ACPI Extension that ACPI needs the object for
>     Arg3: 4449555f, The (ULONG) name of the method ACPI looked for
>     Arg4: 00000000, Base Case

>     Debugging Details:
>     ------------------

>     ACPI_EXTENSION:  8b6333c0 -- (!acpikd.acpiext 8b6333c0)

>     DEFAULT_BUCKET_ID:  DRIVER_FAULT

>     BUGCHECK_STR:  0xA5

>     PROCESS_NAME:  System

>     LAST_CONTROL_TRANSFER:  from 804f8df9 to 8052b5dc

>     STACK_TEXT:
>     b84dfaf4 804f8df9 00000003 b84dfe50 00000000 nt!RtlpBreakWithStatusInstruction
>     b84dfb40 804f99e4 00000003 8b6333c0 8b61d950 nt!KiBugCheckDebugBreak+0x19
>     b84dff20 804f9f33 000000a5 0000000d 8b6333c0 nt!KeBugCheck2+0x574
>     b84dff40 b7f1027b 000000a5 0000000d 8b6333c0 nt!KeBugCheckEx+0x1b
>     WARNING: Stack unwind information not available. Following frames may be wrong.
>     b84dff80 b7f0d168 8b6333c0 8b633368 b84dffb4 ACPI+0x527b
>     b84dff90 b7f0d2f4 8b633368 806e791a 80540980 ACPI+0x2168
>     b84dffb4 b7f0ddc0 b7f35ac8 b7f33010 806e791a ACPI+0x22f4
>     b84dffcc 80545e6f b7f35a80 00000000 00000000 ACPI+0x2dc0
>     b84dfff4 805459db b853fc4c 00000000 00000000 nt!KiRetireDpcList+0x61
>     b84dfff8 b853fc4c 00000000 00000000 00000000 nt!KiDispatchInterrupt+0x2b
>     805459db 00000000 00000009 0081850f bb830000 0xb853fc4c

>     STACK_COMMAND:  kb

>     FOLLOWUP_IP:
>     ACPI+527b
>     b7f1027b cc              int     3

>     SYMBOL_STACK_INDEX:  4

>     SYMBOL_NAME:  ACPI+527b

>     FOLLOWUP_NAME:  MachineOwner

>     MODULE_NAME: ACPI

>     IMAGE_NAME:  ACPI.sys

>     DEBUG_FLR_IMAGE_TIMESTAMP:  424d8208

>     FAILURE_BUCKET_ID:  0xA5_ACPI+527b

>     BUCKET_ID:  0xA5_ACPI+527b

>     Followup: MachineOwner
>     ---------

Dietmar

#951

diderius6

It is the same error as in post 488, the board Asus with B320 chipset there has also an PCI connector.
0xA5 (0x0000000D, Parameter2, Parameter3, Parameter4):
There are many objects that must be defined in the ACPI namespace, and one or more of these was not found. This error generally occurs if either the _HID or _ADR object is missing. An _ADR is used to define the address of a device on its parent bus. The _ADR is a static address that defines slot numbers for devices that reside on any number of bus types, including EISA, floppy, IDE controller, IDE channel, PCI, PCMCIA, and CardBus. The _HID contains objects that supply the operating system with Plug and Play hardware ID for a device. Technically, these objects are optional, but they absolutely must be present to describe any device that is enumerated by an ACPI driver.
So, some device is not recogniced via ACPI, may be pci slots
Dietmar
EDIT: I just boot "Standard PC" from harddisk. This means, the STORAHCI driver works like a charm.
Only acpi.sys needs some more handwork for this board.

#952

cedar

⇗ @diderius6
The old 5048 and 5512 acpi.sys BSOD 7B. With the two older acpi.sys. I can't even get to safe mode on Standard PC.
The newest (mod mod) 5048 have 7B or 7E. I Think mostly 7B. But the newest 5048 is good enough to be stable inside safe mode of Standard PC.
To test PCI compatibility, I add a ATI HDTV Wonder PCI card into a PCI slot. Also no crash inside Standard PC in safe mode. So PCI seems to be stable here. I am getting some Youtube windows debugger tutorials...

#953

diderius6

⇗ @cedar
Good news:))!
Small hack in mod mod acpi.sys 5048 from Infuscomus
and voila,
full XP SP3 "Multiprocessor ACPI" on the Asus Prime B350 Plus (with 2 PCI slots).
All works, sound, network, grafik, USB 3.1, nvme boot, all SATA ports.
The PS/2 port can only be used for one device, keyboard.
Later it is no problem, because you have a lot of working USB 2.0 slots too.
Dietmar
⇗
diderius6 has attached files to this post

- ⇗ acpi.rar

#954

infuscomus

⇗ @diderius6
I dug up PEMaker 0.82 again and noticed your newly modded ACPI 5048 has a checksum error
⇗
PEMaker 0.82 is able to fix it
infuscomus has attached files to this post

- ⇗ checksumfix-acpi.zip

#955 | diderius6 | ⇗ @infuscomus Thanks, I just build an XP.iso for the Asus Prime B350 Plus board, works, I am just installing Dietmar EDIT: Install of XP SP3 is ready, nice, absolut stable.
#956 | cedar | ⇗ @diderius6, @infuscomus. Thanks so much. I will test them very soon.

#957

cedar

⇗ @diderius6
New improvement at my end, replacing to the newest acpi on the swapped Hard Disk, I can boot APCI Multiprocessor in safe mode now. But still BSOD at normal boot and the blue screen extremely quickly flash may 1/10 of a second so, I can't even see what the message. Normally, the BSOD stay, and also no mouse.
Tried with or without your 6 USBXPSP1 files overwriting the existing USB files in the \systems32\drivers
folder, I still have no working USB!. So I used keyboard to install USB drivers, but only able to partially
install the USB devices in Safe Mode, one root hub is ok, another root hub with exclamation mark.
3.1 extensible host controller got installed, but 3.1 hub refused installed!. May be things in safe mode behave
a bit erratically, or the downloaded drivers did not match my USB hardware ID somehow.
⇗ @diderius6 , ⇗ @infuscomus
Can you upload a workable USB 2.0/3.0 or 3.1 inf? Will make another installation disc, may be this time it will
behave much better than the swapped hard disk method.
Thanks.
PS. the STORAHCI driver does works great even at my Gigabyte P75 (Z77) like board.

#958

diderius6

⇗ @cedar
Make a new installations disk for XP SP3 with nlite.
Copy storport.sys and acpi.sys there by hand to folder i386 using makecab.exe for them before.
The STORAHCI driver integrate via its txtsetup.oem in nlite.
Burn this XP.iso to CD.
On first reboot you have to copy storport again and later also acpi.sys.
Only connect the keyboard to the PS/2 port. You will have no mouse all the time, until the USB driver
works.
After install is ready, copy the 7 USB files from XP SP1 to windows\system32\drivers.
Then go to device manager, rightclick on USB device with DEV_43BB.
Select for this "new driver" and go to the USB3.1 installationsfolder "Controller Drivers".
After install of amdxhc31.sys a new window will open.
This time go to the USB3.1 installationsfolder "Hub Drivers".
Install amdhub31.sys.
After all is ok, connect your mouse to the USB 2.0 slot under the PS/2 slot.
Mouse will work and USB3.1 with full speed on green slots also. I tested yesterday this whole procedure
Dietmar
diderius6 has attached files to this post

- ⇗ storportAcpi.rar
- ⇗ USBXPSP1.rar
- ⇗ storahcitxtsetup.rar
- ⇗ AMD USB 3.1 drivers v1.0.5.3 WHQL.rar

#959 | kukonosau | Thank you!!! I connected USB-devices!!! Microphone Samson C01UPRO is working!!! You are better!!! :)))

#960

diderius6

Here is the AMD IOV device (AMD IOMMU DEVICE),
works now under XP
Dietmar
PS: Look for DEV_1577 in device manager and use only AmdIOV.inf.
diderius6 has attached files to this post

- ⇗ U10x86.rar

## Page 65

#961 | cedar | @diderius6. Thanks, I did used the AMD USB 3.1 drivers v1.0.5.3 WHQL on swapped hard disk earlier. The controller did installed , the Hub could not installed. Thus, no mouse. All of it was done in safe mode using only keyboard, slow and unsuccessful. Hopefully , nlite will fix it this time.

#962

diderius6

⇗ @cedar
I just make a new USB30 driver,
which works on the Asus Prime B350-PLUS board under XP SP3.
This is the very first time, that I see such an driver working^^
Dietmar
EDIT: Funny, USB30 is on the same USB stick faster than USB31.
⇗
diderius6 has attached files to this post

- ⇗ AMDUSB30.rar

#963

cedar

@Dietmar
Still BSOD 7b after several burn discs either ACPI Multiprocessor, Standard PC, or Uni ACPI.
All end up same message as below:
7B (0xF78D2524,0xc0000034, 0x00000000,0x00000000). Don't know if it is useful.
Also having some Nlite problems, all files in root directoy not copied into final ISO, may be because
Dotnet 2.0 SP1 was installed with a new copy nlite 1.4.9.3 download a day or 2 ago. Roots files and additional folders did copied into iso a week ago!.
I did try your new AMD USB3.0 driver on the swapped drive method ( it boots ACPI Multiprocessor in safe mode only, my only bootable XP condition for Asus B350 Prime Plus).
Have not succeed yet, as navigate with no mouse is a very slow process and prone to installing the driver into the wrong controllers and hubs as I can't see ID of controllers. So it is a hit and miss trials. Will try more later, since it works for you.
I want to get any mouse working, on usb2.0 or 3.0 ports so I can navigate Windows to investigate what devices are having problems such that it BSOD in normal boot. I have 1 mouse at usb 2.0 port, another mouse at usb 3.0 port just in case if either could work.
Still at partial installed of USB device controller and root hub. To see a bootable XP in my case. I need
PS2 keyboard to press F8 into safe mode. I read it is somewhat unsafe to hot swap PS2 devices.
It seem I can try hot swap PS2 keyboard with a PS2 mouse after "safe boot" into XP. But I am
worrying about repeat hot swaps the PS2 mouse or PS2 keyboard after every boot.
Is it hard to write a generic usb.reg script to install a USB 2.0 or 3.0 device?. I will google this.
Cedar
P.S. I will try this to see if it applies to XP.
⇗ https://windowsreport.com/usb-not-working-windows-10/

#964 | infuscomus | ⇗ @cedar are you using an external USB CD/DVD drive for XP install? or an internal SATA CD/DVD drive?

#965

cedar

⇗ @infuscomus
Before yesterday, I used an external USB CD/DVD drive for XP install.
Yesterday, I used an internal SATA CD/DVD drive as well.
I repeat older fails installs also on SATA just to make sure it is not USB problems.
The BSOD happen on both external USB and SATA dvd drive.
Setup is starting windows, BSOD always happened after this message.

#966 | infuscomus | ⇗ @cedar use the internal SATA CD/DVD drive for XP installs make sure to use nlite to integrate storahci driver for txtmode - ¶ Windows XP SP3 32bit and modern PC parts (59)

#967

diderius6

⇗ @cedar
Delete in boot.ini
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
Dietmar

#968

cedar

@Dietmar
Sort of good news. Most recent burnt disc fail both external USB DVD drive and internal SATA DVD drive.
I just tried an old burn disc from 1 week earlier, with acpi ver 5512 on the internal SATA DVD driver,
it failed APCI install. But at "Standard mode", for the first time, it let me choose which partition to install, proceed install and successfully installed and add it to the boot.ini menu. Even though it still BSOD 7B on reboot, but at least it installed.
So the internal SATA DVD drive behaves much better than the USB external drive. Now I can swap this HDisk to another computer, and replace the older acpi ver. 5512 with the latest from June 29. and see what happen.
So now, I would "avoid" the external USB drive to install. The old disc has all the files structure burnt
correctly. Newer discs from last 2 days had Nlite problems, root files in ISO needed to be added back manually.
Ok. I will remove "/noexecute=optin /fastdetect" from boot.ini
Cedar

#969

diderius6

⇗ @cedar
I changed the cpu X4 950 against Ryzen 1700 on the Asus Prime B350-PLUS board.
Funny, the USB30 changed with the processor now to DEV_145C
where until now no 32 bit version is on the market. But USB31 is still there.
The installations CD for XP SP3 works with new acpi.sys as good as before
Dietmar

#970

cedar

@Dietmar
Good news! and good work on your X4 950. I recently learned that hardware ID got changed between IDE and AHCI mode. There was times I search for my hardware IDs and could not find a match on
the net. It was confusing and unproductive.
First time success installing XP in Standard Mode on normal boot, mouse works on USB2.0 port. USB3.1 extensive controller and hub were also installed. The other mouse on the USB3.0 port not
work yet, as there is still 1 USB controller with yellow question mark. The Hardware ID is DEV_145F
Tried your AMD3.0 driver on this USB controller. but did not work yet. may be in other PC mode, it will.
The remaining yellow mark Devices are as follow:
SM Bus controller with hardware ID DEV_790B
PCI Encryption with ID DEV_1456
PCI Device with ID DEV_145A
PCI Device with ID DEV_1455
PCI Device with ID DEV_1451
I suspect them to be south bridge controller, PCI Standard Host PCI bridge, Stander PCI to PCI bridge.
Do they needed to be installed? They don't seem to interfere much at the moment.
I will switch to ACPI Multiprocessor soon. Right now I navigate around to see if it is stable first.
Then back it up to another partition before more testing.
Edited: south bridge controller, PCI Standard Host PCI bridge, Stander PCI to PCI bridge all installed
except PSP 3.0.
Cedar

#971 | cedar | ⇗ @infuscomus Luckily, I still kept a few earlier fail installed discs. I was surprise it actually let me install sucessfuly from internal SATA drive.

#972

cedar

@Dietmar
I followed the procedures to switch-windows-xp-hal-from-standard-pc-to-acpi-without-reinstall
⇗ https://zedt.eu/tech/windows/switch-wind...hout-reinstall/
Instructions there is like below. It let me choose ACPI hal at the end of instruction without problem,
and no hanging. I can still navigate around Windows. But upon reboot, can't get in this XP Windows anymore. But I can boot another backup Standard PC mode XP at a different partition.
After normal booting ACPI Multiprocessor PC fail. I try to boot into Safe mode. It failed as well.
This is strange ,because I could boot ACPI Multiprocessor PC in safe mode from swapped hard
disk method mentioned earlier.
Their Instructions:
---------------------------------------------------------------------------------------------------------------------------------------------
So youve installed Windows Xp on a (probably very) old computer and forgot to check the BIOS to make sure APCI is enabled
Now to switch Windows Xp from the Standard PC Hardware Abstraction Layer to the A(dvanced) C(onfiguration and) P(ower) I(nterface) one so that things like standby/hibernation and auto-power off work youve got two choices:
Performs a repair install
Follow the steps below:
Open Registry Editor and browse to
HKLM\System\CurrentControlSet\Enum\Root\PCI_HAL000
Right click the 0000 key and choose Permissions. Check the Full Control checkbox for Everyone. This will give you control to edit this registry key.
Open the HardwareID value and change it from e_isa_up to acpipic_up (followed by one line break, the cursor should be on the line directly under acpipic_up).
Open Device Manager, open the Computer key, right-click Standard PC, and select Update Driver. Youll pick from a list, dont search, answer accordingly. Select the ACPI entry, which will now be shown in the Compatible Hardware list (joy!), thanks to the previous registry tweak.
If you actually CONTINUE with this and your system is NOT actually an ACPI system, it will become unbootable.
Select Next and let the new HAL install.
Reboot, and youre done!
Since hal.inf locks you into only compatible HALs, you can now update again and select Multi-Processor PC if your system supports it, then youll have multi-cores.
---------------------------------------------------------------------------------------------------------------------------
I was hoping their instructions work in my case. If works, it saves ton of time. I think there might be other
method by add hal option into boot.ini. but not sure if it works.
Edit: They use acpipic_up, may be the right one is "acpiapic_mp". for ACPI Multiprocessor PC.
Edit2: Just tried "acpiapic_mp". It shows 4 entries of CPU types allow to be changed.
So I chose ACPI Multiprocessor PC. All seem well. No hanging. Can operate Windows as usual.
Next reboot, BSOD 7B. So something deeper is happening here.
On normal boot This 7B is a bit different
7B ( 0xBACC3524, 0xC000 0034, 0x0000 0000, 0x0000 0000)
Edit3:
Try safe boot, got this
0x0000007B (0xF789E524, 0xC0000034, 0x0000000,0x0000000)

#973 | diderius6 | ⇗ @cedar All this you dont need, if you make a good installationsdisk via nlite for XP SP3, it works Dietmar

#974

diderius6

I overclock the Ryzen 1700 to 3650 MHZ. Stable, tested with Prime95, Cinebench 11.529 on XP SP3 and youtube video at the same time on the Asus Prime B350 Plus board. Max temperature is 70 degree celsius.
Now it is exact as fast as the Intel Core i7-8700K,
impressive
Dietmar
EDIT: Ram is Corsair Vengeance LPX schwarz DIMM Kit 32GB, DDR4-3200, CL16-18-18-36 (CMK32GX4M2B3200C16).

#975

cedar

@Dietmar
That is a nice system you have there :-).
I am getting closer. I could proceed to complete install XP in graphic mode. change region
setting, minor things etc. XP has no complains and stated setup is completed,and ask for
reboot.
Upon reboot, I get BSOD 7B. It could be a bios version problem. My Asus prime plus B350
bios is 4023. What version is your motherboard BIOS?
Reboot in safe mode also BSOD 7B. I am pretty sure it installed(auto) at ACPI multiproc PC.
I reinstalled at another partition sometime later. XP also said installation is completed, no errors.
So it is not files or disk errors. But restart XP also 7B and safe mode too.
I swapped the Hard disk to my Gigabyte P75-D3. Replaced jun 29 acpi.sys back with XP SP3 2008
ver. This XP from Ryzen installation work fine on P75-D3 (i3470 cpu). I verified it is indeed in
ACPI multiproc PC mode. No error, mouse worked too in P75-D3.
I think it is either my Nlite or BIOS version may be the problem.
Cedar

## Page 66

#976

infuscomus

⇗ @cedar
on your XP drive go to c:\windows\system32\drivers folder
check that you have these files
acpi.sys - our patched version - should be about 234kb in size
storahci.sys
storport.sys
if you don't have these 3 files you will get A5 or 7B BSOD

#977

cedar

@infuscomus.
They are all there. I put extra copies in driver cache , i386 folder too, just in case.
Windows may or may not look there. I also have a Sp3.cab and a Sp2.cab. I replaced
the acpi.sys in those two cab as well just case.
If I swap the XP installed on Ryzen hard disk to my other Ivy 3470 CPU system. Replace the
newest (Ryzen) acpi.sys , your checksumed version with the one original from XP SP3.
I can run this "new" installed XP (from Ryzen) on the older Gigabyte P75 Ivy system.
So, the newly installed XP seem fully functional on Ivy but BSOD on Ryzen.
On my Ivy system the same storport.sys also run the ahci mode.
I can run XP on Ryzen in standard PC with the same storport.sys and Storachi, but not
APCI Uni or Multi mode.
Cedar

#978 | diderius6 | ⇗ @cedar I test with Bios version 3806 and 5007 on the Asus PRIME B350-PLUS board, both work Dietmar
#979 | infuscomus | ⇗ @cedar do you get the same BSODs in XP textmode setup?

#980

cedar

@Dietmar
Good to know that, mine is 4023 is somewhere in between, it should work then.
⇗ @infuscomus
I got BSODs in XP textmode. and then swap the hard disk to the ivy system. Manually add
acpi.sys, storport, and USBXPSp1. Storachi is already there.
Swap back the HD drive to the Ryzen system. To install Std. mode or lately ACPI multi proc
mode. Ryzen system then let me complete install graphic mode asking bunch of usual
questions.
Name, region time zone etc. till the end. Then XP said install complete, Click finish. quite
smooth, no hiccup. On the Std PC mode. I can reboot back to XP.
On ACPI mode, next reboot is BSOD 7B, so I try reboot again, this time in Safe Mode.
Same thing, also 7B. reboot third time, 7B.
The thing is, it let me completely installed. a bit unusual here .
Cedar

#981 | diderius6 | ⇗ @cedar storport.sys is gone on reboot Dietmar
#982 | cedar | @Dietmar storport of course is always gone, after txtmode BSOD. After manually added after txtmode BSOD, it stays there. Is it not? Do you mean every reboot?
#983 | infuscomus | ⇗ @cedar during xp textmode setup do you ever see something like this? ⇗ as in, does storahci ever load?

#984

cedar

⇗ @infuscomus
I did see a textmode screen. and can choose which partition to install to. Whether the
word " Storahci" appeared at the end of the sentence. I am not sure. I will install again
to see if it is there.
I installed 3 times successfully at graphic mode. After textmode complete installed,
BSOD is expected. I knew that. If I don't use the checksum version, it will complain.
otherwise it proceed to complete textmode install. Windows folder size is about
550 MB in size after this
After textmode installed. I add Storport and USBXPSp1. Next reboot, Windows let
me install graphically with mouse working till the end. XP will say setup completed.
Ask to click "Finish" button.
On next (final) reboot, BSOD 7B. This I don't expect is normal!.
BSOD 7B with this message
(0xF78A2524, 0xC000 0034, 0x00000000, 0x00000000)
Try a 4th boot in safe mode, message "slightly changed" to
(0xF789E524, 0xC000 0034, 0x00000000, 0x00000000).
Windows folder size now is about 800 to 900MB. and Storport is here in system32\drivers
folder after "Graphic Mode" completed. I swap HD verified that Storport, acpi, Storahci
are all in system32\drivers folder.
This Ryzen XP installation will boot ACPI in my older P75 (z77 clone), with 1 file acpi.sys
replaced. So I am sure the XP is fully functional.
I will install a 4th time, may be in MPS or other mode and see what happen.
Cedar

#985 | diderius6 | ⇗ @cedar I think, the acpi.sys is restored to the original one. You only have to change this original acpi.sys (5512) against the modded acpi.sys (5048) one time more, Dietmar

#986

cedar

⇗ @diderius6
It is not ver. 5512. This version got me to Std. mode only.
I used the newest jun 29 version on the burnt disc for the 3rd successful installation.
Another older disc with jun 26 version from a week ago, I got the first 2 successful installed
at textmode. and then I replaced the older jun 26 version, in \system32\drivers
with the newest "jun 29". This let me boot again to install graphic mode successfully.
I did it twice to 2 different partitions. Both success completely installed. But both XPs
BSOD on next reboot. Safe mode BSOD too.
On 3rd installed, I burn a new disc last night contain latest jun 29 version. Textmode and Graphic
mode installed fine. Hoping it differs this time.
But still BSOD after successful XP installion. Safe mode too. I am a bit confused now.
Cedar

#987 | cedar | ⇗ @diderius6 Does it work in MPS mode? Or it is not meant to work in MPS mode. Cedar
#988 | cedar | @Dietmar I checked every time after installation. I have no version 5512 in any folders. All acpi are jun 29 lastest version. Cedar
#989 | infuscomus | ⇗ @cedar MPS has never worked for me have you got a storahci.inf in c:\windows\inf ?
#990 | cedar | ⇗ @infuscomus Hmm... there is no storahci.inf in my inf folder! Cedar

## Page 67

#991 | cedar | ⇗ @infuscomus and @ Dietmar I wonder if storport needed a .inf too?.
#992 | infuscomus | ⇗ @cedar storport didn't for me (although i needed to manually copy storport.sys over) storahci might need inf though
#993 | cedar | ⇗ @infuscomus I will put it in the inf folder. Edit: It did not work in this case, just tested.

#994

diderius6

⇗ @cedar
No *.inf is needed,
when you can install Graphik Mode until its end.
Make try to eliminate the extra entries in boot.ini.
In other case, I am quite sure, that one of the
files, I think acpi.sys (5048), is missed in
windows\system32\drivers
Dietmar

#995 | cedar | @Dietmar /noexecute=optin /fastdetect was deleted since 2 days ago on boot.ini for Ryzen. Did you hard code "Windows\system32\drivers" in Storahci or acpi? My Windows folder is renamed XP-ryz or something. This is the only thing I can think of which is different.
#996 | diderius6 | ⇗ @cedar Only C:\WINDOWS\system32\drivers is allowed Dietmar
#997 | infuscomus | ⇗ @cedar try reformatting your XP drive using default settings in windows 10 or linux - XP default settings does not align properly for SSDs then install XP onto it - in XP setup when asked to format select no changes

#998

cedar

⇗ @infuscomus
Any good utility to check alignment, are they accurate if the HD has 5 partitions?.
How do you manage trim in XP?. I read that without trim. SSD life span is several
times shorter without proper trimming.
@Dietmar
Does it mean D:\WINDOWS\system32\drivers or E:\WINDOWS\system32\drivers
will not boot XP because of acpi.sys ?!!

#999

infuscomus

⇗ @cedar
I dont think XP likes more than 5 partitions on a drive - max 4
SSD alignment see here
⇗ https://www.disk-partition.com/windows-1...ws-10-3889.html
corsair SSD toolbox can TRIM in XP
⇗ https://www.corsair.com/ww/zh/blog/the-corsair-ssd-toolbox
whichever windows is booted is always C:

#1000

cedar

⇗ @infuscomus
My C partitions are usually 2GB, sometime with w2k in it. Winntsetup can setup any drive
letter you want to the OS. It worked for me a few times. But properly not easy in this case,
within Win81.
I ended up repairing the bootmanager a few times on this XP,Ryzen setup.
My other XPs on P75-S3 boot to D: or E: etc.

#1001 | infuscomus | ⇗ @cedar you should also check that your XP drive is MBR partitioned and not GPT partitioned

#1002

diderius6

⇗ @cedar
Best tool for correct formatting any device for XP is
RMPrepUSB 2.1.739.
I use for this an ICY BOX IB-112StU3-B,
which makes life easy.
If you use something other than
C:\WINDOWS\system32\drivers
it can happen, that the arcpath is not found, gives BSOD 0x7B.
To change this, only chance is to boot without any
boot.ini (delete complete boot.ini)
and delete via regedit the whole key
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
Dietmar
PS: When you set up or try something new: Make it clear and easy as much as possible,
means in this case: Use a normal harddisk formatted as above with no other partition on it and MBR, partition aligned to 2048 sectors.

#1003

cedar

⇗ @infuscomus
My drives are 2 TB. No GPT partitioned needed at the moment.
@Dietmar
My drives are 70% full. Yup, if I have a relatively empty HD, I can backup to
another drive and reformat it. The fastest route now is burn another disc
without renaming Windows default folder in NLite, and make sure
all partitions are aligned.
Nlite, on the same source files 2 weeks ago, Nlite work. About a week later,
iso created by Nlite has issue. else I would have burnt a new disc already.
It is getting pretty close to work now.
Thanks

#1004

cedar

⇗ @infuscomus
At textmode installation today, I did see StorAHCI on the right corner like your picture.
@Dietmar
Today I burn 2 discs. After edit the default Windows folder to "Window" instead of
XP-Ryz. made the ISO, checked ISO txtsetup.sif file. It is Windows as default folder.
Next add the AMDUSB30 and several more drivers. Made another ISO. burn the disc.
NLite somehow reverted it back to Xp-Ryz. Should have check the final ISO again before burn!
So changed the txtsetup.sif again. This time ISO changed "Xp-Ryz" to " Windows". I burn 2nd
disc. and installed XP to the "true" C:\Windows partition hoping it will work.
This is the 4th successful XP graohically installed. Reboot next, same "exact" BSOD 7b message,
safe mode as well compare to 3rd successful installation. When I have an empty HD, wiill reformat
as your suggested. May be alignment cause it.
I will try my Kingston SSD after backup its Win81 content first.
Cedar

#1005

infuscomus

⇗ @diderius6
i found a work around for storport not copying
in txtsetup.sif
[files.acpi]
acpi.sys,4
acpiec.sys,4
oprghdlr.sys,4
storport.sys,4
now it copies across

## Page 68

#1006 | diderius6 | ⇗ @infuscomus Nice finding, I will integrate in CD. In few days I test new Ryzen >=3000 for XP:)) Dietmar
#1007 | diderius6 | The generic modded STORAHCI driver for XP SP3 for all AMD boards works also generic on Intel AHCI Dietmar

#1008

diderius6

I just ordered an Asus Prime x570 Pro board,
which has an COM1 port, important for windbg.
After I saw first benchmarks I also ordered a cpu
Ryzen 3700x
and then I test test test under XP SP3
Dietmar

#1009

XPLives

⇗ @diderius6
Good CPU choice. I also think it's the best one from the 7nm launch.
But why a new x570 MB? X370 BIOS update supports 3700X. X570 only good for Ryzen 9 16 Core / 32 Threads in September.
⇗ https://www.amd.com/en/products/cpu/amd-ryzen-9-3950x
Better to use the money on that CPU instead of the 3700X if pairing with x570MB.
3700X no point on it since you also own the i9-9900K with same 8 Cores / 16 Threads.

#1010 | infuscomus | ⇗ @XPLives He is testing if the newer X570 chipset and 3700X CPU is compatible with XP B350 is already confirmed to work the 300 series motherboards might have power delivery issues for the newer 3000 series CPUs - AMD left it up to the motherboard vendors to support it

#1011

XPLives

⇗ @infuscomus
If the point is testing X570 compatibility then just get the X570 MB and test an older gen CPU on it like a Ryzen 7 1700 which is 8 cores also. If it works then buy the Ryzen 9 3950x for 16 Cores.
If you want to test 7nm compatibility then just buy a low end 7nm like a cheap quad core when it comes out.
I just examined the AsRock X370 board and found it supports these latest Ryzen 3000 CPUS:
AM4 Ryzen 7 3800X(100-000000025) 105W Matisse 3.9GHz 4MB B0 P5.80
AM4 Ryzen 9 3900X(100-000000023) 105W Matisse 3.8GHz 6MB B0 P5.80
Note the 3900X is Ryzen 9 3900X
US $499 12 Cores (24) Threads
So it looks like it can handle 12 Cores without needing X570. It's possible 16 Cores might work on a X370 MB when it releases in September with a BIOS update.
Also note some of the newer > X370 MBs may no longer have legacy PCI slots on them making it harder to run 98SE retro cards so going to the newest generation will make it much harder if an older gen chipset already has the PCI slots you want and can support the 7nm CPU you want to use. It was already tough to find any X370 with them and I'm sure X470 and X570 will be even rarer.
The only slight benefit for X570 is PCIe v4.0 which most graphics cards from XP era were probably PCIe 3.0 for the extreme models so it won't have any benefit for XP at all.
If you want a chipset worth upgrading to it's 8 Dimm slots and 16GB or 32GB DDR4 or 64GB/128GB DDR5 memory sticks to reach the 256GB-1TB max. Most motherboards are capped at 64GB with 4 memory slots so 8 Cores feels too constrictive already and I would rather have 256TB memory with 8 Cores than 64TB memory with 16 Cores.

#1012 | infuscomus | ⇗ @XPLives PCI slots are still a possibility with enclosures ⇗ http://eshop.sintech.cn/pcie-express-x1-...le-w-p-933.html

#1013

diderius6

It is just a lie,
that Ryzen 1700 does not work on x570 motherboards.
Just in this moment I am installing XP SP3 on
Asus Prime x570 Pro
Dietmar
EDIT: It hangs with blinking cursor,
I cant see the harddisk. It seems to be a problem
of the STORAHCI driver.
It is not acpi related.
NVME boot also not works.
EDIT2: I connect the CD drive and the harddisk to different SATA slots,
first and last.
Now I can install XP !!!
EDIT3: Acpi multiprocessor works, network works, sound works, graphik works, but USB is a problem,
also no y-cable possible, only PS/2 mouse or keyboard.
EDIT4: Nice, on this board, the Ryzen 1700 (!) at 3741 MHZ with 71 degree Celsius max, is faster than the i7 8700k.
EDIT5: I just ordered USB card Silverstone SST-ECU05 and
I-TEC PCI-E Karte 4x USB 3.0 PCI-Express 2x external 2x internal ueber 1x 20 Pin Adapter internal USB 3.0 port Windows 7 Vista XP (PCE22U3)
⇗
⇗

#1014

XPLives

> Zitat von ⇗ infuscomus im Beitrag ¶ #1012

> @XPLives
> PCI slots are still a possibility with enclosures
> ⇗ http://eshop.sintech.cn/pcie-express-x1-...le-w-p-933.html

I recommended that enclosure method on another site about 2 years ago when SkyLake already begun phasing out PCI slots on the AsRock Fatal1ty. Fortunately other brands like Gigabyte made a SkyLake MB with 2 PCI slots.
But when building a compact fanless all in one retro machine you want as little external adapters as possible. I think there was one that you could mount internally into a 5 1/4" front slot but you'd have to do internal wiring to a rear bracket for sound output.
Finding 2 PCI slots on a X570 or Z470 / Z570 Ice Lake / Tiger Lake will probably be slim to none would be my guess. Maybe one or two models may exist as a B570 in limited quantities.
I also have a PCIe to Dual PCI Slot adapter card (no enclosure) basically the same thing without paying a fortune for the external enclosure. I haven't had time to test that either to see if all PCI cards work properly in it via the PCIe slot but this is the cheapest solution.

#1015

XPLives

> Zitat von ⇗ diderius6 im Beitrag ¶ #1013

> It is just a lie,
> that Ryzen 1700 does not work on x570 motherboards.
> Just in this moment I am installing XP SP3 on
> Asus Prime x570 Pro
> Dietmar
> EDIT: It hangs with blinking cursor,
> I cant see the harddisk. It seems to be a problem
> of the STORAHCI driver.
> It is not acpi related.
> NVME boot also not works.
> EDIT2: I connect the CD drive and the harddisk to different SATA slots,
> first and last.
> Now I can install XP !!!
> EDIT3: Acpi multiprocessor works, network works, sound works, graphik works, but USB is a problem,
> also no y-cable possible, only PS/2 mouse or keyboard.
> EDIT4: Nice, on this board, the Ryzen 1700 (!) at 3741 MHZ with 71 degree Celsius max, is faster than the i7 8700k.

Yeah I would find it strange if R7 1700 would not work. A newer one should maintain compatibility, but I hear the BIOS may run out of room soon for all the CPUs supported and I wonder if squeezing all future Ryzen 4000 CPU series will work on the X370.
Do you have any X570 MB with Asmedia 106X SATA controller to test?
Your method seems to only work with the nVME slot or is this on any AMD SATA controller too?
Which universal SATA driver are you using with the X570 and where is the link? I will try this on the regular AMD SATA controller for compatibility.
Also which ACPI.sys file are you using and I will see if X370 is compatible? The one modified by infuscomus for checksum for VM testing did not work on my X370 MB.
Try installing XP using F7 NO ACPI method on X570 and see if it boots to desktop or can only run in Safe Mode. I'm curious if it also hangs on your motherboard during first boot to desktop.

#1016

cedar

⇗ @diderius6
Good works on your Asus board.
I am having trouble to get the Lan network work.
I tried a couple of Realtek drivers by adding my hardware ID to it.
VEN_10EC&DEV_8168&SUBSYS_86771043&REV_15
It installed but with yellow exclamation mark. So it did not work.
Can I try your Asus Realtek Lan driver?.
Versions tried:
0001-Install_Win8_8.1_Win7_Vista_6112_03122014
0001-PCI_Install_XP_2K_5719_04062012
Gigabyte P75-D3 ,date 2011
Asus Prime-Plus B350 disc Lan driver.
Cedar

#1017

cedar

⇗ @infuscomus
I am having trouble with XP Realtek Lan driver.
Can I try your Asrock Realtek Lan driver too? May be
it will work on my board too.
As suggested earlier.
[files.acpi]
acpi.sys,4
acpiec.sys,4
oprghdlr.sys,4
storport.sys,4
I added storport.sys,4. But I got message "Storport has value 0 in
[SourceDisksFiles]..." Can not install. Press F3 to exit.
Cedar

#1018 | XPLives | Did you install and get that Realtek LAN working in Windows 7 or 10? If so what is the name of the device listed in Device Manager? Sometimes it will tell you Realtek 8168A,B,C,... the last letter at the end is important. If not shown there, you have to examine your motherboard with your eyeballs and see if you can find the Realtek Chip ID name which should show the letter after 8168.

#1019

cedar

@ XPLives. The Realtek Lan works in win81. I believe I saw 8168H
with H from Doubledriver.
Edit: It is in section H. Not necessary 8168H. My mistake.
From Doubledriver 's Restore.inf of Win7 a while back.
DriverDesc=Realtek PCIe GBE Family Controller
DriverVersion=7.109.526.2017
DriverDate=5-26-2017
DriverProvider=Realtek
DriverClass=Net
DriverInfPath=oem5.inf
DriverInfSection=RTL8168H.ndi.NT
DriverHardwareID=pci\ven_10ec&dev_8168&subsys_86771043&rev_15
-------------------------------------------------------------------
From Doubledriver 's Restore.inf of "Win81", It has 2 IDs?!
[RestoreInformation]
DriverDesc=Realtek PCIe GBE Family Controller
DriverVersion=8.1.510.2013
DriverDate=5-10-2013
DriverProvider=Microsoft
DriverClass=Net
DriverInfPath=netrt630x64.inf
DriverInfSection=RTL8168E.ndi.NT
DriverHardwareID=pci\ven_10ec&dev_8168&rev_06
[RestoreInformation1]
DriverDesc=Realtek PCIe GBE Family Controller
DriverVersion=8.1.510.2013
DriverDate=5-10-2013
DriverProvider=Microsoft
DriverClass=Net
DriverInfPath=netrt630x64.inf
DriverInfSection=RTL8168.ndi.NT
DriverHardwareID=pci\ven_10ec&dev_8168&rev_15
Strange! 2 Hardware ID's.
Cedar

#1020

diderius6

⇗ @cedar ⇗ @infuscomus ⇗ @XPLives
I use this lan-driver for Realtek.
acpi.sys is my latest version and STORAHCI (big thank to Samuel Marins Oliveira) also with new storport.sys and txtsetup.oem
Dietmar
PS: I do not edit txtsetup.sif by hand, only use nlite and copy by hand acpi.sy_ and storport.sy_ via makecab.exe to the installationsfolder i386 for CD.
diderius6 has attached files to this post

- ⇗ PCIE_Install_5836_02142018.rar
- ⇗ acpi.rar
- ⇗ storahcitxtsetup.rar

## Page 69

#1021 | cedar | ⇗ @diderius6 Thanks. I will try them soon. Cedar

#1022

XPLives

Yeah you will have to do the eyeball to motherboard check.
Look for where the Ethernet connector comes in from the rear side of the motherboard. Then follow that into the motherboard and look for any Realtek 8168 chip. You can find which model it is that way.
Probably starts with RTL.
I have a few PCIe NIC from Realtek and you can read it off the chip if you look closely.
I can confirm the one in Ivy Bridge I had is 8168E that works in XP.
Okay the one I recommended to buy off eBay the chip will say on it:
RTL8111E.
Cost about $5 on average shipped to the US total cost.
This one works great if not depending on the motherboard to hook it up which sometimes you have to be picky about which motherboard to get if you don't want to use any internal slots up.

#1023

diderius6

I just flashed the new Bios PRIME-X570-PRO-ASUS-7010
with result, that the board with Ryzen 1700 does not promt any longer, brrr.
But before I make a complete extract of the Bios with Universal BIOS Backup ToolKit 2.0.exe.
Now I am going to flash the Bios back, because ASUS CrashFree BIOS 3 does not work at all!
The Bios chip is Winbond 25Q256JWEQ, which is package size WSON 8x6-mm (8 pins)
25Q256JW
1.8V 256M-BIT
SERIAL FLASH MEMORY WITH
DUAL/QUAD SPI
I use for this Epromer tl866ii plus which supports this Bios chip as W25Q256JW(1.8V) @SOIC8
Dietmar
EDIT: I cant flash this Bios chip until now, because the package size 8x6-mm is too big for my test clip.
Because my original 407 Bios version is not listed at Asus site, I think, they just deleted the CPU id for Ryzen 1700,
for to make true, that this first generation of Ryzen chips can not work on this board..

#1024

diderius6

I just see, that the Universal BIOS Backup ToolKit 2.0.exe reads out only 16Mbyte (I compared 2 times)
but the Bioschip 25Q256JWEQ is 32Mbyte!!! So, on 256 Megabit Bios chip forget about this tool!
(EDIT: May be, that the Bios was before 16 Mbyte. And this information is written in header and the rest may be only FFFFFFFF..
In this case, I have a working Bios file.EDIT2: No, the Bios is always 32 Mbyte. The Tool Universal BIOS Backup ToolKit 2.0 does not work for this BIOS. )
I make a try with Epromer tl866ii plus to read the chip out, but fail.
I solder 8 cables, check check check each one for good contact, ok, works.
But even without cpu, ram, cmos battery,
the Epromer told "unknown chip" (but Pin check is ok) and reads out only FFFFFFFFFFFFFFFFF...also as serial number FFFFFFFF.
This behavior I know from results with other Bios chips, it just means, that not enough power is left for the insoldered chip.
To solder this Bios chip out will be a hard job, because other solder points are very near.
So I make NO try to write anything to this Bios chip, I also have no valid copy(?see above) from original Bios before.
Now, I desolder all cables, connect cpu, batterie, ram but behavior is the same as before:
The yellow LED is on all the time (ram). I changed to other DDR4 ram, test every slot,
no success, always yellow LED on.
So I wait for my 3700x cpu and then we will see.
No error message has been there when updating the Bios with Asus EZflash tool from version 407 to 7010.
Dietmar
⇗

#1025

cedar

⇗ @XPLives
Wow, it is small like a pea on the motherboard.
I need a flash light. It shows 8111H on the chip.
Good info to know, thanks.
After adding my HW ID to Dietmar's driver. Networking is ok now.
The remaining 2 devices still have yellow exclamation mark are
the AMD GPIO device and USB 3.0 driver. If I try to install
USB 3.0 driver on the Standard Enhanced USB controller(installable),
but with no function USB HUB driver.
I got BSOD with USBport.sys error. So mouse on USB 3.0 port not
working, but mouse on 3.1 port works, as USB 3.1 driver works.
Cedar

#1026

diderius6

I changed the cpu Ryzen 1700 against Ryzen X4 950 on the Asus Prime x570-Pro.
This time nothing at all happens, when I try to start the board.
So I hope for the best, that the Ryzen 3700x (comes tomorrow)
will boot this board. Interesting, if it is possible to flash back to the first, original 407 Bios
Dietmar

#1027

diderius6

The yellow LED (ram) stays enlighted, even with new processor Ryzen 3700x on the Asus Prime x570-Pro.
So, Asus has done a very bad job on their new Bios 7010 for this board. No flashback Bios no crashfree Bios, all lie
Dietmar
PS: Hope, that desoldering the Bios chips and flash new (with old Bios 407) will help.
Or I put this board away and just stay with Intel.
It is not me, to give up so quick. I just ordered the Epromer REVELPROG IS
who supports the 25Q256JW Bios chip. I hope, that with this Epromer I can flash
the still insoldered Bios chip. Until now, I do not find this Bios chip for to buy.
EDIT: I found this Bios chip at mouser.com and ordered it:
Mouser-Nr.:
454-W25Q256JWEIQ
Herst.- Nr.:W25Q256JWEIQ
Beschr.: NOR-Flash spiFlash, 1.8V, 256M-bit, 4Kb Uniform Sector
EDIT2: After long search I found also a socket for this Bios Chip
Description
The socket is designed for chips with WSON8 6*8 mm package. The socket can be soldered directly on the WSON8 6*8 mm PCB foot print. Will be not easy to solder.
⇗

#1028

diderius6

I succeed to flash the original Bios 407 back to the Asus Prime x570-Pro board.
The serial number of the Bios chip 25Q256JWEQ is EF6019.
Uefi tool shows this as a valid Bios, 16 Mbyte.
I test this 2 times. All seems ok. I also read out before the "new" Bios 7010, Uefi tool show this as valid Bios, 32 Mbyte.
I reset Cmos, put the Ryzen 1700 in, which works there before.
But the yellow LED (ram) continues to shine. I test different DDR4 rams, in different slots. Always the same,
Dietmar
EDIT: I just order a new board Asus Prime x570-Pro.

#1029

diderius6

This message I send to Asus:
"Dear Sirs and Madames,
5 days ago I bought an Asus Prime x570-Pro.
The CPU is Ryzen 1700. Everything worked with it.
A bios version 407 was indicated to me.
I have made a backup of this bios,
however, it does not work, possibly because of the wrong size 16 Mbytes, since the new updates all have a size of 32 Mbytes. The biochip is Winbond 25Q256JWEQ (Wson 8 * 6, 8 pins).
With this Ryzen 1700 CPU I have updated to the Bios 7010. The update via USB stick was normal, means works full until the end, without any error message.
After that I could not start the board anymore, the yellow LED (RAM) lights up constantly. Other DDR4 Ramsticks in different slots do not change that.
I have also tested the Ryzen processor 3700x, the yellow LED is constantly on.
I would be very happy if you could send me an original Bios 407 with the number for the network card, etc.
I have experience in biosupdate and can flash a bios by eprommer.
Please send me such a bios without the CAP backup,
many greetings
Dietmar
"

#1030 | diderius6 | Now I will test the Ryzen 3700x for XP on the Asrock Fatal1ty AB350 Gaming k4 board, there I can change the Bios chip Dietmar

#1031

diderius6

Yessssssa, nice board Asrock Fatal1ty AB350 Gaming k4 !!!
I think, this is very first time, XP SP3 on Ryzen 3700x.
I update Bios from 5.40 to 5.80.
Size of Bios is always 16 Mbyte.
Even USB 3.1 works, ACPI, lan, sound, STORAHCI, mouse, y-cable on PS/2 and everything else.
The Ryzen 3700x is in Cinebench without any overclock
exact as fast as the 9900k
Dietmar
EDIT: Chipset is not running hot, and also the Mosfets not. Temperature is about 50 degree Celsius
with Prime95, 3DMark2001, Cinebench, Youtube video running all at the same time.
The CPU Ryzen 3700x reaches 78 degree Celsius during this torture , which is about the same as with Ryzen 1700.
Both use 65 Watt.
EDIT2: I just get 143 brandnew updates for XP SP3 from Posready2009:)).
EDIT3: Any overclocking makes the cpu a little bit slower!
EDIT4: Nvme boot of XP does not work. Last time was with Bios 3.30.
EDIT5: With nearly zero load, cpu core is 1.50 Volt (standard settings all). This is not good for cpu long life.
⇗

#1032

XPLives

⇗ @diderius6
Try installing XP with F7 NO ACPI method on the same motherboard.
Will it install XP all the way to first desktop boot or freeze?
Freezes on my Asrock X370. Safe Mode works but very sluggish as if something stalling it and mouse is laggy sometimes.
Any Windows 2000 OS install on Ryzen success?
Maybe try to add 3700X CPU MicroCode to BIOS 3.30 so it works and can use nVME XP boot?
My hope is Intel Ice Lake / Tiger Lake continues same backward compatibility as Z370 so XP will continue to work using 10nm including Windows 2000.
Seems too many compatibility issues with AMD AM4 so far. Intel's backward compatibility is superior.
Intel Sapphire Rapids for 7nm and DDR5 / PCIe 5.0 256GB-512GB RAM support with 8 memory modules I will upgrade then and use XP.
Tired of limited 64GB memory max with 4 slots instead of 64GB DDR5 memory sticks and 8 slots to match the 16 Cores / 32 Threads.

#1033

diderius6

⇗ @XPLives
I have not tried to install "Standard PC" on Ryzen 3700x,
because then you dont get Acpi after.
Only vice versa this works.
The installation works without any crash or freeze.
I noticed another thing: On Ryzen 1700 the STORAHCI driver was faster than the ASM106x.
But on Ryzen 3700x, the ASM106x is faster
Dietmar
PS: Asrock changed whole Bios from version 3.30 to version 3.40.
With 3.40 the problem with lancard is gone, but also nvme boot is gone.
So, in the end I stay with Intel, because those kind of problems I have never seen there.
It is a problem of how the board is constructed. Crazy, how Asrock can to give lancard the same lines as for USB3.1.
On all my newer Intel boards I can do nvme boot of XP SP3 and those crazy problems with Bios updates I match the first time with AMD, brrr.., but ok, now I am again better in soldering..and do crazy things to flash an Bios chip:)).

#1034 | infuscomus | ⇗ @XPLives Can you take a screenshot of the A5 BSOD you are getting on X370 in XP?

#1035

diderius6

⇗ @Lost_N_BIOS
Can you please help me to save my Mac adress etc.
from the broken Bios of AMD board asus prime x570-pro?
I make a backup with working Bios 407 with Universal BIOS Backup ToolKit 2.0.exe, which may have wrong file 16Mbyte size which I call 407.
The other is with Epromer full read out after the update, not working Bios 7010 32MByte,
I call 7010.
Dietmar
PS: Both Bioses should have Mac adress etc. from my board and they should be identic.
⇗ https://ufile.io/0nlebva8
⇗ https://ufile.io/pttbiy9k

## Page 70

#1036

diderius6

Ok, what I found with Winhex for the Asus Prime x570-Pro board in its readout of Bios 407 (and also 7010) is
SN 190551498900517 (Dezimal) at 2 places
MAC 04D9F51E29E0 (Hex) at 2 places
UUID D008090B92A5E8F9C07D04D9F51E29E0 (Hex) at 2 places
From Asus Website I download oldest Bios, what I can get
0602 version.
This Bios I open with UEFI-Tool and for to delete cap I store only UEFI image (under AMI Aptio capsule).
I use FD44Editor.exe to copy this values direct into the downloaded Bios (free from cap) from Asus website (to change the 2 times 50 (FF..) against the above values at its 2 places )
and flash via Epromer direct to Bios chip,
Dietmar

#1037 | diderius6 | I flashed this bios 602 with Mac, UUID, SN back to Asus Prime x570-Pro board. I doublecheck, that the written Bios is exact the same as the Bios file. But still the yellow LED is on, so something really bad is going on Dietmar
#1038 | infuscomus | ⇗ @diderius6 faulty RAM maybe?

#1039

diderius6

⇗ @infuscomus
No, I tested different Ram sticks, different brands. All they work on other boards.
Double, single mode, each slot.
It is Bios related, because the same ram works before also on this board,
see photos in post 1013 here. And it is not only one Bios
for this motherboard, that fails. The 602 version fails also,
next to 7010.
The only Bios, that worked, was version 407 for Ryzen 1700.
Tomorrow I will test this Bios 407 and also Bios 804 on second new board Asus Prime x570-Pro with Ryzen 3700x.
Dietmar
PS: Asus sent me mail, that they accepted my case
but nothing more.

#1040

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1033

> @XPLives
> I have not tried to install "Standard PC" on Ryzen 3700x,
> because then you dont get Acpi after.

Yes that is the point of the test to see if it installs fully and boots to the desktop in F7 NO ACPI method. If it works then you can still use XP minus hyperthreading and shutdown/standby on AMD AM4.
This determines compatibility. In all the tests I've seen with Coffee Lake and SkyLake both have no issues installing XP to completion using this method.
I want to see what happens on your X370 and your X570 MBs using "F7 NO ACPI method" if XP can install successfully and boots to desktop in normal mode.
If not I want to know where it freezes and if Safe Mode works to get to the desktop during this failure.

#1041

XPLives

⇗ @infuscomus

> Zitat von ⇗ infuscomus im Beitrag ¶ #1034

> @XPLives
> Can you take a screenshot of the A5 BSOD you are getting on X370 in XP?

It's your typical BSOD A5 screen message.
Here are the Error Codes using your image:
⇗ How to install Windows XP OS on AMD (AM3+ 990FX and AM4 X370 Ryzen 7)

#1042 | diderius6 | I just ordered the cheapest RAM stick (20 Euro), which is in the compatiblity list from Asus for memory for the Asus Prime x570-Pro board. G.Skill NT Series DIMM 4GB, DDR4-2133, CL15-15-15-35 (F4-2133C15S-4GNT) Dietmar PS: If this one also will fail, it is to 100% the fault of Bios from Asus.
#1043 | diderius6 | ⇗ @XPLives At the moment I have no working x570 board. But I think, without ACPI install of XP SP3 will be no problem Dietmar PS: When you install XP SP3 via CD, the screen with special BSOD is important for diagnosis.

#1044

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1043

> @XPLives
> At the moment I have no working x570 board.
> But I think, without ACPI install of XP SP3 will be no problem
> Dietmar
> PS: When you install XP SP3 via CD, the screen with special BSOD is important for diagnosis.

Test on your X370 MB with F7 NO ACPI method install. Let me know the results for your Ryzen 7 3700X and Ryzen 7 1700 CPUs if both install XP successfully with NO ACPI.
BSOD A5 ACPI Error Code Results are here:
⇗ How to install Windows XP OS on AMD (AM3+ 990FX and AM4 X370 Ryzen 7)
Unfortunately your ACPI.SYS did not work. It's possible your ACPI.SYS is only compatible with your MotherBoard or just Ryzen CPUs but not earliest AM4 Bristol Ridge and Raven Ridge CPUs.
At the moment I cannot say the ACPI.SYS is universal since it has failed on my X370 which should have worked.
I have yet to test it on the SkyLake and Coffee Lake MB to see if that fixes the ACPI issue.
I'm now testing F7 NO ACPI method using the same image. Should see the new results within the hour.

#1045

diderius6

⇗ @XPLives
Read post 891 here
Dietmar
PS: I test Athlon X4 950, A8-9600, Ryzen 1700, Ryzen 3700x, 8700k, 9900k for XP SP3.
All work with this acpi.sys. And Infuscomus test also 2400G with success.
Also I test some Celerons, Pentium for Skylake, Coffeelake, work with full ACPI.

#1046

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1045

> @XPLives
> Read post 891 here
> Dietmar
> PS: I test Athlon X4 950, A8-9600, Ryzen 1700, Ryzen 3700x, 8700k, 9900k for XP SP3.
> All work with this acpi.sys. And Infuscomus test also 2400G with success.

If your X370 works with Bristol Ridge then maybe motherboard differences exist between B350 and X370 chipsets.
Test F7 NO ACPI on your B350 XP install on your Bristol Ridge see if it can install XP completely to first desktop.
Still installing XP (driver.cab) 7% stuck for a long time almost half an hour. Might reboot the computer and hook optical drive to a different SATA port than AMD if this takes too long with no progress.

#1047

diderius6

⇗ @XPLives
Until now I do not have a x370 board for testing.
From AMD I tested B320, B350, x570 which all works with full acpi and XP SP3
Dietmar
PS: I installed XP SP3 on 2 different Bristol Ridge CPUs without and also with acpi,
see above.

#1048

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1047

> @XPLives
> Until now I do not have a x370 board for testing.
> From AMD I tested B320, B350, x570 which all works with full acpi and XP SP3
> Dietmar
> PS: I installed XP SP3 on 2 different Bristol Ridge CPUs without and also with acpi,
> see above.

Ahh... I had to reset then moved both optical drive and SATA SSD to Asmedia 106X ports.
I think AMD SATA ports dislike XP installation for some reason. Even SSD on AMD and optical drive on Asmedia had issues.
Seems to copy now faster on both Asmedia but hanged on different parts after files copied.
Now I reset the BIOS and do a clean test again now to be certain no conflict.
Were your ACPI and NO ACPI tests all done on SATA SSD on Asmedia SATA ports?

#1049

diderius6

⇗ @XPLives
Most I use normal harddisk (I use about 20 harddrives each 2 Terabyte black WD, very fast>200 Mbyte/sec)
because I can easy format, align and copy file by file from and to them via USB adapter
Dietmar
PS: Before we have STORAHCI driver, which works for any AMD and any Intel SATA, I always use asm106x. Only for Intel board,
there has been a generic SATA driver for years now on the market.
The CD drive only hangs, when the CD disk is not absolut clean.

#1050

infuscomus

⇗ @XPLives
So my install media that I used for my AB350 GamingK4 board froze for you on X370?
What motherboard do you have?
Which BIOS version?
BSOD A5 ACPI Errors:
0x00000011
0x00000008
0xF79A1478
0x20120913
I think this means ACPI failed to load DDB.
⇗ https://docs.microsoft.com/en-us/windows...acpi-bios-error
I would get this error when I tried to patch the DSDT table, never worked and ended up using the patched driver that supports more arguments (CreateQWordField for example)

## Page 71

#1051

diderius6

⇗ @Lost_N_BIOS
Do you know a tool,
that can read out the full 32 Mbyte of Bios chip on AMD AM4 board Asus Prime x570-Pro?
Universal BIOS Backup ToolKit reads only 16 Mbyte out,
but Winbond chip 25Q256JWEQ is 32 Mbyte,
Dietmar
PS: Ok, this means soldering.

#1052

diderius6

With original readout of the 407 Bios (nightmare, is really 32 Mbyte and not all FF after first 16 MB, so the tool
Universal BIOS Backup ToolKit 2.0 cant be used for this Bios chip with 32 Mbyte!)
I succeed to start with Ryzen 1700 and with Ryzen 3700x
on the AMD AM4 board Asus Prime x570-Pro XP SP3 full Acpi, all works, USB only via Pcie card.
The website from Asus tells only nonsense about Bios versions, compatible Ram and compatible processors for this board Asus Prime x570-Pro. And the most evil is, that the Bios version 407 cant be found there.
Ryzen 1700 works at once with all different ram sticks,
but for the Ryzen 3700x I had to change ram as much as possible,
before one time I see the yellow LED blinking.
After next 4 tries with changing ram, slots..
the board starts with Ryzen 3700x. Any other Bios version than 407 does not work on this board until now.
NEVER update your BIOS on this board or you will be lost!!!
EDIT: After 30 min prime95 with Ryzen 3700x it crashes. The Asrock Fatal1ty AB350 Gaming k4 runs stable for about 2 hours with the Ryzen 3700x and the torture includes prime95, Cinebench, 3Dmark2001 and Video from Youtube all the time.
So, this 80 Euro board is better than this new one for 280 Euro, brrr..
EDIT2: With Ryzen 1700 @3641 MHZ and the same torture test, the Asus Prime x570-Pro (Bios 407) crashes after 53min.
Tmax is 74 degree Celsius. Repeating the same for Ryzen 1700 no overclock at all, now it crashes after 35 min.
Asus Prime x570-Pro is build quick and dirty.
Dietmar
⇗

#1053

diderius6

I run a new stresstest on the Asrock Fatal1ty AB350 Gaming k4
with the Ryzen 3700x cpu.
prime95, Cinebench, 3dmark2001, video from Youtube all the time.
It is stable, nice board.
Even the temperature managment is better on the Asrock board than on the asus prime x570-pro:
78 degree Tmax Asrock against 81 degree Celsius Tmax Asus in long run
Dietmar
PS: Asus send me a mail, that I can rma the board.
And that they dont have the Bios 407 (from their own board(!)) .
Oh, a lie in combination with worst service ever.
EDIT: Correction, Asrock Fatal1ty AB350 Gaming k4 board crashes on this torture also after about 1 hour.
First network connection is gone (this is reproducible in about 1 hour torture) (Youtube) and then BSOD, brrr..
EDIT2: Now 90 min torture on the Asrock board without any crash.

#1054

diderius6

I succeed to flash the Bios back on the Asus Prime x570-Pro board,
something, from what the man from Asus told "it is impossible".
The Bios chip is now "hardwired",
I use the SPI-TPM link for this:
Adapter with 2 rows a 7 pin, 2 mm distance
SQT-107-01-L-D
via mouser.com
Dietmar
PS: By the way I notice, that all about Mac, UUID, serial etc. is also nonsense.
I have now 2 compis which where to 100% identic.
Take a look at the Bios version:))!!!
EDIT: On Cinebench, the Ryzen 3700x is 23% faster as the Ryzen 1700. Hm, for what is the Hype?
⇗
⇗
⇗

#1055

diderius6

The REVELPROG IS is by far the best Epromer, that I know.
It is manufactured in Poland and quite expensive (150 Euro).
Very good quality and good Software support.
And it is fast. It runs on XP SP3, Vista, Win7, Win8, Win8.1, Win10 (all 32 or 64 bit).
Now I can read and flash any Bios chip,
without any soldering or to put the Bios chip out of the mainboard.
No clip is needed. I just use the SPI TPM connector with this nice Epromer, professional as in factory,
Dietmar
PS: It includes a Hexeditor, so you can manipulate single Bits in Bios file and flash this new Bios.
Also it has a checksum tool.
And a DiffChecker tool, that allows you to compare 2 bin or hex files at one screen (waoh).
EDIT: SPI TPM (female) Adapter is 2 rows 7 pin, 2 mm distance
SQT-107-01-L-D
via mouser.com

#1056

nofearek9

hello,whats the solution for winxp to see hard drivers bigger than 2TB ? Asus Rampage IV Black Edition,Intel Xeon e5-1680v2@4,7ghz,Corsair XMS3 64GB DDR3(8x8),Samsung 950 PRO 256GB,EVGA GeForce RTX 2070 XC GAMING 8GB,Lian Li PC-60FNWB ,Corsair Gold AX750PSU,Noctua NH-D15 .
Asus Rampage III Gene,Intel Xeon X5660@ 4,5ghz,Corsair XMS3 48GB DDR3(6x8),Samsung 950 PRO 256GB.

#1057

diderius6

⇗ @nofearek9
You can buy the driver Paragon GPT Loader for XP, I have,
with which you can read GPT drives under XP as large as you want
Dietmar
EDIT: And even with MBR XP can work via USB with really big drives, just formatted
with NTFS and 4k sectors.
⇗ https://www.seagate.com/de/de/internal-h...s/hdd/ironwolf/
16TB 5 years garantie, 250 MByte/s, sectors 512e , means Emulation via 4k should be recogniced from XP from start.
By the way, I prefer WD, no error on HD in 10 years.
Align to 4096 sectors and all HD with 512e > 2TB can be used in XP 32 bit also as boot device with MBR,
very fast, no difference to <= 2TB.
⇗ https://geizhals.de/western-digital-wd-b...=de&hloc=de&v=k
250Mbyte/s read, write in XP, nice.

#1058

nofearek9

i dont want to format the drives cause they already have data on them,its about 3TB usb drives,paragon dont offer anymore the driver is discontinued. Asus Rampage IV Black Edition,Intel Xeon e5-1680v2@4,7ghz,Corsair XMS3 64GB DDR3(8x8),Samsung 950 PRO 256GB,EVGA GeForce RTX 2070 XC GAMING 8GB,Lian Li PC-60FNWB ,Corsair Gold AX750PSU,Noctua NH-D15 .
Asus Rampage III Gene,Intel Xeon X5660@ 4,5ghz,Corsair XMS3 48GB DDR3(6x8),Samsung 950 PRO 256GB.

#1059 | infuscomus | ⇗ @nofearek9 I have GPT loader if you want it

#1060

nofearek9

yes please ,if you can upload it will be nice,thanks. Asus Rampage IV Black Edition,Intel Xeon e5-1680v2@4,7ghz,Corsair XMS3 64GB DDR3(8x8),Samsung 950 PRO 256GB,EVGA GeForce RTX 2070 XC GAMING 8GB,Lian Li PC-60FNWB ,Corsair Gold AX750PSU,Noctua NH-D15 .
Asus Rampage III Gene,Intel Xeon X5660@ 4,5ghz,Corsair XMS3 48GB DDR3(6x8),Samsung 950 PRO 256GB.

#1061 | infuscomus | ⇗ @nofearek9 I sent you a PM

#1062

XPLives

⇗ @nofearek9, ⇗ @diderius6, ⇗ @infuscomus

> Zitat von ⇗ nofearek9 im Beitrag ¶ #1056

> hello,whats the solution for winxp to see hard drivers bigger than 2TB ?

Since this discussion relates more to my other thread I felt it better to respond there in its entirety where it makes more sense.
⇗ The XP Yeager Project: 16TB -- Breaking the 2.2TB Capacity Barrier

#1063 | canonkong | I had made some generic USB drives for XP 32/64bit, and it test on my B360, X370 and R7-3700X has a usb controller named 149C, the same with X570. They are all working!
#1064 | infuscomus | ⇗ @canonkong Nice! I have a B350, 2700X, 2 extra AMD USB 3 controllers 15E0 and 15E1 that currently are not working on XP
#1065 | nofearek9 | thank you all for your replys. Asus Rampage IV Black Edition,Intel Xeon e5-1680v2@4,7ghz,Corsair XMS3 64GB DDR3(8x8),Samsung 950 PRO 256GB,EVGA GeForce RTX 2070 XC GAMING 8GB,Lian Li PC-60FNWB ,Corsair Gold AX750PSU,Noctua NH-D15 . Asus Rampage III Gene,Intel Xeon X5660@ 4,5ghz,Corsair XMS3 48GB DDR3(6x8),Samsung 950 PRO 256GB.

## Page 72

#1066

diderius6

⇗ @canonkong
I am very interested,
how you reach this
Dietmar
PS: Do you have an idea, how to make USB ports on newer Intel boards to work under XP?
This would be a big step forward.

#1067 | canonkong | ⇗ @diderius6 Modify like win7 usb drivers for new platforms. You need to find some USB driver support XP and use XHCI 1.0 and modify them inf/sys files. Then sign the driver.

#1068

XPLives

!canonkong

> Zitat von ⇗ canonkong im Beitrag ¶ #1067

> @diderius6
> Modify like win7 usb drivers for new platforms. You need to find some USB driver support XP and use XHCI 1.0 and modify them inf/sys files. Then sign the driver.

What is your interest in XP and Windows 7?
Can you make Intel USB 3.0 driver for Vista work?
I'm not sure what your process is.
You took Intel Windows 7 USB 3.0 driver and did what to it to make it work in XP?
How do you sign the driver for XP?
Can you modify Intel XP Graphics Driver for Intel HD Graphics 4000 to work on newer SkyLake HD Graphics 530 and Coffee Lake 630?
Would be nice to use newer Intel HD Graphics 4000 driver even if not using the full power of the iGPU while under XP instead of generic Windows driver.
Also any way to modify the graphics driver to use shared memory above 4GB memory region instead of taking away from XP OS region and increase shared memory usage range higher like 2GB to 4GB RAM?

#1069

canonkong

⇗ @XPLives
I am still using win7 for my B360 Z390 X370 and prepared to buy X570 and 3950X, they all will install win7 because I dont like Bug10.
I modified few usb drivers for B360/H370/Q370/Z390 and X570, they both can work on win7/win8/8.1,but I dont have try vista. Maybe it also can work.
I aslo modified UHD630 drivers for win7/win8/8.1, but I dont think it can support Xp.
For sign, I have signtool to do that.
XP 32bit can also support above 4G RAM like server 2003.

#1070

diderius6

⇗ @canonkong
I have a lot of USB 3.0 and USB 3.1 drivers,
which work under XP.
To modify *.inf is clear for me,
but all fail for newer Intel chipset USB ports (bluescreen or drivers does not start).
How to modify *.sys files as you told?
Is there the _DEV number something like hard-coded in the *.sys files for XP
Dietmar

#1071

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1054

> I succeed to flash the Bios back on the Asus Prime x570-Pro board,
> something, from what the man from Asus told "it is impossible".
> The Bios chip is now "hardwired",
> I use the SPI-TPM link for this:
> Adapter with 2 rows a 7 pin, 2 mm distance
> SQT-107-01-L-D
> via mouser.com
> Dietmar
> PS: By the way I notice, that all about Mac, UUID, serial etc. is also nonsense.
> I have now 2 compis which where to 100% identic.
> Take a look at the Bios version:))!!!
> EDIT: On Cinebench, the Ryzen 3700x is 23% faster as the Ryzen 1700. Hm, for what is the Hype?
> ⇗
> ⇗
> ⇗

Only 23% faster is not bad for one generation for AMD. But I think the real hype is the lower wattage consumption going to 7nm.
I still think Intel has better BIOS options than AMD on the same MB manufacturer. I don't know why that is.
Can you lower CPU Ratio to below 8 on your X570 MB?
Can you decrease CPU speed below 800 MHz?
How low can the CPU Core Voltage be set?

#1072

canonkong

⇗ @diderius6
Use IDA7.0, it can show the sys files running. Find out the DEV_ID confirm parts, replace ID or use jmp and nop to block them.
You can download this modified driver, it not only can support Intel USB devices, you can modify the ID like CC_0C30 or CC_0C330, that it can work almost all usb controllers devices.
⇗ [Solution] Win7 drivers for USB 3.0/3.1 Controllers of new Intel chipset systems

#1073

XPLives

⇗ @canonkong

> Zitat von ⇗ canonkong im Beitrag ¶ #1069

> @XPLives
> I am still using win7 for my B360 Z390 X370 and prepared to buy X570 and 3950X, they all will install win7 because I dont like Bug10.
> I modified few usb drivers for B360/H370/Q370/Z390 and X570, they both can work on win7/win8/8.1,but I dont have try vista. Maybe it also can work.
> I aslo modified UHD630 drivers for win7/win8/8.1, but I dont think it can support Xp.
> For sign, I have signtool to do that.
> XP 32bit can also support above 4G RAM like server 2003.

Yes that is why I wonder if you can use the Intel HD Graphics 4000 driver for XP to work on HD 530 and 630 Intel Graphics with some modding?
Not the other way modding Windows 7 driver to work in XP.
Vista if you can make work for Intel USB 3.0 will work for Windows 7 and maybe 8 automatically. Forward compatible so no worries.
Which signtool for XP do you use?
XP 32-Bit can use over 4GB but mainly for a large Ramdisk but 2003 does it better directly.
"Use IDA7.0, it can show the sys files running. Find out the DEV_ID confirm parts, replace ID or use jmp and nop to block them."
Which USB 3.0 driver are you modifying to work in XP?
Can you use a hex editor to modify the parts also?
Are you getting full USB 3.0 speeds in XP or USB 2.0 speeds?
Did you test with all USB devices working? - USB Keyboard, USB Mouse, USB Audio, USB hard drive, USB webcam?

#1074

canonkong

⇗ @XPLives
Signtool can use Asia Trust signtool.
You need find a driver can support XP original then when you modified the sys file,it will success more easily. Almost all usb drivers can modify support other devices if the driver use XHCI1.0 original.
Use IDA will better than HxD.
The speed base one the controller, if it can support usb3.0, it will run 3.0 mode.
Almost all usb devices can work, but USB to nvme disk maybe can not work if you dont link a usb hub.

#1075

diderius6

⇗ @canonkong
How can I find "DEV_ID confirm parts" with IDA pro
in *.sys file? Have I to mod both, xhci and hub driver? Do I need the *.pdb for this?
Is there a difference between AMD and Intel USB drivers?
Is there a difference between USB3.0 and USB 3.1?
Which XP 32 bit USB 3.0, USB 3.1 drivers you woul recommend for hack?
Have you done this for XP with success?
Is PCI\CC_0C03 best as generic _DEV
Dietmar
PS: Sorry for this a lot of questions. But I want to make USB work on newer Intel, AMD chipsets for XP.

#1076

XPLives

⇗ @canonkong

> Zitat von ⇗ canonkong im Beitrag ¶ #1074

> @XPLives
> Signtool can use Asia Trust signtool.
> You need find a driver can support XP original then when you modified the sys file,it will success more easily. Almost all usb drivers can modify support other devices if the driver use XHCI1.0 original.
> Use IDA will better than HxD.
> The speed base one the controller, if it can support usb3.0, it will run 3.0 mode.
> Almost all usb devices can work, but USB to nvme disk maybe can not work if you dont link a usb hub.

The link you had earlier was for the Windows 7 USB 3.0 driver? Or does that one also work on XP?
If not where is the one for XP you modified?
Which XP USB driver company did you base the mod test on before you modified it? It was not Intel since they didn't have any XP or Vista one released even today.
How do you know which USB drivers support XHCI1.0 original? Are you referring to USB 3.0 drivers for XP and not USB 3.1?

#1077 | canonkong | ⇗ @diderius6 Just modify xhci.sys and *.inf is enough. *pdb is not need. I didnt found any difference between 3.0 and 3.1.They both can work. NEC VIA intel amd both are ok. I will share an USB driver tonight when I after work, you can test it and report it.

#1078

diderius6

⇗ @canonkong
The VIA USB 3.0 driver is very stable and fast in XP. So this would be a good choice.
I just take a look at the Asmedia ASMUSBHost_v1.16.55.1 driver for USB 3.1 for XP,
which works. You are right, for example in xhci.sys with unicode 0, <PCI\VEN_1B21&DEV_2142&*>,0
is hardcoded there, so it can work
Dietmar
EDIT: I just make a test, changing in Asmedia ASMUSBHost_v1.16.55.1 driver for USB 3.1 for XP

    asmtxhci.sys

    PCI\VEN_1B21&DEV_2142&*   =>  PCI\CC_0C03

    5000430049005C00560045004E005F00310042003200310026004400450056005F00320031003400320026002A000000

    =>

    5000430049005C00430043005F0030004300300033000000909090909090909090909090909090909090909090909090

#1079 | diderius6 | At once I come to the idea, to test this nice method from ⇗ @canonkong also for other devices, namly Intel(R) Ethernet Connection I219 Dietmar
#1080 | infuscomus | ⇗ @diderius6 I wonder if HWIDs are hardcoded into nvidia drivers? It would be awesome to have RTX 2080Ti working on XP sure ray tracing won't work but still having a faster GPU would be nice

## Page 73

#1081

diderius6

⇗ @infuscomus
I think, it has only a chance to work,
when there is a generic driver, as for USB
PCI\CC_0C03
Then you can change the special VEN_&DEV_ against the generic one
Dietmar
PS: And you need a driver, that works for XP before.
Sometimes you have luck with driver for Vista or Win2003 or Win7.
This you can check with Dependency Walker. If there is one red mark, no chance without
heavy mod.

#1082 | canonkong | ⇗ @diderius6 Try it, maybe can both support AMD and Intel usb device. Tell me it wokes or not.

#1083

diderius6

⇗ @canonkong
On Intel board this nice driver works as generic USB 3.1 for XP SP3 32 bit.
On Intel board for USB 3.0 this driver does not work.
Waaoh, great work
Dietmar
EDIT: Correction: The driver (xhci and hub) installs, but the device (USB stick or mouse) is not recogniced.

#1084 | canonkong | ⇗ @diderius6 What about AMD 300/400series and x570?
#1085 | canonkong | ⇗ @diderius6 "The driver (xhci and hub) installs, but the device (USB stick or mouse) is not recogniced." intel usb3.1 or 3.0, and both can not work? There few ways to modify it. Maybe need to change somewhere.

#1086

diderius6

⇗ @canonkong
USB 3.0 does not work.
For USB 3.1 xhci and hub driver installs correct,
but the mouse and Usbstick is shown as unknown device
with each Vid_0000&Pid_0000
meaning, those numbers are not recogniced gives "unknown device"
in device manager. This happens for mouse and for Usb stick
Dietmar
EDIT: This empty Vid&Pid means, that Usbstor.sys is not loaded.

#1087 | canonkong | diderius6 What about AMD 300/400series and x570? Because this driver once is prepare for X570, just add an ID for intel, not fully suport , maybe intel platform need to fix somewhere.

#1088

diderius6

⇗ @canonkong
On the Asus Prime x570-Pro
all USB3.0 slots work (mouse, usb stick) under XP SP3 with your driver.
All drivers for USB3.1 and USB3.2 are installed,
but usbstor does not start for them, which gives unknow device (for mouse, usb stick) as for the Intel board
Dietmar

#1089 | canonkong | ⇗ @diderius6 "X570 is working well? All USB3.0 slots work (mouse, usb stick) under XP SP3." Right? "All drivers for USB3.1 and USB3.2 are installed,but usbstor does not start for them, which gives unknow device" meant x570 for mouse, usb stick can not work?
#1090 | infuscomus | ⇗ @canonkong is amdstor.sys necessary? can you just use usbstor.sys?
#1091 | canonkong | @ infuscomus Maybe we can try it.

#1092

diderius6

⇗ @canonkong
I tried the Asmedia Usb files.
They are installed,
ask for reboot,
but then not start.
The Asmedia USB has the advantage, that there are real USB3.1 and USB3.2 drivers for AMD and Intel.
When you can describe a little bit more, how and what you change in the xhci.sys file
may be I can help you
Dietmar
PS: My own created Asmedia driver is also installed correct, but does not work.
EDIT: No other files are needed. It is just a small missing thing in modding xhci.sys.

#1093

diderius6

I just see, that in the *.inf file
the file amdstor.sys is mentioned.
So, now I think, it takes the role from usbstor.sys
Dietmar
PS: So you need to copy the file amdstor.sys
into folder windows\system32\drivers.
I make a try with renaming amdstor.sys to usbstor.sys.

#1094 | canonkong | The driver work well on win7, maybe Xp need to change more. Because I dont have any experience about programing, so I just try it again and again. Few days ago a hacker told me that we can modify the win10 usb driver. Is it possible to modify a win10 usb driver work on win7? And I thought maybe some hackers can do that, but they dont have this ability, it to hard.

#1095

diderius6

Yessssssssssssssssssssssssssssssaaaaaaaaaaaaaaaaaa, I got all USB 3.0 3.1 3.2 drivers to work under XP SP3 !!!!!
I just rename in *.inf all
amdstor => usbstor
Thats all
Dietmar
PS: So much thanks to ⇗ @canonkong!
⇗
⇗
diderius6 has attached files to this post

- ⇗ AMD USB TEST 32BIT.rar

## Page 74

#1096

cedar

⇗ @diderius6
Good works!. The USB3.0 posted earlier did not work in my Asus Prime 350 board.
Can you post the new mod 3.0 driver? may be it will work for me too.
Any progress on XP64 ACPI?. Backup from X265 is about 35% faster on
X64 platform than 32 bit OS. The newest ffmpeg64 for XP64 tested is at
about Nov 2017. Don't know if anyone have a newer version?
Cedar

#1097 | diderius6 | ⇗ @cedar Make try with the USB file that I post here (with nice help from ⇗ @canonkong). It is really generic Dietmar

#1098

cedar

⇗ @infuscomus
Not much luck with the burned iso. It did installed without swapped hard
till the end with no error(grahicic mode). But it also flash BSOD next run
like my own earlier installs. No minidump. Standard mode is ok.
Tried 2003 ent. trial version. Std mode also ran. Can see Standard mode
and multi PC ACPI under CPU entry at the same time. BSOD when changed
to ACPI and see next message as IRQL NOT LESS OR EQUAL.
bluescreenview pointed to Ntoskrnl error.
XP2003 was tried from installed on ivy system than swap to Ryzen. Will
try burn ISO sometime later.
Cedar

#1099 | diderius6 | Also all USB 2.0 USB 3.0 USB 3.1 USB 3.2 slots work now on the nice board asrock fatal1ty ab350 gaming k4 under XP SP3, just together with Ryzen 3700x Dietmar

#1100

diderius6

⇗ @canonkong
Can you please upload the whole package,
with the unmodded driver for AMD USB?
I notice, that for the Asmedia USB there are
2 different xhci.sys files for Intel and AMD.
On Intel boards we have to mod the other one
Dietmar

#1101

IntiMD

> Zitat von ⇗ diderius6 im Beitrag ¶ #1100

> I notice, that for the Asmedia USB there are
> 2 different xhci.sys files for Intel and AMD.
> On Intel boards we have to mod the other one
> Dietmar

Not him, but if you are talking about the AMD64 and the IA64 folders, they're just different instruction sets - x64 (otherwise known as AMD64, x86-64) and the Intel Itanium architecture (otherwise known as IA-64, isn't in mainstream anymore and retired in 2021) respectively.

#1102

diderius6

⇗ @IntiMD
I mean the AMD driver (AMD64 64 bit, just name for AMD) for XP
and the i386 name for Intel for XP 32 bit.
Until now I do not have the this whole package of unmodded drivers.
With the Asmedia driver I have some success today,
but I think this are the most difficult drivers of all USB,
so may be AMD or VIA is much easier to mod and to take the oldest version of them which works for XP 32 bit
Dietmar

#1103

IntiMD

> Zitat von ⇗ diderius6 im Beitrag ¶ #1102

> @IntiMD
> I mean the AMD driver (AMD64 32 bit, just name for AMD) for XP
> and the i386 name for Intel for XP 32 bit.

Like i said before, AMD64 is one of the names for the x86-64 (64-bit) arch, while i386 is one of the names of the x86 (32-bit) arch. The folders are depending on the OS bitness. The ASMedia drivers include both 32 and 64-bit builds of the drivers and since the usb 3.0 drivers should be targetted for XP 32-bit, the driverfiles in the i386 folder need to be modified.

#1104

diderius6

⇗ @IntiMD
Of course you are right,
it was my mistake.
There is no difference between AMD 32 bit and Intel 32 bit,
driver is always in i386 folder
Dietmar
PS: The generic AMD driver here works also for the Asmedia 3.1 USB under XP 32 bit.
But it does not work for Intel chipset USB 3.0 which looks strange to me, I dont understand why not.
I make new test with the VIA 3.0 driver for Mod.

#1105 | canonkong | ⇗ @diderius6 Very good! Use the same name to replace the system itself usb driver, maybe we can make a generic usb driver replace the system inside usb driver.
#1106 | infuscomus | ⇗ @cedar was IRQL NOT LESS OR EQUAL. BSOD with my ISO, or server 2003 ISO?
#1107 | canonkong | ⇗ @diderius6 Try this new, not have stor.sys. KEY: xiaofengmod ⇗ https://yadi.sk/d/8MtPIJxFYoBAbQ

#1108

diderius6

⇗ @canonkong
I test the new driver on Intel evga z390 dark board,
for the USB 3.0 from Intel chipset.
The same happens as before, during install of this driver the compi gets frozen
Dietmar
PS: May be, in this case a modded VIA USB 3.0 driver would be the better choice.
EDIT: Your new AMD driver for XP has also the problem, that usbstor.sys again does not start (gives unknow device).
So, until now we have only the generic USB driver for XP, where I changed amdstor.sys against usbstor.sys.
This one works everywhere, only for INTEL chipset USB and XP not, this is so strange.
EDIT2: So strange things happen with usb3 driver for Intel chipset:
The xhci.sys file is NOT copied correct to windows\system32\drivers (something like a sceleton of this xhci.sys appears there) and
even when you put the whole file xhci.sys there into by hand,
on next boot it is gone there!!! I never saw anything like this before in XP.
I set start=0 and Group=System Reserved for all USB files which starts them very early, no chance of version missmatch
or something like, because at this very early bootstage all will be loaded.
Crazy, I can see, that the driver xhci.sys is loaded very early together with usbstor.sys, but then again xhci.sys is deleted(!).
May be because of this soso strange thing, the hub3.sys driver can not install(!) and start
Dietmar

#1109 | canonkong | ⇗ @diderius6 Maybe we can use intel itself USB driver for xp to modify.

#1110

diderius6

⇗ @canonkong
The problem in to use Intel driver for USB is, that there are none for XP with USB 3.0.
For Win7 32 bit they exist, but there are dependencies in drivers to ntoskrnl,
that XP does not fullfill.
The only chance in this is, that somebody has the source code for this drivers
and compiles it for win server 2003 32 bit
Dietmar

## Page 75

#1111 | canonkong | ⇗ @diderius6 I think NEC will best than other. ⇗ https://downloadcenter.intel.com/zh-cn/d...ctronics-USB3-0-
#1112 | diderius6 | ⇗ @canonkong I just see, that the VIA xhci driver can be replaced by the driver from Asmedia. But the Intel chipset for USB 3.0 does not work with modded Asmedia or Via driver Dietmar PS: So, NEC (now Renesas) may be the better choice for generic USB 3.0 for XP for Intel chipset.
#1113 | canonkong | ⇗ @diderius6 If you use IDA to open the xhci.sys ,you will find almost all usb drivers will have a ven ID 1033, VEN_1033 meant NEC's ID.
#1114 | infuscomus | ⇗ @canonkong this doesn't work in virtualbox ⇗ https://www.zone62.com/media/jcm/og/8fc8461f672fdba2.png
#1115 | canonkong | ⇗ @infuscomus Some intel devices can not work well some parts using this driver. I think we need to find a better one to modify to support XP.
#1116 | diderius6 | ⇗ @canonkong For Intel with x390 chipset with modded *.inf for xhci.sys comes message code 10, driver (xhci from Nec) does not start Dietmar
#1117 | diderius6 | ⇗ @canonkong I just found with IDA pro, that there is a hardcoded ID 1033 check and 194x in the NEC driver xhci.sys and so, suddently BIG chances for success with Intel Dietmar
#1118 | canonkong | diderius6 Some drivers just modify the ID identify area is not enough. Like intel usb3.1 driver, I modified few parts to make it work. If you know DebugView ,Debuggers , OllyDbg . You can use them to find out where is the block.

#1119

diderius6

PAGE:0003420B mov eax, 1033h
PAGE:00034210 cmp [ebp-11Ch], ax
PAGE:00034217 jnz short loc_34239
PAGE:00034219 mov eax, 194h
PAGE:0003421E cmp [ebp-11Ah], ax
PAGE:00034225 jnz short loc_34239
PAGE:00034227 cmp byte ptr [ebp-114h], 4
PAGE:0003422E jnz short loc_34239
PAGE:00034230 mov byte ptr [ebx+192h], 1
PAGE:00034237 jmp short loc_34240

#1120

diderius6

Hack to
PAGE:0003420B mov eax, 1033h
PAGE:00034210 cmp [ebp-11Ch], ax
PAGE:00034217 jnz short $+2
PAGE:00034219 mov eax, 194h
PAGE:0003421E cmp [ebp-11Ah], ax
PAGE:00034225 jnz short $+2
PAGE:00034227 cmp byte ptr [ebp-114h], 4
PAGE:0003422E jnz short $+2
PAGE:00034230 mov byte ptr [ebx+192h], 1
PAGE:00034237 jmp short loc_34240
Now I get code 39
Dietmar

#1121 | canonkong | ⇗ @diderius6 Not right, you can compare my modified intel USB driver and the original driver, you will find what I had did. jnz=>jmp ⇗ [Solution] Win7 drivers for USB 3.0/3.1 Controllers of new Intel chipset systems

#1122

cedar

⇗ @infuscomus
"IRQL NOT LESS OR EQUAL" was from 2003.
From bluescreenview, it pointed to Ntoskrnl error.
I also tried ACPI 64 bit on XP64. the screen instantly BSOD
and reboot immediately on normal or safe mode, so I couldn't see
what message was.
Cedar

#1123 | diderius6 | ⇗ @canonkong I tried this also, does not work for Nec USB 3.0 driver on Intel USB 3.0 on chipset from z390 Dietmar
#1124 | infuscomus | ⇗ @cedar ACPI for XP64 will need a patched ACPI driver and XP64 is not well supported, best to use Win7 64 any luck installing with my ISO?

#1125

cedar

⇗ @infuscomus
The acpi64bit was from diderius6 posted earlier. As it was
an early version, so I can't expect too much.
Your iso can installed from burnt disc, Like my other burnt discs,
It will BSOD in multi acpi both std or safe mode too when reboot.
But If installed on my Ivy system. and then swap HD to Ryzen board.
I think it can boot in safe mode, like my other trials.
PS. I think diderius6 's new usb3.2 driver can work on your iso, but not
on my own XP installation after many BSODs on usbport.sys trials.
Cedar

## Page 76

#1126 | infuscomus | ⇗ @cedar did you manage to get multiprocessor ACPI PC working? or did you get a BSOD?
#1127 | diderius6 | ⇗ @cedar Until now we dont have a good acpi.sys for XP 64 bit, which works on a lot of newer mainboards, Dietmar

#1128

cedar

⇗ @infuscomus
In safe mode, multiprocessor ACPI PC seems fine. I can install other
drivers. After exiting safe mode. I may or may not be able to
get back to safe mode if XP installed through optical Sata drive.
I remember probably 2 weeks or more ago, I can repeatly go back to
safe mode with multiprocessor ACPI PC. Out side safe mode, BSOD.
I just upated 2003 from SP0 to Sp1, and SP2. Will try if they work later?
Cedar

#1129 | cedar | ⇗ @diderius6 Any chance to work on XP 64 ACPI?. I realize too XP64 has no Standard mode!. Cedar

#1130

cedar

⇗ @infuscomus
Wow. SP2 for 2003 instead of SP0 works. I am in
Multi PC ACPI mode now.
Edit: And it is from swap drive method.
Edit2: Now I can use similar way on XP. Different SPs may make
or break things.
Edit3: Even SP1 works.
Cedar

#1131

diderius6

I found NEC USB3.0 driver from 10 January 2010 vers. 1.0.19.0.
This driver is really very simple structurated.
With this I make new try using Windbg for XP SP3
Intel chipset 3.0 driver
Dietmar
EDIT: I have now NEC driver USB 3.0 from June 2009 for XP, Vista (means before Win7), vers 1.0.1.0.

#1132 | canonkong | ⇗ @diderius6 If you use IDA7.0 to open the *.sys, than press F5, it will converting to C language, maybe some one can use it to recompile. ⇗ https://github.com/microsoft/Windows-driver-samples
#1133 | diderius6 | ⇗ @canonkong This is really a nice feature, but my Ida Pro is from 2004 :)) Dietmar PS: Starting from autumn 2009, NEC makes USB 3.0 drivers also for Win2000 and NT4 .
#1134 | infuscomus | ⇗ @diderius6 can you upload to station-drivers for driver archiving? If we are lucky, it might even work for windows 98 assuming all function requirements are met by ntkern.vxd

#1135

diderius6

⇗ @infuscomus
Here it is.
The xhci.sys driver is loaded in XP as I can see
but the hub.sys not.
So, the problem with DEV_&VEN_ is gone,
but something is wrong with the hub
Dietmar
diderius6 has attached files to this post

- ⇗ Nusb3Driver.rar

#1136 | canonkong | ⇗ @diderius6 If the xhci.sys is loaded but the hub.sys not. It meant that the XHCI.sys need to fix somewhere. HUB is follow to XHCI.

#1137

infuscomus

⇗ @diderius6 ⇗ @canonkong
I noticed with the earlier modified AMD USB 3.0 drivers there was a FileSize error in the sys files
⇗
maybe this was causing problems? i fixed them
or maybe its nothing, i dont know
infuscomus has attached files to this post

- ⇗ AMD USB TEST 32BIT.zip

#1138 | canonkong | ⇗ @infuscomus I signed the driver use driving signature tool, it can automatic checksum, so I don't have noticed FileSize error.

#1139

diderius6

Now I get
usbstor.sys
usbd.sys
xhci.sys
hub3.sys
loaded very early (start 0, Group System Reserved)
but still yellow questionmark for USB 3.0 xhci and no hub3
in device manager
Dietmar
PS: I corrected yesterday the above size error. It does not change anything.

#1140

diderius6

There is only one small step, to make the very first NEC driver from June 2009 make to work for Intel chipset USB3
It looks like the "IRP_MN_START_DEVICE" failed and this can be the fault of hub3.sys because Child 0000000000.
Dietmar

    0: kd> !DevNode 0x8a47f250
    DevNode 0x8a47f250 for PDO 0x8a4c1818
      Parent 0x8a4bb6e0   Sibling 0x8a47bbb0   Child 0000000000
      InstancePath is "PCI\VEN_8086&DEV_A2AF&SUBSYS_A2AF1849&REV_00\2&ebb567f&0&A0"
      ServiceName is "nusb3xhc"
      State = DeviceNodeRemoved (0x312)
      Previous State = DeviceNodeStartCompletion (0x306)
      StateHistory[06] = DeviceNodeStartCompletion (0x306)
      StateHistory[05] = DeviceNodeAwaitingQueuedRemoval (0x30f)
      StateHistory[04] = DeviceNodeStartCompletion (0x306)
      StateHistory[03] = DeviceNodeResourcesAssigned (0x304)
      StateHistory[02] = DeviceNodeDriversAdded (0x303)
      StateHistory[01] = DeviceNodeInitialized (0x302)
      StateHistory[00] = DeviceNodeUninitialized (0x301)
      StateHistory[19] = Unknown State (0x0)
      StateHistory[18] = Unknown State (0x0)
      StateHistory[17] = Unknown State (0x0)
      StateHistory[16] = Unknown State (0x0)
      StateHistory[15] = Unknown State (0x0)
      StateHistory[14] = Unknown State (0x0)
      StateHistory[13] = Unknown State (0x0)
      StateHistory[12] = Unknown State (0x0)
      StateHistory[11] = Unknown State (0x0)
      StateHistory[10] = Unknown State (0x0)
      StateHistory[09] = Unknown State (0x0)
      StateHistory[08] = Unknown State (0x0)
      StateHistory[07] = Unknown State (0x0)
      Flags (0x00002030)  DNF_ENUMERATED, DNF_IDS_QUERIED,
                          DNF_HAS_PROBLEM
      CapabilityFlags (0x00002000)  WakeFromD3
      Problem = CM_PROB_FAILED_START
      Failure Status 0000000000

    CM_PROB_FAILED_START

    This function is reserved for system use.

    The device failed to start.
    Error Code 10
    Display Message

    If
     the device's hardware key contains a "FailReasonString" value, the
    value string is displayed as the error message. (A driver or enumerator
    supplies this registry string value.) If the hardware key does not
    contain a "FailReasonString" value, the following generic error message
    is displayed:

    "This device cannot start. (Code 10)"

    "Try upgrading the device drivers for this device."
    Recommended Resolution

    Select Update Driver, which starts the Hardware Update wizard.

    This error code is set when one of the drivers in the device's driver stack fails IRP_MN_START_DEVICE.
    If there are many drivers in the stack, it can be difficult to determine the one that failed.

## Page 77

#1141 | canonkong | ⇗ @diderius6 Use IDA to fix hub.sys, maybe will work.
#1142 | infuscomus | If we can figure out how to backport KMDF 1.13 to XP then we could use the generic Microsoft driver seems like a bit of a challenge though

#1143

diderius6

This is really strange: The very first NEC USB 3.0 driver is started in legacy mode, but fails for the Intel chipset USB 3.0.
This makes me sure, that the problem is in xhci.sys (here name nusb3xhc, together with Intel) and not in hub3.sys
Dietmar

    0: kd> !devnode 0 1 nusb3xhc
    Dumping IopRootDeviceNode (= 0x8a4c7810)
    DevNode 0x8a4c55e8 for PDO 0x8a4c5730
      InstancePath is "Root\LEGACY_NUSB3XHC\0000"
      ServiceName is "nusb3xhc"
      State = DeviceNodeStarted (0x308)
      Previous State = DeviceNodeEnumerateCompletion (0x30d)
    DevNode 0x8a4c7128 for PDO 0x8a4c1a08
      InstancePath is "PCI\VEN_8086&DEV_A2AF&SUBSYS_A2AF1849&REV_00\2&ebb567f&0&A0"
      ServiceName is "nusb3xhc"
      State = DeviceNodeRemoved (0x312)
      Previous State = DeviceNodeStartCompletion (0x306)
      Problem = CM_PROB_FAILED_START
      Failure Status 0000000000

#1144 | diderius6 | @ infuscomus There is KMDF for Vista, I think also with an example driver for USB Dietmar docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/tutorial--write-your-first-usb-client-driver--kmdf-

#1145

diderius6

May be we need WDFLDR.SYS (from Vista-Longhorn5048, Vista, Win7) all 32 bit
for XP for Intel USB
Dietmar
PS:Intel USB 3 drivers need WDFLDR.SYS (Kernel Mode Driver Framework LOADER) which doesn't exist on XP.
XP drivers require coinstaller WdfCoInstaller01009.dll (included with driver, it installs wdfldr.sys and wdf01000.sys) and separate usbd.sys.
I install the Microsoft Kernel Mode Driver Framework runtime 'Microsoft Kernel-Mode Driver Framework Install-v1.9-Win2k-WinXP-Win2k3.exe' extracted from WdfCoinstaller01009.dll which is the co-installer for KMDF 1.9.
This drivers here have all only dependecies for XP!
EDIT: This brings me to the idea, to install the very first USB driver from NEC on Longhorn 5048 for Intel chipset USB3.0.
diderius6 has attached files to this post

- ⇗ wdfldr.rar
- ⇗ WdfLdr2.rar
- ⇗ WdfLdr3.rar
- ⇗ Wdf01000Win7.rar
- ⇗ Wdf01000Vista.rar
- ⇗ Microsoft Kernel-Mode Driver Framework Install-v1.9-Win2k-WinXP-Win2k3.rar
- ⇗ wdfcoinstaller01009.rar

#1146 | infuscomus | Someone tried to make an xhci driver for ReactOS ⇗ https://reactos.org/blogs/gsoc-xhci-final-submission ⇗ https://github.com/reactos/reactos/tree/...ers/usb/usbxhci

#1147

diderius6

⇗ @infuscomus
This person from reactos has the problem with xhci.sys for USB 3.0, that USBSTOR.sys is not loaded but he does not understand this.
Because of this comes "unknown device".
Even I do not know, if this will work for Intel USB chipset, because Intel makes now use of KMDF driver model for all their USB.
We have KMDF 1.9 (from Win7) for XP , the Microsoft Kernel-Mode Driver Framework Install-v1.9-Win2k-WinXP-Win2k3.exe above installs with all registry entries WDFLDR.SYS and wdf01000.sys in XP SP3 32 bit, I have tested.
Now we can use the *.inf from Win7 for USB from ⇗ @canonkong with xhci.sys and usbhub3.sys with dependencies only for XP
and voila, there is USB on XP for all Intel chipsets. A first try can be done with Vista and the modded USB drivers for Win7 from ⇗ @canonkong, if Vista fullfill all the dependencies
Dietmar
PS: Here is the installer for KMDF 1.9 for Vista 32 bit.
diderius6 has attached files to this post

- ⇗ Microsoft Kernel-Mode Driver Framework Install-v1.9-Vista.rar

#1148 | canonkong | ⇗ @diderius6 Is it possible to Import table dynamic patch and point the Win10-specific import API to wrapper. Like NDIS-Wrapper. Some hackers told me that we can port win10's USB driver to win7, but I think even the world's top hackers don't have this ability.
#1149 | diderius6 | ⇗ @canonkong I think, for to make to work Intel chipset USB under XP, it is now just enough, to cancel the not from XP fullfilled dependencies from your USB drivers for Win7 Dietmar

#1150

diderius6

This VIA USB3 is for XP, Vista and Win7.
It has the installer for KMDF 1.9 for each of them integrated and fullfills all dependencies for XP.
Any generic USB 3.0 driver for XP SP3 32bit Intel chipset should look very similar to this one
Dietmar
PS: I installed all versions for XP, Vista, Win7,
but no one works for XP for Intel chipset USB, strange..
EDIT: The VEN_1106&DEV_3432 seems to be hardwired in xhcdrv.sys.
⇗ @canonkong can you please make a try to mod this one for generic?
EDIT2: CM_PROB_FAILED_ADD
CM_PROB_FAILED_ADD
A driver's attempt to add a device failed.
Error Code
31
Display Message (Windows 2000 and later versions of Windows)
"This device is not working properly because Windows cannot load the drivers required for this device. (Code 31)"
Recommended Resolution (Windows 2000 and later versions of Windows)
Update the device driver.
Starting with Windows XP,
this problem can only occur if the driver's AddDevice routine fails.
May be this is because of hardwired VEN_&DEV_.
diderius6 has attached files to this post

- ⇗ ViaXPVistaWin7USB3.rar

#1151

infuscomus

⇗ @diderius6 ⇗ @canonkong
Fresco logic driver also uses KMDF 1.9 - so it might be an option
infuscomus has attached files to this post

- ⇗ fresco-usb3-v3.6.9.0.7z.zip

#1152 | diderius6 | ⇗ @infuscomus The file fresco-usb3-v3.6.9.0.7z.zip cant be downloaded correct, has error Dietmar EDIT: Correction, newest winrar works for to unpack this file.

#1153

diderius6

Fresco driver is loaded in XP for Intel chipset USB30, but does not start.
The reason, why it does not start can also be the fault of the hub3.sys there
Dietmar

    0: kd> !DevNode 0x8a475a58
    DevNode 0x8a475a58 for PDO 0x8a476a90
      Parent 0x8a4c26e0   Sibling 0x8a475938   Child 0000000000
      InstancePath is "PCI\VEN_8086&DEV_A2AF&SUBSYS_A2AF1849&REV_00\2&ebb567f&0&A0"
      ServiceName is "FLxHCIc"
      State = DeviceNodeRemoved (0x312)
      Previous State = DeviceNodeStartCompletion (0x306)
      StateHistory[06] = DeviceNodeStartCompletion (0x306)
      StateHistory[05] = DeviceNodeAwaitingQueuedRemoval (0x30f)
      StateHistory[04] = DeviceNodeStartCompletion (0x306)
      StateHistory[03] = DeviceNodeResourcesAssigned (0x304)
      StateHistory[02] = DeviceNodeDriversAdded (0x303)
      StateHistory[01] = DeviceNodeInitialized (0x302)
      StateHistory[00] = DeviceNodeUninitialized (0x301)
      StateHistory[19] = Unknown State (0x0)
      StateHistory[18] = Unknown State (0x0)
      StateHistory[17] = Unknown State (0x0)
      StateHistory[16] = Unknown State (0x0)
      StateHistory[15] = Unknown State (0x0)
      StateHistory[14] = Unknown State (0x0)
      StateHistory[13] = Unknown State (0x0)
      StateHistory[12] = Unknown State (0x0)
      StateHistory[11] = Unknown State (0x0)
      StateHistory[10] = Unknown State (0x0)
      StateHistory[09] = Unknown State (0x0)
      StateHistory[08] = Unknown State (0x0)
      StateHistory[07] = Unknown State (0x0)
      Flags (0x00002030)  DNF_ENUMERATED, DNF_IDS_QUERIED,
                          DNF_HAS_PROBLEM
      CapabilityFlags (0x00002000)  WakeFromD3
      Problem = CM_PROB_FAILED_START
      Failure Status 0000000000

#1154 | infuscomus | ⇗ @diderius6 can you manually install the hub?

#1155

diderius6

⇗ @infuscomus
This is not possible.
First has always the main driver xhci.sys to be loaded
and only if this is ok, hub3.sys asks for driver.
Even if from a working USB3 installation you delete the registry entries for xhci.sys,
the before working hub3.sys is also not loaded any longer
Dietmar
PS: One can make a try vice versa, if a working USB3 driver for Intel chipset also works on normal USB3,
because until now the difference between them is unclear.

## Page 78

#1156 | infuscomus | ⇗ @diderius6 can you go back to our earlier generic amd usb 3.0 driver and try to debug what causes it to fail when in virtualbox?

#1157

diderius6

⇗ @infuscomus
I make a check, which driver starts and which not:
It is possible to start xhci.sys without hub3.sys
but not hub3.sys without xhci.sys.
So, in the case with virtualbox, something went wrong with
hub3.sys.
And this also means, all our tries with xhci.sys for USB3 for Intel chipsets fail because of xhci.sys.
Take a look in device manager, what kind the error message is there.
XP tells you, if something is wrong with entries in registry for hub3.sys
or with the driver itself
Dietmar

#1158 | diderius6 | ⇗ @infuscomus "can you go back to our earlier generic amd usb 3.0 driver and try to debug what causes it to fail when in virtualbox?" On which compi runs virtualbox, AMD or with Intel chipset Dietmar

#1159

diderius6

⇗ @canonkong
Can you please convert Assembler file to C with Ida Pro 7
from xhci for Win7 from post 1150
and also xhci from original driver for Intel chipset Win7
and look, if there is a major difference
Dietmar

#1160

infuscomus

⇗ @diderius6 ⇗ @canonkong
I think I know what the problem is -
the hub3.sys file has not been linked to the usb 3.0 hub as it's driver
⇗
we will need to either fix amdxhci.inf to install the hub driver properly or find/write a proper amdhub3.inf
⇗ @canonkong
do you have the original unmodified amd usb 3 driver you used?

#1161 | canonkong | ⇗ @diderius6 In fact, it's very difficult for me because I don't know any assembly language or programming language. What I can do is just use IDA to modify some drivers and signature. If we can find out the breakpoints, maybe we can use IDA to Skip it.
#1162 | canonkong | ⇗ @infuscomus The original driver 2.0.0.48 only can work for 64bit system.

#1163

diderius6

⇗ @canonkong
Can you use Ida Pro for to translate those 2 Win7 32 bit xhci.sys drivers to C language?
If yes, you can send them to me
dietmar.stoelting@t-online.de
and I compare them
Dietmar

#1164 | canonkong | ⇗ @diderius6 Which two xhci.sys files? I will send it to you later.
#1165 | infuscomus | ⇗ @diderius6 ⇗ @canonkong a manual install of the usb 3.0 hub worked in virtualbox ⇗ so, I think all we need to do is fix a problem in amdxhci.inf
#1166 | diderius6 | ⇗ @infuscomus Is it USB 3 on Intel chipset? Or is it an AMD board Dietmar
#1167 | canonkong | ⇗ @infuscomus This driver can work with virtual box, but cant work on real machine.
#1168 | infuscomus | whoops! I spoke too soon ⇗

#1169

diderius6

⇗ @canonkong
Here are the 2 Win7 32 bit xhci files for USB3,
one from VIA and the one from you
Dietmar
diderius6 has attached files to this post

- ⇗ Win7xhci.rar

#1170 | canonkong | ⇗ @diderius6 Too many entries need to be converted! I think download IDA PRO 7.2 will more faster and easily.

## Page 79

#1171

diderius6

I renamed the last xhci for XP from ⇗ @canonkong (post 1107) as asmxhci.sys
and integrate the values to registry by hand (no hub3.sys at all).
Now, for the first time no crash and the driver "asmxhci.sys" is loaded and deleted after
but message via windbg

    Code 28 (CM_PROB_FAILED_INSTALL)

    Indicates that the installation failed and there is no driver selected for this
    device, although the kernel did not report a problem (and there is no
    DNF_XXX match for this the problem). This problem can be the result of
    an on-board system device (ISA timer, ISA RTC, RAM Memory, and so forth)
     that does not yet have an INF file.

This looks like, if something with my handmade registry entries is wrong
or the driver "asmxhci.sys" looks for something like codriver
Dietmar

#1172

infuscomus

> Zitat von ⇗ canonkong im Beitrag ¶ #1162

> @infuscomus
> The original driver 2.0.0.48 only can work for 64bit system.

⇗ @canonkong
how did you manage to make it work for 32bit system?

#1173 | diderius6 | ⇗ @infuscomus I noticed that few days ago. So I think, canonkong is not so blind (as we..) Dietmar

#1174

diderius6

⇗ @infuscomus
I make a try with the last driver xhci for XP (post 1107) from ⇗ @canonkong in KMDF 1.9 clothes,
but then the compi does not start, hangs running blue mark in the beginning of boot stopped
and Windbg tells nothing, "break" command does not work and no BSOD
Dietmar

#1175

diderius6

With little help from Ida Pro,
I just noticed, that the last AMD file for XP 32 bit from canonkong vers. 2.0.0.68
is from ETRON.
Hihi, may be, now all other is easy.
This Etron driver has VEN_8086&DEV_7023.
This I will change against my USB3 with
VEN_8086&DEV_A2AF
and then we will see
Dietmar
EDIT: The Etron USB3.0 driver from 2009 works for nearly all USB
but not for Intel USB chipset.

#1176 | infuscomus | ⇗ @diderius6 I can only suggest going through all the other USB 3 drivers from other manufacturers and see if one of them works for intel ⇗ USB 3.0/3.1 Drivers (original and modded)
#1177 | canonkong | ⇗ @diderius6 ⇗ @infuscomus I had tested all usb drivers yesterday. only AMD usb driver 2.0.0.48 and intel usb drivers can work for all usb devices. but they cant work perfect on X570 mainboards(install/uninstall the USB driver if without AMD chips drivers will BSOD) ASMedia VIA NEC Erron and most of USB drivers can only work for few devices, and some of them only can work for xhci but hub can not work.

#1178

diderius6

The Fresco fresco-usb3-v3.6.9.0 (it is for Win7 with KMDF 1.9) driver is "best" until now for Intel USB3 chipset for XP SP3, but
failed to start with code 10, even I changed in driver VEN_&DEV_
to my individual values.
By the way I noticed, that I get code 39, when checksum etc.
of the driver was not correct. With PEmaker 0.82 from Blackwingcat I corrected this
Dietmar

    0: kd> !DevNode 0x8a475a58
    DevNode 0x8a475a58 for PDO 0x8a476a90
      Parent 0x8a4c26e0   Sibling 0x8a475938   Child 0000000000
      InstancePath is "PCI\VEN_8086&DEV_A2AF&SUBSYS_A2AF1849&REV_00\2&ebb567f&0&A0"
      ServiceName is "FLxHCIc"
      State = DeviceNodeRemoved (0x312)
      Previous State = DeviceNodeStartCompletion (0x306)
      StateHistory[06] = DeviceNodeStartCompletion (0x306)
      StateHistory[05] = DeviceNodeAwaitingQueuedRemoval (0x30f)
      StateHistory[04] = DeviceNodeStartCompletion (0x306)
      StateHistory[03] = DeviceNodeResourcesAssigned (0x304)
      StateHistory[02] = DeviceNodeDriversAdded (0x303)
      StateHistory[01] = DeviceNodeInitialized (0x302)
      StateHistory[00] = DeviceNodeUninitialized (0x301)
      StateHistory[19] = Unknown State (0x0)
      StateHistory[18] = Unknown State (0x0)
      StateHistory[17] = Unknown State (0x0)
      StateHistory[16] = Unknown State (0x0)
      StateHistory[15] = Unknown State (0x0)
      StateHistory[14] = Unknown State (0x0)
      StateHistory[13] = Unknown State (0x0)
      StateHistory[12] = Unknown State (0x0)
      StateHistory[11] = Unknown State (0x0)
      StateHistory[10] = Unknown State (0x0)
      StateHistory[09] = Unknown State (0x0)
      StateHistory[08] = Unknown State (0x0)
      StateHistory[07] = Unknown State (0x0)
      Flags (0x00002030)  DNF_ENUMERATED, DNF_IDS_QUERIED,
                          DNF_HAS_PROBLEM
      CapabilityFlags (0x00002000)  WakeFromD3
      Problem = CM_PROB_FAILED_START
      Failure Status 0000000000

#1179 | infuscomus | ⇗ @canonkong wasn't your modified generic USB 3 driver from earlier an Etron driver?
#1180 | canonkong | ⇗ @infuscomus Etron can not work for intel devices on real machine, but can work on VM...
#1181 | canonkong | ⇗ @diderius6 ⇗ @infuscomus Test it. ⇗ https://yadi.sk/d/JsPRQ94R0TE3XQ
#1182 | infuscomus | ⇗ @canonkong This driver calls functions from ntoskrnl that are not available in XP
#1183 | canonkong | ⇗ @infuscomus I uploaded it incorrectly, I will upload a new one soon.
#1184 | canonkong | ⇗ @diderius6 I tested the Fresco USB drivers, xhci had installed and work, but the hub failed.
#1185 | diderius6 | ⇗ @canonkong Can you please upload your version of the Fresco USB driver? Any help is welcome Dietmar PS: You can just use hub from other USB driver.

## Page 80

#1186 | canonkong | ⇗ @diderius6 No problem, I will send you when I after work. You can use IDA to open it, you will find i it has other devices ID from intel,NEC,Etron,ASMedia,ect

#1187

diderius6

I just noticed,
that the Fresco USB3 driver has extra entries in registry.
None of them is set for my Intel USB 3.0 with VEN_8086&DEV_A2AF.
How to come to this values? May be, a Win7 install will help via original Intel USB3.0 drivers
and copy this values one by one to the registry of XP
Dietmar

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FLxHCIc]
    "Type"=dword:00000001
    "Start"=dword:00000003
    "ErrorControl"=dword:00000001
    "Tag"=dword:00000034
    "ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
      52,00,49,00,56,00,45,00,52,00,53,00,5c,00,46,00,4c,00,78,00,48,00,43,00,49,\
      00,63,00,2e,00,73,00,79,00,73,00,00,00
    "DisplayName"="Fresco Logic xHCI (USB3) Device Driver"
    "Group"="Base"

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FLxHCIc\Parameters]
    "SGRD_15D9_0A4C"=dword:00000000
    "STIC_07CA"=dword:00000000
    "STIC_15A4_1003"=dword:00000000
    "STIC_1B80_E39B"=dword:00000000
    "STIC_2040_7200"=dword:00000000
    "STIC_185B_2850"=dword:00000000
    "NIOC_185B_2850"=dword:00000000
    "SNIC_07CA_2830"=dword:00000000
    "DDOS_045E_063E"=dword:00000000
    "DDOS_12D1_1001"=dword:00000000
    "DDOS_12D1_1003"=dword:00000000
    "DDOS_0408_EA03"=dword:00000000
    "DDOS_17E9_028F"=dword:00000000
    "DDOS_0A5C_2046"=dword:00000000
    "DDOS_19D2_0031"=dword:00000000
    "DDOS_1A8D"=dword:00000000
    "DDOS_0915_2000"=dword:00000000
    "DDOS_07B8_4002"=dword:00000000
    "DDOS_17E9_01D4"=dword:00000000
    "ABIG_03F0_5817"=dword:00000000
    "CCSD_13FE_1E00"=dword:00000000
    "DDIP_13FE_1E00"=dword:00000000
    "PBIN_12D1_1035"=dword:00000000
    "U1U2_1CA1"=dword:00000000
    "U1U2_152D_0539"=dword:00000000
    "U1U2_152D_2509"=dword:00000000
    "U1U2_1058_0740"=dword:00000000
    "U1U2_1058_1123"=dword:00000000
    "U1U2_1058_1140"=dword:00000000
    "U1U2_1D5C_8347"=dword:00000000
    "U1U2_04C5_201D"=dword:00000000
    "U1U2_067B_2771"=dword:00000000
    "U1U2_1759_9000"=dword:00000000
    "U1U2_1759_5002"=dword:00000000
    "U1U2_1759_5000"=dword:00000000
    "U1U2_0411_0180"=dword:00000000
    "U1U2_21E6_0001"=dword:00000000
    "U1U2_1EDB_BD3B"=dword:00000000
    "U1U2_0A6B_0101"=dword:00000000
    "U1U2_04E8_60C6"=dword:00000000
    "U1U2_1058_1042"=dword:00000000
    "FAHS_0951_1652"=dword:00000000
    "FAHS_05E3_0731"=dword:00000000
    "ECSD_199E_8207"=dword:00000000
    "NSEL_152D_0539"=dword:00000000
    "NSEL_1F75_0902"=dword:00000000
    "NSEL_1005_B128"=dword:00000000
    "NHLP_2297_0321"=dword:00000000
    "NOSD_1F75_0902"=dword:00000000
    "NOSD_125F_312A"=dword:00000000
    "NOSD_3538_0901"=dword:00000000
    "NMEL_1EDB_BD3B"=dword:00000000
    "NSSR_0951_1652"=dword:00000000
    "NSSR_1759_5000"=dword:00000000
    "NSSR_1759_5002"=dword:00000000
    "NSSR_152D_0539"=dword:00000000
    "NSSR_152D_2509"=dword:00000000
    "NSSR_152D_0551"=dword:00000000
    "NSSR_0BC2_2300"=dword:00000000
    "NSSR_0BC2_3300"=dword:00000000
    "NSSR_059F_1016"=dword:00000000
    "NSSR_1058_0740"=dword:00000000
    "NSSR_059F_100C"=dword:00000000
    "NSSR_0411_01D8"=dword:00000000
    "DPDE_0951_1652"=dword:00000000
    "DPDE_1759_5000"=dword:00000000
    "DPDE_1759_5002"=dword:00000000
    "DPDE_152D_0539"=dword:00000000
    "DPDE_152D_2509"=dword:00000000
    "DPDE_152D_0551"=dword:00000000
    "DPDE_0411_01D8"=dword:00000000
    "WRDP_152D_0539"=dword:00000000
    "WRDP_152D_2509"=dword:00000000
    "ROSR_045E_063E"=dword:00000000
    "ROSR_045E_0710"=dword:00000000
    "ROSR_058F_9520"=dword:00000000
    "ROSR_05AC_1294"=dword:00000000
    "ROSR_05AC_129A"=dword:00000000
    "ROSR_05AC_129F"=dword:00000000
    "ROSR_0BC2_2300"=dword:00000000
    "ROSR_0BC2_3300"=dword:00000000
    "ROSR_059F_1016"=dword:00000000
    "ROSR_1058_0740"=dword:00000000
    "ROSR_059F_100C"=dword:00000000
    "SMSZ_0DD8_1D04"=dword:00000000
    "SMSZ_04B8_083F"=dword:00000000
    "SMSZ_1759_5000"=dword:00000000
    "SMSZ_1759_5002"=dword:00000000
    "SMSZ_1058_1042"=dword:00000000
    "GSOR_1390_0001"=dword:00000000
    "OEHD_045E_001C"=dword:00000000
    "OEHD_045E_002F"=dword:00000000
    "OEHD_8086_9303"=dword:00000000
    "OEHD_042B_9316"=dword:00000000
    "OEHD_050F_0001"=dword:00000000
    "OEHD_046A_0003"=dword:00000000
    "OEHD_04E1_0201"=dword:00000000
    "OEHD_0419_8001"=dword:00000000
    "OEHD_055D_8001"=dword:00000000
    "OEHD_0968_9999"=dword:00000000
    "OEHD_04CA_9304"=dword:00000000
    "OEHD_0416_0101"=dword:00000000
    "OEHD_04A8_0101"=dword:00000000
    "OEHD_0405_0000"=dword:00000000
    "OEHD_0451_1446"=dword:00000000
    "OEHD_0423_1237"=dword:00000000
    "OEHD_0430_36BA"=dword:00000000
    "OEHD_0471_0201"=dword:00000000
    "OEHD_0471_0700"=dword:00000000
    "OEHD_0409_55AA"=dword:00000000
    "OEHD_0409_8010"=dword:00000000
    "OEHD_0409_8011"=dword:00000000
    "OEHD_0400_1237"=dword:00000000
    "OEHD_054C_0001"=dword:00000000
    "OEHD_054C_0002"=dword:00000000
    "OEHD_056D_0000"=dword:00000000
    "OEHD_04A6_0180"=dword:00000000
    "OEHD_0654_0006"=dword:00000000
    "OEHD_0654_0016"=dword:00000000
    "STRZ_1759_5000"=dword:00000000
    "NGU3_2109_3431"=dword:00000000
    "NP2P_052E_1028"=dword:00000000
    "NSND_174C_5106"=dword:00000000
    "ABCP_05AC"=dword:00000000
    "NFRW_0B95_772B"=dword:00000000
    "NFRW_0424_EC00"=dword:00000000
    "FSCD_04C5_132B"=dword:00000000
    "ZDSI_0B6A_5347"=dword:00000000
    "ZDSI_070A_000D"=dword:00000000
    "DERE_0525_A4A2"=dword:00000000
    "1656103C"=dword:00000000
    "3388103C"=dword:00000000
    "1657103C"=dword:00000000
    "1658103C"=dword:00000000
    "3581103C"=dword:00000000
    "3582103C"=dword:00000000
    "3583103C"=dword:00000000
    "1659103C"=dword:00000000
    "165A103C"=dword:00000000
    "3389103C"=dword:00000000
    "165B103C"=dword:00000000
    "17F8103C"=dword:00000000
    "1899103C"=dword:00000000
    "06451025"=dword:00000000
    "06471025"=dword:00000000
    "06491025"=dword:00000000
    "064B1025"=dword:00000000
    "064D1025"=dword:00000000
    "064F1025"=dword:00000000
    "06511025"=dword:00000000
    "06531025"=dword:00000000
    "05041025"=dword:00000000
    "05111025"=dword:00000000
    "050E1025"=dword:00000000
    "05131025"=dword:00000000
    "FC401179"=dword:00000000
    "KSSD_04C5_2029_0001"=dword:00000000
    "KSSD_1058_1123_0003"=dword:00000000
    "KSSD_152D_0539"=dword:00000000
    "KSSD_13FE_5000_0110"=dword:00000000
    "KSSD_04C5_202B_0001"=dword:00000000
    "KSSD_2109_0701_0006"=dword:00000000
    "KSSD_1759_5002_2270"=dword:00000000
    "ABCP_05AC_129A"=dword:00000000
    "ABCP_05AC_1294"=dword:00000000
    "ABCP_05AC_1297"=dword:00000000
    "ABCP_05AC_12A0"=dword:00000000
    "ABCP_05AC_129F"=dword:00000000
    "ABCP_05AC_12A4"=dword:00000000

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FLxHCIc\Parameters\Wdf]
    "KmdfLibraryVersion"="1.9"

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FLxHCIc\Security]
    "Security"=hex:01,00,14,80,90,00,00,00,9c,00,00,00,14,00,00,00,30,00,00,00,02,\
      00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\
      00,00,02,00,60,00,04,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,\
      05,12,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,\
      20,02,00,00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,0b,00,00,00,00,\
      00,18,00,fd,01,02,00,01,02,00,00,00,00,00,05,20,00,00,00,23,02,00,00,01,01,\
      00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FLxHCIc\Enum]
    "Count"=dword:00000001
    "NextInstance"=dword:00000001
    "0"="PCI\\VEN_8086&DEV_A2AF&SUBSYS_A2AF1849&REV_00\\2&ebb567f&0&A0"

#1188

diderius6

Win7 tells also code 10 for Fresco driver.
I am sure, that this can be hacked in xhci.sys driver.
Here is registry entry from Win7, not all are zero(!).
Dietmar

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\FLxHCIc]
    "Type"=dword:00000001
    "Start"=dword:00000003
    "ErrorControl"=dword:00000001
    "Tag"=dword:0000001a
    "ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
      52,00,49,00,56,00,45,00,52,00,53,00,5c,00,46,00,4c,00,78,00,48,00,43,00,49,\
      00,63,00,2e,00,73,00,79,00,73,00,00,00
    "DisplayName"="Fresco Logic xHCI (USB3) Device Driver"
    "Group"="Base"

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\FLxHCIc\Parameters]
    "SGRD_15D9_0A4C"=dword:00000000
    "STIC_07CA"=dword:00000000
    "STIC_15A4_1003"=dword:00000000
    "STIC_1B80_E39B"=dword:00000000
    "STIC_2040_7200"=dword:00000000
    "STIC_185B_2850"=dword:00000000
    "NIOC_185B_2850"=dword:00000000
    "SNIC_07CA_2830"=dword:00000000
    "DDOS_045E_063E"=dword:00000000
    "DDOS_12D1_1001"=dword:00000000
    "DDOS_12D1_1003"=dword:00000000
    "DDOS_0408_EA03"=dword:00000000
    "DDOS_17E9_028F"=dword:00000000
    "DDOS_0A5C_2046"=dword:00000000
    "DDOS_19D2_0031"=dword:00000000
    "DDOS_1A8D"=dword:00000000
    "DDOS_0915_2000"=dword:00000000
    "DDOS_07B8_4002"=dword:00000000
    "DDOS_17E9_01D4"=dword:00000000
    "ABIG_03F0_5817"=dword:00000000
    "CCSD_13FE_1E00"=dword:00000000
    "DDIP_13FE_1E00"=dword:00000000
    "PBIN_12D1_1035"=dword:00000000
    "U1U2_1CA1"=dword:00000000
    "U1U2_152D_0539"=dword:00000000
    "U1U2_152D_2509"=dword:00000000
    "U1U2_1058_0740"=dword:00000000
    "U1U2_1058_1123"=dword:00000000
    "U1U2_1058_1140"=dword:00000000
    "U1U2_1D5C_8347"=dword:00000000
    "U1U2_04C5_201D"=dword:00000000
    "U1U2_067B_2771"=dword:00000000
    "U1U2_1759_9000"=dword:00000000
    "U1U2_1759_5002"=dword:00000000
    "U1U2_1759_5000"=dword:00000000
    "U1U2_0411_0180"=dword:00000000
    "U1U2_21E6_0001"=dword:00000000
    "U1U2_1EDB_BD3B"=dword:00000000
    "U1U2_0A6B_0101"=dword:00000000
    "U1U2_04E8_60C6"=dword:00000000
    "U1U2_1058_1042"=dword:00000000
    "FAHS_0951_1652"=dword:00000000
    "FAHS_05E3_0731"=dword:00000000
    "ECSD_199E_8207"=dword:00000000
    "NSEL_152D_0539"=dword:00000000
    "NSEL_1F75_0902"=dword:00000000
    "NSEL_1005_B128"=dword:00000000
    "NHLP_2297_0321"=dword:00000000
    "NOSD_1F75_0902"=dword:00000000
    "NOSD_125F_312A"=dword:00000000
    "NOSD_3538_0901"=dword:00000000
    "NMEL_1EDB_BD3B"=dword:00000000
    "NSSR_0951_1652"=dword:00000000
    "NSSR_1759_5000"=dword:00000000
    "NSSR_1759_5002"=dword:00000000
    "NSSR_152D_0539"=dword:00000000
    "NSSR_152D_2509"=dword:00000000
    "NSSR_152D_0551"=dword:00000000
    "NSSR_0BC2_2300"=dword:00000000
    "NSSR_0BC2_3300"=dword:00000000
    "NSSR_059F_1016"=dword:00000000
    "NSSR_1058_0740"=dword:00000000
    "NSSR_059F_100C"=dword:00000000
    "NSSR_0411_01D8"=dword:00000000
    "DPDE_0951_1652"=dword:00000000
    "DPDE_1759_5000"=dword:00000000
    "DPDE_1759_5002"=dword:00000000
    "DPDE_152D_0539"=dword:00000000
    "DPDE_152D_2509"=dword:00000000
    "DPDE_152D_0551"=dword:00000000
    "DPDE_0411_01D8"=dword:00000000
    "WRDP_152D_0539"=dword:00000000
    "WRDP_152D_2509"=dword:00000000
    "ROSR_045E_063E"=dword:00000000
    "ROSR_045E_0710"=dword:00000000
    "ROSR_058F_9520"=dword:00000000
    "ROSR_05AC_1294"=dword:00000000
    "ROSR_05AC_129A"=dword:00000000
    "ROSR_05AC_129F"=dword:00000000
    "ROSR_0BC2_2300"=dword:00000000
    "ROSR_0BC2_3300"=dword:00000000
    "ROSR_059F_1016"=dword:00000000
    "ROSR_1058_0740"=dword:00000000
    "ROSR_059F_100C"=dword:00000000
    "SMSZ_0DD8_1D04"=dword:00000000
    "SMSZ_04B8_083F"=dword:00000000
    "SMSZ_1759_5000"=dword:00000000
    "SMSZ_1759_5002"=dword:00000000
    "SMSZ_1058_1042"=dword:00000000
    "GSOR_1390_0001"=dword:00000000
    "OEHD_045E_001C"=dword:00000000
    "OEHD_045E_002F"=dword:00000000
    "OEHD_8086_9303"=dword:00000000
    "OEHD_042B_9316"=dword:00000000
    "OEHD_050F_0001"=dword:00000000
    "OEHD_046A_0003"=dword:00000000
    "OEHD_04E1_0201"=dword:00000000
    "OEHD_0419_8001"=dword:00000000
    "OEHD_055D_8001"=dword:00000000
    "OEHD_0968_9999"=dword:00000000
    "OEHD_04CA_9304"=dword:00000000
    "OEHD_0416_0101"=dword:00000000
    "OEHD_04A8_0101"=dword:00000000
    "OEHD_0405_0000"=dword:00000000
    "OEHD_0451_1446"=dword:00000000
    "OEHD_0423_1237"=dword:00000000
    "OEHD_0430_36BA"=dword:00000000
    "OEHD_0471_0201"=dword:00000000
    "OEHD_0471_0700"=dword:00000000
    "OEHD_0409_55AA"=dword:00000000
    "OEHD_0409_8010"=dword:00000000
    "OEHD_0409_8011"=dword:00000000
    "OEHD_0400_1237"=dword:00000000
    "OEHD_054C_0001"=dword:00000000
    "OEHD_054C_0002"=dword:00000000
    "OEHD_056D_0000"=dword:00000000
    "OEHD_04A6_0180"=dword:00000000
    "OEHD_0654_0006"=dword:00000000
    "OEHD_0654_0016"=dword:00000000
    "STRZ_1759_5000"=dword:00000000
    "NGU3_2109_3431"=dword:00000000
    "NP2P_052E_1028"=dword:00000000
    "NSND_174C_5106"=dword:00000000
    "ABCP_05AC"=dword:00000000
    "NFRW_0B95_772B"=dword:00000000
    "NFRW_0424_EC00"=dword:00000000
    "FSCD_04C5_132B"=dword:00000000
    "ZDSI_0B6A_5347"=dword:00000000
    "ZDSI_070A_000D"=dword:00000000
    "DERE_0525_A4A2"=dword:00000000
    "DERE_043E_9A46"=dword:00000000
    "DERE_043E_9A02"=dword:00000000
    "RSBI_0403_FF0B"=dword:00000100
    "RSBO_0403_FF0B"=dword:00000100
    "RSBI_164C_5533"=dword:00000200
    "RSBI_1E10_3300"=dword:00000200
    "1656103C"=dword:00000000
    "3388103C"=dword:00000000
    "1657103C"=dword:00000000
    "1658103C"=dword:00000000
    "3581103C"=dword:00000000
    "3582103C"=dword:00000000
    "3583103C"=dword:00000000
    "1659103C"=dword:00000000
    "165A103C"=dword:00000000
    "3389103C"=dword:00000000
    "165B103C"=dword:00000000
    "17F8103C"=dword:00000000
    "1899103C"=dword:00000000
    "06451025"=dword:00000000
    "06471025"=dword:00000000
    "06491025"=dword:00000000
    "064B1025"=dword:00000000
    "064D1025"=dword:00000000
    "064F1025"=dword:00000000
    "06511025"=dword:00000000
    "06531025"=dword:00000000
    "05041025"=dword:00000000
    "05111025"=dword:00000000
    "050E1025"=dword:00000000
    "05131025"=dword:00000000
    "FC401179"=dword:00000000
    "SPPROC"=dword:00000000

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\FLxHCIc\Parameters\Wdf]
    "KmdfLibraryVersion"="1.9"

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\FLxHCIc\Enum]
    "Count"=dword:00000001
    "NextInstance"=dword:00000001
    "INITSTARTFAILED"=dword:00000001
    "0"="PCI\\VEN_8086&DEV_A2AF&SUBSYS_A2AF1849&REV_00\\3&11583659&0&A0"

#1189

diderius6

And here come the registry entries for the Intel xhci
and hub3 entry (they all work).
May be the 3 entries are just, what ⇗ @canonkong missed for his hub via Fresco
Dietmar
xhci:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iusb3xhc]
    "Type"=dword:00000001
    "Start"=dword:00000003
    "ErrorControl"=dword:00000001
    "Tag"=dword:00000014
    "ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
      52,00,49,00,56,00,45,00,52,00,53,00,5c,00,69,00,75,00,73,00,62,00,33,00,78,\
      00,68,00,63,00,2e,00,73,00,79,00,73,00,00,00
    "DisplayName"="Intel(R) USB 3.0 eXtensible-Hostcontrollertreiber"
    "Group"="Base"

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iusb3xhc\Parameters]

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iusb3xhc\Enum]
    "0"="PCI\\VEN_8086&DEV_A2AF&SUBSYS_A2AF1849&REV_00\\3&11583659&0&A0"
    "Count"=dword:00000001
    "NextInstance"=dword:00000001

hub3:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iusb3hub]
    "Type"=dword:00000001
    "Start"=dword:00000003
    "ErrorControl"=dword:00000001
    "Tag"=dword:00000015
    "ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
      52,00,49,00,56,00,45,00,52,00,53,00,5c,00,69,00,75,00,73,00,62,00,33,00,68,\
      00,75,00,62,00,2e,00,73,00,79,00,73,00,00,00
    "DisplayName"="Intel(R) USB 3.0-Hubtreiber"
    "Group"="Base"

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iusb3hub\Parameters]

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iusb3hub\Enum]
    "0"="IUSB3\\ROOT_HUB30\\4&556f44c&0"
    "Count"=dword:00000003
    "NextInstance"=dword:00000003
    "1"="USB\\VID_174C&PID_2074\\5&14a73d14&0&3"
    "2"="USB\\VID_174C&PID_3074\\5&14a73d14&0&23"

#1190

diderius6

Found this on the way, from Fresco for XP USB3
Dietmar
diderius6 has attached files to this post

- ⇗ FrescoXP.rar

#1191 | canonkong | ⇗ @diderius6 All usb drivers origenal package. ⇗ https://yadi.sk/d/5jkmVZBjNgNZMw
#1192 | diderius6 | ⇗ @canonkong Thank you. What do you think, which driver has best chances for to work for XP USB3 for Intel chipset USB Dietmar
#1193 | infuscomus | ⇗ @diderius6 I think either the texas instruments driver or the amd 3.1 driver I'm basing my guess on the size in kb of the controller driver compared to intels driver

#1194

diderius6

⇗ @infuscomus
I wonder, how ⇗ @canonkong makes a 32 bit version of the USB3 xhci and hub driver vers. 2.0.0.0068 from AMD.
Because there is only a 64 bit version of this driver from AMD on the market,
he needs the sourcecode for this driver for to compile it for 32 bit.
If I am right, we have this driver, but something went wrong during compiling,
Dietmar
PS: Until now, we do not know, which makes the difference between Intel USB3 and all USB3 from other manufactures.
I think, may be it is the KMDF driver concept but VIA and Fresco have KMDF also. Texas instruments I dont know.
docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/tutorial--write-your-first-usb-client-driver--kmdf-

#1195

canonkong

⇗ @diderius6 ⇗ @infuscomus
For win7 64bit, AMD Zeppelin USB driver is the best one, it can support all usb devices just add the device ID into the *.inf and don't need to modify the *sys.
Intel 1.0.10.255/ 5.0.4.43/ 15.2.30.13/ 17.2.70.3 are also can support all usb devices just add the device ID into the *.inf but need to modify the *sys. And it can support 32/64bit.
Fresco VIA NEC can only work for the XHCI, but the hub can not work.
As my platform can not support XP, so I can only test on VM, the amd USB driver can support nearly all usb devices but Intel can not work on real machines.

#1196

diderius6

I modified the xhci.sys and *.inf for Intel chipset USB3.0 under XP as good as I can for the Texas Instrument USB 3.0 driver for Win 7 DriverVer=04/14/2016, 1.16.6.0. I use PEmaker 0.82 for to correct the size and the checksum.
Compi tries 4 times to install it, as you can see with Windbg.
The message is about a filtered list,
DNF_RESOURCE_REQUIREMENTS_NEED_FILTERED (0x00000200)
The device's resource requirements list is a filtered list.
so may be only in the extra settings in this special xhci.sys driver is wrong for XP
Dietmar
PS: KMDF driver has started correct in XP.
EDIT: On WIN7 the Texas driver for Intel chipset USB 3.0 is also not loaded, showes the same code 31 as for XP.

    0: kd> !DevNode 0x8a475a58
    DevNode 0x8a475a58 for PDO 0x8a476a90
      Parent 0x8a4c2500   Sibling 0x8a475938   Child 0000000000
      InstancePath is "PCI\VEN_8086&DEV_A2AF&SUBSYS_A2AF1849&REV_00\2&ebb567f&0&A0"
      ServiceName is "tixhci"
      State = DeviceNodeRemoved (0x312)
      Previous State = DeviceNodeInitialized (0x302)
      StateHistory[18] = DeviceNodeInitialized (0x302)
      StateHistory[17] = DeviceNodeAwaitingQueuedRemoval (0x30f)
      StateHistory[16] = DeviceNodeInitialized (0x302)
      StateHistory[15] = DeviceNodeUninitialized (0x301)
      StateHistory[14] = DeviceNodeRemoved (0x312)
      StateHistory[13] = DeviceNodeInitialized (0x302)
      StateHistory[12] = DeviceNodeAwaitingQueuedRemoval (0x30f)
      StateHistory[11] = DeviceNodeInitialized (0x302)
      StateHistory[10] = DeviceNodeUninitialized (0x301)
      StateHistory[09] = DeviceNodeRemoved (0x312)
      StateHistory[08] = DeviceNodeInitialized (0x302)
      StateHistory[07] = DeviceNodeAwaitingQueuedRemoval (0x30f)
      StateHistory[06] = DeviceNodeInitialized (0x302)
      StateHistory[05] = DeviceNodeUninitialized (0x301)
      StateHistory[04] = DeviceNodeRemoved (0x312)
      StateHistory[03] = DeviceNodeInitialized (0x302)
      StateHistory[02] = DeviceNodeAwaitingQueuedRemoval (0x30f)
      StateHistory[01] = DeviceNodeInitialized (0x302)
      StateHistory[00] = DeviceNodeUninitialized (0x301)
      StateHistory[19] = Unknown State (0x0)
      Flags (0x00002230)  DNF_ENUMERATED, DNF_IDS_QUERIED,
                          DNF_RESOURCE_REQUIREMENTS_NEED_FILTERED, DNF_HAS_PROBLEM
      CapabilityFlags (0x00002000)  WakeFromD3
      Problem = CM_PROB_FAILED_ADD

diderius6 has attached files to this post

- ⇗ TexasMOD.rar

#1197 | diderius6 | So, only hope at the moment for USB 3.0 under XP for Intel chipset is, that somebody has the sourcecode for the generic Microsoft USB 3.0 drivers from Win8 and just compiles it for Win2003 32 bit Dietmar
#1198 | infuscomus | ⇗ @diderius6 do you know how to change the value of a string when using a disassembler?

#1199

diderius6

⇗ @infuscomus
All string values are coded as Hexnumbers (unicode), each separated with "." => 00
"1" => 31
"2"=> 32
...
"A" => 41
"B" => 42
...
Dietmar
⇗ https://unicode-table.com/de/

#1200

infuscomus

⇗ @diderius6
So I made an attempt to modify AMD driver 1.0.5.3 for intel - can you please test for yourself?
please add your HWID to the INF yourself since i was not sure which HWID you have
hub driver might need an INF mod too, I'm not sure
edit:
alt version in case first one crashes
infuscomus has attached files to this post

- ⇗ AMD USB 3.1 drivers v1.0.5.3 WHQL modded.7z.ZIP
- ⇗ AMD USB 3.1 drivers v1.0.5.3 WHQL modded.7z - alt.ZIP

## Page 81

#1201

diderius6

⇗ @infuscomus
Waaaaooooohhhhhhhh , for the very first time the xhci.sys controller starts for Intel chipset USB 3.0
What a great work!
Hub does not start until now but this can be, because in xhciMod.sys you changed the name for the Hub
and so XP looks in hub.inf for a name, which now not exist.
I test this.
But this is really a BIG day for Windows XP!!!
Open Diff file with Browser.

    0: kd> !DevNode 0x8a475a58
    DevNode 0x8a475a58 for PDO 0x8a476a90
      Parent 0x8a4c2500   Sibling 0x8a475938   Child 0x88480a70
      InstancePath is "PCI\VEN_8086&DEV_A2AF&SUBSYS_A2AF1849&REV_00\2&ebb567f&0&A0"
      ServiceName is "amdxhc31"
      State = DeviceNodeStarted (0x308)
      Previous State = DeviceNodeEnumerateCompletion (0x30d)
      StateHistory[09] = DeviceNodeEnumerateCompletion (0x30d)
      StateHistory[08] = DeviceNodeStarted (0x308)
      StateHistory[07] = DeviceNodeEnumerateCompletion (0x30d)
      StateHistory[06] = DeviceNodeStarted (0x308)
      StateHistory[05] = DeviceNodeStartPostWork (0x307)
      StateHistory[04] = DeviceNodeStartCompletion (0x306)
      StateHistory[03] = DeviceNodeResourcesAssigned (0x304)
      StateHistory[02] = DeviceNodeDriversAdded (0x303)
      StateHistory[01] = DeviceNodeInitialized (0x302)
      StateHistory[00] = DeviceNodeUninitialized (0x301)
      StateHistory[19] = Unknown State (0x0)
      StateHistory[18] = Unknown State (0x0)
      StateHistory[17] = Unknown State (0x0)
      StateHistory[16] = Unknown State (0x0)
      StateHistory[15] = Unknown State (0x0)
      StateHistory[14] = Unknown State (0x0)
      StateHistory[13] = Unknown State (0x0)
      StateHistory[12] = Unknown State (0x0)
      StateHistory[11] = Unknown State (0x0)
      StateHistory[10] = Unknown State (0x0)
      Flags (0x000000f0)  DNF_ENUMERATED, DNF_IDS_QUERIED,
                          DNF_HAS_BOOT_CONFIG, DNF_BOOT_CONFIG_RESERVED
      CapabilityFlags (0x00002000)  WakeFromD3

diderius6 has attached files to this post

- ⇗ diffXHCI.rar

#1202

diderius6

I edit amdhub31.inf,
but now amdhub31.sys shows in Device Manager code 29

    Code 29 - This Device Is Disabled Because the Firmware of the Device Did Not Give It the Required Resources

    Dietmar

    ;*****************************************************************************
    ;
    ; Name:  amdhub31.inf
    ;
    ; Function:
    ;	Install AMD USB3.1 Hub Driver
    ;
    ; Copyright (c) 2014-2018 AMD, ASMedia, MCCI.
    ;
    ; MCCI(R) is a registered trademark of MCCI Corporation.
    ;
    ;*****************************************************************************

    [Version]
    Signature="$WINDOWS NT$"
    Class=USB
    ClassGuid={36fc9e60-c465-11cf-8056-444553540000}
    Provider=%Provider%
    DriverVer=01/22/2018, 1.0.5.3

    [SourceDisksNames.x86]
    1=%DiskKey%,"amdhub31.sys",,\x86

    [SourceDisksFiles.x86]
    amdhub31.sys=1

    [DestinationDirs]
    DefaultDestDir = 12

    [Manufacturer]
    %RootHub.MFG%=RootHub, ntx86
    %Hub.MFG%=Hub, ntx86

    [Hub.ntx86]
    %Hub_Product_1%=Hub_Product2_Install,USB\USB_HUB30

    [RootHub.ntx86]
    %RootHub_Product_1%=RootHub_Product1_Install,USB\USBROOT_HUB31

    [RootHub_Product1_Install.ntx86]
    FeatureScore=80
    CopyFiles=amdhub31.CopyFiles.x86
    DriverVer=01/22/2018, 1.0.5.3
    AddReg=RootHub_Product1_Install.AddReg
    AddReg=amdhub31.DeviceInterfaceGuids
    AddReg=amdhub31.ProductDeviceInterfaceGuids

    [RootHub_Product1_Install.ntx86.services]
    AddService=amdhub31,0x00000002,amdhub31_service

    [amdhub31.CopyFiles.x86]
    amdhub31.sys

    [amdhub31.DeviceInterfaceGuids]
    HKR,DeviceInterfaces,GUID_DEVINTERFACE_USB_HUB3,, "{314B0371-157A-434A-8459-685D389ED910}"

    [amdhub31.ProductDeviceInterfaceGuids]
    HKR,DeviceInterfaces,GUID_DEVINTERFACE_USB_USB3_DRIVERS,, "{C6164C12-A1E1-4B7E-B49C-F942E3A8C050}"

    [amdhub31_service]
    DisplayName=%amdhub31_ServiceDescription%
    ServiceType=1
    StartType=3
    ErrorControl=1
    ServiceBinary=%12%\amdhub31.sys
    LoadOrderGroup=Base
    AddReg=WinToGo_amdhub31.AddReg

    [Strings]
    DiskKey = "AMD USB 3.1 Install Disk"
    Hub.MFG = "(Generic USB Hub)"
    Hub_Product_1 = "Generic USB Hub"
    Provider = "Advanced Micro Devices, Inc."
    RootHub.MFG = "(Standard USB Host Controller)"
    RootHub_Product_1 = "AMD USB3.1 Root Hub"
    amdhub31_ServiceDescription = "AMD USB3.1 Hub Service"

    ;**** end of file ****

#1203

diderius6

⇗ @infuscomus
This is, what Windbg tells about amdhub31.sys
Such a code 29 I have never seen before
Dietmar

    0: kd> !DevNode 0x884ae530
    DevNode 0x884ae530 for PDO 0x884b1be0
      Parent 0x8a471180   Sibling 0000000000   Child 0000000000
      InstancePath is "USB\USBROOT_HUB31\3&216d82cf&2&0"
      ServiceName is "amdhub31"
      State = DeviceNodeRemoved (0x312)
      Previous State = DeviceNodeStartPostWork (0x307)
      StateHistory[07] = DeviceNodeStartPostWork (0x307)
      StateHistory[06] = DeviceNodeAwaitingQueuedRemoval (0x30f)
      StateHistory[05] = DeviceNodeStartPostWork (0x307)
      StateHistory[04] = DeviceNodeStartCompletion (0x306)
      StateHistory[03] = DeviceNodeResourcesAssigned (0x304)
      StateHistory[02] = DeviceNodeDriversAdded (0x303)
      StateHistory[01] = DeviceNodeInitialized (0x302)
      StateHistory[00] = DeviceNodeUninitialized (0x301)
      StateHistory[19] = Unknown State (0x0)
      StateHistory[18] = Unknown State (0x0)
      StateHistory[17] = Unknown State (0x0)
      StateHistory[16] = Unknown State (0x0)
      StateHistory[15] = Unknown State (0x0)
      StateHistory[14] = Unknown State (0x0)
      StateHistory[13] = Unknown State (0x0)
      StateHistory[12] = Unknown State (0x0)
      StateHistory[11] = Unknown State (0x0)
      StateHistory[10] = Unknown State (0x0)
      StateHistory[09] = Unknown State (0x0)
      StateHistory[08] = Unknown State (0x0)
      Flags (0x00002130)  DNF_ENUMERATED, DNF_IDS_QUERIED,
                          DNF_NO_RESOURCE_REQUIRED, DNF_HAS_PROBLEM
      CapabilityFlags (0x00002200)  SurpriseRemovalOK, WakeFromD3
      Problem = CM_PROB_HARDWARE_DISABLED

#1204

diderius6

⇗ @infuscomus
I noticed with Ida Pro,
that in the amdhub31.sys is still reference to
AMDHUB31
AmdUsb3_1Root
which you renamed in amdxhc31.sys.
Why did you rename them?
And I noticed, that

         .rdata:000628A8	                unicode	0, <AMDROOT_HUB31&VID040E&PID0100&VER00010000000>

    =>

         .rdata:000628A8			unicode	0, <USBROOT_HUB31&VID040E&PID0100&VER00010000000>

which may be too special to give explicit VID_&PID_ here for the Hub from MCCI.
Mine is for example VID8086&PIDA2AF
Dietmar

#1205

diderius6

⇗ @infuscomus
I take a look at your xhci driver and mod it new with minimal changes for my USB device VEN_8086&DEV_A2AF.
My modded xhci.driver works also.
I dont change anything in the names of AMD or USB there.
So, I can use the unmodded *.inf file for the also unmodded Hub.sys
But again the message code 29 appears,
seems to be a serious problem,
last bastion^^ from Intel against USB3 hack for XP
Dietmar
PS: May be it is just, that we need an USB 3.0 hub. This one with code 29 is USB 3.1, but the hardware from Intel chipset is in real only USB 3.0.
⇗
diderius6 has attached files to this post

- ⇗ AMDUSB3.1driversv1.0.5.3 WHQLModDietmar.rar

#1206 | canonkong | ⇗ @diderius6 You can use the hub driver from AMD zeppelin USB driver 2.0.0.48/2.0.0.68.

#1207

diderius6

⇗ @canonkong
Nice idea, I just tested,
but gives the same code 29.
Hm, all the different Hub drivers give this code 29,
so something went wrong
Dietmar

#1208 | canonkong | ⇗ @diderius6 I use 2.0.0.48 hub, but code 10. EDIT: And I found that your mod xhci not fully change, you need to replace all 22 10 00 00 to 86 80 00 00, and 39 4B 00 00 to your dev ID.
#1209 | infuscomus | ⇗ @diderius6 ⇗ @canonkong I'm just guessing, but maybe we need that intel switch driver for the hub to work? edit: usb power settings? maybe hub is asleep?

#1210

diderius6

⇗ @infuscomus ⇗ @canonkong
I also think, that may be intel switch has a meaning. Does somebody know, how and for what this is good?
We can integrate this driver by hand with its registry entries.
What I will try today:
1.) Look about all new registry entries from Win7 32 bit for exact this driver from AMD 1.0.5.3.
For this I will set up a new Win7 with minimal environment, copy registry and
check after install of this driver with "Beyond Compare 2" those 2 registries for all differences.
2.) I make by hand entries in registry in "CriticalDeviceDatabase" in XP for this USB device. This will be a hard job,
Dietmar
PS: Any idea is welcome. What really does code 29 mean for a driver?

#1211

canonkong

@ diderius6
You can try this one.
8086_A2AF_USB_XP_32BIT_TEST
⇗ https://yadi.sk/d/DVZl98FGYDFgSw
EDIT:
I test it for my 3700x on win7, it is working, but intel A2AF need test.
⇗ ⇗ http://uploadoss.smxdiy.com/forum/201908...8a1rr14vze5.jpg

#1212

diderius6

⇗ @canonkong
Nice driver also, asmxhci.sys starts correct my A2AF USB 3.0 controller,
but Hub gives again code 29.
Interesting, that there are more than 1 usb driver,
which works for Intel chipsets
Dietmar

#1213

infuscomus

⇗ @diderius6
Error Code
29
Display Message
"This device is disabled because the firmware of the device did not give it the required resources. (Code 29)"
Recommended Resolution
Enable the device in the BIOS.
⇗ https://docs.microsoft.com/en-us/windows...rdware-disabled

#1214

diderius6

⇗ @infuscomus
All what can be enabled in Bios is enabled.
And under Win7 this USB 3.0 device with A2AF works
Dietmar
PS: I think, CriticalDeviceDatabase can make this symptoms (code 29) also,
I know from USB2.0 and from ahci.sys, the Intel driver for harddisks has entries there also.

#1215

diderius6

Ha, I understand, what is going on.
Look at the picture, no energy management can be seen (on top from devicemanager).
For to safe energy, the crazy XP shuts this USB device off,
and now no switch there to start it again
Dietmar
⇗

## Page 82

#1216 | infuscomus | ⇗ @diderius6 try disabling USB power savings in control panel, see if it turns on

#1217

diderius6

⇗ @infuscomus
In XP, there is no such switch. Only for each hub itself.
All hubs, that I tested show code 29.
I am quite sure, that XP switched this hub off.
And nothing I know, how to switch it on again.
I succeed to install the Intel switch. It installs without problems (via hardware manager) and gives a pci device in device manager. But even if this could enable power on for Intel hubs, it does not work in XP
Dietmar

#1218 | infuscomus | ⇗ @diderius6 i meant something like this - ⇗ http://tools.thermofisher.com/content/sf...onnectivity.pdf

#1219

diderius6

⇗ @infuscomus
I found this
HKR,,WdkSelectiveSuspendEnable, 0x10001, 0
Dietmar
EDIT: Again code 29. So may be, something other stopps HUB in last moment from start.
For this Hub is valid:
PDCAP_D0_SUPPORTED
PDCAP_D3_SUPPORTED
PDCAP_WAKE_FROM_D3_SUPPORTED
Energy state now = D3 (off)

#1220 | infuscomus | ⇗ @diderius6 try plugging in a powered USB hub - ⇗ https://www.ebay.de/itm/USB-7-Port-HUB-P...lC_klgSxX3qtOfg I had this problem earlier with my USB 2.0 card and the powered hub fixed it The following contents have been linked to this post:

#1221

diderius6

⇗ @infuscomus
Nice idea, I have powered USB hub and I will test.
First I thought, that may be this USB hub does not have the possibility
to save power (D3 <=> D0) like the VIA hub3.0.
But then I noticed, that I can also install the normal Asmedia USB 3.1 USB hub with this new driver
and there this one shows powermanagment.
So, indeed this USB Hub3.0 for Intel chipset is not awaken frome sleep D0 => D3.
Only question is,
why not
Dietmar
Dietmar

#1222

daniel_k

⇗ @diderius6
As I was suspecting, the issue lies in the ACPI's DSDT table.
The DSDT table from Z390 chipsets do not have many custom methods and memory operations for integrated devices.
But for the Z370, there are many operations for the same integrated devices.
Just search for Device (XHC) and see the differences.
Remove all instructions from the Z370' DSDT and leave it as close as possible as the Z390's.
After doing this, many host drivers are now loaded successfully.

#1223 | infuscomus | ⇗ @diderius6 Looking at ASMedia 1.16.56.1 and AMD 1.0.5.3 USB 3.1 drivers it looks to me like the code for both these drivers is identical and they just swapped the HWIDs

#1224

diderius6

⇗ @infuscomus
I connected a powered USB 3.0 hub,
but no reaction, USB 3.0 from Intel chipset still sleeps with code 29, grrr..
I make a test, if this can be indeed the fault of the DSDT table as recommend from ⇗ @daniel_k .
For this, I make a new setup, compi first in "ACPI Multiprocessor" and then also at the same time as "Standard PC" for XP.
Hm, on Acpi multiprocessor I get now also for the working xhci driver code 10,
device cannot start. But when I switch to the "Standard PC", suddently
I can install the same USB xhci driver for the Intel chipset without any error.
But then the Intel chipset USB hub shows also code 29, D3 powerstate =off, not awake.
I know, that for "ACPI Multiprocessor" and for "Standard PC" are two, absolut independend sets of installation routines
in every DSDT. This you can see, because all drivers are loaded new, when you switch from ACPI Multiprocessor to
Standard PC. This works only in XP and only, it you first install the "ACPI Multiprocessor" and after "Standard PC"
and not vice versa
Dietmar
PS: For me is now the question, how Win7 32 bit can survive with such a faulty DSDT table.

#1225

diderius6

After I read about xhc device in DSDT and problems with Acpi (crazy, so big problems with Apple compis with USB and ACPI)
I am sure, that we need a mod in DSDT for USB3 an XP. It is not the fault of the drivers for USB3 for XP.
Idea from ⇗ @daniel_k looks not bad on a second view.
I know now, that he is right.
So lets have a look at the DSDT from z390 for xhc and differences to z370.
There is even a whole Bios for pur XP for the EVGA dark z390 board
Dietmar
PS: We have the asl.exe tool. With this, it is easy to mod DSDT without any risk for Bios, revertible whenever and as long as you want , no need to load again on every boot because it stays in registry, I tested. Nice tool. So, its much easier than for Hackintosh to modmodmod DSDT for XP. And I make a new try with the Fresco USB driver.

#1226

daniel_k

> Zitat von ⇗ infuscomus im Beitrag ¶ #1223

> @diderius6
> Looking at ASMedia 1.16.56.1 and AMD 1.0.5.3 USB 3.1 drivers it looks to me like the code for both these drivers is identical and they just swapped the HWIDs

That's because AMD uses ASMedia core logic.

#1227

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1225

> ...
> So lets have a look at the DSDT from z390 for xhc and differences to z370.
> There is even a whole Bios for pur XP for the EVGA dark z390 board
> Dietmar
> PS: We have the asl.exe tool. With this, it is easy to mod DSDT without any risk for Bios, revertible whenever and as long as you want , no need to load again on every boot because it stays in registry, I tested. Nice tool. So, its much easier than for Hackintosh to modmodmod DSDT for XP. And I make a new try with the Fresco USB driver.

Unfortunately, still it is not that easy.
For now, the "best" driver I've tried and easier to mod was the Renesas 3.0.23.0: both the Host controller and the Hub driver are properly loaded.
However, it doesn't always work. I need to enable/disable the Host controller several times for it to work. When it does, works perfectly.
I've attached the driver here. It is completely generic, removed all device checks. Did not try it on anything but the A2AF controller. Original driver is included for you to see what I did.

#1228 | daniel_k | ⇗ @diderius6 What is your board with Intel USB 3.0 (A2AF)? I can mod the DSDT my way for you to see what I did here.
#1229 | diderius6 | ⇗ @daniel_k Asrock Fatal1ty z370 Gaming k6 with yes VEN_8086&DEV_A2AF USB3.0. With the asl.exe tool, you can load and unload the DSDT at any time to registry in XP SP3, Dietmar

#1230

diderius6

⇗ @daniel_k
On "Standard PC" the xhci installs and the hub starts:)) !!!
Usbstor.sys does not start, this is exact the situation as on the AMD boards before
Dietmar
PS: Nice work!
⇗

## Page 83

#1231

daniel_k

⇗ @diderius6 , hopefully we're almost there!
I've attached the DSDT tables of your board (and a reference Z390 from ASRock) for you to see what I did.
Please note that I've also removed the following entry:

    Scope (_GPE)
        {
            Method (_L6D, 0, Serialized)  // _Lxx: Level-Triggered GPE
            {
                \_SB.PCI0.XHC.GPEH () -> REMOVED THIS
                \_SB.PCI0.HDAS.GPEH ()
                \_SB.PCI0.GLAN.GPEH ()
                \_SB.PCI0.XDCI.GPEH ()
            }
        }

daniel_k has attached files to this post

- ⇗ DSDT_MOD.rar

#1232

diderius6

Waaaaoooohhhhh, for the very first time XP and USB3 on Intel chipset !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
For this I set in Registry for
usbstor Group System Reserved
start 0
xhci Group System Reserved
start 0
hub Group System Reserved
start 0
Dietmar
⇗

#1233 | daniel_k | ⇗ @diderius6, after doing these changes, does it work every time? Please try to restart Windows and check if it Always work. Here in ACPI mode without registry changes, only works after 7 ~ 10 enable / disable retries.

#1234

diderius6

⇗ @daniel_k
The registry changes are necessary
Dietmar
PS: I test test test now:))!!!
EDIT: There is still a lot to do:)). With ACPI Multiprocessor xhci gives always code 10.
With Standard PC not always usbstor.sys is loaded.

#1235 | canonkong | ⇗ @daniel_k For AMD new cpu and X570, they have the USB controller ven1022_dev_149C. Do you know which is the best driver for them? Because they running on PCI-E 4.0, I tested some driver for them, AMD zeppelin usb driver 2.0.0.48 and Intel USB drivers can work for them, but will BSOD sometimes. ASMedia and AMD USB3.1 driver can work but the USB disks cant work.

#1236

diderius6

⇗ @daniel_k
I just upload the new compiled, modded DSDT table for the board Asrock Fatal1ty z370 Gaming k6 via
asl /loadtable dsdt.aml
on working ACPI Multiprocessor XP for to look for behavior on Intel chipset USB3.
Change of DSDT table has been done and works, because on next reboot I got
BSOD 0x000000A5 (0x00000003, xxx, C0140004, yyy).
with newest modded acpi.sys ver. 5048
Now I look with Windbg,
at which place this BSOD in acpi.sys happens
Dietmar
BSOD 0xA5 (0x00000003, Parameter2, Parameter3, Parameter4):
This error is defined as "ACPI failed must succeed method." This error occurs if ACPI cannot build a control method to reference the ACPI namespace. Other arguments for this error reference the ACPI object that was being run and the name of the control method. One greatly simplified explanation (which might not be completely accurate) is that the system cannot find a way to get to the ACPI tables that define the Plug and Play and Power Management capabilities of the system.

#1237 | infuscomus | ⇗ @diderius6 Intel ASL compiler also has it's own acpiexec command line tool which can also load DSDT from registry maybe try that? edit: or maybe i'm wrong about iasl being able to load a different DSDT

#1238

diderius6

⇗ @infuscomus
The asl.exe Tool works perfect.
I change the acpi5048.sys against my first modded original acpi.sys from XP SP3
(gives BSOD 0x000000A5 (0x00000003, xxx, C0140001, yyy)
because now I get Symbols in Ida Pro and windbg shows me exact the line,
where it crashes.
May be, it is just an simple error in DSDT.
The fantastic thing in the asl.exe tool is,
that now I can start the same XP (with uploaded DSDT) as "Standard PC" and write simple command
asl /loadtable -d dsdt.aml
and the uploaded DSDT table is deleted in registry and XP now uses the unmodified DSDT table from Bios,
meaning all is exact like before
Dietmar
EDIT: The changes in DSDT are a little bit to heavy^^. Now the COM1 port does not work any longer, meaning no windbg.
But for me it is a good test, if really I can delete this DSDT (stays only in registry) with asl.exe and if all is good as before.
In "Standard PC" the changes in DSDT do not help for better USB3. May be other tables need to be fixed too.
EDIT2: I change by hand the adress of the COM port, now it works again with windbg.
Still I use the modded DSDT for to see, what is going on:

    STACK_COMMAND:  kb

    FOLLOWUP_IP:
    ACPI!ACPIBuildCompleteMustSucceed+33
    b7f3967f c7401802000000  mov     dword ptr [eax+18h],2

    SYMBOL_STACK_INDEX:  4

    SYMBOL_NAME:  ACPI!ACPIBuildCompleteMustSucceed+33

    FOLLOWUP_NAME:  MachineOwner

    MODULE_NAME: ACPI

    IMAGE_NAME:  ACPI.sys

    DEBUG_FLR_IMAGE_TIMESTAMP:  480252b1

    FAILURE_BUCKET_ID:  0xA5_ACPI!ACPIBuildCompleteMustSucceed+33

    BUCKET_ID:  0xA5_ACPI!ACPIBuildCompleteMustSucceed+33

    Followup: MachineOwner

EDIT3: Hack in acpi.sys succeeds, but now I get BSOD 0xA5 (0x00000002,xxx,0x00000001,yyy)

    0xA5(0x00000002, Parameter2, Parameter3, Parameter4):

    This error is defined as ACPI root PCI resource failure. To discover what
    current resources are being used by PCI devices, ACPI must be able to
    query the CRS descriptor in the ACPI namespace. This error occurs if the
     BIOS lacks a pointer to the list, or if the list is empty, or if the
    list contains errors or conflicts.

The "1" in this BSOD means: 1 : ACPI cannot convert the BIOS' resource list into the proper
format. This probably represents a flaw in the BIOS' list
encoding procedure.
Ok, next hack^^ in acpi.sys.
Works also, but gives now exotic BSOD

    0xA5 (0x00010007,0x000000FF,0x0000000,0x0000000)
    0x10007 :
    The _PRT contained a reference to a vector not described in the
    I/O APIC entries MAPIC table.
    2 - The vector that couldn't be found

    STACK_COMMAND:  kb

    FOLLOWUP_IP:
    ACPI!MakeTempVectorCountsPermanent+59
    b7f5a087 8a4607          mov     al,byte ptr [esi+7]

    SYMBOL_STACK_INDEX:  5

    SYMBOL_NAME:  ACPI!MakeTempVectorCountsPermanent+59

    FOLLOWUP_NAME:  MachineOwner

    MODULE_NAME: ACPI

    IMAGE_NAME:  ACPI.sys

    DEBUG_FLR_IMAGE_TIMESTAMP:  480252b1

    FAILURE_BUCKET_ID:  0xA5_ACPI!MakeTempVectorCountsPermanent+59

    BUCKET_ID:  0xA5_ACPI!MakeTempVectorCountsPermanent+59

    Followup: MachineOwner

EDIT4: I cant correct this error on acpi.sys, because 0xA5 (0x00010007,0x000000FF,0x0000000,0x0000000)
is produced from hal.dll.
Here I give up.
Now I just delete with the nice asl.exe Tool the DSDT in registry via boot to "Standard PC" in commandline

    asl /loadtable -d dsdt.aml

A message pops up, "registry data deleted"
and on next boot I have the original DSDT table from Bios back. I think, this works only in XP, because Win Server 2003 looks
only in Bios for DSDT table.
Interesting, this boot for "ACPI Multiprocessor" I tested with my again 2 times modded acpi.sys
and it starts. So, there are really errors in DSDT table (I think before mod also),
Dietmar

#1239

canonkong

⇗ @diderius6 ⇗ @infuscomus ⇗ @daniel_k
I modifie some usb drivers for ryzen 3000 series and x570, but it just work for the mouse keyboard soundcard, but USB DISK do not work well, U disk has been identified and driven successfully, but there will be no U disk character or it will said prompt formatting on computer pages.
Can you help me find what I need to midify with them.
Here is the test driver: ⇗ https://yadi.sk/d/C6kvjsrdwE4MOw
Error like this: ⇗ ⇗ http://uploadoss.smxdiy.com/forum/201908...8jp8okzmxth.png

#1240

diderius6

⇗ @canonkong
With 64 bit I have no good intrumentarium here for to analyze.
I would make a try in the registry entries as I write above for all
start=0
Group System Reserved
But editing registry can produce strange results
Dietmar

#1241

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1238

> EDIT: The changes in DSDT are a little bit to heavy^^. Now the COM1 port does not work any longer, meaning no windbg.
> But for me it is a good test, if really I can delete this DSDT (stays only in registry) with asl.exe and if all is good as before.
> In "Standard PC" the changes in DSDT do not help for better USB3. May be other tables need to be fixed too.

Dietmar, on my Gigabyte Z370 Gaming 3 there are no side effects.
Anyway, start the original table and delete small parts of the code, specially the OperationRegion blocks.

#1242

daniel_k

⇗ @canonkong, there are some additional checks, try the one I've attached.

daniel_k has attached files to this post

- ⇗ TIUSB3_HostDriver.rar

#1243 | canonkong | ⇗ @daniel_k It said Code 31, TI and other MICC driver has ID cheksum, we need change it. So we need use HxD find 50 00 43 00 49 EDIT: Finish ID cheksum, XHCI and HUB driver can work. But all usb mouse key board U disk are spotting "Generic USB Hub" and can not work.

#1244

daniel_k

> Zitat von ⇗ canonkong im Beitrag ¶ #1243

> @daniel_k
> It said Code 31, TI and other MICC driver has ID cheksum, we need change it. So we need use HxD find 50 00 43 00 49
> EDIT:
> Finish ID cheksum, XHCI and HUB driver can work. But all usb mouse key board U disk are spotting "Generic USB Hub" and can not work.

Sorry, no more ideas, for now.

#1245

daniel_k

⇗ @canonkong, one last try. The string check I missed actually accepts wildcard, see what I did.
⇗ @diderius6, please try this TI driver in Standard PC mode, check if it works better than the Renesas.
There are more issues with the ACPI tables, more specifically in many SSDT tables.
For Z370, GUID 6B5C8FE5-70DD-4E17-BFF4-D21C26586EB3, you'll find:

        Scope (\_SB.PCI0.XHC.RHUB)
        {
            Method (PS0X, 0, Serialized)
            {
                Store (Zero, \_SB.PCI0.XHC.USPP)
            }

            Method (PS2X, 0, Serialized)
            {
                OperationRegion (XHCM, SystemMemory, And (MEMB, 0xFFFFFFFFFFFF0000), 0x0600)
                Field (XHCM, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x02),
                    XHCV,   16,
                    Offset (0x480),
                    HP01,   1,
                    Offset (0x490),
                    HP02,   1,
                    Offset (0x530),
                    SP00,   1,
                    Offset (0x540),
                    SP01,   1
                }

                If (LEqual (XHCV, 0xFFFF))
                {
                    Return (Zero)
                }

                If (LAnd (LEqual (HP01, Zero), LEqual (SP00, Zero)))
                {
                    Or (\_SB.PCI0.XHC.USPP, 0x02, \_SB.PCI0.XHC.USPP)
                }

                If (LAnd (LEqual (HP02, Zero), LEqual (SP01, Zero)))
                {
                    Or (\_SB.PCI0.XHC.USPP, 0x04, \_SB.PCI0.XHC.USPP)
                }
            }

            Method (PS3X, 0, Serialized)
            {
            }
        }

For Z390, GUID 7E374E25-8E01-4FEE-87F2-390C23C606CD, you'll find:

        Scope (\_SB.PCI0.XHC.RHUB)
        {
            Method (PS0X, 0, Serialized)
            {
            }

            Method (PS2X, 0, Serialized)
            {
            }

            Method (PS3X, 0, Serialized)
            {
            }
        }

daniel_k has attached files to this post

- ⇗ TIUSB3_HostDriver.rar

## Page 84

#1246 | canonkong | ⇗ @daniel_k It doesn't matter. I've found another better driver. VIA work very well on it.
#1247 | canonkong | ⇗ @daniel_k I test it again. It also works for the mouse keyboard soundcard, but USB DISK do not work well, U disk has been identified and driven successfully, but there will be no U disk character or it will said prompt formatting on computer pages.

#1248

diderius6

⇗ @daniel_k
Thank you for the driver,
I test in 5 min from now:)), before очень вкусный coffee. My tip for a good driver would be Fresco vers. 3.6.9.0
But with my Ida Pro from 2004 it is a very hard job to do any modding, so any help is welcome.
Do you know, why the Asmedia and the AMD hub stays in sleeping mode D3?
Can this hub been awaken with entries in xhci.inf?
I do not find any documentation about it
Dietmar

#1249

diderius6

⇗ @daniel_k
In "Standard PC" the Texas xhci.sys starts.
The hub.sys stays in sleeping mode code 29. I see, that in its xhci.inf there is the possibility put to registry,
that hub is allowed to sleep. May be it is enough to cancel this there.
On "ACPI Multiprocessor" the Texas xhci.sys starts not, shows code 10
Dietmar
PS: I am very interested, which tool you use after modding, to let the Build date, version etc. exact as that from original file.

#1250

diderius6

Oh, so much fun with XP !
Now I have
"ACPI Multiprocessor"
"MPS"
"Standard PC"
on one XP SP3 32 bit installation and I can chose between them just on each boot.
I see, that the NEC USB3 works also in MPS mode.
This means, that USB3 does not work until now for "ACPI Multiprocessor"
is only because of the faulty ACPI implementation in DSDT.
One thing more I noticed:
Only, when all 3 HUBs are started from NEC (for one xhci controller),
USB 2.0 Hub
USB 3.0 Hub
USB 3.0 Root Hub
usbstor.sys starts and "unknown device" is gone
Dietmar
PS: I make just small speed test with Sandisk Ultra USB stick: 314.1 Mbyte/s.
EDIT: I solved the problem with "unknown device". For this I boot "MPS" in safe mode and there I can disable for the HUBs
the possibility to save energy. Now they start always and we have stable USB 3.0 support for XP.
EDIT2: Also my Samsung phone is recogniced correct at once. On other compis with USB there was so much trouble with it.
All 8 ports work, can be mice, phone, usbstick 2.0, 3.0, 3.1, 3.2, camera, USB hub all work at once and no power fall back.
⇗

#1251

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1250

> EDIT: I solved the problem with "unknown device". For this I boot "MPS" in safe mode and there I can disable for the HUBs
> the possibility to save energy.

Can you please check the registry value name so we can add it to the INF file?
Should be easy to spot that under the following registry tree:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\????

where ???? can be any device instance number, search for Renesas.
Disable and check which value is changed.

#1252

diderius6

⇗ @daniel_k
I think you mean this, it is just copied from working Registry, not any longer sleeping Hubs.
Dietmar

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0004]
    "InfPath"="oem10.inf"
    "InfSection"="RUSB3XHC"
    "InfSectionExt"=".NT"
    "ProviderName"="Renesas Electronics"
    "DriverDateData"=hex:00,40,3b,e8,2f,7f,cd,01
    "DriverDate"="8-21-2012"
    "DriverVersion"="3.0.23.0"
    "MatchingDeviceId"="pci\\cc_0c0330"
    "DriverDesc"="Renesas Electronics USB 3.0 Host Controller"
    "DataPumpDebugFlags"=dword:0000a003
    "DataPumpHubAutoSuspendEnable"=dword:00000000
    "DataPumpMinU1TimeoutEncodeValue"=dword:00000000
    "DataPumpMinU2TimeoutEncodeValue"=dword:00000000
    "DataPumpPowerOffWhenSleep"=dword:00000000
    "DataPumpU1Enable"=dword:00000000
    "DataPumpU2Enable"=dword:00000000
    "DataPumpWakeOnConnectionEnable"=dword:00000001
    "DataPumpWakeOnDisconnectionEnable"=dword:00000001
    "DataPumpWakeOnOvercurrentEnable"=dword:00000001
    "DataPumpXhcdEventRingSegmentSize"=dword:00000400
    "DataPumpXhcdMaxEventRingSize"=dword:00000400
    "DataPumpXhcdNumOfBufferSegment"=dword:00000008
    "DataPumpXhcdPollPortStatusTime"=dword:000007d0
    "DataPumpXhcdRxThreshold"=dword:28400000
    "DataPumpXhcdSystemResumeRecoveryTime"=dword:000007d0
    "DataPumpXhcdTxThreshold"=dword:22040000
    "DataPumpXhcdWiringValue"=dword:0006360a
    "Disable64BitDma"=dword:00000000
    "EnableClockPower"=dword:00000001
    "EnableDynamicD3"=dword:00000002
    "EnablePciBridge"=dword:00000001
    "EnableXiWake"=dword:00000002
    "WdkSelectiveSuspendEnable"=dword:00000001
    "WmiOverCurrentMessageDisable"=dword:00000000
    "Controller"=hex:01
    "CoInstallers32"=hex(7):72,00,75,00,73,00,62,00,33,00,63,00,6f,00,32,00,2e,00,\
      64,00,6c,00,6c,00,2c,00,4e,00,75,00,73,00,62,00,33,00,43,00,6f,00,49,00,6e,\
      00,73,00,74,00,61,00,6c,00,6c,00,65,00,72,00,00,00,00,00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0004\DeviceInterfaces]
    "GUID_DEVINTERFACE_TI_XHCI_8241_02"="{8e5f3630-a165-11df-867e-005056a72cb6}"
    "GUID_DEVINTERFACE_TI_XHCI"="{106c44a2-8ac7-11df-867e-005056a72cb62}"
    "GUID_DEVINTERFACE_TI_USB3_DRIVERS"="{0e16b110-8ac7-11df-867e-005056a72cb6}"

#1253

diderius6

⇗ @daniel_k
I tried to set the Hubs back to sleep, set mark in each.
But I do not succeed, they are still awake
and with Beyond Compare2 I check both registry entries,
they are 100% identic,
which means, we dont know how to set Hubs to sleep and how to awake until now
Dietmar
EDIT: This values are all from the Texas xhci.inf but Nec takes them one by one.

#1254

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1253

> @daniel_k
> I tried to set the Hubs back to sleep, set mark in each.
> But I do not succeed, they are still awake
> and with Beyond Compare2 I check both registry entries,
> they are 100% identic,
> which means, we dont know how to set Hubs to sleep and how to awake until now
> Dietmar

I'm sure this occurs because ACPI is not enabled. Some device drivers are not written taking Standard PC mode in consideration. It expects ACPI to send power management status messages to the driver.
Once we fix the ACPI tables this should not be needed anymore.
Search for EnableSelectiveSuspend in the Registry.
By the way, I sent you a Private Message regarding the tools I use.

#1255

diderius6

⇗ @daniel_k
I found with value "1"
WdkSelectiveSuspendEnable
For the asmedia I found "40h"
Dietmar
PS: Of course I want to share:))!

#1256

daniel_k

⇗ @diderius6, for the USB 3.0 controller to start, you only need to make the following change.
Search for Device (XHC) and scroll down until you find Method (_PS0, 0, Serialized).
Then replace this:

                Method (_PS0, 0, Serialized)  // _PS0: Power State 0
                {
                    If (DVID == 0xFFFF)
                    {
                        Return (Zero)
                    }

                    Local2 = MEMB /* \_SB_.PCI0.XHC_.MEMB */
                    Local1 = PDBM /* \_SB_.PCI0.XHC_.PDBM */
                    PDBM &= 0xFFFFFFFFFFFFFFF9
                    D3HE = Zero
                    STGE = Zero
                    D0D3 = Zero
                    MEMB = XWMB /* \XWMB */
                    PDBM = (Local1 | 0x02)
                    OperationRegion (MC11, SystemMemory, XWMB, 0x9000)
                    Field (MC11, DWordAcc, Lock, Preserve)
                    {
                        Offset (0x81C4),
                            ,   2,
                        UPSW,   2
                    }

                    UPSW = Zero
                    PDBM &= 0xFFFFFFFFFFFFFFFD
                    MEMB = Local2
                    PDBM = Local1
                    If (CondRefOf (\_SB.PCI0.XHC.PS0X))
                    {
                        PS0X ()
                    }

                    If (UWAB && ((D0D3 == Zero) || (^^XDCI.D0I3 == Zero)))
                    {
                        MPMC = One
                        While (PMFS)
                        {
                            Sleep (0x0A)
                        }
                    }
                }

With this:

                Method (_PS0, 0, Serialized)  // _PS0: Power State 0
                {
                    If (DVID == 0xFFFF)
                    {
                        Return (Zero)
                    }

                    If (CondRefOf (\_SB.PCI0.XHC.PS0X))
                    {
                        PS0X ()
                    }
                }

_PS0 is Device ON State.

#1257

canonkong

⇗ @diderius6 ⇗ @infuscomus ⇗ @daniel_k
I have completed the USB driver test of the existing manufacturer. For AMD new platform, there are only two drivers that do not appear BSOD and unidentified U disk. One is Etron, another is VIA, and VIA is better than Etron.
Modified AMD 2.0.0.48 and Intel USB drivers can work, but will bsod sometimes.
Modified AMD 1.0.5.3, ASMedia and TI can work, but will unidentified U disk.
Fresco only work for the XHCI, and the hub driver will bsod when I try to install it.
NEC will BSOD when I try to install it. Maybe I've modified it incorrectly.

#1258

diderius6

⇗ @canonkong
"Fresco only work for the XHCI, and the hub driver will bsod when I try to install it."
Make a try to install in safe mod (F8) hub3.sys driver from Fresco new, onto another Hub from other vendor installed.
And even it crashes, look what happens after reboot
Dietmar

#1259

diderius6

⇗ @daniel_k
Thank you a lot, I just found in DSDT of my board.
Does it mean, that all D3 states for all hubs are gone?
Dietmar
PS: I try tomorrow, now I am too tired. All the other drivers should work then also (because no D3 sleep) and
maybe there is one, which says "hello world" even under ACPI.

#1260

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1259

> @daniel_k
> Thank you a lot, I just found in DSDT of my board.
> Does it mean, that all D3 states for all hubs are gone?
> Dietmar

Method _PS0 is processed during device initialization. This is what matters to us.
No changes for all other power states.
This just means you won't be getting error 10 anymore.
But for the hub driver, I still haven't figured it out. Please try to debug this with both the Renesas and the TI driver.

## Page 85

#1261 | canonkong | ⇗ @diderius6 Can you help me test it? USB driver 32bit for 149C&A36D&A2AF ⇗ https://yadi.sk/d/zof4ujwHu8Lk6Q

#1262

diderius6

⇗ @canonkong
I test under XP "MPS" on my Asrock z370 K6 board (Intel).
xhci and hub3 installs without problems.
But a deeper look at them with windbg tells other:
xhci starts but hub3 not.
In the device manager from XP is written,
that there are no resources needed for this hub3 device.
I look at the xhci.inf. There is also the possibility, that this device sleeps.

    0: kd> !DevNode 0x87f8f938
    DevNode 0x87f8f938 for PDO 0x87faa1a0
      Parent 0x8a846970   Sibling 0000000000   Child 0000000000
      InstancePath is "USB\VIA_ROOT_HUB\3&216d82cf&5"
      ServiceName is "VUSB3HUB"
      State = DeviceNodeResourcesAssigned (0x304)
      Previous State = DeviceNodeDriversAdded (0x303)
      StateHistory[02] = DeviceNodeDriversAdded (0x303)
      StateHistory[01] = DeviceNodeInitialized (0x302)
      StateHistory[00] = DeviceNodeUninitialized (0x301)
      StateHistory[19] = Unknown State (0x0)
      StateHistory[18] = Unknown State (0x0)
      StateHistory[17] = Unknown State (0x0)
      StateHistory[16] = Unknown State (0x0)
      StateHistory[15] = Unknown State (0x0)
      StateHistory[14] = Unknown State (0x0)
      StateHistory[13] = Unknown State (0x0)
      StateHistory[12] = Unknown State (0x0)
      StateHistory[11] = Unknown State (0x0)
      StateHistory[10] = Unknown State (0x0)
      StateHistory[09] = Unknown State (0x0)
      StateHistory[08] = Unknown State (0x0)
      StateHistory[07] = Unknown State (0x0)
      StateHistory[06] = Unknown State (0x0)
      StateHistory[05] = Unknown State (0x0)
      StateHistory[04] = Unknown State (0x0)
      StateHistory[03] = Unknown State (0x0)
      Flags (0x00000130)  DNF_ENUMERATED, DNF_IDS_QUERIED,
                          DNF_NO_RESOURCE_REQUIRED
      CapabilityFlags (0x00000002)  DeviceD2

    DNF_NO_RESOURCE_REQUIRED (0x00000100)
    The device does not require resources.

This tells XP, that this device hub3 does not want any driver, even they are installed!
This is of course an error
Dietmar
PS: Yepp, I just found, that this device sleeps energy level=D3 (off).

#1263 | canonkong | ⇗ @diderius6 Hub driver need manual install again on Xp, it work well on win7, maybe 149C can work on Xp, but intel can not.

#1264

diderius6

⇗ @daniel_k
I found the differences in registry for energy settings for Hubs.
Open it with browser
Dietmar
PS: Left side: energie safe enabled (Hubs sleep allowed) right side energie safe disabled (Hubs always awake)
First extract file and then rename it to rpt64952.htm
diderius6 has attached files to this post

- ⇗ rpt64952.rar

#1265 | canonkong | ⇗ @diderius6 Make a try to install in safe mod (F8) hub3.sys driver from Fresco new, onto another Hub from other vendor installed. I tried it, BSOD again.
#1266 | canonkong | ⇗ @daniel_k Can you help me modifiy VIA USB 64bit driver as a generic usb driver? I found that your method is unique. I don't know any assembly language, so I usually use ID replace and jmp/nop to modify it.

#1267

diderius6

When I change my DSDT on the Asrock z370 K6 board with the post 1256 from ⇗ @daniel_k
I got famous BSOD 0x000000A5 (0x00000003, xxx, C0140001, yyy).
Hm, this looks strange to me, because before I thought, this BSOD happens
only in the case of unknow words from Acpi 2.0.
But with this hack in DSDT I only want to set xhc driver always awake
Dietmar
PS: May be ⇗ @Mov AX, 0xDEAD can help with this.
On page 12, post 172 he wrote, that he overcomes to 99% this BSOD with custom acpi.sys.
And it can be, that his acpi.sys is better than our one.
EDIT: It can be, that the Device (XHC) becomes faulty,
if I destroy in
Method (_PS0, 0, Serialized) // _PS0: Power State 0
the settings and construction for this device xhc in this method. And so, no acpi.sys at all can help.
May be it is enough, just to cancel this part about sleeping in the end from this method

    If (UWAB && ((D0D3 == Zero) || (^^XDCI.D0I3 == Zero)))
                    {
                        MPMC = One
                        While (PMFS)
                        {
                            Sleep (0x0A)
                        }
                    }

EDIT: Strange, I got the same famous BSOD 0x000000A5 (0x00000003, xxx, C0140001, yyy) again,
even the only thing I changed in DSDT is to delete the above 8 lines.

#1268 | infuscomus | ⇗ @diderius6 does it work even if you make no changes but load the table into registry anyway? I mean, dump the table from BIOS and then load it into registry using microsoft ASL?

#1269

diderius6

⇗ @infuscomus
Exact the same idea I have had 5 min ago:)).
So, I delete with the asl Tool the modded dsdt.raw,
ok, XP starts after deleting with full ACPI Multiprocessor.
Then I upload with the asl Tool the exact original working dsdt.raw which I extracted before from its real own working Bios.
Now comes the good and bad news at the same time:
The asl Tool fails with BSOD 0x000000A5 (0x00000003, xxx, C0140001, yyy) after uploading a working DSDT table for Acpi, brrr..
So, now again on Intel boards I have to use flashtools but for AMD boards this means
flash always whole Bios
Dietmar

#1270 | infuscomus | ⇗ @diderius6 one more idea to try perhaps microsoft ASL uses a different syntax to Intel ASL? take original unmodded dsdt.raw then disassemble with Microsoft ASL, change nothing, then reassemble with Microsoft ASL and upload to registry?
#1271 | diderius6 | ⇗ @infuscomus I tried this. 4 Bytes are changed as I can see with Winhex, but BSOD is the same Dietmar

#1272

diderius6

Again I noticed, that the Tool
Universal BIOS Backup ToolKit 2.0.exe
reads also the Bios from Asrock k6 board
faulty out.
So be just careful, take an intensive look with UEFItool at your Bios before you flash it
Dietmar
PS: FPTW.exe from Intel seems to work ok.

#1273

diderius6

The mod of XHC gives BSOD 0x000000A5 (0x00000003, xxx, C0140001, yyy)
also with real new modded DSDT in Bios and in "MPS" the network card i211 is listened but red cross in Task list as if no cable is connected
Dietmar
EDIT: hihi, what crazy things Bios Mod do:
Before in win7 32 bit, always the networkcard does not work.
But after this mod (kill sleep of xhc) networkcard works in Win7 for the very first time.
So, the set to sleep affects also Win7, logo, because they use one and the same Bios!
EDIT2: The Bios Mod with only deleting the last 8 lines in DSDT (for sleep XHC device, see above) gives also
BSOD 0x000000A5 (0x00000003, xxx, C0140001, yyy) in ACPI XP.
But now, in XP "MPS" networkcard works again.

#1274

diderius6

The FPTW.exe from Intel produce also faulty Bios.
I upload DSDT.aml (which works for Acpi) in Bios with Uefi Tool.
This Bios I compare with winhex with the original complete outread via FPTW.exe -D
Winhex tells: 100% identic.
But when I upload this Bios again,
I got BSOD 0x000000A5 (0x00000003, xxx, C0140001, yyy).
This simply means: The outread from FPTW.exe is different from original Bios.
Now I trust only Epromer
Dietmar
EDIT: Waaoh, a compare with Beyond Compare 2 with the original 3.20 Bios from Download site of Asrock tells 127 sections are different.
This is a lot, I know from experiments with Bios before.
EDIT2: Hard job, to give Asrock fatal1ty z370 gaming k6 full XP SP3 ACPI back, but now I have. Crazy Bios..

#1275

daniel_k

> Zitat von ⇗ canonkong im Beitrag ¶ #1266

> @daniel_k
> Can you help me modifiy VIA USB 64bit driver as a generic usb driver? I found that your method is unique.
> I don't know any assembly language, so I usually use ID replace and jmp/nop to modify it.

⇗ @canonkong
Sure.

## Page 86

#1276

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1274

> The FPTW.exe from Intel produce also faulty Bios.
> I upload DSDT.aml (which works for Acpi) in Bios with Uefi Tool.
> This Bios I compare with winhex with the original complete outread via FPTW.exe -D
> Winhex tells: 100% identic.
> But when I upload this Bios again,
> I got BSOD 0x000000A5 (0x00000003, xxx, C0140001, yyy).
> This simply means: The outread from FPTW.exe is different from original Bios.
> Now I trust only Epromer
> Dietmar
> EDIT: Waaoh, a compare with Beyond Compare 2 with the original 3.20 Bios from Download site of Asrock tells 127 sections are different.
> This is a lot, I know from experiments with Bios before.

That is why I bought Gigabyte boards, completely unlocked descriptors, I can flash and mod without any worries using their own utility.
Good luck, hope you can get it working soon to help me with the Hub driver issue.

#1277

AddFun

My Ryzen 1600x X370 machine is still getting 000000x7B issue. Tried half a dozen combinations of using the modified ACPI.sys, nLite'ing proper files, and similar, no difference. Tried F7 no ACPI, uni, multi, etc, etc, what have you. Just burned my 6th nlite'd CD. Nope. In fact no difference, never get past the reboot stage of WinXP setup where it goes straight into the 0x7b BSOD. Like it did with stock WinXP SP3 install.
What are you guys EXACTLY doing? What is your success rate with the modified files? (100%, 50%, random%?) Is there a XP ISO out there that has the files needed for the Ryzen platform that has repeatable success rate? It feels like this is not 100% repetable and there is a certain element of "luck" + random piece of hardware + random BIOS rev + random combo of ACPI/modded files = maybe it install XP is what the algorithm of WinXP on Ryzen platform seems to be.

#1278 | infuscomus | ⇗ @AddFun have you integrated the storahci driver we used? are you using a SATA or USB optical drive?
#1279 | AddFun | single SATA DVD drive with a single 120GB SATA disk and only PS/2 keyboard plugged in. Nothing else plugged to keep from any issues cropping up. Motherboard is Gigabyte AX370 Gaming 5. I've even tried 4-5 different BIOS revisions over the last week or so before coming to this board/thread. No difference, always dead ends at the usual x7b BSOD after the first reboot.

#1280

diderius6

⇗ @AddFun
Before, XP with ACPI was impossible on Ryzen.
Now, the situation is complete other.
Use of the latest modded acpi.sys , the storahci driver together with my storport.sys (post 706)
and result via nlite is for me at once 100% succeed install on 3 different AMD boards 350, 350, 570
Dietmar

#1281

infuscomus

⇗ @AddFun
after first reboot?
So I'm assuming XP textmode setup completes without a BSOD?
that might be the storport.sys not copying itself across for 1st reboot issue we had earlier
to fix - in txtsetup.sif look for [files.acpi]
make it look like this
[files.acpi]
acpi.sys,4
acpiec.sys,4
oprghdlr.sys,4
storport.sys,4
then the storahci driver should work
edit:
If you have not yet grabbed the storahci driver it is here
¶ Windows XP SP3 32bit and modern PC parts (64)

#1282 | AddFun | Textmode always finishes, I had no problems with that even with my stock XP-SP3 disc when I tried XP on x370 first time two years ago. Let me check the txtsetup.sif as per your instructions.
#1283 | AddFun | Yeah, its in there. Everyone is using regular XP SP3 correct?

#1284

diderius6

⇗ @daniel_k
I flash my new DSDT without the 8 lines for sleep of xhc to my new Bios (asl.exe for DSDT does again not work, BSOD)
Now no BSOD but still on ACPI XP your Renesas/nec driver for xhci does not start, code 10
Dietmar
EDIT: I did the whole mod of my DSDT for XHC but this gives BSOD 0x7B (only for ACPI, "MPS" starts).
Even Win7 32 bit does not start, tells BSOD 0xA5(0x00000011,..) so its acpi related.
To edit the DSDT for USB3 on Intel chipset with full ACPI on XP is really hard bread.

#1285 | infuscomus | ⇗ @AddFun Yep, using XP SP3 Do you know what the HWIDs of your storage controllers are? Do you mind uploading your txtsetup.sif so I can check it?
#1286 | diderius6 | ⇗ @AddFun "always dead ends at the usual x7b BSOD after the first reboot" I think acpi.sys and/or storport.sys have changed back to their original version, which gives BSOD 0x7B on first reboot Dietmar
#1287 | AddFun | I meant after textmode reboot, after it copies the files and attempts to continue the install. Not sysos reboot.
#1288 | diderius6 | ⇗ @AddFun Use nlite and life becomes easy Dietmar PS: Make sure, that your harddisk is aligned to 2048. This means, any use of the XP for formatting is forbidden.

#1289

AddFun

PCI\VEN_1022&DEV_7901&SUBSYS_B0021458&REV_51
PCI\VEN_1022&DEV_43B5&SUBSYS_10621B21&REV_02
PCI\VEN_11AB&DEV_5040&SUBSYS_152592D4&REV_01
PCI\VEN_126F&DEV_2262&REV_03
USB\VID_0BC2&PID_331A&REV_0911
Nothing exotic

#1290 | AddFun | Burning 7th nlite'd disc, diderius6. I don't think that's it.

## Page 87

#1291 | infuscomus | ⇗ @AddFun also, check driver.cab and replace the acpi.sys, storahci.sys and storport.sys in there use 7zip to extract driver.cab and cabpack 1.4 to recompress - ⇗ https://www.techspot.com/downloads/7104-cabpack.html

#1292

infuscomus

> Zitat von ⇗ AddFun im Beitrag ¶ #1289

> PCI\VEN_1022&DEV_7901&SUBSYS_B0021458&REV_51
> PCI\VEN_1022&DEV_43B5&SUBSYS_10621B21&REV_02
> PCI\VEN_11AB&DEV_5040&SUBSYS_152592D4&REV_01
> PCI\VEN_126F&DEV_2262&REV_03
> USB\VID_0BC2&PID_331A&REV_0911
> Nothing exotic

PCI\VEN_1022&DEV_7901&SUBSYS_B0021458&REV_51 - amd ahci - will need storahci
PCI\VEN_1022&DEV_43B5&SUBSYS_10621B21&REV_02 - amd ahci - will need storahci
PCI\VEN_11AB&DEV_5040&SUBSYS_152592D4&REV_01 - Sonnet Tempo SATA Gen 1 PCI-X Adapter (i'm not sure if ahci)
PCI\VEN_126F&DEV_2262&REV_03 - nvme?
USB\VID_0BC2&PID_331A&REV_0911 - usb HDD? disconnect this

#1293 | diderius6 | Yessssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! I got it, USB3.2 USB3.1 USB3.0 USB 2.0 USB1.1 on Intel Chipset under XP 32 bit with full "ACPI Multiprocessor" Dietmar ⇗

#1294

AddFun

Alright, tried it with some tweaks. I got this error in textmode install (pic #1 below)
⇗
but ignoring it the install continued and rebooted without the BSOD, it continued into graphical install where it installed all the drivers and then it rebooted again.... however I got a different BSOD this time (pic #2 below)
⇗
this is the farthest Ive gotten to date, any tips?

#1295

diderius6

⇗ @AddFun
I have seen this picture for myself.
It happens, when the driver (here acpi.sys) is not copied correct to the CD.
Copy acpi.sy_ in the installations folder i386 before you run nlite
Dietmar
PS: I do NOT integrate all the drivers in the *.cab file.
This force me on every reboot to put them on harddisk by hand again, but it works.

#1296 | AddFun | Was copied, both in the cab that I repackaged and the i386 directory. Hmm.
#1297 | diderius6 | ⇗ @AddFun Have you used the last checksum corrected version of acpi.sys from @Infuscomus? Dietmar

#1298

infuscomus

> Zitat von ⇗ AddFun im Beitrag ¶ #1294

> Alright, tried it with some tweaks. I got this error in textmode install (pic #1 below)
> ⇗
> but ignoring it the install continued and rebooted without the BSOD, it continued into graphical install where it installed all the drivers and then it rebooted again.... however I got a different BSOD this time (pic #2 below)
> ⇗
> this is the farthest Ive gotten to date, any tips?

⇗ @AddFun
for the 1st image, I solved this error by replacing the acpi.sys copy in driver.cab
the 2nd error - A5 BSOD probably happens because the old unpatched acpi.sys was copied from driver.cab

#1299 | infuscomus | ⇗ @AddFun I just noticed, there is a copy of acpi.sys in SP3.cab, so that will need replacing too
#1300 | AddFun | Just went into the XP install remotely, and replaced the ACPI.sys with yours, 186kb vs 234kb. Tried booting and got the 7b BSOD, non-specific this time. Any ideas?
#1301 | AddFun | Technically, the XP system is installed and configured since the graphical install completed on it's end. Browsing the "\WINDOWS\system32\drivers" now and I can see proper storport and storahci in there. Proper ACPI was copied too. Dunno guys...
#1302 | AddFun | Browsing from a different OS with the drive in question attached that is...
#1303 | diderius6 | ⇗ @AddFun The acpi.sys was replaced again with the old one. This gives exact this BSOD Dietmar
#1304 | infuscomus | ⇗ @AddFun So storahci.sys and storport.sys are present in C:\WINDOWS\SYSTEM32\DRIVERS but you are still getting 7B BSOD?

#1305

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1293

> Yessssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> I got it, USB3.2 USB3.1 USB3.0 USB 2.0 USB1.1
> on Intel Chipset under XP 32 bit with full "ACPI Multiprocessor"
> Dietmar

⇗ @diderius6
What did you do?
Tell me so I can try it!

## Page 88

#1306

diderius6

⇗ @daniel_k
I use your brandnew driver:)).
And I delete only everything in the Method (_PS0 for the device XHC in DSDT.
I look for this at the other installations of
Method (_PS0, 0, Serialized) // _PS0: Power State 0
how this is handled there.
Even I succeed to disable also any energy savings for the hubs via the device manager of XP,
still not always all USB devices are recogniced at boot. The "unknown device" message is gone,
but happens sometimes just nothing. But when I delete the xhci device one time in devicemanger
always at once all other is recogniced and works.
Now it is not perfect, only about 90% because I also do not find the switch that the hubs are always awaken.
There entries in DSDT marks them always as in D0, awaken
Dietmar
PS: Example for the hub from DSDT
Device (RHUB)
{
Name (_ADR, Zero) // _ADR: Address
Method (_PS0, 0, Serialized) // _PS0: Power State 0
{
If (DVID == 0xFFFF)
{
Return (Zero)
}
If (CondRefOf (\_SB.PCI0.XHC.RHUB.PS0X))
{
PS0X ()
}
}

#1307 | infuscomus | ⇗ @daniel_k I tried your Renesas driver in virtualbox and got code 39 after installing

#1308

AddFun

ACPI.sys is still the modified one from here @ 234kb, sitting pretty in system32/drivers directory, it hasn't been swapped back. The proper storahci.sys and storport.sys are there too. 7b error just again. Went through my BIOS, not a whole lot there.
ACPI.sys: SHA1 -- 182eb4f6911818923965f938700546d87bb268ce
STORAHCI.sys: SHA1 -- 6daf4bb09af562d978a3503ef17dedaad0e4880a
STORPORT.sys: SHA1 -- 911e15fada65ab813ef4ce4cea82d185e82cb55a
that's whats in there.

#1309 | AddFun | Updated with proper hashes, copy paste playing with me.
#1310 | diderius6 | ⇗ @AddFun May be crazy XP loads acpi.sys from other place. This BSOD is typical for old acpi.sys Dietmar
#1311 | AddFun | windows/system32? minus drivers folder?
#1312 | AddFun | Wait, heh, I have half a dozen images of WinXP installs from other machines, I can check.

#1313

diderius6

⇗ @AddFun
I have seen, that XP can load drivers from different other places.
XP looks in all directories, if there is a "better" bootfile for this.
I have seen this for acpi.sys ntoskernl.exe hal.dll ntbootdd.sys
It is like a small part of intelligence from XP, I would say more "intelligent" than any other system on market
Dietmar

#1314 | daniel_k | ⇗ @diderius6, can you please share your DSDT? From what I understand, to delete the XHCI controlller has the same effect as Disabling / Enabling the device, like I do. Did you manage to get it working immediately after a reboot?

#1315

infuscomus

⇗ @AddFun
my acpi.sys is different
acpi.sys - 79a50a477541bea181d8a5009e5ec2e12209ffb4
but storahci.sys and storport.sys match
storahci.sys - 6daf4bb09af562d978a3503ef17dedaad0e4880a
storport.sys - 911e15fada65ab813ef4ce4cea82d185e82cb55a
it is strange that GUI setup manages to complete before reboot to 7B BSOD
are any of your drives not in ahci mode? ide mode?

#1316 | AddFun | Nope, it's in the right place. I just checked two of my other XP installs, acpi.sys is system32/drivers folder.

#1317

daniel_k

> Zitat von ⇗ infuscomus im Beitrag ¶ #1307

> @daniel_k
> I tried your Renesas driver in virtualbox and got code 39 after installing

Thanks for trying.
Does the original driver work? I think I got it working some time ago.

#1318 | AddFun | hmm, what is the link for the ACPI.sys, I downloaded the one from few pages ago.
#1319 | AddFun | SHA1 00e5ccbf42176c5cedf2f076314f30610638b602 for best5048acpi.sys that one?

#1320

infuscomus

⇗ @AddFun
here is that file
but SHA1 00e5ccbf42176c5cedf2f076314f30610638b602 might be the most recent, not sure now, I've confused myself
infuscomus has attached files to this post

- ⇗ patchedacpilatest.rar

## Page 89

#1321

diderius6

⇗ @daniel_k
Until now, on reboot the intel 3.1 xhci and the 3.0 renesas hub are there.
But no USB device.
If you deinstall the Intel 3.1 xhci one time
all other is recogniced automatically and also all USB devices
Dietmar
PS: The DSDTUSB3.rar file contains old DSDT file from me before xhc mod
and DSDT2 contains xhc mod.
My Asrock Fatal1ty z370 gaming k6 has the BIOS 3.20.
This is important, because you can only flash a Bios version with a higher versions number with the ezflash tool from Asrock.
The DSDT tables are in Bios 3.20 and 3.30 identic.
diderius6 has attached files to this post

- ⇗ DSDTUSB3.rar

#1322 | infuscomus | ⇗ @daniel_k In virtualbox, I tried installing both, same result
#1323 | AddFun | Downloaded, just dropped it in. Thanks! Let me give it a whirl. Will report.

#1324

daniel_k

⇗ @canonkong
Here they are, Renesas and VIA final modified drivers.
Please sign both without changing anything and post the signed driver here.
You can make your own changes later for your own release.
For Renesas, only rusb3xhc.inf and rusb3xhc.sys must be signed, used a trick so the hub always has the same device ID.
For VIA, only xhcdrv.inf and xhcdrv.sys must be signed. No device check in the Hub driver.

#1325 | AddFun | Sigh, 7b BSOD as usual. Going to take a short coffee break and then load up the registry hives from this XP install and see how the HAL is set up, but I KNOW it's ACPI since it wouldn't have gotten this far and I didn't go with the F7 route or no-ACPI option anywhere during the install.

#1326

diderius6

⇗ @AddFun
This is the last and best acpi.sys for Ryzen boards
Dietmar
PS: I can understand frustration a lot. Since yesterday I work about 20 hours for USB. And going nearly crazy with Bios modding and BSODs with all Tools.
In bad times, just fetch coffee and have an apple for 5 min relax, this is important.
diderius6 has attached files to this post

- ⇗ acpi.rar

#1327 | daniel_k | ⇗ @canonkong, could you please sign mosflt.inf and mosflt.sys in the Vista 32-bit and Vista 64-bit folder? Thanks!
#1328 | canonkong | ⇗ @daniel_k OK, I will send it soon.

#1329

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1321

> @daniel_k
> Until now, on reboot the intel 3.1 xhci and the 3.0 renesas hub are there.
> But no USB device.
> If you deinstall the Intel 3.1 xhci one time
> all other is recogniced automatically and also all USB devices
> Dietmar
> PS: The DSDTUSB3.rar file contains old DSDT file from me before xhc mod
> and DSDT2 contains xhc mod.
> My Asrock Fatal1ty z370 gaming k6 has the BIOS 3.20.
> This is important, because you can only flash a Bios version with a higher versions number with the ezflash tool from Asrock.
> The DSDT tables are in Bios 3.20 and 3.30 identic.

That's exactly the same behaviour I'm experiencing.
Must be something in the ACPI table that XP doesn't like as the same Renesas driver works perfectly on Windows 7 x64.

#1330 | AddFun | Yeah, went through the relevant registry hives... it is set up as "acpiapic_mp" aka "ACPI Multiprocessor". ACPI enabled. So far, this seems like work in progress guys and an experiment without completely repeatable results. Hopefully with more time we will get there.

#1331

daniel_k

> Zitat von ⇗ canonkong im Beitrag ¶ #1328

> @daniel_k
> OK, I will send it soon.

⇗ @canonkong
By the way, let me know how the VIA driver works.
Let me clarify something.
I recommend that you don't include a generic XHCI ID like PCI\CC_0C0330 to prevent the driver from being installed on XHCI controllers which have an official driver provided by the manufacurer.
For example, both the Renesas and the VIA drivers will BSOD if you install on ASMedia.

#1332 | canonkong | ⇗ @daniel_k I use ID replace, VIA usb driver Include four manufacturers: VIA is 1106, Gigabyte is 1458, MSI is 1462, ZHAOXIN is 1D17, so you can replace them with other VEN ID and DEV ID, like 149C A36D 9DED ect. It can modify to support 4 VEN ID and16 dev ID.

#1333

daniel_k

> Zitat von ⇗ canonkong im Beitrag ¶ #1332

> @daniel_k
> I use ID relace, VIA usb driver Include four manufacturers: VIA is 1106, Gigabyte is 1458, MSI is 1462, ZHAOXIN is 1D17, so you can replace them with other VEN ID and DEV ID, like 149C A36D 9DED ect. It can modify to support 4 VEN ID and16 dev ID.

Yeah, I noticed that.
Did the driver work?
PS: Thanks for the signed files!

#1334 | canonkong | ⇗ @daniel_k It is working well on my X370 and B360, and the 149C USB from 3700X on win7.
#1335 | daniel_k | ⇗ @canonkong Glad to know it works. Found a small bug, could you please sign the Renesas driver again?

## Page 90

#1336 | canonkong | ⇗ @daniel_k OK, I will send it soon.

#1337

diderius6

⇗ @daniel_k ⇗ @canonkong
On XP, the Via xhci starts but the Via hub shows code 10.
So, may be this is a good test for DSDT to have a look,
why this code 10 happens and maybe then also the Nec/Renesas drivers works
to 100%
Dietmar
EDIT: Also on "MPS" the Via Hub shows code 10. So this is not ACPI related!

#1338

daniel_k

> Zitat von ⇗ canonkong im Beitrag ¶ #1336

> @daniel_k
> OK, I will send it soon.

Thanks, now it is perfect!

#1339 | daniel_k | ⇗ @diderius6 VIA driver also gives error code 10 on Windows 7 x64, so this is definitively a driver issue. Renesas works just fine on Windows 7x 64, so we need to find out, what in the ACPI table affects its behavior on XP.
#1340 | diderius6 | ⇗ @daniel_k May be, it is a problem of usbstor.sys. There was a patch from Microsoft for XP, after that no USB devices where recogniced any longer, because setting wrong rights for usbstor.sys Dietmar

#1341

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1340

> @daniel_k
> May be, it is a problem of usbstor.sys.
> There was a patch from Microsoft for XP, after that no USB devices where recogniced any longer,
> because setting wrong rights for usbstor.sys
> Dietmar

⇗ @diderius6
Unfortunately not, it even fails to detect a simple USB 2.0 hub.

#1342 | canonkong | ⇗ @diderius6 ⇗ @daniel_k The VIA usb driver modified by daniel_k work very well for 149C on win7, maybe xp also can work. But the Renesas usb driver can not work for 149C, it will bsod when it install.
#1343 | canonkong | ⇗ @daniel_k Do you think it is possible to transplant the universal USB driver of win8/win8.1/win10 to win7 or Xp? In the absence of USB driver source.
#1344 | infuscomus | ⇗ @AddFun I forgot to ask this earlier, have you double checked that you have disabled driver signing?

#1345

infuscomus

> Zitat von ⇗ daniel_k im Beitrag ¶ #1327

> @canonkong, could you please sign mosflt.inf and mosflt.sys in the Vista 32-bit and Vista 64-bit folder?
> Thanks!

⇗ @daniel_k
do you know what this driver is used for?
I have a card with the same chip and i found the stock usbehci.sys driver worked fine

#1346

diderius6

⇗ @daniel_k
The problem with hub3 under XP may be in CapabilityFlags (0x00001602) DeviceD2
Do you know, where those flags are set
"DeviceD2
Specifies whether the device hardware supports the D2 power state. Drivers should not change this value."
Dietmar

>     0: kd> !DevNode 0x8a4dbce8
>     DevNode 0x8a4dbce8 for PDO 0x8a4dbe30
>       Parent 0x8a6a3848   Sibling 0000000000   Child 0000000000
>       InstancePath is "RENESAS_USB3\ROOT_HUB30\4&556f44c&8"
>       ServiceName is "rusb3hub"
>       State = DeviceNodeStarted (0x308)
>       Previous State = DeviceNodeEnumerateCompletion (0x30d)
>       StateHistory[07] = DeviceNodeEnumerateCompletion (0x30d)
>       StateHistory[06] = DeviceNodeStarted (0x308)
>       StateHistory[05] = DeviceNodeStartPostWork (0x307)
>       StateHistory[04] = DeviceNodeStartCompletion (0x306)
>       StateHistory[03] = DeviceNodeResourcesAssigned (0x304)
>       StateHistory[02] = DeviceNodeDriversAdded (0x303)
>       StateHistory[01] = DeviceNodeInitialized (0x302)
>       StateHistory[00] = DeviceNodeUninitialized (0x301)
>       StateHistory[19] = Unknown State (0x0)
>       StateHistory[18] = Unknown State (0x0)
>       StateHistory[17] = Unknown State (0x0)
>       StateHistory[16] = Unknown State (0x0)
>       StateHistory[15] = Unknown State (0x0)
>       StateHistory[14] = Unknown State (0x0)
>       StateHistory[13] = Unknown State (0x0)
>       StateHistory[12] = Unknown State (0x0)
>       StateHistory[11] = Unknown State (0x0)
>       StateHistory[10] = Unknown State (0x0)
>       StateHistory[09] = Unknown State (0x0)
>       StateHistory[08] = Unknown State (0x0)
>       Flags (0x00000130)  DNF_ENUMERATED, DNF_IDS_QUERIED,
>                           DNF_NO_RESOURCE_REQUIRED
>       CapabilityFlags (0x00001602)  DeviceD2, SurpriseRemovalOK,
>                                     WakeFromD0, WakeFromD2

#1347 | XPLAKE8175 | I want intel hd 5500 drivers for windows xp. I finished modding Windows XP drivers for my 940m PC. Or will it work with Vesa VBE miniport.
#1348 | XPLAKE8175 | I want windows xp drivers for my Intel HD 5500 drivers for Windows XP to run Nvidia Geforce 940m.

#1349

daniel_k

> Zitat von ⇗ canonkong im Beitrag ¶ #1343

> @daniel_k
> Do you think it is possible to transplant the universal USB driver of win8/win8.1/win10 to win7 or Xp? In the absence of USB driver source.

Unfortunately, it is just impossible.
There are far more changes besides resolving missing function API dependencies, which I've already tried.
Microsoft makes changes "under the hood", the way memory is allocated, ACPI changes also affect the driver behavior.

#1350

daniel_k

> Zitat von ⇗ infuscomus im Beitrag ¶ #1345

> > Zitat von ⇗ daniel_k im Beitrag ¶ #1327

> > @canonkong, could you please sign mosflt.inf and mosflt.sys in the Vista 32-bit and Vista 64-bit folder?
> > Thanks!

> @daniel_k
> do you know what this driver is used for?
> I have a card with the same chip and i found the stock usbehci.sys driver worked fine

Hi, that is a filter driver to fix Power Management issues with the MSC9990 chipset.
On my both H270 / Z370 based boards, the system would not shutdown completely, I'll try the driver later to see if this helps.

## Page 91

#1351

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1346

> @daniel_k
> The problem with hub3 under XP may be in CapabilityFlags (0x00001602) DeviceD2
> Do you know, where those flags are set
> "DeviceD2
> Specifies whether the device hardware supports the D2 power state. Drivers should not change this value."
> Dietmar

The issue is not with the Hub itself.
For some reason when the device is detected is remains in Disabled (D3) state.
PS: The driver you've asked me by PM is here:
¶ Windows XP SP3 32bit and modern PC parts (89)
It's just a minor Revision and SubsysID cosmetic issue.

#1352

canonkong

⇗ @daniel_k
I found for AMD 149C usb, VIA usb driver will cause 0x0000001E bsod suddenly sometimes.So we need to find a better driver.
And ASMedia and TI usb driver cant work for the U disk on 149C.
After testing all the usb drivers, there are only three drivers can work as a generic both can support intel/amd/asmedia/nvidia and more.
There are Intel series usb drivers , AMD zeppelin USB driver, Etron USB drivers.
Can you use your method to modify them?

#1353

diderius6

⇗ @daniel_k
It seems, that from the 3 Hubs only
Renesas Electronics USB 3.0 Root Hub
can find the driver rusb3hub.sys
by itself.
Renesas Electronics USB 2.0 Hub
asks in my very best driver version now always for rusb3hub.sys and shows me the correct path, but asks,
even rusb3hub.sys is found there from first Hub before.
The same is true for
Renesas Electronics USB 3.0 Hub.
I modded the *.inf files, so after install USB starts with this driver,
but I think on reboot the path to rusb3hub.sys is not found from
the other 2 Hubs as mentioned before
Dietmar
PS: This USB driver works for Intel chipset USB3 under XP SP3 for the Asrock Fatal1ty z370 gaming k6 board.
EDIT: I just found, that my idea is true. Now I have to mod the *.inf files again, I split them in hub1.Inf hub2.inf hub3.inf
EDIT2: I can load only one HUB with hub.inf, for example 2.0 Hub but no possibility to load the other 2 hubs with other *.inf.

#1354 | skullteria | Hello, ⇗ @diderius6, in case, Renesas driver works on XP SP3 with ACPI enabled (HALMACPI) or only MPS/Standard PC?
#1355 | canonkong | ⇗ @diderius6 Etron USB driver also can also work as a generic USB driver and it also support Xp, we can try it.

#1356

diderius6

⇗ @skullteria
Take a look at picture in post 1293,
the Renesas driver works also on full "ACPI Multiprocessor"
Dietmar
PS: The only problem with this driver ist, that not all 3 Hubs start always. This may be a problem in xhci.sys, how the Hub is called.
I think it has to do, that for first HUB sleep D3 isnt allowed, but for the other both D3 (sleep) is allowed.
And my idea above ist just, that these 2 Hubs sometimes cant find their driver rusb3hub.sys.

#1357 | diderius6 | ⇗ @canonkong Do you have a test driver for Etron? I am very bad in modding, because no good tools for this here, I do all by hand (and brain sometimes) Dietmar
#1358 | canonkong | ⇗ @diderius6 I tested it for amd 149C, it is working very well.

#1359

daniel_k

> Zitat von ⇗ canonkong im Beitrag ¶ #1352

> @daniel_k
> I found for AMD 149C usb, VIA usb driver will cause 0x0000001E bsod suddenly sometimes.So we need to find a better driver.
> And ASMedia and TI usb driver cant work for the U disk on 149C.
> After testing all the usb drivers, there are only three drivers can work as a generic both can support intel/amd/asmedia/nvidia and more.
> There are Intel series usb drivers , AMD zeppelin USB driver, Etron USB drivers.
> Can you use your method to modify them?

Sure, will do it later today.

#1360

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1353

> @daniel_k
> It seems, that from the 3 Hubs only
> Renesas Electronics USB 3.0 Root Hub
> can find the driver rusb3hub.sys
> by itself.
> Renesas Electronics USB 2.0 Hub
> asks in my very best driver version now always for rusb3hub.sys and shows me the correct path, but asks,
> even rusb3hub.sys is found there from first Hub before.
> The same is true for
> Renesas Electronics USB 3.0 Hub.
> I modded the *.inf files, so after install USB starts with this driver,
> but I think on reboot the path to rusb3hub.sys is not found from
> the other 2 Hubs as mentioned before
> Dietmar
> PS: This USB driver works for Intel chipset USB3 under XP SP3 for the Asrock Fatal1ty z370 gaming k6 board.
> EDIT: I just found, that my idea is true. Now I have to mod the *.inf files again, I split them in hub1.Inf hub2.inf hub3.inf
> EDIT2: I can load only one HUB with hub.inf, for example 2.0 Hub but no possibility to load the other 2 hubs with other *.inf.

Just tested the XP driver on Windows 7, and it works just fine.
Now I'm sure the issue really lies in the ACPI, something that XP doesn't like.

#1361

diderius6

⇗ @daniel_k
It can be,
that XP dont like different path.
Normaly, all hubs are under Enum\USB
but this Renesas Hub builds an own path with Enum\RENESAS_USB3.
I checked the Via Hub, the Via Hub is also under Enum\USB\VIA_RootHub
and the same for Asmedia_RootHub
Dietmar
PS: I just check this again. From Renesas the Hub2 and Hub3 are also build under Enum\USB
but the RootHub is build under Enum\RENESAS_USB3, means an extra path.
This could be tested, the call from driver xhci.sys just change from
RENESAS_USB3 => USB
Dietmar

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\RENESAS_USB3]

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\RENESAS_USB3\ROOT_HUB30]

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\RENESAS_USB3\ROOT_HUB30\3&216d82cf&1d]
    "Capabilities"=dword:00000080
    "UINumber"=dword:00000000
    "HardwareID"=hex(7):52,00,45,00,4e,00,45,00,53,00,41,00,53,00,5f,00,55,00,53,\
      00,42,00,33,00,5c,00,52,00,4f,00,4f,00,54,00,5f,00,48,00,55,00,42,00,33,00,\
      30,00,26,00,56,00,49,00,44,00,5f,00,38,00,30,00,38,00,36,00,26,00,50,00,49,\
      00,44,00,5f,00,41,00,32,00,41,00,46,00,26,00,52,00,45,00,56,00,5f,00,30,00,\
      30,00,30,00,30,00,26,00,53,00,49,00,44,00,5f,00,41,00,32,00,41,00,46,00,31,\
      00,38,00,34,00,39,00,00,00,52,00,45,00,4e,00,45,00,53,00,41,00,53,00,5f,00,\
      55,00,53,00,42,00,33,00,5c,00,52,00,4f,00,4f,00,54,00,5f,00,48,00,55,00,42,\
      00,33,00,30,00,26,00,56,00,49,00,44,00,5f,00,38,00,30,00,38,00,36,00,26,00,\
      50,00,49,00,44,00,5f,00,41,00,32,00,41,00,46,00,26,00,52,00,45,00,56,00,5f,\
      00,30,00,30,00,30,00,30,00,00,00,52,00,45,00,4e,00,45,00,53,00,41,00,53,00,\
      5f,00,55,00,53,00,42,00,33,00,5c,00,52,00,4f,00,4f,00,54,00,5f,00,48,00,55,\
      00,42,00,33,00,30,00,26,00,56,00,49,00,44,00,5f,00,38,00,30,00,38,00,36,00,\
      26,00,50,00,49,00,44,00,5f,00,41,00,32,00,41,00,46,00,00,00,00,00
    "CompatibleIDs"=hex(7):52,00,45,00,4e,00,45,00,53,00,41,00,53,00,5f,00,55,00,\
      53,00,42,00,33,00,5c,00,52,00,4f,00,4f,00,54,00,5f,00,48,00,55,00,42,00,33,\
      00,30,00,00,00,00,00
    "ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
    "Class"="USB"
    "Driver"="{36FC9E60-C465-11CF-8056-444553540000}\\0115"
    "Mfg"="Renesas Electronics"
    "Service"="rusb3hub"
    "DeviceDesc"="Renesas Electronics USB 3.0 Root Hub"
    "ConfigFlags"=dword:00000000
    "ParentIdPrefix"="4&3296d942&0"

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\RENESAS_USB3\ROOT_HUB30\3&216d82cf&1d\Device Parameters]
    "SymbolicName"="\\??\\RENESAS_USB3#ROOT_HUB30#3&216d82cf&1d#{f18a0e88-c30c-11d0-8815-00a0c906bed8}"
    "EnumStatusID3"=dword:00000000
    "EnumStatusID6"=dword:00000000
    "EnumStatusID7"=dword:00000003
    "EnumStatusID8"=dword:00000000
    "EnumStatusID12"=dword:00000000
    "EnumStatusID14"=dword:00000000
    "EnumStatusID17"=dword:00000000

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\RENESAS_USB3\ROOT_HUB30\3&216d82cf&1d\LogConf]

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\RENESAS_USB3\ROOT_HUB30\3&216d82cf&1d\Control]
    "ActiveService"="rusb3hub"

And for HUB2

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_174c&Pid_2074]

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_174c&Pid_2074\4&3296d942&0&3]
    "DeviceDesc"="Renesas Electronics USB 2.0 Hub"
    "LocationInformation"="ASM107x"
    "Capabilities"=dword:00000084
    "UINumber"=dword:00000000
    "HardwareID"=hex(7):55,00,53,00,42,00,5c,00,56,00,69,00,64,00,5f,00,31,00,37,\
      00,34,00,63,00,26,00,50,00,69,00,64,00,5f,00,32,00,30,00,37,00,34,00,26,00,\
      52,00,65,00,76,00,5f,00,30,00,31,00,30,00,30,00,00,00,00,00
    "CompatibleIDs"=hex(7):52,00,45,00,4e,00,45,00,53,00,41,00,53,00,5f,00,55,00,\
      53,00,42,00,33,00,5c,00,43,00,6c,00,61,00,73,00,73,00,5f,00,30,00,39,00,26,\
      00,53,00,75,00,62,00,43,00,6c,00,61,00,73,00,73,00,5f,00,30,00,30,00,26,00,\
      50,00,72,00,6f,00,74,00,5f,00,30,00,32,00,00,00,52,00,45,00,4e,00,45,00,53,\
      00,41,00,53,00,5f,00,55,00,53,00,42,00,33,00,5c,00,43,00,6c,00,61,00,73,00,\
      73,00,5f,00,30,00,39,00,26,00,53,00,75,00,62,00,43,00,6c,00,61,00,73,00,73,\
      00,5f,00,30,00,30,00,00,00,52,00,45,00,4e,00,45,00,53,00,41,00,53,00,5f,00,\
      55,00,53,00,42,00,33,00,5c,00,43,00,6c,00,61,00,73,00,73,00,5f,00,30,00,39,\
      00,00,00,00,00
    "ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
    "Class"="USB"
    "Driver"="{36FC9E60-C465-11CF-8056-444553540000}\\0116"
    "Mfg"="Renesas Electronics"
    "Service"="rusb3hub"
    "ConfigFlags"=dword:00000000

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_174c&Pid_2074\4&3296d942&0&3\Device Parameters]
    "SymbolicName"="\\??\\USB#Vid_174c&Pid_2074#4&3296d942&0&3#{f18a0e88-c30c-11d0-8815-00a0c906bed8}"
    "EnableSelectiveSuspend"=dword:00000001

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_174c&Pid_2074\4&3296d942&0&3\LogConf]

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_174c&Pid_2074\4&3296d942&0&3\Control]

And for Hub3

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_174c&Pid_3074]

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_174c&Pid_3074\4&3296d942&0&23]
    "DeviceDesc"="Renesas Electronics USB 3.0 Hub"
    "LocationInformation"="ASM107x"
    "Capabilities"=dword:00000084
    "UINumber"=dword:00000000
    "HardwareID"=hex(7):55,00,53,00,42,00,5c,00,56,00,69,00,64,00,5f,00,31,00,37,\
      00,34,00,63,00,26,00,50,00,69,00,64,00,5f,00,33,00,30,00,37,00,34,00,26,00,\
      52,00,65,00,76,00,5f,00,30,00,31,00,30,00,30,00,00,00,00,00
    "CompatibleIDs"=hex(7):52,00,45,00,4e,00,45,00,53,00,41,00,53,00,5f,00,55,00,\
      53,00,42,00,33,00,5c,00,43,00,6c,00,61,00,73,00,73,00,5f,00,30,00,39,00,26,\
      00,53,00,75,00,62,00,43,00,6c,00,61,00,73,00,73,00,5f,00,30,00,30,00,26,00,\
      50,00,72,00,6f,00,74,00,5f,00,30,00,33,00,00,00,52,00,45,00,4e,00,45,00,53,\
      00,41,00,53,00,5f,00,55,00,53,00,42,00,33,00,5c,00,43,00,6c,00,61,00,73,00,\
      73,00,5f,00,30,00,39,00,26,00,53,00,75,00,62,00,43,00,6c,00,61,00,73,00,73,\
      00,5f,00,30,00,30,00,00,00,52,00,45,00,4e,00,45,00,53,00,41,00,53,00,5f,00,\
      55,00,53,00,42,00,33,00,5c,00,43,00,6c,00,61,00,73,00,73,00,5f,00,30,00,39,\
      00,00,00,00,00
    "ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
    "Class"="USB"
    "Driver"="{36FC9E60-C465-11CF-8056-444553540000}\\0120"
    "Mfg"="Renesas Electronics"
    "Service"="rusb3hub"
    "ConfigFlags"=dword:00000000

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_174c&Pid_3074\4&3296d942&0&23\Device Parameters]
    "SymbolicName"="\\??\\USB#Vid_174c&Pid_3074#4&3296d942&0&23#{f18a0e88-c30c-11d0-8815-00a0c906bed8}"

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_174c&Pid_3074\4&3296d942&0&23\LogConf]

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_174c&Pid_3074\4&3296d942&0&23\Control]

#1362 | diderius6 | ⇗ @canonkong Please send me your Etron driver Dietmar
#1363 | canonkong | ⇗ @diderius6 Test it. ⇗ https://yadi.sk/d/Li6PI1NZG6NFbQ
#1364 | diderius6 | ⇗ @canonkong Unfortunately the Etron driver crashes during install on XP, for "MPS" and for Acpi mode Dietmar
#1365 | canonkong | ⇗ @diderius6 AMD platfrom? Maybe I modifed incorrect on 32bit, I wiil upload a new one.

## Page 92

#1366 | diderius6 | ⇗ @canonkong No, for the AMD platform with x570, the AMD driver from post 1095 works for XP 32 bit Dietmar

#1367

diderius6

I found the problem with the Renesas driver.
Only the Root_HUB30 is in energylevel D0 (full on).
The other 2 Hubs stay until now in D2 and this makes the problem
Dietmar
EDIT: When I disable the switch in device manager "Computer enable power save"
those energylevel D2 => D0 after clicking ok, as I can see via Devicemanager.
But all my other Hubs stay only in D0, even when this switch "powersave" is enabled.
PS: This Renesas driver with modded *.inf by me is best until now for Intel chipset and XP 32 bit.
⇗
diderius6 has attached files to this post

- ⇗ Renesas3.0.23.0fromDietmar.rar

#1368

daniel_k

⇗ @canonkong, here is the Etron driver.
There are 2 variants, as there are some hacks depending on the XHCI controller detected.
Couldn't try them here, as it crashes or hangs Windows immediately.
Try both and pick the best one.
Theoretically, the 7052 driver should be "better" as it has less hacks for the newer models.
What is the version of the AMD Zeppelin driver?

#1369

diderius6

⇗ @daniel_k
I just tested the 2 Etron drivers.
Both crash for XP 32 bit on Intel chipset from the Asrock k6 board.
They crash in "ACPI Multiprocessor" and in "MPS".
After crash, compi does even not boot in Safe Mode (F8)
Dietmar

#1370

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1369

> @daniel_k
> I just tested the 2 Etron drivers.
> Both crash for XP 32 bit on Intel chipset from the Asrock k6 board.
> They crash in "ACPI Multiprocessor" and in "MPS".
> After crash, compi does even not boot in Safe Mode (F8)
> Dietmar

Yeah, it is of no use for Intel.
Actually, they are meant for AMD Ryzen.
Can you try it on Ryzen, please? It's based on the same driver canonkong used in post 1095.

#1371

diderius6

⇗ @daniel_k
On 149C the etronxhci7052.sys works at once.
It is Ryzen 3700x on the nice AMD board asrock fatal1ty ab350 gaming k4
Dietmar
PS: On 43BB it gives unknown device. Also the USB 2.0 port does not work.
For the etronxhci7023.sys is exact the same.
EDIT: With my modded driver in post 1095 it is other. ALL USB on Ryzen 1700x and Ryzen 3700x works on
asus prime x570-pro and asrock fatal1ty ab350 gaming k4 board under XP 32 bit.

#1372

daniel_k

⇗ @diderius6!!!!!
I did it!!!!
Finally a working driver for Intel which fully works and passes basic tests.
All devices are detected after several restarts, doesn't crashes when disabled/enabled!
Performance seems OK, detects USB 2.0 hub and a pendrive connected to it.
Just hold a few minutes.

#1373 | diderius6 | ⇗ @daniel_k I wantttttttt !!!!!
#1374 | canonkong | ⇗ @daniel_k AMD zeppelin USB driver is 2.0.0.48 ⇗ Download
#1375 | canonkong | ⇗ @daniel_k Your modified Etron USB driver work very well. Etron seems that has ven_1033, dev_1094 in the xhci.sys.

#1376

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1373

> @daniel_k
> I wantttttttt !!!!!

Here it is, based on the last USB 3.0 driver for XP from AMD.
Please try it on Intel Z370 or Z390 (do you have any?) and also on AMD platform.
Test USB 2.0, 3.1 and 3.2 devices.
USB 3.1 and 3.2 benchmarks would be great as well.
Driver can be found in the following post:
¶ Windows XP SP3 32bit and modern PC parts (128)

#1377 | asasin | ⇗ @daniel_k Can this driver work on intel h110? Edit:Thanks I will write when I test

#1378

daniel_k

> Zitat von ⇗ asasin im Beitrag ¶ #1377

> @daniel_k
> Can this driver work on intel h110?

Possibly yes.

#1379

daniel_k

> Zitat von ⇗ canonkong im Beitrag ¶ #1374

> @daniel_k
> AMD zeppelin USB driver is 2.0.0.48
> ⇗ Download

Hmm, this driver is strange.
Either the device codes are encrypted somehow or there is simply no device check.
Try to edit the INF file and install it.

#1380

diderius6

⇗ @daniel_k
Itworksitworksitworks!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
What a nice day for Windows XP
Dietmar
PS: Thank you a lot Daniel!
⇗

## Page 93

#1381 | skullteria | In my computer, Motherboard H110 and core i7 6700k, all drivers get code 10 on Windows XP/2003 32 bits. I think maybe is related with ACPI OSI, maybe checking Windows Version provided by ACPI

#1382

diderius6

⇗ @skullteria
You have to mod the DSDT table in Bios for to overcome code 10
see post 1321
Dietmar
PS: Be very careful with Bios mod. I crashed 2 compis, even I try to work as careful as possible.
I succeed to reflash the Bios to this compis but it needs months.

#1383 | diderius6 | Now its time, lets start XP 32 bit on UEFI:)) Dietmar

#1384

diderius6

⇗ @daniel_k
On the Scandisk Ultra I get more than 300 Mbyte/s read write via the AMD driver on the Intel chipset USB3.0 via XP SP3.
This is exact as fast as the Asmedia 3.1 USB slot with the same USB stick.
I tested a lot of different USB, all work, even the crazy Samsung phone is recogniced at once.
When I change 6 USB devices at the same time, I get "unknown device".
But on next reboot this is gone. Now I try USB boot via your nice AMD driver
Dietmar

#1385 | skullteria | Well, i think we need find a way to get usb working without modify the bios. I'm trying compile usb 3.0 from win 8/win 10, however, it is not easy.

#1386

diderius6

⇗ @skullteria
Before I thought, that we need Microsoft Kernel-Mode Driver Framework Install-v1.9-Win2k-WinXP-Win2k3.rar
For example the Renesas driver has in coinstaller something like this and mostly all newer USB drivers.
You can see with Dependency Walker if WDFLDR.sys is needed for this driver.
But the AMD driver from Daniel from just now shows, that it is possible without WDFLDR.sys
Dietmar

#1387 | skullteria | I understand...However, i mean modify BIOS is dangerus and if we want Windows XP keep used on the world, need a easy way to end users. And maybe run it on reactos, for example.
#1388 | infuscomus | ⇗ @skullteria ⇗ @diderius6 It may be possible to avoid doing a bios mod to fix the USB code 10 problem But it would require the installation of grub2 bootloader onto windows for its ability to apply ACPI patches
#1389 | canonkong | ⇗ @skullteria ⇗ @diderius6 ⇗ @daniel_k Can we use this USB Driver source code to modified and make a usb general driver? ⇗ https://yadi.sk/d/yQw1Q3mtLsiA_w
#1390 | infuscomus | ⇗ @canonkong ⇗ @skullteria ⇗ @diderius6 ⇗ @daniel_k correct me if i'm wrong but it's my understanding that the ReactOS usbxhci driver is unfinished/incomplete

#1391

diderius6

⇗ @infuscomus ⇗ @skullteria ⇗ @daniel_k ⇗ @canonkong
I also think, that the Reactos xhci driver will not be ready next years and so cant help us.
I noticed, that the AMD driver vers. 1.1.0.0145, which works for XP on Intel chipsets has a problem
with
Class_08&SubClass_06&Prot_50 (USB harddisks)
devices. It is not the fault of the driver direct, because under Win7 my last driver from Renesas and
the nice driver AMD 1.1.0.0145 from Daniel work.
The device is recogniced, it sounds (plop) 3 times in a quick row
and thats all
Dietmar
EDIT: For my last Renesas driver vers. 3.0.23.0 happens exact the same under XP. All USB devices are recogniced.
But Class_08&SubClass_06&Prot_50 (USB harddisks) devices gives always 3 fast plops and thats all.
May be it has to do with the switch in XP, that they are not removable disks.
Yepp, I have a Kingston Workspace USB stick, which is set as nonremovable. There happens exact the same, 3 fast plops.
EDIT2: It has nothing to do with Class_08&SubClass_06&Prot_50
I have an USB stick with exact this class (removable) which is recogniced and works under XP and Intel chipset.
EDIT3: I set up a new XP. Now this problem is gone with the nice driver AMD vers. 1.1.0.0145 from Daniel. I changed soso many settings in USB before, so one makes, that no unremovable sticks or disks are recogniced. Funny, I search all database from Microsoft and via Internet, such a switch is not documented for XP. Only, that all USB devices are forbidden (easy set start=4 for service usbstor in registry).

#1392 | daniel_k | ⇗ @diderius6, glad you sorted it out. Never had such issue here. Does USB work fine during Setup? Did you install XP from USB?

#1393

diderius6

⇗ @daniel_k
I just boot this XP direct from USB with no other device connected,
this is really the hardest test for this nice driver from you
Dietmar
PS: The speed on USB boot device is during USB3 slot 93.55% from native speed, waaoh !
EDIT: I run Cinebench, prime95, 3Dmark2001 on this XP, bootet with your AMD driver from USB3 port,
absolut stable:)).
⇗

#1394 | canonkong | ⇗ @daniel_k AMD vers. 1.1.0.0145 bsod will bsod when it install for 149C. And now I found that only Etron usb driver can work well. Intel serise and AMD 2.0.0.48 also can work, but it must install it on windows after install the AMD chips driver. If don't install like that. it will BSOD.

#1395

daniel_k

> Zitat von ⇗ canonkong im Beitrag ¶ #1394

> AMD vers. 1.1.0.0145 bsod will bsod when it install for 149C.
> And now I found that only Etron usb driver can work well. Intel serise and AMD 2.0.0.48 also can work, but it must install it on windows after install the AMD chips driver. If don't install like that. it will BSOD.

⇗ @canonkong, so the AMD 2.0.0.48 works without modding amdxhci.sys? Only INF mod needed?
At least one driver, Etron, works fine.

## Page 94

#1396 | canonkong | ⇗ @daniel_k Yes, AMD 2.0.0.48 is only INF mod needed, and it can support almost all usb devices, it can work for intel, amd asmedia, nvidia usb-c and more.

#1397

diderius6

⇗ @daniel_k
What do you think,
is it possible, to mod one of the following Intel network drivers for XP,
that it supports i219? This package contains them all from i210 to i218 for XP 32 bit.
i219 is the Intel chipset driver for network on a lot of motherboards
Dietmar
diderius6 has attached files to this post

- ⇗ IntelnetI21x.rar

#1398 | canonkong | ⇗ @diderius6 You can replace the i218-v GBE to the i219 use uefitool with the BIOS.

#1399

diderius6

⇗ @canonkong
I want vice versa:))
i219 => i218
And this are only the networkfiles in Bios.
For XP, you need to mod for example the e1rxp5132.sys (for i210, i211) for to support i219.
But there are other files coinstaller etc. also
Dietmar
PS: Have you modded networkfiles via this way in Bios?

#1400 | canonkong | ⇗ @diderius6 Yes, my board have i219-v, and it don't have windows server driver, when you replace the i219-LM GBE, I219-V will become I219-LM, becaus it is not a fully network device, just a phy. Also i211-AT can replace the rom, and it will becom to i210 serise.

#1401

diderius6

⇗ @canonkong
Hm, does this mean, that the newer Intel PCI device IDs for the network only depend
on Bios?
And will it work for
i219 => i211
Dietmar

#1402 | canonkong | ⇗ @diderius6 Yes, the newer Intel PCI device IDs for the network depend on bios GBE. But i219 => i211 is not possible, i219 => i218/i217 is OK.
#1403 | diderius6 | ⇗ @canonkong Can you please write a short tutorial, how to change i219 => i218/i217 Dietmar

#1404

XPLives

⇗ @canonkong
I would be interested in seeing a step by step tutorial on how you signed the drivers from scratch.
Is this a free program or where to get it?
This would be helpful in making the driver installation process automated without user interaction.
Since you are using Windows 7, do you know how to disable ACPI in Windows 7 or Vista during setup?

#1405 | canonkong | ⇗ @diderius6 Use uefitool (UBU) to open a bios which have i218, then extract the gbe, use uefitool to open your needed bios, repalce it and save it, then you can flash it.

#1406

diderius6

⇗ @XPLives
Vista or Win7 cant be installed without ACPI.
I tried to install Vista 32 on Ryzen PC, impossible. But Vista 32 bit works after the same hack in acpi.sys for Vista as for XP.
Depending on Bios version and motherboard, even Win7 32 bit can fail install on Ryzen, I have had this experience.
And all Linux versions 32 bit, that I testet, fail on Ryzen.
Dietmar

#1407 | canonkong | ⇗ @XPLives I signed the drivers use a signtool named Trust Asia, it very easy to sign a driver using this tool. Disable ACPI in Windows 7 or Vista during setup is very hard, but if you meet A5 bsod, try to delete the acpipmi.sys and its regs before install.

#1408

asasin

hello again
Unfortunately, I have a problem with the driver (or something else) from ⇗ @daniel_k .
Installs it through the device manager.
The device returns code 39.
Driver installation returns error "Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39)".
any ideas?
Motherboard: ⇗ https://www.asus.com/us/Motherboards/H11...specifications/
usb id PCI\VEN_8086&DEV_A12F&CC_0C0330

#1409 | diderius6 | ⇗ @asasin Code 39 means, that something with the driver is wrong, for example checksum Dietmar
#1410 | asasin | So for now I can't do anything about this usb?

## Page 95

#1411 | infuscomus | ⇗ @asasin we are still experimenting
#1412 | infuscomus | ⇗ @daniel_k concerning your previously uploaded AMDXHCI driver from post #1376 - there is a hardcoded HWID in there could that hardcoded HWID cause issues?

#1413

cedar

⇗ @diderius6, ⇗ @infuscomus
Regarding sleep states:
My Asus Prime B350-Plus Ryzen can not sleep like
my Gigabyte Intel GA-P75-D3 Ivy board with i3470 (all Z77 drivers works fine here in Xp).
The Ryzen B350, if sleep in XP, will need a reboot. Not too ideal.
The Ivy board with its cpu fan can go to a complete stop and wake up in
a keystroke. Is this a D3 sleep mode? How can I enable this?
The Prime B350-Plus Ryzen board with 2600 can not even have it cpu fan
stopped. And it stays locked forever(test for an hour) unless reboot!.
Any helps appreciated.
Cedar

#1414 | diderius6 | ⇗ @cedar Please ask a concrete question. Some steps about sleep states can be done in Bios settings. But be careful there, Dietmar
#1415 | cedar | ⇗ @diderius6 I will double check the bios setting again. maybe I missed something before.

#1416

diderius6

⇗ @infuscomus ⇗ @daniel_k ⇗ @canonkong
Tomorrow I make a try for USB3 on Intel chipset for the z370 ROG-MAXIMUS-X-APEX board with 9900k cpu.
First challenge is the DSDT mod for its Bios there. At once we will see, if this is a generic mod in DSDT for the xhc device.
Funny, only the Intel chipset is mentioned in Bios with its xhc and not for example Asmedia xhc?
Also I want to try the nice tip from ⇗ @canonkong for the Intel i219 => i217, which this board has but no XP driver for it.
I never used the UBU tool only UEFI-tool, so any help with UBU is welcome.
When I succeed, I write a tutorial about all. May be it is possible, to mod the BIOS in a generic way, that it can be flashed
with its own tools. For this we need to understand, how the flash tool check validity of the Bios.
We can then use the normal Bios from download side in Web, do the generic DSDT mod for xhc on it, check it and flash.
Via this way the risk is minimal (but not zero, as I have seen for the Asus x570 -Pro board)
Dietmar

#1417

diderius6

⇗ @Lost_N_BIOS
Can there be a problem, when you use for modbiosfilenamehere.bin the original Bios version from download Webside
FPTw.exe -bios -f modbiosfilenamehere.bin
Dietmar
PS: I ask this, because I noticed, that the all in one order for to backup Bios via
FPTw.exe -d myBios.bin
gives not the original flashed Bios on chip back.

#1418 | XPLives | ⇗ @diderius6 I have not tried to full install from scratch for Vista or W7 on AMD AM4. But here's a trick if you want to use Vista or Windows 7 on AMD AM4. This worked with Bristol Ridge CPU. Install the OS on Ivy Bridge then just move the SATA drive over and connect to the AMD AM4 system and it boots up to the desktop no issue. It uses the Microsoft AHCI SATA driver so no BSOD 7B. It might trigger the genuine activation since it detects different hardware however not matching motherboard may deactivate the genuine status. But you can still bypass and continue to use the OS with an occasional nag screen every now and then. I used this to copy the Hardware IDs of the SATA controller before installing XP as this was the only way to get it easily.
#1419 | diderius6 | ⇗ @XPLives Does it work also for Vista 32 bit Dietmar

#1420

XPLives

⇗ @canonkong

> Zitat von ⇗ canonkong im Beitrag ¶ #1407

> @XPLives
> I signed the drivers use a signtool named Trust Asia, it very easy to sign a driver using this tool.
> Disable ACPI in Windows 7 or Vista during setup is very hard, but if you meet A5 bsod, try to delete the acpipmi.sys and its regs before install.

Is this Trust Asia signtool free? Can you upload or message me the link to get it? I need to test if this will work with my customized drivers that I want to later upload for user testing in unattended 2000->W7 installs.
Also can you name the company who signed it or will it say only Trust Asia on the certificate?
How about a customized unattended install file for Vista / W7? That would be easier to do to disable ACPI internally from the start if it is similar to XP. Later we can look into disabling the registry references to acpi files and registry entries so it doesn't load them.

#1421

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1419

> @XPLives
> Does it work also for Vista 32 bit
> Dietmar

Yes it does. I actually test with Vista 32-Bit because it is smaller in size than the 64-Bit version. It had to fit on a 16GB SSD so I chose Vista 32-Bit for the portable Vista boot to get Hardware Ids for XP. Vista 64-Bit needs at least 20GB to even start the installation. I used Vista 64-Bit on a larger hard drive and boots up also with swapping the drive. I also have a Windows 7 32-Bit also but it should work the same as Vista.

#1422

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1416

> @infuscomus @daniel_k @canonkong
> Tomorrow I make a try for USB3 on Intel chipset for the z370 ROG-MAXIMUS-X-APEX board with 9900k cpu.
> First challenge is the DSDT mod for its Bios there. At once we will see, if this is a generic mod in DSDT for the xhc device.
> Funny, only the Intel chipset is mentioned in Bios with its xhc and not for example Asmedia xhc?
> Also I want to try the nice tip from @canonkong for the Intel i219 => i217, which this board has but no XP driver for it.
> I never used the UBU tool only UEFI-tool, so any help with UBU is welcome.
> When I succeed, I write a tutorial about all. May be it is possible, to mod the BIOS in a generic way, that it can be flashed
> with its own tools. For this we need to understand, how the flash tool check validity of the Bios.
> We can then use the normal Bios from download side in Web, do the generic DSDT mod for xhc on it, check it and flash.
> Via this way the risk is minimal (but not zero, as I have seen for the Asus x570 -Pro board)
> Dietmar

You shouldn't need to mod the BIOS for Intel USB 3.0 to work. That would prevent a lot of laptop users from using them.
Just as ACPI.SYS mod is better than BIOS mod for universal usage.
Also your ACPI.SYS I tested on Z370 Coffee Lake had issues. Works to install ACPI Multiprocessor.
Problem is Video Card does not show up in Device Manager. It's missing. I cannot install the driver for it so XP becomes useless without Titan X as its friend.
Did you figure out how to change device default IRQs assigned? Can you disable IRQ6 and free it from being used by the FDC so maybe the video card can use it or Intel USB 3.0 will use that IRQ instead? I think this is the problem the Intel USB 3.0 may not be functioning correctly since it does not get assigned the necessary resources.
Also a way to disable some PCI standard PCI-PCI bridge from using any resources. Too many of these overwhelm XP and I believe that's why the Video card is not showing up in Device Manager and possibly why Intel USB 3.0 not working.

#1423

diderius6

⇗ @XPLives
This means,
that Vista 32bit can handle crazy Irq calls from the AM4 processors
better than Linux 32 bit
Dietmar
PS: I have no success to install Vista 32 on Ryzen. I also noticed big problems with all AHCI drives in Vista,
compared with XP.
Intel chipset USB does not work until now in XP, because Intel set its driver to sleep in DSDT, gives code 10.
And only the Intel xhci.sys knows, how to wake up. No other USB driver on the market can do that.
Because of this, there was no USB for XP on the Intel chipset, even the drivers are nearly all the same (generic).

#1424 | canonkong | ⇗ @XPLives Trust Asia signtool can down free, but you need CA. I can share this tool and CA, but this tool only has Chinese language, I dont know you can read it or not.

#1425

diderius6

I just notice, that for the xhc device on Asrock k6 and on Asus Apex X
Method (_PS0, 0, Serialized) // _PS0: Power State 0
in DSDT table is absolut identic. Force to sleep with code 10.
So, from tomorrow also USB 3.0 should run on Intel chipset on the Asus Apex X board
Dietmar

## Page 96

#1426

XPLives

⇗ @canonkong

> Zitat von ⇗ canonkong im Beitrag ¶ #1424

> @XPLives
> Trust Asia signtool can down free, but you need CA. I can share this tool and CA, but this tool only has Chinese language, I dont know you can read it or not.

Yes can you upload the link here? I can probably have it translated or figure it out.
Are there any English sign tools you know of free/paid to do this?

#1427 | diderius6 | ⇗ @XPLives Just try other grafikcard for XP Dietmar

#1428

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1427

> @XPLives
> Just try other grafikcard for XP
> Dietmar

Yes I did that with multiple cards swapping. All appear Missing in Device Manager. But you can still boot up on the Video Card and get video output. Just no way to install a driver for the graphics card so stuck at MS VGA driver on Coffee Lake.
When moving the drive to Ivy Bridge, it sees the Video Card in Device Manager.

#1429

diderius6

⇗ @XPLives
Something went wrong during install of XP.
I have also strange results for some newer boards during install of XP.
In this case I use an install of XP from another board,
where everything works.
I think it depends on faulty DSDT and other SSDT in Bios
Dietmar

#1430

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1429

> @XPLives
> Something went wrong during install of XP.
> I have also strange results for some newer boards during install of XP.
> In this case I use an install of XP from another board,
> where everything works.
> I think it depends on faulty DSDT and other SSDT in Bios
> Dietmar

So far besides your Z370, Z390, how many other users tested your ACPI to work on Coffee Lake without issues and no Bios Mod done?
Did you try testing your Z370 and Z390 on clean unmodified BIOS and only using your ACPI.sys mod for XP SP3 clean install?
On AMD AM4 Bristol Ridge test, ACPI Multiprocessor shows, VGA card shows, only issues is slower processor performance, and when using a very large Ramdisk it slows the boot up time that does not happen on Intel.

#1431 | canonkong | ⇗ @XPLives Signtool always is free and you can use Microsoft signtool, but the CA is not free and very expensive.

#1432

XPLives

⇗ @canonkong

> Zitat von ⇗ canonkong im Beitrag ¶ #1431

> @XPLives
> Signtool always is free and you can use Microsoft signtool, but the CA is not free and very expensive.

Okay message me the link where you download yours from and I will test. Or you can upload the one you have if it is clean.
As long as it is signed and can install without prompting the user to confirm is all I need for testing.

#1433

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1423

> @XPLives
> This means,
> that Vista 32bit can handle crazy Irq calls from the AM4 processors
> better than Linux 32 bit
> Dietmar
> PS: I have no success to install Vista 32 on Ryzen. I also noticed big problems with all AHCI drives in Vista,
> compared with XP.
> Intel chipset USB does not work until now in XP, because Intel set its driver to sleep in DSDT, gives code 10.
> And only the Intel xhci.sys knows, how to wake up. No other USB driver on the market can do that.
> Because of this, there was no USB for XP on the Intel chipset, even the drivers are nearly all the same (generic).

I have not done extensive testing on Vista on AMD AM4 but I didn't see any problems booting into it and checking Device Manager and seemed stable to me. I used a USB card to use the USB mouse.
Do you have an Ivy Bridge or earlier Intel chipset MB to install Vista 32-Bit clean onto a Sata drive?
After fully installed you can then move the drive to your AMD AM4 and it should boot to the OS without issue. I only tested on my Bristol Ridge but I don't see why it would not work on Ryzen CPU.
It's possible you can't install Vista clean on AMD AM4 directly but I never tried. On SkyLake I can install Vista on it without issue. I didn't test a clean Vista install using Coffee Lake yet have you tried?

#1434

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1393

> @daniel_k
> I just boot this XP direct from USB with no other device connected,
> this is really the hardest test for this nice driver from you
> Dietmar
> PS: The speed on USB boot device is during USB3 slot 93.55% from native speed, waaoh !
> EDIT: I run Cinebench, prime95, 3Dmark2001 on this XP, bootet with your AMD driver from USB3 port,
> absolut stable:)).

So glad to know!
After so much work, it was worth the effort!

#1435 | canonkong | ⇗ @daniel_k How to solve the problem about the USB driver meet 01E and 02C BSOD sometimes? For example, 149C use via intel amd 2.0.0.48 driver mod driver. VIA will meet 01E BSOD sometimes. Intel/AMD 2.0.0.48 will meet 02C BSOD when install/uninstall, or meet memory can not read 0x0000002C.

#1436

daniel_k

> Zitat von ⇗ infuscomus im Beitrag ¶ #1412

> @daniel_k
> concerning your previously uploaded AMDXHCI driver from post #1376 - there is a hardcoded HWID in there
> could that hardcoded HWID cause issues?

Not at all.
I've just changed the minimum required for the driver to work with any XHCI controller.
Those HWIDs are used just for device specific fixes and ensures the driver will behave the same when used with the devices it was originally designed for.
The less changes the better.

#1437

daniel_k

> Zitat von ⇗ canonkong im Beitrag ¶ #1435

> @daniel_k
> How to solve the problem about the USB driver meet 01E and 02C BSOD sometimes?
> For example, 149C use via intel amd 2.0.0.48 driver mod driver. VIA will meet 01E BSOD sometimes. Intel/AMD 2.0.0.48 will meet 02C BSOD when install/uninstall, or meet memory can not read 0x0000002C.

⇗ @canonkong
Unfortunately, that is beyond my knowledge.
While XHCI is a standard, manufacturers include a lot of device specific code to fix design flaws etc.
Most probably the driver expects something the controller doesn't do or the driver does something that it shouldn't if following the standards.
When we remove the device ID checks, we are just hoping for the driver to work properly. It's just a matter of luck.

#1438

daniel_k

> Zitat von ⇗ cedar im Beitrag ¶ #1413

> @diderius6, @infuscomus
> Regarding sleep states:
> My Asus Prime B350-Plus Ryzen can not sleep like
> my Gigabyte Intel GA-P75-D3 Ivy board with i3470 (all Z77 drivers works fine here in Xp).
> The Ryzen B350, if sleep in XP, will need a reboot. Not too ideal.
> The Ivy board with its cpu fan can go to a complete stop and wake up in
> a keystroke. Is this a D3 sleep mode? How can I enable this?
> The Prime B350-Plus Ryzen board with 2600 can not even have it cpu fan
> stopped. And it stays locked forever(test for an hour) unless reboot!.
> Any helps appreciated.
> Cedar

ACPI 1.0a support is broken in the new systems.
It's though enough to get XP working on new systems, don't expect StandBy or even Hibernation to ever work properly.
I've tried really hard to fix the ACPI table, but just gave up.

#1439

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1429

> @XPLives
> Something went wrong during install of XP.
> I have also strange results for some newer boards during install of XP.
> In this case I use an install of XP from another board,
> where everything works.
> I think it depends on faulty DSDT and other SSDT in Bios
> Dietmar

Yes. I intend to do another project to shrink down XP setup files to the bare minimum smaller than Tiny XP size. But will require lots of help to identify all the files we don't need.
After sorting through the 6,000+ files then the fun can begin to trim XP to bare minimum and XP install will be very fast even on an optical drive. Maybe it's possible to shrink below 100MB and hopefully under 100 files.
Currently, XP SP0 uses the least amount of files and installs to around 600 some MB. XP SP3 uses more files and bloats it too much.
But XP SP1 first supports large partition so may need to use this as the XP installer source.
I found XP SP0 can get the full 4.0GB memory usage compared to SP2/SP3 drops to 3.15GB->3.5GB max. So MS stole 0.5->0.85GB of memory from XP users.

#1440

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1414

> @cedar
> Please ask a concrete question.
> Some steps about sleep states can be done in Bios
> settings. But be careful there,
> Dietmar

⇗ @diderius6
He wants to get Standby working on Ryzen.
Dietmar, have you ever try to put your system in Standby (Sleep) then Wake it?
Tried to fix myself but gave up, too much work.

## Page 97

#1441

XPLives

⇗ @daniel_k

> Zitat von ⇗ daniel_k im Beitrag ¶ #1438

> > Zitat von ⇗ cedar im Beitrag ¶ #1413

> > @diderius6, @infuscomus
> > Regarding sleep states:
> > My Asus Prime B350-Plus Ryzen can not sleep like
> > my Gigabyte Intel GA-P75-D3 Ivy board with i3470 (all Z77 drivers works fine here in Xp).
> > The Ryzen B350, if sleep in XP, will need a reboot. Not too ideal.
> > The Ivy board with its cpu fan can go to a complete stop and wake up in
> > a keystroke. Is this a D3 sleep mode? How can I enable this?
> > The Prime B350-Plus Ryzen board with 2600 can not even have it cpu fan
> > stopped. And it stays locked forever(test for an hour) unless reboot!.
> > Any helps appreciated.
> > Cedar

> ACPI 1.0a support is broken in the new systems.
> It's though enough to get XP working on new systems, don't expect StandBy or even Hibernation to ever work properly.
> I've tried really hard to fix the ACPI table, but just gave up.

I never use hibernation since if you install 32GB or more RAM it requires an equal amount of RAM for the hibernat.fil in Vista and maybe even 2003. But since XP memory will be capped it's probably 3.15->4.00GB in size depending on which SP version used.
Standby was never 100% reliable even on Ivy Bridge. Sometimes if you sleep too long you can never wake the system up and if you use a large Ramdrive you cannot backup the data first so it is lost.
I prefer to underclock and undervolt the system to your preferred speed and just leave all cores running. XP hardly crashes in this scenario.
If you used Standby on IB it is better to not let it sleep too long. A few minutes is safe. Better to get a UPS instead so you can shut down safely.
On the bright side diderius6 ACPI.sys mod still allows Coffee Lake and Ryzen MB to shut down instead of a manual power off.

#1442

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1416

> @infuscomus @daniel_k @canonkong
> Tomorrow I make a try for USB3 on Intel chipset for the z370 ROG-MAXIMUS-X-APEX board with 9900k cpu.
> First challenge is the DSDT mod for its Bios there. At once we will see, if this is a generic mod in DSDT for the xhc device.
> Funny, only the Intel chipset is mentioned in Bios with its xhc and not for example Asmedia xhc?

⇗ @diderius6
Found the culprit ACPI statement that prevents the driver from loading on XP.
Taken from the ACPI table of your ASRock Z370 board.
Search for Device (XHC) and change this:

                Method (_PS0, 0, Serialized)  // _PS0: Power State 0
                {
                    If (DVID == 0xFFFF)
                    {
                        Return (Zero)
                    }

                    Local2 = MEMB /* \_SB_.PCI0.XHC_.MEMB */
                    Local1 = PDBM /* \_SB_.PCI0.XHC_.PDBM */
                    PDBM &= 0xFFFFFFFFFFFFFFF9
                    D3HE = Zero
                    STGE = Zero
                    D0D3 = Zero
                    MEMB = XWMB /* \XWMB */
                    PDBM = (Local1 | 0x02)
                    OperationRegion (MC11, SystemMemory, XWMB, 0x9000)
                    Field (MC11, DWordAcc, Lock, Preserve)
                    {
                        Offset (0x81C4),
                            ,   2,
                        UPSW,   2
                    }

                    UPSW = Zero
                    PDBM &= 0xFFFFFFFFFFFFFFFD
                    MEMB = Local2
                    PDBM = Local1
                    If (CondRefOf (\_SB.PCI0.XHC.PS0X))
                    {
                        PS0X ()
                    }

                    If (UWAB && ((D0D3 == Zero) || (^^XDCI.D0I3 == Zero)))
                    {
                        MPMC = One
                        While (PMFS)
                        {
                            Sleep (0x0A)
                        }
                    }
                }

To this:

                Method (_PS0, 0, Serialized)  // _PS0: Power State 0
                {
                    If (DVID == 0xFFFF)
                    {
                        Return (Zero)
                    }

                    Local2 = MEMB /* \_SB_.PCI0.XHC_.MEMB */
                    Local1 = PDBM /* \_SB_.PCI0.XHC_.PDBM */
                    If (OSYS >= 0x07D6)
                    {
                        PDBM &= 0xFFFFFFFFFFFFFFF9
                    }
                    D3HE = Zero
                    STGE = Zero
                    D0D3 = Zero
                    MEMB = XWMB /* \XWMB */
                    PDBM = (Local1 | 0x02)
                    OperationRegion (MC11, SystemMemory, XWMB, 0x9000)
                    Field (MC11, DWordAcc, Lock, Preserve)
                    {
                        Offset (0x81C4),
                            ,   2,
                        UPSW,   2
                    }

                    UPSW = Zero
                    If (OSYS >= 0x07D6)
                    {
                        PDBM &= 0xFFFFFFFFFFFFFFFD
                    }
                    MEMB = Local2
                    PDBM = Local1
                    If (CondRefOf (\_SB.PCI0.XHC.PS0X))
                    {
                        PS0X ()
                    }

                    If (UWAB && ((D0D3 == Zero) || (^^XDCI.D0I3 == Zero)))
                    {
                        MPMC = One
                        While (PMFS)
                        {
                            Sleep (0x0A)
                        }
                    }
                }

Which means that PDBM &= 0xFFFFFFFFFFFFFFF9 and PDBM &= 0xFFFFFFFFFFFFFFFD must be run only if OS is Vista or later. That's all.
This way we ensure the changes won't affect other OSes.

#1443

diderius6

⇗ @daniel_k
I have not tried sleeping mode on XP,
because also on chipsets before Skylake it was faulty.
On the evga z390 dark board they make a Bios for real XP.
It is version 0.92 and there you may find some intuition
for to change Acpi tables. It is not on their Website,
so I put it here.
This board I use for generic XP install, really best.
Have you an idea, how to overcome for your new driver
the sleeping code 10 in DSDT table in
Method (_PS0, 0, Serialized) // _PS0: Power State 0
⇗ @XPLives is right, that Bios mod of DSDT is nothing for "normal" people.
But I think, this mod can make like generic
Dietmar
Edit: Funny, I wrote this few mins ago.
The Bios 0.92 for XP on z390 is too big for to upload here,
so I give you the link, it is on top of this website
⇗ https://forums.evga.com/EVGA-Z390-DARK-O...T-m2930290.aspx

#1444

diderius6

⇗ @XPLives
I make XP SP1 install at a size of about 3 Mbyte^^
Dietmar
⇗ http://reboot.pro/topic/3717-xpsp1-with-...fs-below-10-mb/
PS: And Windows Server 2003 at a size of about 2 Mbyte, fits on1 diskette.
This is record until now.

#1445

diderius6

⇗ @daniel_k
I just give the asl.exe tool a new chance.
I upload your new mod DSDT table via asl.exe.
But then I get again BSOD A5, crazy tool because of ACPI.
But then I remembered, that I still have a "MPS" XP installation.
And voila, there your mod works.
This means, also the asl tool works, only not correct for Acpi mod.
So at once I can give a mini Tutorial for to test if USB3 for intel chipset works on your compi without real Bios modding.
0.) Make a "MPS" XP installation (This is without ACPI. You can also use "Standart PC" hitting F5 during setup of XP.)
1.) Extract with UEFI tool your DSDT table. From this raw file make dsdt.dsl with the tool iasl in commandline C:\ iasl.exe dsdt.raw
2.) Do the mod in DSDT as in post 1442.
3.) Make dsdt.aml from this modded file dsdt.dsl via C:\iasl dsdt.dsl in commandline.
3.) Copy the Tool asl.exe to your C:\ folder
4.) Type via commandline C:\asl /loadtable dsdt.aml
Reboot your Compi.
5.) Install the USB driver from ⇗ @daniel_k
Voila:))
Thats all. The real Bios is not touched on your COMPI!
Modded DSDT is stored only in registry.
When you want to unload the modded DSDT from your compi
just type in commandline C:\asl /loadtable -d dsdt.aml
I just tested this,
it works
Dietmar

#1446

infuscomus

⇗ @diderius6
i recall from my experimenting earlier that you need to load the FACP table before loading the DSDT table
perhaps that is why you get A5 BSOD when in ACPI mode?
try
asl.exe /loadtable facp.raw
asl.exe /loadtable dsdt.raw

#1447

cedar

⇗ @daniel_k
------------
ACPI 1.0a support is broken in the new systems.
It's though enough to get XP working on new systems, don't expect StandBy or even Hibernation to ever work properly.
I've tried really hard to fix the ACPI table, but just gave up.
------------
It is good to know that it is not my specific Prime B350 that has this problem.
So it is a general problem.
I tried all the usb 3.0 drivers from yours,diderius6,and canonkong.
So far no success on my Gigabyte B75 Ivy board. Some Host controllers
can be installed, but none of 3.0 hubs drivers can be installed.
Have you had any successful USB3.0 XP installed on any other Intel board?
As older boards have no ACPI problems. Wouldn't it be more likely to be modded
successfully than present board?
Cedar

#1448 | cedar | ⇗ @XPLives Were you able to install XP sp2 and earlier on Ryzen?
#1449 | skullteria | Hello, i will install Windows Vista on my system, motherboard with chipset H110 and try install usb driver from here. If succeded, maybe problem ACPI driver or power saving on Vista. If get Code 10 too, maybe it is related with Windows version on OSI function. We really need run usb 3.0 on XP without edit Bios

#1450

diderius6

⇗ @daniel_k
I just tested my own Tutorial for USB mod direct on the Asus Apex X board
with minimod of DSDT via Daniel.
Works !!!
Have a nice day
Dietmar
⇗
⇗

#1451

cedar

⇗ @diderius6 and ⇗ @XPLives
3 Mb XP is really good and hilariuous. I am very interested to stall a very small XP64 or
Win7x64 on my ivy MB or Win7x64 on Ryzen, as long as it can run ffmpeg64 for fast
x265 backup. I prefer ffmpeg over x265.exe as no audio remux (intermediate files
created) is required.
Cedar

#1452

diderius6

⇗ @daniel_k
At the same time I feel,
that we will not be able to have an USB driver for XP 32 bit
for Intel chipset USB without Bios Mod,
because always XP hangs up itself when it comes in Bios
for the xhc driver to the lines (64 bit) with
PDBM &= 0xFFFFFFFFFFFFFFF9
and
PDBM &= 0xFFFFFFFFFFFFFFFD
Dietmar
PS: So it is not (?!) the fault of Intel but of motherboard manufacturers.

#1453

diderius6

⇗ @infuscomus
I tried first to load facp and then dsdt
asl.exe /loadtable facp.raw
asl.exe /loadtable dsdt.raw
but again on ACPI XP BSOD 0xA5
this is very strange, because the asl tool works very good in other cases
Dietmar
PS: So, the only hope without real Bios Mod Intel USB is to repair or write new the Tool asl.exe.

#1454 | infuscomus | ⇗ @diderius6 There is source code for intel ASL on github ⇗ https://github.com/acpica/acpica I am not sure if it will help

#1455

diderius6

⇗ @infuscomus
Do you have the binary for Intel ASL
and how is the Syntax for its use?
Another idea would be: The DSDT table can be seen in (ACPI only) XP registry
and also been edited there. But on next boot the Bios loads
its original own DSDT. If we just can stop writing of Bios its own DSDT to the registry again,
it would be done
Dietmar

## Page 98

#1456 | infuscomus | ⇗ @diderius6 is this what you are looking for? ⇗ https://acpica.org/downloads/binary-tools can we set DSDT to read only using permissions in the registry editor?

#1457

diderius6

I just found, how the asl Tool works.
When you read the registry on running XP with ACPI out,
the values of the DSDT are NOT stored.
But when you upload DSDT with asl.exe
suddently is there a BIG set of data, all Hexvalues at the place from DSDT
Dietmar
EDIT: With asl the whole DSDT is blown up to a very big dataset at the same place,
where in working ACPI XP it stays.
It gets an extra start signature,
but then follows the normal "DSDT" signature
and it ends with the normal signature for dsdt.
And then follows in registry the entry for FACP, as normal.

    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\ACPI\Parameters\DSDT\ALASKA\A_M_I_\01072009]

    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\ACPI\Parameters\FACP]

    => (asl loads DSDT)

    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\ACPI\Parameters\DSDT\ALASKA\A_M_I_\01072009]
    "00000000"=hex:0d,ae,02,00,00,00,00,00,00,00,00,00,f0,1b,00,00,44,53,44,54,0d,\
      ae,02,00,02,6b,41,4c,41,53,4b,41,41,20,4d,20,49,20,00,00,09,20,07,01,49,4e,\
      54,4c,05,04,19,20,a0,43,83,00,15,5c,2e,5f,47,50,45,41,4c,36,46,08,00,15,5c,\
      2e,5f,47,50,45,48,4c,56,54,08,00,15,5c,2e,5f,47,50,45,50,30,4c,36,08,00,15,\
      5c,2e,5f,47,50,45,50,31,4c,36,08,00,15,5c,2e,5f,47,50,45,50,32,4c,36,08,00,\
      15,5c,2e,5f,50,52,5f,42,47,49,41,00,00,15,5c,2e,5f,50,52,5f,42,47,4d,41,00,\
      00,15,5c,2e,5f,50,52,5f,42,47,4d,53,00,00,15,5c,2e,5f,50,52,5f,43,46,47,44,\

    ...

      35,31,34,39,30,37,31,34,38,35,28,52,29,00,5b,82,4d,05,57,4d,49,31,08,5f,48,\
      49,44,0d,50,4e,50,30,43,31,34,00,08,5f,55,49,44,0d,4d,58,4d,32,00,08,5f,57,\
      44,47,11,17,0a,14,3c,5c,cb,f6,ae,9c,bd,4e,b5,77,93,1e,a3,2a,2c,c0,4d,58,01,\
      02,14,20,57,4d,4d,58,03,8a,6a,00,46,55,4e,43,a0,10,93,46,55,4e,43,0c,53,4c,\
      49,41,a4,53,4c,49,43,a4,00
    "Action"=dword:00000000

    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\ACPI\Parameters\FACP]

Because in registry only ControlSet001 is stored, FACP is always stored normally,
but DSDT without asl is always loaded new via Bios.
May be adding the line in DSDT in registry
`"Action"=dword:00000000`
is enough and copy DSDT into ControlSet001
Dietmar

#1458 | diderius6 | ⇗ @infuscomus "can we set DSDT to read only using permissions in the registry editor?" Good idea, but until now without success for me Dietmar

#1459

infuscomus

> Zitat von ⇗ diderius6 im Beitrag ¶ #1457

> Which means, with use of asl the whole FACP entry in registry is gone.

asl.exe /loadtable facp.raw
did not help?

#1460 | XPLAKE8175 | I'm getting A5 ACPI error on my ASUS k555lb laptop. I don't want to install XP without ACPI. Which is the latest version of XP ACPI compliant for my laptop K555LB?

#1461

diderius6

⇗ @infuscomus
The asl tool
builds complete DSDT entry new in ControlSet001.
Without asl, the DSDT is not stored at all in ControlSet001,
DSDT is loaded each time on reboot new from Bios
Dietmar

#1462 | diderius6 | ⇗ @XPLAKE8175 acpi.sys from post 1326 should work, this is a notebook with Intel chipset Dietmar

#1463

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1457

> I just found, how the asl Tool works.
> When you read the registry on running XP with ACPI out,
> the values of the DSDT are NOT stored.
> But when you upload DSDT with asl.exe
> suddently is there a BIG set of data, all Hexvalues at the place from DSDT
> Dietmar
> EDIT: With asl the whole DSDT is blown up to a very big dataset at the same place,
> where in working ACPI XP it stays.
> It gets an extra start signature,
> but then follows the normal "DSDT" signature
> and it ends with the normal signature for dsdt.
> And then follows in registry the entry for FACP, as normal.
> ...
> Because in registry only ControlSet001 is stored, FACP is always stored normally,
> but DSDT without asl is always loaded new via Bios.
> May be adding the line in DSDT in registry
> `"Action"=dword:00000000`
> is enough and copy DSDT into ControlSet001
> Dietmar

While I can't help you with this, isn't possible to export the ACPI tables created by the ASL tool then import them into SETUPREG.HIV, which is the default registry for Windows Setup?
This way could be possible to create a custom SETUPREG.HIV for every board.

#1464

daniel_k

> Zitat von ⇗ cedar im Beitrag ¶ #1447

> I tried all the usb 3.0 drivers from yours,diderius6,and canonkong.
> So far no success on my Gigabyte B75 Ivy board. Some Host controllers
> can be installed, but none of 3.0 hubs drivers can be installed.
> Have you had any successful USB3.0 XP installed on any other Intel board?
> As older boards have no ACPI problems. Wouldn't it be more likely to be modded
> successfully than present board?
> Cedar

⇗ @cedar
What do you mean by "none of 3.0 hubs drivers can be installed"?
Isn't the root hub detected?
Or it is detected but won't work properly?

#1465 | infuscomus | ⇗ @daniel_k if you have the time - can you figure out what causes code 39 error when using amdxhci driver for USB 3.0 in virtualbox?

#1466

cedar

⇗ @daniel_k
I didn't see any usb 3.0 root hub entry available after installing the 3.0 host controller. Only the default generic usb 2.0 hub is available. So I guessed at that point, I am stuck.
I ran the drivers without my hardware ID first. When they failed. I added my Ivy HW ID as
an alternative test. But without any successes. If you are interested, I can test your drivers
again.
Cedar

#1467

daniel_k

> Zitat von ⇗ cedar im Beitrag ¶ #1466

> @daniel_k
> I didn't see any usb 3.0 root hub entry available after installing the 3.0 host controller. Only the default generic usb 2.0 hub is available. So I guessed at that point, I am stuck.
> I ran the drivers without my hardware ID first. When They failed. I added my Ivy HW ID as
> an alternative test. But without any successes. If you are interested, I can test your drivers
> again.
> Cedar

The root hub is detected as an unknown device.
If the XHCI host controller is enabled succesfully, it immediately creates a child device.
Try to view the devices by connection and check if the host controller has a child device.

#1468

daniel_k

> Zitat von ⇗ infuscomus im Beitrag ¶ #1465

> @daniel_k
> if you have the time - can you figure out what causes code 39 error when using amdxhci driver for USB 3.0 in virtualbox?

You must use the Renesas driver and am sure I've got it working.
Will try again later.

#1469 | XPLAKE8175 | #1326
#1470 | diderius6 | ⇗ @infuscomus I think, the Renesas driver from post 1367 ist best Dietmar

## Page 99

#1471 | infuscomus | ⇗ @diderius6 I tried renesas driver you mentioned in virtualbox - code 39 again

#1472

cedar

⇗ @daniel_k
I retest AMDXHCI_FINAL_ from #1376 on XP32 on Ivy Mb with
my hardware IDs

    %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E26&SUBSYS_50061458&REV_04
    %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E26&SUBSYS_50061458
    %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E26&CC_0C0320
    %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E26&CC_0C03
    %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E2D&SUBSYS_50061458&REV_04
    %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E2D&SUBSYS_50061458
    %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E2D&CC_0C0320
    %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E2D&CC_0C03 ; my tests

All instant reboots after installing the host controller with or without my HW IDs.
I did remember some host controller drivers can be installed a few days ago.
The TI Host controller can definitely installed.
I will try the XP64 versions soon.
Cedar

#1473

daniel_k

> Zitat von ⇗ cedar im Beitrag ¶ #1472

> @daniel_k
> I retest AMDXHCI_FINAL_ from #1376 on XP32 on Ivy Mb with
> my hardware IDs

>     %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E26&SUBSYS_50061458&REV_04
>     %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E26&SUBSYS_50061458
>     %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E26&CC_0C0320
>     %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E26&CC_0C03
>     %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E2D&SUBSYS_50061458&REV_04
>     %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E2D&SUBSYS_50061458
>     %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E2D&CC_0C0320
>     %AMDXHC.DeviceDesc%   = AMDXHC,PCI\VEN_8086&DEV_1E2D&CC_0C03 ; my tests

> All instant reboots after installing the host controller with or without my HW IDs.
> I did remember some host controller drivers can be installed a few days ago.
> The TI Host controller can definitely installed.
> I will try the XP64 versions soon.
> Cedar

The BIOS is not properly configured for USB 3.0.
Those device IDs are USB 2.0 controllers (CC_0C0320).
You need to set xHCI Mode to Enabled and HS Port #1 Switchable~HS Port #4 Switchable to Disabled.

#1474

cedar

⇗ @daniel_k
Ok. the test was on AMDXHC,PCI\VEN_8086&DEV_1E26&SUBSYS_50061458&REV_04,
as it was the 1st top entry chosen during installation. I didn't pick
CC_0C03 specificly. "my tests" was there to remind myself I tested the driver.
I will delete all (CC_0C0320)s entries. I believe my Bios was with xHCI enabled.
But I will recheck to confirm.
Cedar

#1475 | daniel_k | The device ID of the Intel USB 3.0 controller should be the following: PCI\VEN_8086&DEV_1E31&SUBSYS_50071458 PCI\VEN_8086&DEV_1E31&CC_0C0330 Unless you are using PS/2 keyboard or mouse, your input device will be unavailable until a proper driver is installed.

#1476

diderius6

I understand a little bit more, how the asl Tool works.
In registry HKLM\services the acpi.sys driver is called. Normally, acpi.sys fetch its data from DSDT from Bios.
May be, this happens just now also and only later it should be overwritten with the DSDT values in "parameters".
Then the call from the DSDT table from Bios gives BSOD A5, before it can be overridden by the "parameters".
The asl.exe Tool writes after loadtable the data of DSDT in its "parameters"
for next boot. There, "new DSDT" stays.
The size of the ACPI "parameters" there is enourmous, but it is just the dsdt.aml with very small changes.
It is splitted in 19 entries whereas its counterpart in HKLM\hardware\acpi\dsdt is not splitted
Dietmar
PS: Interesting, how "MPS" XP can read the DSDT, because it has no acpi.sys.
EDIT: May be, the asl.exe tool cant work together with If (OSYS >= 0x07D6)

#1477 | XPLAKE8175 | you have to download ahci drivers or switch sata mode to ide (if it is available).

#1478

cedar

⇗ @daniel_k
I disable the 4 switchable in bios and delete VEN_8086&DEV_1E26&CC_0C0320.
The XP32 still instantly reboot, without install anything upon
reboot.
But the XP64 version is better. I can install the host controller, and
install the 3.0 hub. This time the unknown hub 3.0 appear and can also
installed but with code 10.
Edit: I will retest 32 bits with
PCI\VEN_8086&DEV_1E31&SUBSYS_50071458
PCI\VEN_8086&DEV_1E31&CC_0C0330
Cedar

#1479

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1443

> @daniel_k
> I have not tried sleeping mode on XP,
> because also on chipsets before Skylake it was faulty.
> On the evga z390 dark board they make a Bios for real XP.
> It is version 0.92 and there you may find some intuition
> for to change Acpi tables. It is not on their Website,
> so I put it here.
> This board I use for generic XP install, really best.
> Have you an idea, how to overcome for your new driver
> the sleeping code 10 in DSDT table in
> Method (_PS0, 0, Serialized) // _PS0: Power State 0
> @XPLives is right, that Bios mod of DSDT is nothing for "normal" people.
> But I think, this mod can make like generic
> Dietmar
> Edit: Funny, I wrote this few mins ago.
> The Bios 0.92 for XP on z390 is too big for to upload here,
> so I give you the link, it is on top of this website
> ⇗ https://forums.evga.com/EVGA-Z390-DARK-O...T-m2930290.aspx

When XP is installed in MPS, NO ACPI, which file is loaded instead of ACPI.SYS?
Is there a way to take the code for shutdown you fixed in ACPI.SYS and add as a registry fix or patch alternate file XP uses for NO ACPI mode?
This is still useful for F7 test on Intel even without hyperthreading but all cores will show up. AMD AM4 can only use Standard PC unicore so alas. :(

#1480

XPLives

⇗ @XPLAKE8175

> Zitat von ⇗ XPLAKE8175 im Beitrag ¶ #1460

> I'm getting A5 ACPI error on my ASUS k555lb laptop. I don't want to install XP without ACPI. Which is the latest version of XP ACPI compliant for my laptop K555LB?

Since you have a Kaby Lake laptop this is interesting to test for compatibility.
Can you still do F7 NO ACPI XP install on it to completion to GUI setup mode or all the way to first desktop screen?
Is CSM mode still intact?

#1481 | XPLAKE8175 | I have got Broadwell Laptop

#1482

XPLives

⇗ @XPLAKE8175

> Zitat von ⇗ XPLAKE8175 im Beitrag ¶ #1481

> I have got Broadwell Laptop

Broadwell laptop should install with ACPI normally since Haswell laptop should work.
Are you getting BSOD A5 issue on it?
Try F7 NO ACPI install method and see if it finishes to desktop. The USB 2.0 ports on it should work for USB mouse/keyboard.
Check the Task Manager and you should see all cores working just no hyperthreading.

#1483 | XPLAKE8175 | Yes I'm still getting ACPI error on my K555LB. My BIOS version is 605 which is the latest version.
#1484 | XPLAKE8175 | I don't want to install Windows XP without ACPI because my integrated keyboard does not work, I can't see my battery life and I can't shutdown without holding power button.

#1485

XPLives

⇗ @XPLAKE8175

> Zitat von ⇗ XPLAKE8175 im Beitrag ¶ #1483

> Yes I'm still getting ACPI error on my K555LB. My BIOS version is 605 which is the latest version.

Then it's possible Haswell laptops will have the same issue since they should be the same.
Haswell/Broadwell desktops are the last fully XP ACPI compliant then it seems for fresh install and Ivy Bridge laptop the last generation.
For now then try the F7 NO ACPI install method and see if it finishes to desktop. The USB 2.0 ports on it should work for USB mouse/keyboard.
Check the Task Manager and you should see all cores working just no hyperthreading.
Which CPU is installed in your laptop? How many memory slots does it have?

## Page 100

#1486 | XPLAKE8175 | My CPU is Intel Core i5 5200u and I have two memory slots and total of 8 gb of ram.
#1487 | diderius6 | ⇗ @XPLAKE8175 Make a photo or describe all the exact numbers of your BSOD Dietmar

#1488

XPLives

⇗ @XPLAKE8175

> Zitat von ⇗ XPLAKE8175 im Beitrag ¶ #1484

> I don't want to install Windows XP without ACPI because my integrated keyboard does not work, I can't see my battery life and I can't shutdown without holding power button.

If you don't even attempt the F7 NO ACPI install you will never know if the USB 2.0 ports on it will even work so the internal keyboard will not work either even with ACPI since it's hooked into the USB ports and if it's connected to the USB 3.0 ports then it will not work. But if your laptop has USB 2.0 ports then you have a chance to use external USB mouse/keyboard combo. Also I use Das Keyboard instead of the laptop keyboard. Laptop keyboards have a very lousy orientation sometimes hitting the wrong key due to non standard layouts when they swap the keys with others you are not used to compared to standard 101 enhanced.
Aside from that you will still have to deal with the laggy MS VGA standard driver as there are no working Intel HD Graphics XP drivers for laptops past Ivy Bridge. So no 3D gaming in XP will be possible. Internet surfing might be possible if you have XP drivers for the WIFI or a removable one to swap.
What are your Wired Ethernet and Wireless WIFI devices called in Device Manager?
Can you copy the Hardware IDs of both including the Compatible IDs, and Matching IDs and paste here?
Also which onboard Audio is it? Include the Hardware IDs of both including the Compatible IDs, and Matching ID.
It might be possible to get some multimedia usage out of it for internet only if you really want to use XP on a Broadwell laptop.

#1489 | XPLAKE8175 | I don't want to use my laptop without acpi. I want using with acpi.
#1490 | infuscomus | ⇗ @XPLAKE8175 you should first install XP without ACPI for testing purposes once that works you can re-enable ACPI with another XP install later
#1491 | XPLAKE8175 | I don't want to test
#1492 | infuscomus | ⇗ @XPLAKE8175 If you are not willing to test then there is no way we can help you
#1493 | XPLAKE8175 | I don't want to get help from you.

#1494

XPLives

⇗ @XPLAKE8175

> Zitat von ⇗ XPLAKE8175 im Beitrag ¶ #1491

> I don't want to test

If you don't test you will never find out if it works. Like I said your first complaint is you want to use the internal keyboard. But if you don't do the F7 NO ACPI test you will not find out whether or not the internal keyboard is tied to the USB 2.0 or USB 3.0 ports. If it's tied to the USB 3.0 ports then even with ACPI you are screwed and cannot use the internal keyboard.
I hope you understand this reasoning. Also applying the diderius6 patch requires using a FAT32 partition because you will have to copy the acpi.sys file a few times after each reboot or it will BSOD A5 and you will think it doesn't work.
Also without knowing whether you have USB 2.0 ports that can work with a USB floppy drive or USB flash drive with MSDOS 7.1 you cannot do the acpi.sys overwrite manually. If your USB 3.0 ports can do xHCI hand off and operate as USB 2.0 eHCI then you are in luck.
Unfortunately since I do not own any laptop beyond Ivy Bridge I cannot tell you whether yours has real USB 2.0 ports or USB 3.0 ports or if your USB 3.0 ports can act as USB 2.0 ports.
Infuscomus is correct that you need to do the F7 NO ACPI test to see if you can even get a working desktop screen and use the internal keyboard or external USB mouse. If you can't then it doesn't matter whether it's ACPI or not. Also if you are worried about laptop battery life there is no guarantee even diderius6 acpi.sys can handle sleep mode or stand by mode on laptops. I think it doesn't work on desktops at the moment but I have not tested. Shutdown does work on desktops so I assume it will also work on laptops.
One final thing if you ever get this far to do the F7 NO ACPI test. I can show you how to install 32GB of RAM on the laptop. It might even be possible to use 28GB-29GB as a large Ramdrive on a Broadwell laptop in XP.

#1495

diderius6

⇗ @XPLives
"Also applying the diderius6 patch requires using a FAT32 partition because you will have to copy the acpi.sys file a few times after each reboot or it will BSOD A5 and you will think it doesn't work."
When you use RMPrepUSB v2.1.739 version and you format your harddisk in an ICY USB box,
you can format it with NTFS. With this nice tool, you can also change after its formatting files as much as you want in Vista, Win7..
Dietmar

#1496

daniel_k

> Zitat von ⇗ infuscomus im Beitrag ¶ #1471

> @diderius6
> I tried renesas driver you mentioned in virtualbox - code 39 again

⇗

#1497

XPLives

> Zitat von ⇗ diderius6 im Beitrag ¶ #1495

> @XPLives
> "Also applying the diderius6 patch requires using a FAT32 partition because you will have to copy the acpi.sys file a few times after each reboot or it will BSOD A5 and you will think it doesn't work."
> When you use RMPrepUSB v2.1.739 version and you format your harddisk in an ICY USB box,
> you can format it with NTFS. With this nice tool, you can also change after its formatting files as much as you want in Vista, Win7..
> Dietmar

I like XP on FAT32. :) Easier to do hack tests or use with 98SE to exchange files. I used the built in 98SE DOS to go to prompt so no need for USB floppy. Then modify XP files as needed.
NTFS I only use for large video files. But NTFS only required for Vista+ which is a shame. Would be nice to install Vista or W7 clean onto FAT32 partition.

#1498 | daniel_k | ⇗ @diderius6 Forgot to tell you, I've managed to patch the DSDT of my Z370 to be fully compatible with XP. No patched ACPI.SYS here. Do you have any interest? I can patch the DSDT table of your board if you want, there are several changes to explain here, nothing to do with the eVGA's Z390 XP BIOS.

#1499

diderius6

⇗ @daniel_k
Of course I want to know.
I also think, that it is very interesting here for a lot of people.
I hope, that you have time and mood to write a Tutorial,
Dietmar
PS: I succeed to mod the Bios of my Asus Apex X board. Now I have really full USB support!

#1500 | diderius6 | ⇗ @XPLives Long time ago I wrote Tutorial how to install Vista on Fat32 partition Dietmar ⇗ https://msfn.org/board/topic/102556-how-...at32-partition/

## Page 101

#1501

diderius6

The flash of the modded Bios for the Asus Apex X was not easy.
I downloaded from webside the Bios version 1704,
which works also for the 9900k, despite Asus tells there.
I delete with UEFI-Tool the Cap of this Bios.
Then with Uefi-tool I changed dsdt against my modded one.
But when I try to flash this Bios with Intel flash tool
FPTw.exe -bios -f modbiosfilenamehere.bin
it tells me, that it is not allowed^^ to flash this Bios.
Ok, I try direct Bios flashback on this nice board,
renaming my Bios file to the wished M10A.CAP name.
Does not work.
Then I use the original Bios 1704 from Asus website and change there with Uefi-tool
the DSDT to my modded one.
This time, I do not touch the CAP header of this crazy Bios.
Then I make a new try for to flash via Bios flashback, compi
is not on, only power is connected.
This time it works
Dietmar
PS: As you can see, now ALL USB ports work on this board.
And pur USB boot from XP SP3 works on the Asus Apex X now for the very first time!
⇗

#1502

cedar

⇗ @daniel_k
I absolutely thrilled if you can patch my Asus Prime B350 Plus
of its the DSDT to be fully compatible with XP. Or my
Gigabyte Ivy D3-P75 to use usb 3.0. I have lot of problems install
XP on my Asus Prime B350. Although win2003 works.
That would be great news for many users.
If patched, since it does not need acpi.sys. Can XP64 be installed
as well?.
Cedar

#1503

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1500

> @XPLives
> Long time ago I wrote Tutorial how to install Vista
> on Fat32 partition
> Dietmar
> ⇗ https://msfn.org/board/topic/102556-how-...at32-partition/

Ah... I was hoping you found a new way to install from scratch directly to FAT32 from optical disc install.
Your method involves copying files after installation from NTFS partition.
If you can use a NTFS to FAT32 partition conversion program that would probably do the same?
But still nice that Vista can work on FAT32 after all that work as it should and Windows 7 should as well.
Now how to force NTFS check to be disabled for Vista / Windows 7 fresh optical disc installation from the beginning?
Even XP POS 2009 forces NTFS installation partition and no longer supports installation to FAT32 and forces to partition 1 so you can't install multiple times to different partitions like XP.

#1504

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1499

> @daniel_k
> Of course I want to know.
> I also think, that it is very interesting here for a lot of people.
> I hope, that you have time and mood to write a Tutorial,
> Dietmar
> PS: I succeed to mod the Bios of my Asus Apex X board. Now I have really full USB support!

Using your modified BIOS for USB 3.0 can you test if you install XP in MPS Mode or Standard PC (NO ACPI) without using your acpi.sys does the USB 3.0 still function correctly?

#1505

daniel_k

⇗ @diderius6
Take a look at the tables.
Included is the table of BIOS 4.00, I've already modded it before I realized you were on BIOS 3.20.
daniel_k has attached files to this post

- ⇗ Z37GK6_DSDT_MOD.rar

#1506

diderius6

⇗ @XPLives
"Using your modified BIOS for USB 3.0 can you test if you install XP in MPS Mode or Standard PC (NO ACPI) without using your acpi.sys does the USB 3.0 still function correctly?"
Yes, I just test this. It works in "MPS" and in "ACPI Multiprocessor" mode of XP SP3 also on the Apex X board.
Dietmar

#1507 | cedar | ⇗ @diderius6 Could you please test Xp64 as well? Edit: Nevermind. I was having too much hopes. Cedar

#1508

daniel_k

⇗ @diderius6
Here is the DSDT table of your ROG MAXIMUS X APEX 1704.
Interesting, the ASUS BIOS is almost 100% XP compatible. Check it out.
daniel_k has attached files to this post

- ⇗ MAXIMUS-X-APEX-1704_DSDT_MOD.rar

#1509

daniel_k

> Zitat von ⇗ cedar im Beitrag ¶ #1502

> @daniel_k
> I absolutely thrilled if you can patch my Asus Prime B350 Plus
> of its the DSDT to be fully compatible with XP. Or my
> Gigabyte Ivy D3-P75 to use usb 3.0. I have lot of problems install
> XP on my Asus Prime B350. Although win2003 works.
> That would be great news for many users.
> If patched, since it does not need acpi.sys. Can XP64 be installed
> as well?.
> Cedar

Ryzen has other issues, don't think we can simply patch the ACPI table.

#1510

diderius6

⇗ @daniel_k
"Here is the DSDT table of your ROG MAXIMUS X APEX 1704.
Interesting, the ASUS BIOS is almost 100% XP compatible. Check it out."
Yes, I know this. The board Apex IX before was full XP compatibel from beginning.
And the acpi.sys from Vista-Longhorn 5048 works on ROG MAXIMUS X APEX 1704 without any mod.
But on direct install with normal Acpi.sys from XP I get BSOD A5 (0x11,..)
so I have until now to use my modded acpi.sys from december 2018
Dietmar
PS: So, for me it is very strange, why the asl Tool shows BSOD A5 on this board.

#1511 | asasin | hello again Would you advise something on the main board asus h110m-a / m.2? I still have the same problem with usb.
#1512 | cedar | ⇗ @daniel_k So even the bios modded could not save XP64!. What is the difference between ⇗ @diderius6 's Acpi.sys modded and the Bios modded? Cedar

#1513

diderius6

⇗ @daniel_k
How can you fix so quick a DSDT table?
I need for this whole day..
By the way: For you, to make your life easier,
update the iasl tool.
* Compiler Version 0x20160422 (538313762)
The messages about unknown dependencies are complete gone
with newer version
Dietmar
PS: And thank you a lot!
EDIT: I just notice, that XP support for this iasl.exe is gone.
So I add the last version from iasl.exe, which supports XP.
diderius6 has attached files to this post

- ⇗ iasl-win-20190703.zip
- ⇗ iasl-win-20190509(1).zip

#1514

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1513

> @daniel_k
> By the way: For you, to make your life easier,
> update the iasl tool.
> * Compiler Version 0x20160422 (538313762)
> The messages about unknown dependencies are complete gone
> with newer version

Thanks.
I know that IASL is updated frequently.
For compatibility reasons, I usually like to compile the table with the same version used to build the original, as you should know, the BIOS updates certain variables in the ACPI tables.

#1515

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1510

> @daniel_k
> "Here is the DSDT table of your ROG MAXIMUS X APEX 1704.
> Interesting, the ASUS BIOS is almost 100% XP compatible. Check it out."
> Yes, I know this. The board Apex IX before was full XP compatibel from beginning.
> And the acpi.sys from Vista-Longhorn 5048 works on ROG MAXIMUS X APEX 1704 without any mod.
> But on direct install with normal Acpi.sys from XP I get BSOD A5 (0x11,..)
> so I have until now to use my modded acpi.sys from december 2018
> Dietmar
> PS: So, for me it is very strange, why the asl Tool shows BSOD A5 on this board.

How do you create your modded acpi.sys?
Are you using XP's acpi.sys original file and hex mod?
Can you use Windows 2000's acpi.sys file instead for full forward compatibility will all NT5.X versions?
If not I will help to remake from scratch if I know how you did the XP version.
Also need to disable or reassign default IRQs for devices detected. Any ideas to free IRQ6 from FDC?

## Page 102

#1516 | XPLAKE8175 | But Vista does not get this A5 error message.
#1517 | XPLAKE8175 | My laptop is ASUS too and why I'm getting A5 error on Windows XP but not Vista.
#1518 | XPLAKE8175 | How did you get ACPI on the Latest Gen i9?
#1519 | infuscomus | ⇗ @diderius6 that HWID PCI\VEN_1912&DEV_0014 doesn't match the HWID I get in virtualbox - I get PCI\VEN_8086&DEV_1E31

#1520

infuscomus

> Zitat von ⇗ XPLives im Beitrag ¶ #1515

> Are you using XP's acpi.sys original file and hex mod?
> Can you use Windows 2000's acpi.sys file instead for full forward compatibility will all NT5.X versions?

⇗ @XPLives
We used acpi.sys of Vista beta 5048 because it includes new acpi words like CreateQWordField that are not present in 2000/XP acpi.sys

#1521 | XPLAKE8175 | OK, I will try adding the new acpi words to XP x86 and x64 acpi from Vista x86 and Vista x64. Vista ACPI works on my broadwell laptop.
#1522 | XPLAKE8175 | It finishes to desktop without errors with MPS multiprocessor.
#1523 | XPLAKE8175 | I can disable XHCI preboot mode from bios without bricking BIOS and I can enable Launch CSM setting from BIOS.
#1524 | XPLAKE8175 | How can I patch my DSDT table on my ASUS k555lb laptop without bricking my bios?
#1525 | diderius6 | ⇗ @XPLAKE8175 There is still a risk, even when you have flashed 100 Bios. When you have no experience with Bios mod it is a big risk and I would do NOT! Dietmar

#1526

diderius6

⇗ @daniel_k
I just install your nice USB driver without any Bios mod
on the EVGA z390 dark board.
This is only possible, because its Bios does
not contain the Device (xhc).
Oho, there is a motherboard manufactor with Intel chipset,
who is not slave of Intel
Dietmar
PS: And for the very first time I can boot XP direct from USB on this nice EVGA z390 dark board !
⇗
diderius6 has attached files to this post

- ⇗ USB3forIntel.rar

#1527 | XPLAKE8175 | OK, I will install with your acpi.sys
#1528 | diderius6 | ⇗ @infuscomus "that HWID PCI\VEN_1912&DEV_0014 doesn't match the HWID I get in virtualbox - I get PCI\VEN_8086&DEV_1E31" There are some synonyme in VEN_&DEV_ for an absolut identic device Dietmar
#1529 | diderius6 | Crazy, even the EVGA z390 dark board crashes with BSOD A5 when I upload via asl.exe its own DSDT. So, this tool has a major problem with ACPI on newer boards Dietmar
#1530 | infuscomus | ⇗ @diderius6 even if the device is a synonym - I still get code 39 ⇗ ⇗ ⇗

## Page 103

#1531 | XPLAKE8175 | ⇗ @diderius6 Can I test your modded acpi.sys on my asus k555lb i5 5200u laptop? If it works, may your acpi.sys brick my bios? If I still get ACPI A5 error, I'll send you an error message with error image and error description. I know laptop bios is more vulnerable to brick than desktop bios.

#1532

diderius6

⇗ @infuscomus
This is not the Renesas driver from my post 1367
Dietmar
PS: You can try a change by hand in xhci.inf
to
%PCI\VEN_1912&DEV_0014&REV_01.DeviceDesc% = RUSB3XHC, PCI\CC_0C03

#1533

diderius6

⇗ @XPLAKE8175
No, the modded acpi.sys does nothing with Bios.
This was the reason, why we make it
Dietmar
PS: When you get BSOD A5
you can try this acpi.sys. This was my first from December 2018.
diderius6 has attached files to this post

- ⇗ acpi.rar

#1534 | XPLAKE8175 | OK, I will try.
#1535 | infuscomus | ⇗ @diderius6 yes, i have tried the renesas driver, as well as VIA, Etron, TI, and AMD I have also tried that INF mod all give code 39 in virtualbox 5.2 (last 32bit version) I will boot into 64bit windows to install 6.0 64bit and see if that works

#1536

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1526

> @daniel_k
> I just install your nice USB driver without any Bios mod
> on the EVGA z390 dark board.
> This is only possible, because its Bios does
> not contain the Device (xhc).
> Oho, there is a motherboard manufactor with Intel chipset,
> who is not slave of Intel
> Dietmar
> PS: And for the very first time I can boot XP direct from USB on this nice EVGA z390 dark board !

Can you try 2 things for me please?
- Renesas driver, if it has the same device detection issue or works fine with the proper eVGA XP BIOS.
- Standby/sleep works maybe or even hibernation, I'm really curious about them.

#1537

daniel_k

> Zitat von ⇗ infuscomus im Beitrag ¶ #1535

> @diderius6
> yes, i have tried the renesas driver, as well as VIA, Etron, TI, and AMD
> I have also tried that INF mod
> all give code 39 in virtualbox 5.2 (last 32bit version)
> I will boot into 64bit windows to install 6.0 64bit and see if that works

Here I'm running VirtualBox 6.0.10, maybe this is the reason it works fine?

#1538 | canonkong | ⇗ @daniel_k Most modify usb driver can use on VM, but real machine can not.
#1539 | infuscomus | ⇗ @daniel_k ⇗ @diderius6 So I upgraded virtualbox to 6.0 I still get code 39 maybe it's because my host machine is AMD ryzen?

#1540

diderius6

⇗ @daniel_k
I succeed to start the Renesas USB3 driver on the EVGA board, but behavior is exact like before.
You have to deinstall the xhci.sys driver and in about each 3. attempt you succeed that all the other Hubs are loaded
and the USB devices can be used. If the other Hubs are not loaded, the message "unknown device" appears for each USB device. The same is true for reboot, no USB device starts.
On the Asrock k6 board I succeeded with the Renesas driver in full ACPI, that after reboot the USB devices are correct recogniced
but this was unstable.
Sleeping or Hibernation does not work. XP starts with this, the monitor and harddisk went off.
But then a message appears, that the driver for Acpi sleeping does not work correct and XP starts at once to active mode again
Dietmar
PS: In Hibernation, the compi went down (shuts not complete off), but does not awake again .

#1541 | diderius6 | ⇗ @infuscomus What happens, when you use the driver from post 1095 Dietmar

#1542

daniel_k

> Zitat von ⇗ infuscomus im Beitrag ¶ #1539

> @daniel_k @diderius6
> So I upgraded virtualbox to 6.0
> I still get code 39
> maybe it's because my host machine is AMD ryzen?

Possibly yes.
Don't you have an Intel based system to try it?

#1543 | infuscomus | ⇗ @diderius6 using driver from post 1095, the controller start but hub fails with code 39

#1544

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1540

> @daniel_k
> I succeed to start the Renesas USB3 driver on the EVGA board, but behavior is exact like before.
> You have to deinstall the xhci.sys driver and in about each 3. attempt you succeed that all the other Hubs are loaded
> and the USB devices can be used. If the other Hubs are not loaded, the message "unknown device" appears for each USB device. The same is true for reboot, no USB device starts.
> On the Asrock k6 board I succeeded with the Renesas driver in full ACPI, that after reboot the USB devices are correct recogniced
> but this was unstable.
> Sleeping or Hibernation does not work. XP starts with this, the monitor and harddisk went off.
> But then a message appears, that the driver for Acpi sleeping does not work correct and XP starts at once to active mode again
> Dietmar
> PS: In Hibernation, the compi went down (shuts not complete off), but does not awake again .

Thanks for trying.
That's a pity it doesn't work.
At least I'm not missing anything.

#1545

infuscomus

> Zitat von ⇗ daniel_k im Beitrag ¶ #1542

> Possibly yes.
> Don't you have an Intel based system to try it?

⇗ @daniel_k
I have an older Z97 system i'm not using at the moment, i'll have to setup XP on it
which driver should I test on it first?

## Page 104

#1546

daniel_k

> Zitat von ⇗ infuscomus im Beitrag ¶ #1545

> > Zitat von ⇗ daniel_k im Beitrag ¶ #1542

> > Possibly yes.
> > Don't you have an Intel based system to try it?

> @daniel_k
> I have an older Z97 system i'm not using at the moment, i'll have to setup XP on it
> which driver should I test on it first?

If there is an OS installed and running fine, try VirtualBox with the oficial Renesas driver.
Otherwise, install XP as usual before messing with USB 3.0 drivers.

#1547

cedar

⇗ @infuscomus
As I tried daniel_k AMD-final driver again today on 64 bit XP.
I did get code 39. It was tried on my Ivy board. I also got
code 10 on usb3 root hub and code 28 on controller upon reboots at different time.
It was all tested on real XP64. The 32bit ver. did not installed
at all. We still have a long way to go.
Cedar

#1548 | asasin | How does the "xhci hand-off" option work in bios? I made a flash bios to an earlier version and this option appeared to me. My tests have shown that changing this option does nothing. Any ideas?
#1549 | infuscomus | ⇗ @diderius6 ⇗ @daniel_k I tried virtualbox 6.0 on my intel system, same result as before - code 39 (either on the controller, or the hub, depending on the driver) I'll install XP natively andd see what result I get

#1550

daniel_k

> Zitat von ⇗ infuscomus im Beitrag ¶ #1549

> @diderius6 @daniel_k
> I tried virtualbox 6.0 on my intel system, same result as before - code 39 (either on the controller, or the hub, depending on the driver)
> I'll install XP natively andd see what result I get

Did you follow the instructions outlined in the VB's forum?
⇗ https://forums.virtualbox.org/viewtopic.php?f=28&t=74575

#1551

infuscomus

> Zitat von ⇗ daniel_k im Beitrag ¶ #1550

> Did you follow the instructions outlined in the VB's forum?⇗ https://forums.virtualbox.org/viewtopic.php?f=28&t=74575

⇗ @daniel_k
Thanks, I actually didn't know about this - I thought the emulated intel USB 3.0 was the only option.
So this changes the emulated USB 3.0 controller from an intel to a Renesas?

#1552

diderius6

I changed GbE region in Bios in the Asus Apex X board with Lan i219-V
against the GbE region in Bios from Asus Z87I-PRO with Lan i217-V with the Uefi-tool.
But nothing changed. The Lan is still shown as VEN_8086&DEV_15B8
which is i219-V as before
Dietmar
PS: May be, here is a fundamental missunderstanding.
When I change in the *.inf file against the one for i217-V
I get code 10, exact as before.
And Win7 32 bit starts happy again with its i219-V driver for VEN_8086&DEV_15B8.

#1553 | daniel_k | ⇗ @infuscomus, yes it changes the chipset emulated to a Renesas one. After trying this, if possible, would be great if you could test any of the USB3 drivers and see if it Works with your Z97 board.

#1554

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1552

> I changed GbE region in Bios in the Asus Apex X board with Lan i219-V
> against the GbE region in Bios from Asus Z87I-PRO with Lan i217-V with the Uefi-tool.
> But nothing changed. The Lan is still shown as VEN_8086&DEV_15B8
> which is i219-V as before
> Dietmar
> PS: May be, here is a fundamental missunderstanding.
> When I change in the *.inf file against the one for i217-V
> I get code 10, exact as before.
> And Win7 32 bit starts happy again with its i219-V driver for VEN_8086&DEV_15B8.

Try this.

#1555

diderius6

⇗ @daniel_k
Gives also code 10. What did you change and
do you think, there is any chance to mod this?
Do you know something about GbE region?
I tried also the UBU tool UBU_v1_74_0_3
but no information which can help there
Dietmar
PS: The output from the UBU tool before mod and after
is to 100% identic.
Comparing the both Bios (Original 1704 and after Mod 1704) shows with Beyondcompare 2 (minimal) differences,
very first in the beginning. The rest of the Bios are complete identic.
This code 10 remembers me a lot at code 10 for USB3 before^^.
May be, Intel set this device also to sleep in Bios via 64 bit entries for variables.
Do you know the name of the lan Device () in DSDT?

#1556

diderius6

⇗ @daniel_k
For to test my idea,
I just boot Apex X in "MPS" mode.
Oha, suddently the network i219-v is recogniced as i217-v version 2, installs correct,
but on reboot again code 10.
So, the Bios mod changed something into the right direction, question is about this version 2
Dietmar
Edit: I just see with Ida Pro, that beside *.inf mod you also changed the ID number in e1d5132.sys.
But in the original file, the ID 1559h appears at 3 places,
and you changed only one place.
EDIT2: I change ID
1559h => 15B8h
with Winhex at all its three places in e1d5132.sys.
But this does not help, still code 10.
When I delete this lan driver in device manager,
now always comes the message, that a new device is found
i217-V, its crazy.
diderius6 has attached files to this post

- ⇗ XPnic219-V.rar

#1557 | canonkong | ⇗ @diderius6 Replace GBE, you need to flash the bios with flashback or flash burner. Another is you can compare 219-V GBE and 217-V GBE, find the difference and modify the 219-V GBE.

#1558

diderius6

⇗ @canonkong
"Replace GBE, you need to flash the bios with flashback"
I used the Bios flashback on the Asus Apex X board. Do you mean a special program
and why you need this. And how can I compare this 2 files? I put them here,
Dietmar
EDIT: Is it because normally only the Bios-region is flashed?
But the downloaded Bios file from Website contain its own correct GbE?
EDIT2: Now I think, my GbE files are just nearly empty, right?
I have to use the whole Bios content from both compi, extract its GbE and then
change? This would mean, I need another real Compi or full Bios with i217-V in its Bios.
diderius6 has attached files to this post

- ⇗ i217andi219GBE.rar

#1559 | canonkong | ⇗ @diderius6 219-v: F4 18 00 0A 43 08 13 01 B7 15 AD BA B7 15 B8 15 is dev id 15B7 217-v: F4 18 00 0A 43 08 13 01 3B 15 AD BA 3B 15 3B 15 is dev id 153B What happen you replace the 217 GBE? POST your need bios and a bios has a 217-V/LM from the same brand. I help you to modify it.

#1560

diderius6

⇗ @canonkong
Thanks a lot:))!
When I change this 2 Hexvalues in my own 219-v GbE
and load it up again to my own Bios with Uefi-Tool,
than it is flashed to compi with normal Bios Flashback?
Interesting, what happend, because I changed whole GbE with i219 against Gbe with i217 on my Asus Apex X Bios
Dietmar
PS: I still do not understand this procedure: I just see, that those ID appear more than one time in this Hexvalues.
Which of them is the correct one? Have I to change them all?
Or is it only one time direct after the Hexvalues 13 01?

## Page 105

#1561 | canonkong | ⇗ @diderius6 Flash it. ⇗ https://yadi.sk/d/KFetwSwt-_mSGw

#1562

diderius6

⇗ @canonkong
Thank you. But it looks not as easy.
45 regions are different in this 2 Bios files.
Because I have 1704 Bios version, which is even modded with DSDT table for Intel USB,
I need to understand, how this works
Dietmar

#1563 | canonkong | @ diderius6 217/218/129 series of network cards are incomplete, just a PHY, you can regard GBE as the firmware of this PHY, replacing GBE is like replacing the firmware of network cards. Device ID and MAC address are determined by GBE.

#1564

diderius6

⇗ @canonkong
This is a very good explanation from you!
I just extracted the GBE from those 2 Bios files, that you send to me.
They are 100% identic to my 2 GBE files.
So, why does it not work for me?
When I flash this Bios, is the GBE also flashed or only the Bios region
Dietmar
PS: When the GBE region would be also flashed, my Mac etc. would be gone.

#1565 | canonkong | @ diderius6 GBE is similar to ME and has high permissions. Generally, a burner is needed to burn BIOS.

#1566

diderius6

⇗ @canonkong
Ok, this I understand. I have good Eprom flasher.
So, when I want to keep all my informations as Mac etc.
is there a way just to change the needed values for to go from i219 => i217 ?
Or is the rest really like firmware, so I have to burn the whole package at once?
And then later put my Mac etc. back into Bios by hand?
Dietmar
PS: By the way, now I understand what happens during my Bios flash.
The whole GBE region is complete ignored from compis Biosflashback, it copied only the Bios-region,
so I just changed to an 100% identic Bios.

#1567 | canonkong | ⇗ @diderius6 Yse, use HxD open GBE, the first line 88 88 88..., use MAC replace it and save.

#1568

diderius6

⇗ @canonkong
Thanks a lot, I understand everything.
I do not know anybody, who succeeds to change his 219-V => 217-V.
But always somebody will do it first,
why not me
Dietmar
PS: The funny thing in this is, I have the mainboard ASUS Z87I-Pro with whole Bios with i217-V.
So a make a try, to understand which parts are really needed to be copied, away from Uefi-tool.

#1569

daniel_k

⇗ @diderius6
In DSDT, the LAN is Device (GLAN).
About the driver, many Intel devices are identical, just different IDs.
For each "group" of devices, there are 2 sets of "presets".
Open e1d6232_Win7.sys and search for B8 15 (15B8), you'll find:

    00430451: 3DB8150000      cmp   eax,0000015B8
    00430456: 7F6D           jg   0004304C5     -> JUMP IF GREATER THAN 15B8
    00430456: 3DB7150000      cmp   eax,0000015B7
    00430456: 7D3A           jge   000430499      -> JUMP IF GREATER OR EQUAL (15B7/15B8)
    ...
    00430499: C7819C0000000C000000     mov  d,[ecx][00000009C],00000000C    -> PRESET ID
    004304A3: E91CFEFFFF  jmp   0004302C4

    0043DD98: 3DB8150000     cmp   eax,0000015B8
    0043DD9D: 7F23           jg    00043DDC2
    0043DD9F: 3DB7150000     cmp   eax,0000015B7
    0043DDA4: 7D2C          jge   00043DDD2
    ...
    0043DDD2: 898E406D0000       mov  [esi][000006D40],ecx
    0043DDD8: C7864808000002000000    mov   d,[esi][000000848],2    -> PRESET ID

The XP driver doesn't have the device IDs 15B7 and 15B8, but the presets are there, so I've added a compare against these IDs and, if there is a match, it jumps right to the corresponding ID.
The order of the checks is reversed in the XP driver. First preset is set to 2 and the second is C.
At offset 38F00 there are more checks, against the mask and later against the ID.
Got it?

#1570 | daniel_k | Here is another try.

#1571

diderius6

⇗ @daniel_k
Yes, I understand everything. If there are no other differences between those i219 and i217 it will work.
Oh, nice so much help, also to ⇗ @canonkong!
I will test both methods,
but now I am sure
we get it to work.
And I know, there are a lot of other users,
who go away from XP because no USB and no Internet any longer
Dietmar

#1572

diderius6

⇗ @daniel_k
On "MPS" and on ACPI Multiprocessor again code 10.
Question is, if the drivers for i217 and i219 even for Win7
are a little bit different. I think yes.
And so, the way via firmware change in Bios may be the easier way.
Question in this is only, if those 2 physical devices (called i217 and i219) are identic
Dietmar
PS: And still remains (because of code 10) the possibility, that Device GLAN is killed somewhere
in DSDT for newer Bios via Intel for XP.
Now I am tired and 4 hours after midnight here in germany:))!
But tomorrow..

#1573

diderius6

⇗ @daniel_k
A test for to check the driver compatibility is,
if a real i219 device can run under Win7 with a modded (for i219) i217 driver from Win7
Dietmar
EDIT: For Win7, the i217 and i219 appear for the very first time together in the Intel driver package
Intel® Netzwerk Adapter-Treiber für Windows 7 *
Version: 21.0 (Zuvor veröffentlicht) Datum: 23.05.2016
And in the other package is the very first driver for Intel i217-V for Win7 32 bit.
If THIS driver can be modded for to support i219 on Win7, than XP i219 should be possible.
This driver is from Intel 18.4.
diderius6 has attached files to this post

- ⇗ Win7Inteli217and219bit32.rar
- ⇗ First32bitWin7laniONLY217.rar

#1574

diderius6

⇗ @canonkong
I make a check between the GBE for Bios 1704 from Asus Apex X website
and my GBE direct from Compi.
Ok, in the very first Bytes I see the MAC and I also noted,
that the Hex values for i219
F4 18 00 0A 43 08 13 01 B7 15 AD BA B7 15 B8 15
appear a second time only in GBE from compi. Not so many differences,
so it can be done by hand with Winhex
Dietmar
PS: Now it is the turn, to find all this differences direct in the HEX file of outread Bios from my Apex X with Epromer
and change to the wished owns. The same I do for the Asus Bios of my real board Bios ASUS Z87I-Pro.
diderius6 has attached files to this post

- ⇗ GbeWebsiteAgainstCompiApexX.rar
- ⇗ GBEwebsiteagainstRealCompiASUSZ87I-PRO.rar

#1575

diderius6

⇗ @canonkong ⇗ @daniel_k
I flashed the whole GBE region from Bios of real Compi Asus z87i-Pro
to the Bios 1704 GBE region of the Apex X board.
Now appears at start the message
PXE-E04: Error reading PCI configuration space.
The network card is now indeed shown as i217-V
and with VEN_8086&DEV_153B
but with yellow exclamation mark and code 10.
Dietmar
PS: Everything other on Apex X board seems to work normal.

## Page 106

#1576

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1575

> @canonkong @daniel_k
> I flashed the whole GBE region from Bios of real Compi Asus z87i-Pro
> to the Bios 1704 GBE region of the Apex X board.
> Now appears at start the message
> PXE-E04: Error reading PCI configuration space.
> The network card is now indeed shown as i217-V
> and with VEN_8086&DEV_153B
> but with yellow exclamation mark and code 10.
> Dietmar
> PS: Everything other on Apex X board seems to work normal.

Perhaps you've changed too much?
Attach the old and the new GBE region here.
Can the device ID be found in the GBE region?

#1577 | canonkong | ⇗ @diderius6 PXE need to replace the lom, use uefitool.

#1578

diderius6

⇗ @daniel_k
I make a new try, where I only change at its 4 places in my original Apex X GBE
B815 => 3B15 (like ID hack in drivers).
But exact the message at boot appears
PXE-E04: Error reading PCI configuration space.
The lan device is again shown as i217-V code 10 under Win7 and the same in XP.
⇗ @canonkong
"PXE need to replace the lom, use uefitool."
This message ist to short for me, I dont understand.

#1579 | canonkong | ⇗ @diderius6 Use uefitool serch B8 15, find out this block, and path it out. Use UBU SetDevID to change lom dev_ID, than use this modify lom to replace it back.
#1580 | kukonosau | Do you have ACPI for Windows XP x64 for Ryzen? Windows XP is no laggind in game with Ryzen and graphics card, for example 980 Ti?
#1581 | diderius6 | ⇗ @kukonosau Until now is no good acpi.sys for XP 64 on the market. For me, everything works ok with Ryzen and gtx 980 under XP 32 bit Dietmar
#1582 | kukonosau | Games is no lagging? How to working Windows XP in Ryzen 3 2200G with graphics card 9th series? My motherboard is ASUS AM4 B350 PRIME B350M-K. If buy fraphics card 9th series can I play computer games in Windows XP? I have 1050 Ti, but I haven't drivers for 10th series.

#1583

diderius6

⇗ @canonkong
The problem is, that the Hexvalues B8 15
appear at a lot of places, when I search with Uefi tool.
And which Bios file should I search?
The modded one or the original one with DEV_15B8 ?
Is it in GBE region
Dietmar
Can the words PXE, LOM help me for search?
PXE-E04: Error reading PCI configuration space.
This message is displayed if any of the PCI BIOS calls made to read the PCI configuration space return an error code.
I flashed my own original GBE region from Apex board back.
Now this errormessage is gone but again the networkdevice i219-V is shown (works only under Win7).

#1584 | skullteria | My version of acpi.sys from 5048 is not a good option? On my system (skylake, core i7 6700k and motherboard ) work fine!

#1585

skullteria

> Zitat von ⇗ diderius6 im Beitrag ¶ #1581

> @kukonosau
> Until now is no good acpi.sys for XP 64 on the market.
> For me, everything works ok with Ryzen and gtx 980 under XP 32 bit
> Dietmar

My version of acpi.sys from 5048 is not a good option? On my system (skylake, core i7 6700k and motherboard ) work fine!

#1586 | diderius6 | ⇗ @skullteria We have only the 32 bit version from this acpi.sys 5048 Dietmar PS: And for Ryzen, the hack from infuscomus has also to be done on the acpi.sys 5048 64 bit.

#1587

diderius6

The question is, if the message
PXE-E04: Error reading PCI configuration space.
stops the lan from working or not. It is shown in device manager as i217-V with correct changed ID.
May be it is just a message,
this would mean,
that i217 and i219 are different in hardware
and the driver for pur i217 cant run on i219,
because also Win7 showes code 10
on i219 => i217
modded device
Dietmar

#1588

daniel_k

> Zitat von ⇗ diderius6 im Beitrag ¶ #1587

> The question is, if the message
> PXE-E04: Error reading PCI configuration space.
> stops the lan from working or not. It is shown in device manager as i217-V with correct changed ID.
> May be it is just a message,
> this would mean,
> that i217 and i219 are different in hardware
> and the driver for pur i217 cant run on i219,
> because also Win7 showes code 10
> on i219 => i217
> modded device
> Dietmar

PXE is actuallly an option ROM, read this:
⇗ https://en.wikipedia.org/wiki/Preboot_Execution_Environment
Usually used on diskless systems, boots an OS by loading its files remotely from a connected network.
I think those models are just too diferent for it to work.

#1589 | daniel_k | Try this modded driver, recommened with a BIOS with original GBE region. If this doesn't work, it is very unlikely it ever will.

#1590

diderius6

⇗ @daniel_k
I found the lan chip on the nice Asus z87i-Pro board. From this board I know, that i217 works for XP and Win7.
Intel® Ethernet Controller I217V
Consumer LAN product with support for Energy Efficient Ethernet (802.3AZ)1, Intel® Standard Manageablity, ACBS and standard Gigabit networking features Intended for mobile, desktop, and embedded design
WGI217V
Dietmar
EDIT: The i219-V is integrated in the Intel® Z370 Chipset. So, the hardware is different.
EDIT2: BUT
Key Details
Design is Highly Compatible with the
Intel® 82579 GbE Controller
The Intel® Ethernet Controller I217 is
highly compatible with the Intel® 82579
GbE Controller, making new designs easy
to generate while gaining the improvements
of features now available on the
Intel® Ethernet Controller I217.
⇗

## Page 107

#1591

skullteria

> Zitat von ⇗ diderius6 im Beitrag ¶ #1586

> @skullteria
> We have only the 32 bit version from this acpi.sys 5048
> Dietmar
> PS: And for Ryzen, the hack from infuscomus has also to be done on the acpi.sys 5048 64 bit.

Here version x64
skullteria has attached files to this post

- ⇗ acpi.zip

#1592

diderius6

⇗ @canonkong
After loong search I think I found the wished part via Uefi tool looking in whole Bios.
I look for a header with Hex 55 AA 87 E8.
It is only in
GUID: A0327FE0-1FDA-4E5B-905D-B510C45A61D0
and there only in
Subtype GUID: 50339D20-C90A-4BB2-9AFF-D8A11B23BC15
I extracted the body of this subguide with Uefi Tool and name it otto.bin.
There I found words Intel R) Boot Agent ..
Then I type in commandline (path to UBU)
C:\SetDevID 153B otto.bin ottoModID.bin
and a message tells,
that this ID was set.
With Winhex I take a look what changed. I see, that the DEV_15B8 => DEV_153B as wished.
Now I flash this back to Bios and we will see
Dietmar
⇗

#1593 | canonkong | ⇗ @diderius6 Good, you found the right way. if i217 can not work try i218 or other phy GBE.

#1594

diderius6

⇗ @daniel_k
I tested your new driver with original Bios 1704 From Apex X board under Win7.
Yes, nice idea to test, if this driver pur i217-V, can be modded to support also i219-V.
It is necessary, because if this does not work,
something other is in the way and I would also say incompatible hardware.
During install after about 1 min the compi gets frozen,
so it is not so easy to say what is going on
Dietmar

#1595

XPLives

⇗ @diderius6

> Zitat von ⇗ diderius6 im Beitrag ¶ #1594

> @daniel_k
> I tested your new driver with original Bios 1704 From Apex X board under Win7.
> Yes, nice idea to test, if this driver pur i217-V, can be modded to support also i219-V.
> It is necessary, because if this does not work,
> something other is in the way and I would also say incompatible hardware.
> During install after about 1 min the compi gets frozen,
> so it is not so easy to say what is going on
> Dietmar

I don't think this method is worth the effort. It's possible the chipset is different that even tricking the hardware to appear as i217-V when it is really i219-V if the chips are different then the driver itself still can't function with it. Only Intel has knowledge of their own chips or the company who made the chips could make a new XP driver for i219-V.
This is probably the same reason why Intel HD Graphics 4200 cannot use Intel HD Graphics 4000 XP driver. Possibly the chips are different enough that the code is specific. But probably easiest is the Hardware ID substitution test without going into the BIOS.
It is much easier to just spend $5 to get Realtek 8111E PCIe network card and just use PCIe x1 tiny slot. Or get USB 3.0 card and use USB ethernet or USB wifi adapter if sacrificing just one internal PCIe x1 slot in order to use XP. Then add USB Audio and you got sound. Graphics card still requires another PCIe slot that can't be helped. At most two PCIe slots will be needed for full XP functionality.
In the future Ice Lake and Tiger Lake those onBoard network will be i220-V+ and more foreign. USB 3.X may change to USB 4.0 but hopefully not or only if backward compatible to USB 3.0 then driver can still work. USB 3.0 cards will be the only path forward for easy USB network, USB audio, USB keyboard, and USB mouse if no more PS/2 ports.

#1596 | infuscomus | ⇗ @XPLives PCI-E usb 2.0 cards are still a possibility for XP if you need guaranteed USB for XP ⇗ https://www.ebay.com/itm/USB-2-0-to-PCI-...lEAAOSwaBZZmNXa The following contents have been linked to this post:

#1597

diderius6

⇗ @canonkong ⇗ @daniel_k
I flashed the whole Bios to the Asus Apex X board after integrating all changes from @canonkong.
But the message about PXE stays the same and also the now as i217-V shown lan device has yellow
exclamationmark in XP and in Win7 and does not work (each code 10).
I tried a lot before I succeed to flash this Bios chip in a whole.
From all the Epromers I have, only Revelprog IS works via the TPI socket
with my own build adapter (see photo).
The Epromer can only work, after I connect the normal power supply to the board (board not startet).
The CPU, RAM and Bios battery stay all in the board.
So, there seems to be hardware differences between the i217 and i219
Dietmar
⇗
⇗

#1598

diderius6

I just noticed,
that the Hex values B8 15 for the old Lan i219-V
still remains in
Guid
4953F720-006D-41F5-990D-0AC7742ABB60
and there only in PE32 section of its Subguide
EE4E5898-3914-4259-9D6E-DC7BD79403CF
And the message abbout PXE has not only to do with PXE:
PXE-E04: Error reading PCI configuration space. The Boot Agent cannot continue. PCI configuration space could not be read. Machine is probably not PCI compliant. The Boot Agent was unable to read one or more of the adapter's PCI configuration registers. The adapter may be mis-configured, or the wrong Boot Agent image may be installed on the adapter. The Boot Agent will return control to the BIOS and not attempt to remote boot. Try to update the flash image. If this does not solve the problem, contact your system administrator or Customer Support.
This means: When the lan adapter is misconfigurated, this message appears also
Dietmar
EDIT: Problem in this is only, that B8 15 appears at 5 places. And the UBU tool does not work for this.

#1599

infuscomus

The latest Intel networking driver I can find for XP is 12.7.28
The first version that supports 217 is 12.8.33 - according to daniel_k
they are only a few months apart
I don't know if this can be hacked to work
infuscomus has attached files to this post

- ⇗ intel 12728.zip

#1600 | cedar | ⇗ @skullteria I tried your acpi 64. Unfortunately, it bsod 7E on Ryzen.
#1601 | cedar | With further tests, my Mboard seems to work with usb3.0. Thanks to daniel_k ,canonkong ,diderius6's great efforts. Seem stable at the moment, if not, I can always go back to the Mediasonic PCIe usb3.0 card. ⇗ https://www.amazon.ca/Mediasonic-HP1-SU3-USB-Express-Card/dp/B003X26VVO
#1602 | diderius6 | ⇗ @cedar On which board USB3 works for you now Dietmar
#1603 | cedar | ⇗ @diderius6 Ivy Gigabyte D3-P75.
#1604 | diderius6 | ⇗ @skullteria "I tried your acpi 64. Unfortunately, it bsod 7E on Ryzen." The last hack (only this makes Ryzen work with Acpi) from ⇗ @infuscomus and me is not integrated in this 64 bit version I think Dietmar
#1605 | cedar | @ diderius6 I tried your and infuscomus 64 bit version too. Don't remember if it was B7 or A5.

## Page 108

#1606 | infuscomus | ⇗ @diderius6 when you have time to test, can you test the driver I posted? - post #1599 (it needs an INF mod)

#1607

diderius6

⇗ @infuscomus
Soon I will test your driver, after I did Bios Mod.
Because now I have full, easy to handle Eprom possibility for the Asus Apex X board,
I use it ..
So, I just did the following:
With UEFI tool I copied the whole Intel Gigabyte Lan file *.ffs
from GUIDE 4953F720-006D-41F5-990D-0AC7742ABB60 of the Asus z87i-Pro board Bios
and replace with it the same one in the Apex X Bios. So the problem is gone, how I can change there the DEV_ numbers for lan.
But maybe the DEV_ number for lan is still stored in the Bios at other places.
But it is a try and I think, compi will start
Dietmar

#1608

infuscomus

⇗ @diderius6
actually this driver i think might be better choice
found here -
⇗ https://msfn.org/board/topic/176687-seac...comment=1162644
e1d5132 - XP driver for 218-V
infuscomus has attached files to this post

- ⇗ bearwindows 808615A1_x86.7z.zip

#1609

diderius6

"With UEFI tool I copied the whole Intel Gigabyte Lan file *.ffs
from GUIDE 4953F720-006D-41F5-990D-0AC7742ABB60 of the Asus z87i-Pro board Bios
and replace with it the same one in the Apex X Bios."
Ok, this does not change anything. PXE-04 message again
and again yellow questionmark for the now "i217-V" in the device manager under XP and Win7, all driver tested,
Dietmar
EDIT: I flashed all back to my original, own Bios with DSDT mod for USB3.
Now the lan device is shown again as i219-V,
works under Win7 and XP shows yellow exclamationmark.

#1610

diderius6

⇗ @infuscomus
Easy *.inf mod does not help in XP for lan i219-V with driver bearwindows 808615A1_x86.7z.zip.
It installs and shows then code 10
Dietmar
PS: I modded this driver from Bearwind in exact the same way as he did,
6 places different, just edit *.inf file and A115 (i218-V2) => B815 (i219-V2) and checksum.
In XP and in Win7 this driver is loaded, but then again in both code 10.
This means: The hardware for i217, i218 is compatible but not with i219.

#1611

diderius6

In 2016, they also cant start the i219 driver in Linux.
"The e1000e driver is the one that can run the I2xx intel Ethernet Controllers. And the latest e1000e driver (as of this writing) is capable of running the I219 chip.
The The NVM Checksum Is Not Valid message during boot is what was preventing the older drivers from being loaded. On other OSes (notably MS windows) that error is ignored. But Linux appears to be stricter.
NVM is a ROM (read only memory) in the chip, which undergoes a checksum, and the older version of the e1000 driver was not aware of the NVM contents of the newer chips. Since the card works on other OSes that ignore the error another possibility could have been to force the driver to ignore the error."
Dietmar

#1612 | diderius6 | ⇗ @AddFun do you get my message Dietmar
#1613 | AddFun | Thanks!
#1614 | canonkong | ⇗ @diderius6 Did you try i218 GBE? Or used ID replace to test it?
#1615 | XPLAKE8175 | ⇗ @diderius6 Your ACPI.sys gives the 0x00000D1 BSOD after txt mode. ACPI and ACPI Multiprocessor gives the same error.
#1616 | XPLAKE8175 | Advanced error information is: ACPI.sys - Address F7359AB6 base at F7346000, Datestamp 424d8208
#1617 | XPLAKE8175 | Now I'm installing XP in a fat formatted drive on same laptop

#1618

diderius6

⇗ @XPLAKE8175
The BSOD 0x000000D1 acpi.sys happens, because a PCI device is not handled correct from acpi.sys.
"The Advanced Configuration and Power Interface (ACPI) BIOS on this computer contains a namespace object that is not a PCI device. However, Windows assumes that the device is a PCI device incorrectly. Therefore, if Windows tries to access the PCI configuration space for the device, you receive a "STOP 0x000000D1" error message.
This issue occurs because of an error in the Acpi.sys system driver. The Acpi.sys system driver returns an incorrect flag that causes the device to be regarded as a PCI device instead of a child of the PCI bus. Therefore, the device may not function correctly when the operating system tries to access it by using a special function."
Disable all devices in Bios, that you dont need for install
Dietmar
PS: When this BSOD appears after XP install, it can help when you boot the compi in Safe Mode (F8)
because then only important drivers are loaded.

#1619

diderius6

⇗ @canonkong
i218 I do not test until now.
When I change only the DEV_15B8 => DEV_153B in GBE ( means i219-V => i217-V)
at once after reboot appears the message about PXE 4 error,
which means, that the original ID is safed at other place(s?)
in Bios too
Dietmar

#1620 | infuscomus | ⇗ @XPLAKE8175 Do you get D1 BSOD during textmode setup? or after reboot?

## Page 109

#1621

diderius6

From Intel itself:
"Design is Highly Compatible with the
Intel® I218 Ethernet Connection: The
Intel® Ethernet Connection I219 is highly
compatible with the Intel® Ethernet
Connection I218, making new designs
easy to generate while gaining the improvements
of features now available
on the Intel® Ethernet Controller I219."
Hm, so next try with i219 => i218
Dietmar
EDIT: In porting the i219 to Mac OS, all the devices i217, i218, i219 look very similar.
⇗ https://github.com/al3xtjames/IntelMausi...0(original).cpp

#1622

diderius6

I have the board Asus Z97-DELUXE/USB 3.1
which has the i218-V chip,
so next test extracting whole real GBE from Z97 board and flash to the Apex X board i219-V => i218-V can start
Dietmar
PS: By the way I noticed, that Intel sells the chip WGI219V also as extra device in the same package size.
⇗

#1623

diderius6

Ok, exact the same happens as before.
After changing the whole GBE region
first appears the PXE-4 error,
than under Win7 and XP yellow exclamationmark with code 10,
now for lan device i218-V (DEV_15A1) which is exact the device
for what the bearwind driver XP was modded for
Dietmar
PS: The only(?) problem seems to be this errormessage PXE-4.

#1624

diderius6

I just notice,
that with RW-Everything you can EDIT the
pci configuration space of the i219-v
tomorrow I try
Dietmar
⇗

#1625

canonkong

⇗ @diderius6
Use UEFITOOL open your needed bios, search 42 6F 6F 74 20 41 67 65 6E 74, find it out and right click mouse than Extract Body, use SetDevID to midify the ID, than replace it back the same place. Save the bios. When you finish this, use UBU to checksum the bios first than you can flash it.
I think you meet PXE erro, maybe you have not checksum the bios.
My board with i219-v repalce i219-LM, work very well.
⇗ http://uploadoss.smxdiy.com/forum/201802/08/135216l6gt77a2fx71f967.png
⇗ http://uploadoss.smxdiy.com/forum/201802/08/143055ilplgvwbdp6lbn15.png

#1626

diderius6

⇗ @canonkong
I just extract with Uefitool this file you told me to look for.
When I compare it with Winhex I found,
that it is exact the file, that I extracted 2 days before and where
I use SetDevID from UBU on it.
And this I flashed back,
Dietmar
PS: Yes, I have not tested checksum. But I think, that in the PCI space the nic still tells,
that it has the device ID from before.

#1627 | XPLAKE8175 | ⇗ @infuscomus after reboot. I get this error by installing XP on NTFS

#1628

infuscomus

⇗ @XPLAKE8175
There is a backup copy of acpi.sys located in SP3.CAB and/or DRIVER.CAB - check both
extract the CAB file with 7zip into a separate folder
replace original acpi.sys with patched version
download cabpack 1.4 - ⇗ https://www.techspot.com/downloads/7104-cabpack.html
re-compress CAB file and replace the old one
rebuild XP ISO with nlite

#1629 | XPLAKE8175 | I installed XP without external devices except usb and it reached to the GUI mode
#1630 | XPLAKE8175 | PC copied the modded acpi.
#1631 | XPLAKE8175 | Now I got to the GUI mode. After GUI mode it gives the pre-text mode A5 error.
#1632 | infuscomus | ⇗ @XPLAKE8175 BSOD A5 D1 same as before? can you post a checksum of your acpi.sys in XP /windows/system32/drivers
#1633 | XPLAKE8175 | I installed XP successfully. Now I'm installing Windows 10 alongside windows XP. ACPI detects my battery life successfully. There is one problem that I can't hibernate Windows XP

#1634

diderius6

⇗ @canonkong
Even I try everything, to mod correct the device i219-V => i218-V
this does not work.
I get the same error message at boottime after flashing whole Bios with nice
Epromer Revelprog IS
PXE-E04: Error reading PCI configuration space.
I updated via UBU tool everything for lan, UBU tool tells always success.
The checksums are all ok.
This seems to be a hardware problem, but I think it is only one thing,
which device "i218-V" is asked for, but correct answer can give only i219-V.
Here I notice (see below) that there are a lot of 0x00000000
which are filled with other numbers at the other nic on this board 5 Gigabit LAN AQUANTIA AQC108.
I also noticed with RW-everything (PCI), that the DEV_ ID has changed to the wished
value VEN_8086&DEV_15A1 (i218-V (vers2)).
So, on PCI space now this DEV ID is used, but does not help.
Here is the text from RW everything about this "i218-V" nic now

    ;Bus 00, Device 1F, Function 06 - Intel Corporation Ethernet Controller
    ;Device/Vendor ID	0x15A18086
    ;Revision ID	0x00
    ;Class Code	0x020000
    ;Cacheline Size	0x00
    ;Latency Timer	0x00
    ;Interrupt Pin	INTA
    ;Interrupt Line	IRQ16
    ;BAR1		0xDFA00000
    ;BAR2		0x00000000
    ;BAR3		0x00000000
    ;BAR4		0x00000000
    ;BAR5		0x00000000
    ;BAR6		0x00000000
    ;Expansion ROM	0x00000000
    ;Subsystem ID	0x85C41043

Dietmar

#1635 | infuscomus | ⇗ @diderius6 just curious, does the most recent version XP driver in post #1599 work? or code 10?

## Page 110

#1636

diderius6

⇗ @canonkong
I did the following:
In this modded Bios I only change GBE
against my original GBE (i219-v) and reboot.
No message about PXE 4 error now and internet works in Win7 (shows i219 device).
This simply means, it is enough to mod the *.gbe region.
Ok, next test, I change in my original *.gbe region
only at 4 places ID B815 => A115
Again message PXE 4 error, device "i218" is shown, not works.
Hm, this time I think, the checksum of *.gbe is not correct.
But I have no idea, how to fix its checksum.
I would be happy, if somebody here can fix the checksum for this *.gbe file for me
Dietmar
EDIT: Seems, that i219 has other hardware than i218, despite what Intel says.
i218-V and i219-V are not compatible.
EDIT2: I test the same on the Asrock k6 board. It has i211 and i219-V nics. After changing its GBE against the one from the z97 board (i218-V) no error message appears, but I also cant install the driver. XP tells code 10 and win7 tells code 31.
diderius6 has attached files to this post

- ⇗ ModB8toA1all1704myCompiApexX.rar

#1637 | diderius6 | ⇗ @infuscomus "just curious, does the most recent version XP driver in post #1599 work? or code 10?" Code 10 ^^ Dietmar

#1638

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #1455

> Another idea would be: The DSDT table can be seen in (ACPI only) XP registry
> and also been edited there. But on next boot the Bios loads
> its original own DSDT. If we just can stop writing of Bios its own DSDT to the registry again,
> it would be done

I feel that it is time to remind about my util called "acpi patcher" )
it is dsdt/ssdt table manipulation tool before OS loading, even for winxp textmode setup

#1639

diderius6

⇗ @Mov AX, 0xDEAD
Yes, this is a nice tool. Please write a Tutorial,
which can be used on other compis also. May be your modded DSDT can stay in registry of XP?
For me it is now no problem just to edit DSDT and to flash it to Bios.
But I also learned, that manipulating Bios is always a risk
Dietmar
PS: Have you updated your to do list for XP from page 12 here? USB on Intel chipsets is done .

#1640

daniel_k

⇗ @diderius6
Unfortunately I'm not familiar with those modules, you need to ask someone who is used to UEFI.
In the mean time, I'm sharing my modded version of RSTe, which works just fine with consumer chipsets in AHCI and RAID modes.
Being much newer than 11.2 (2012), this one is much more compatible with new chipsets.
It's version 4.6.0.1085, which originally doesn't work because of missing imports. Seems fairly stable so far and nice performer.
Supports SSD's immediate standby for proper shutdown operation, not supported by versions older than 3.5.1 (RSTe storport) and 11.2.
The only issue it that HDDs spin down during Windows restart.
Could you please also test it? It's 32-bit only, for now, and automatically installs storport.sys.

#1641

infuscomus

⇗ @daniel_k
is this generic? or just newer chipsets?

> Zitat von ⇗ daniel_k im Beitrag ¶ #1640

> which originally doesn't work because of missing imports.

concerning missing imports, would it be possible to fix imports for newer intel lan driver for 219-V for windows 7 to make it compatible with XP?

#1642

daniel_k

> Zitat von ⇗ infuscomus im Beitrag ¶ #1641

> @daniel_k
> is this generic? or just newer chipsets?

Generic.

> Zitat

> concerning missing imports, would it be possible to fix imports for newer intel lan driver for 219-V for windows 7 to make it compatible with XP?

Unfortunately, no.
Only certain driver classes might be compatible across diferent Windows versions, being storage one of them, as long as there are no missing imports.
NDIS, WLAN, Graphics, HID, HDAudio drivers are just impossible.
Even USB XHCI drivers can be incompatible even if there are no missing imports: AMD host drivers newer than the one I've modded will install and aparently work just fine, but will crash when shutting down Windows because it doesn't properly support XP power management.

#1643

diderius6

⇗ @daniel_k
I test your driver RSTe_4.6.0.1085_MOD.rar on the asrock fatal1ty z370 gaming k6 board.
It works:))! I noticed no strange behavior about harddisk spindown.
I test harddisk WD 2TB
ssd disk Samsung 860
nvme boot XP via disk Intel Optane.
I noticed, that also the filter driver iastorF.sys is installed for all the devices above and starts.
It is the Intel version of TRIM.
With cristaldiskinfo I can see, that TRIM is supported but I do not know, how to test under XP,
if TRIM works.
I also noticed, that nvme boot of XP is still possible with the latest storport.sys driver version 5.2.3790.4485.
Nice driver , generic for all Intel ahci
Dietmar
PS: On harddisk, the speed is about the same as with the old ahci 1006 driver from Intel.
On SSD your driver is about 4% faster than the old one.

#1644 | canonkong | ⇗ @daniel_k For AMD USB XHCI, I tested all usb drivers, only Etron usb driver can work very well. Maybe other driver need to find out the breakpoint and use nop to stop it. Like this: ⇗ https://forum.videohelp.com/threads/390651-Way-to-make-Intel-UHD-620-graphics-driver-to-works-in-windows-7-(no-crash)
#1645 | infuscomus | ⇗ @diderius6 have you made any progress on getting XP UEFI to work?

#1646

diderius6

⇗ @infuscomus
I read only a little about XP UEFI,
but have not tried.
First I have to do some ground base work,
what is known and what not.
An interesting message was, that
the XP SP2 32 bit Media version from 2005
can be booted with the bootloader from Vista
Dietmar

#1647

infuscomus

⇗ @diderius6 ⇗ @skullteria ⇗ @kukonosau
I attempted to patch acpi.sys 5048 64 bit
Since I did not have symbols, I made guesses based on similarity comparisons in the assembly.
I don't know how well I did.
Let me know if it works.
infuscomus has attached files to this post

- ⇗ acpi5048 x64 - patch attempt.zip

#1648

Mov AX, 0xDEAD

> Zitat von ⇗ diderius6 im Beitrag ¶ #1643

> With cristaldiskinfo I can see, that TRIM is supported but I do not know, how to test under XP,
> if TRIM works.

same as for win7 - trimcheck
to force generate trim command to drive i used in past TxBENCH (manual with GUI) and O&O Defrag in CLI mode (scheduled at booting time of winxp)

#1649 | kukonosau | Thanks. But "acpi.sys is corrupted" or BSOD. I don't compression archive SP2.CAB, I put file acpi.sy_ in folder AMD64.
#1650 | infuscomus | ⇗ @kukonosau I did not get "acpi.sys is corrupted" error make sure to replace acpi.sy_ in amd64 with new version grab a clean x64 iso here ⇗ https://the-eye.eu/public/MSDN/Windows%20XP/

Part 1 ► Part 2 ► Part 3 ► Part 4 ► Part 5