Jump to content

Compiling ACPI v2.0 driver for Windows XP SP3 and Windows 2003 SP2 (x32/x64)


Mov AX, 0xDEAD

Recommended Posts


I think, there is a hard limit for number of processors, for this version, which restrict use of all proceessors from your installation.

The limit is placed in "setupp.ini" and in "setupreg.hiv" at build time, then is transferred to "SystemPrefix" during textmode.

Link to comment
Share on other sites

acpi.sys v7777.5, Virtual 12 Cores CPU

qemu 2.10:

1689754967_qemu2_10.png.8e216a71a7348d1e1ed3aab83a9de617.png

qemu 3.1:

687756966_qemu3.1.png.6a31ee961abfa2107b0b4b97e94a480e.png

After reboot both qemus show right names on all cores

First Device detection log is same for "Processor" and "QEMU Virtual CPU version 2.5+"

Quote

Searching for hardware ID(s): acpi\genuineintel_-_x86_family_6_model_6,*genuineintel_-_x86_family_6_model_6,acpi\genuineintel_-_x86_family_6,*genuineintel_-_x86_family_6,acpi\genuineintel_-_x86,*genuineintel_-_x86
Searching for compatible ID(s): acpi\processor
Command line processed: C:\WINDOWS\system32\services.exe
Found "ACPI\Processor" in C:\WINDOWS\Inf\cpu.inf; Device: "Processor"; Driver: "Processor"; Provider: "Microsoft"; Mfg: "(Standard processor types)"; Section name: "Processor_Inst".
Actual install section: [Processor_Inst.NT]. Rank: 0x00002000. Effective driver date: 04/01/2004.
Found "ACPI\GenuineIntel_-_x86_Family_6_Model_6" in C:\WINDOWS\Inf\cpu.inf; Device: "Processor"; Driver: "Processor"; Provider: "Microsoft"; Mfg: "Intel"; Section name: "Processor_Inst".
Actual install section: [Processor_Inst.NT]. Rank: 0x00000000. Effective driver date: 04/01/2004.
Found "ACPI\GenuineIntel_-_x86" in C:\WINDOWS\Inf\cpu.inf; Device: "Intel Processor"; Driver: "Intel Processor"; Provider: "Microsoft"; Mfg: "Intel"; Section name: "IntelPPM_Inst".
Actual install section: [IntelPPM_Inst.NT]. Rank: 0x00000004. Effective driver date: 04/01/2004.
Device install function: DIF_SELECTBESTCOMPATDRV.
Selected driver installs from section [Processor_Inst] in "c:\windows\inf\cpu.inf".
Class GUID of device remains: {50127DC3-0F36-415E-A6CC-4CB3BE910B65}.
Set selected driver.
Selected best compatible driver.
Device install function: DIF_INSTALLDEVICEFILES.
Doing copy-only install of "ACPI\GENUINEINTEL_-_X86_FAMILY_6_MODEL_6\10".
Device install function: DIF_REGISTER_COINSTALLERS.
Coinstallers registered.
Device install function: DIF_INSTALLINTERFACES.
Installing section [Processor_Inst.NT.Interfaces] from "c:\windows\inf\cpu.inf".
Interfaces installed.
Device install function: DIF_INSTALLDEVICE.
Doing full install of "ACPI\GENUINEINTEL_-_X86_FAMILY_6_MODEL_6\10".
Device install of "ACPI\GENUINEINTEL_-_X86_FAMILY_6_MODEL_6\10" finished successfully.

Quote

Searching for hardware ID(s): acpi\genuineintel_-_x86_family_6_model_6,*genuineintel_-_x86_family_6_model_6,acpi\genuineintel_-_x86_family_6,*genuineintel_-_x86_family_6,acpi\genuineintel_-_x86,*genuineintel_-_x86
Searching for compatible ID(s): acpi\processor
Command line processed: C:\WINDOWS\system32\services.exe
Found "ACPI\Processor" in C:\WINDOWS\Inf\cpu.inf; Device: "Processor"; Driver: "Processor"; Provider: "Microsoft"; Mfg: "(Standard processor types)"; Section name: "Processor_Inst".
Actual install section: [Processor_Inst.NT]. Rank: 0x00002000. Effective driver date: 04/01/2004.
Found "ACPI\GenuineIntel_-_x86_Family_6_Model_6" in C:\WINDOWS\Inf\cpu.inf; Device: "Processor"; Driver: "Processor"; Provider: "Microsoft"; Mfg: "Intel"; Section name: "Processor_Inst".
Actual install section: [Processor_Inst.NT]. Rank: 0x00000000. Effective driver date: 04/01/2004.
Found "ACPI\GenuineIntel_-_x86" in C:\WINDOWS\Inf\cpu.inf; Device: "Intel Processor"; Driver: "Intel Processor"; Provider: "Microsoft"; Mfg: "Intel"; Section name: "IntelPPM_Inst".
Actual install section: [IntelPPM_Inst.NT]. Rank: 0x00000004. Effective driver date: 04/01/2004.
Device install function: DIF_SELECTBESTCOMPATDRV.
Selected driver installs from section [Processor_Inst] in "c:\windows\inf\cpu.inf".
Class GUID of device remains: {50127DC3-0F36-415E-A6CC-4CB3BE910B65}.
Set selected driver.
Selected best compatible driver.
Device install function: DIF_INSTALLDEVICEFILES.
Doing copy-only install of "ACPI\GENUINEINTEL_-_X86_FAMILY_6_MODEL_6\_8".
Device install function: DIF_REGISTER_COINSTALLERS.
Coinstallers registered.
Device install function: DIF_INSTALLINTERFACES.
Installing section [Processor_Inst.NT.Interfaces] from "c:\windows\inf\cpu.inf".
Interfaces installed.
Device install function: DIF_INSTALLDEVICE.
Doing full install of "ACPI\GENUINEINTEL_-_X86_FAMILY_6_MODEL_6\_8".
Device install of "ACPI\GENUINEINTEL_-_X86_FAMILY_6_MODEL_6\_8" finished successfully.


 

 

Link to comment
Share on other sites

10 hours ago, Dietmar said:

I think, that the problem is the double definition of a lot of devices in DSDT as @canonkong noticed.

So, win7 gives the same Bsod.

@Dietmar@Andalu

patch already has "7) BSOD 0xA5 (0x11, 0x08, ..., ...) error in _AMLILoadDDB() (doubled device definition)" workaround, new boards may have other issue

Link to comment
Share on other sites

8 hours ago, Mov AX, 0xDEAD said:

@Dietmar@Andalu

patch already has "7) BSOD 0xA5 (0x11, 0x08, ..., ...) error in _AMLILoadDDB() (doubled device definition)" workaround, new boards may have other issue

Hi,

If I have not misinterpreted what is reported in the debug log, it seems that in acpiV6 (SHA-1. 4D8A256457B6D3F5E2FB3E6574DA5A1446BF68F5) the AMLILoadDDB patch is missing:

Quote

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

Using NET for debugging
Opened WinSock 2.0
Waiting to reconnect...
Connected to target 192.168.1.3 on port 50000 on local IP 192.168.1.1.
Connected to Windows XP 2600 x86 compatible target at (Fri Dec 16 12:12:45.921 2022 (UTC - 6:00)), ptr64 FALSE
Kernel Debugger connection established.

************* Symbol Path validation summary **************
Response                         Time (ms)     Location
OK                                             W:\Symbols2
Deferred                                       srv*W:\Symbols4*http://msdl.microsoft.com/download/symbols
Symbol search path is: W:\Symbols2;srv*W:\Symbols4*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows XP Kernel Version 2600 MP (1 procs) Free x86 compatible
Built by: 2600.xpsp_sp3_qfe.180912-0606
Machine Name:
Kernel base = 0x804d7000 PsLoadedModuleList = 0x8055d720
System Uptime: not available
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPI0007 def #2
ACPIInitializeDDB: AMLILoadDDB failed 0xc0140002

*** Assertion failed: ACPIInitializeDDB: AMLILoadDDB failed to load DDB
0
***   Source File: c:\nt\base\busdrv\acpi\driver\shared\acpiinit.c, line 509

Break repeatedly, break Once, Ignore, terminate Process, or terminate Thread (boipt)? i

*** Fatal System Error: 0x000000a5
                       (0x00000011,0x00000008,0xB99CB000,0x20160527)

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 Dec 16 12:12:55.781 2022 (UTC - 6:00)), ptr64 FALSE
Loading Kernel Symbols
..........................
Loading User Symbols

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

Use !analyze -v to get detailed debugging information.

BugCheck A5, {11, 8, b99cb000, 20160527}

*** 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!ACPIInitializeDDB+d4 )

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

nt!RtlpBreakWithStatusInstruction:
8052b724 cc              int     3
0: kd> kd> bu acpi!DriverEntry
Numeric expression missing from '> bu acpi!DriverEntry'
0: 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: 00000011, ACPI_SYSTEM_CANNOT_START_ACPI
    The system could not enter ACPI mode
Arg2: 00000008, Failed to load DDB
Arg3: b99cb000, Pointer to the table that ACPI failed to load
Arg4: 20160527, Creator Revision

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

DEFAULT_BUCKET_ID:  DRIVER_FAULT

BUGCHECK_STR:  0xA5

PROCESS_NAME:  System

ANALYSIS_VERSION: 6.3.9600.17237 (debuggers(dbg).140716-0327) x86fre

DPC_STACK_BASE:  FFFFFFFFBA4C8000

LOCK_ADDRESS:  8055b560 -- (!locks 8055b560)
!locks ffffffff8055b560

Resource @ nt!IopDeviceTreeLock (0x8055b560)    Shared 1 owning threads
     Threads: a6701610-01<*>
1 total locks, 1 locks currently held

PNP_TRIAGE:
    Lock address  : 0x8055b560
    Thread Count  : 1
    Thread address: 0xa6701610
    Thread wait   : 0xaa

LAST_CONTROL_TRANSFER:  from 804f8e95 to 8052b724

STACK_TEXT:  
ba4c2da4 804f8e95 00000003 ba4c3100 00000000 nt!RtlpBreakWithStatusInstruction
ba4c2df0 804f9a80 00000003 b99cb000 00000114 nt!KiBugCheckDebugBreak+0x19
ba4c31d0 804f9fcf 000000a5 00000011 00000008 nt!KeBugCheck2+0x574
ba4c31f0 b9ef6342 000000a5 00000011 00000008 nt!KeBugCheckEx+0x1b
ba4c321c b9ef6627 00000017 a66c4c38 80540b60 ACPI!ACPIInitializeDDB+0xd4 [c:\nt\base\busdrv\acpi\driver\shared\acpiinit.c @ 517]
ba4c3230 b9ef6d37 806e7900 b9edf280 806e7830 ACPI!ACPIInitializeDDBs+0x8d [c:\nt\base\busdrv\acpi\driver\shared\acpiinit.c @ 593]
ba4c3248 b9ea6c55 a66c42a8 a66c3ea0 00000000 ACPI!ACPIInitialize+0x22c [c:\nt\base\busdrv\acpi\driver\shared\acpiinit.c @ 251]
ba4c327c b9ef208b a66c42a8 00000000 b9ef1f57 ACPI!ACPIInitStartACPI+0x6f [c:\nt\base\busdrv\acpi\driver\nt\init.c @ 1211]
ba4c32a8 b9ea2451 a66c42a8 a66c4e00 a66c4f28 ACPI!ACPIRootIrpStartDevice+0x134 [c:\nt\base\busdrv\acpi\driver\nt\root.c @ 1342]
ba4c32dc 804ef1fd a66c42a8 a66c4e70 ba4c3358 ACPI!ACPIDispatchIrp+0x19e [c:\nt\base\busdrv\acpi\driver\nt\dispatch.c @ 690]
ba4c32ec 80592b9b ba4c3358 a66c6960 00000000 nt!IopfCallDriver+0x31
ba4c3318 80592c19 a66c42a8 ba4c3334 00000000 nt!IopSynchronousCall+0xb7
ba4c335c 804f6286 a66c6960 00000000 00000001 nt!IopStartDevice+0x4d
ba4c3378 805922d3 a66c6960 00000000 00000000 nt!PipProcessStartPhase1+0x4e
ba4c35d0 804f696f a66caee8 00000000 00000000 nt!PipProcessDevNodeTree+0x1db
ba4c3614 804f6c14 00000000 00000000 800915c0 nt!PipDeviceActionWorker+0xad
ba4c362c 8069e0ee 00000000 00000006 00000000 nt!PipRequestDeviceAction+0x118
ba4c3690 8069af70 80084000 ba4c36ac 00034000 nt!IopInitializeBootDrivers+0x376
ba4c3838 806993d3 80084000 00000000 a6701610 nt!IoInitSystem+0x712
ba4c3dac 805cffee 80084000 00000000 00000000 nt!Phase1Initialization+0xac7
ba4c3ddc 8054623e 8069890c 80084000 00000000 nt!PspSystemThreadStartup+0x34
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16


STACK_COMMAND:  kb

FOLLOWUP_IP:
ACPI!ACPIInitializeDDB+d4 [c:\nt\base\busdrv\acpi\driver\shared\acpiinit.c @ 517]
b9ef6342 cc              int     3

FAULTING_SOURCE_LINE:  c:\nt\base\busdrv\acpi\driver\shared\acpiinit.c

FAULTING_SOURCE_FILE:  c:\nt\base\busdrv\acpi\driver\shared\acpiinit.c

FAULTING_SOURCE_LINE_NUMBER:  517

SYMBOL_STACK_INDEX:  4

SYMBOL_NAME:  ACPI!ACPIInitializeDDB+d4

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: ACPI

IMAGE_NAME:  ACPI.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  639b3d8b

IMAGE_VERSION:  5.1.2600.7777

FAILURE_BUCKET_ID:  0xA5_ACPI!ACPIInitializeDDB+d4

BUCKET_ID:  0xA5_ACPI!ACPIInitializeDDB+d4

ANALYSIS_SOURCE:  KM

FAILURE_ID_HASH_STRING:  km:0xa5_acpi!acpiinitializeddb+d4

FAILURE_ID_HASH:  {070c51f7-5590-08fc-268b-378a49f1f776}

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

0: kd> lmvm ACPI
start    end        module name
b9e98000 b9f02d80   ACPI       (private pdb symbols)  c:\nt\base\busdrv\acpi\driver\nt\obj\i386\acpi.pdb
    Loaded symbol image file: ACPI.sys
    Image path: ACPI.sys
    Image name: ACPI.sys
    Timestamp:        Thu Dec 15 09:30:19 2022 (639B3D8B)
    CheckSum:         0006EC74
    ImageSize:        0006AD80
    File version:     5.1.2600.7777
    Product version:  5.1.2600.1106
    File flags:       9 (Mask 3F) Debug Private
    File OS:          40004 NT Win32
    File type:        3.7 Driver
    File date:        00000000.00000000
    Translations:     0409.04b0
    CompanyName:      Microsoft Corporation
    ProductName:      Microsoft® Windows® Operating System
    InternalName:     ACPI.sys
    OriginalFilename: ACPI.sys
    ProductVersion:   5.1.2600.1106
    FileVersion:      5,1,2600,7777 built by: Administrator
    FileDescription:  ACPI 2.0 Driver for NT


 

Link to comment
Share on other sites

1 hour ago, Andalu said:

Hi,

If I have not misinterpreted what is reported in the debug log, it seems that in acpiV6 (SHA-1. 4D8A256457B6D3F5E2FB3E6574DA5A1446BF68F5) the AMLILoadDDB patch is missing:

@Andalu

AMLILoadDDB is generic AML Interpreter error, it means some error when DSDT/SSDT processed

I ask you make log with debug mode, you can load old PM with me to detailed steps:

1) use checked(debug) acpi.sys v6, place .pdb to path where acpi.sys was compiled (path is compiler depend)

2) set breakpoint bu acpi!DriverEntry

3) after breakpoint triggered, enable lite debug mode ed Kd_ACPI_Mask 0xFFFFFFFF

4) if lite mode doesnt show more info, use additional heavy debug mode !amli set spewon verboseon logon traceon
but be carefull, it can make log for long time
 

Link to comment
Share on other sites

19 minutes ago, WinWord2000 said:

@Mov AX, 0xDEAD can leaked acpi.sys XP code source modified to be compatible with Windows 2000 ? Please answer

@WinWord2000

Stop asking me about windows 2000, I have already answered what you need to do to get ACPI 2.0 on it, look for people who will do this, not me

Edited by Mov AX, 0xDEAD
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...