Jump to content

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


Mov AX, 0xDEAD
 Share

Recommended Posts

Hi !

Experimental  Obsolte patch to solve ACPI0007 Processor definition

1) dat.c:
INTERNAL_DEVICE_TABLE AcpiInternalDeviceTable[] = {
    ...
    "ACPI0007",         &AcpiProcessorIrpDispatch,
    NULL,               NULL
} ;

INTERNAL_DEVICE_FLAG_TABLE   AcpiInternalDeviceFlagTable[] = {
    ...
    ACPI0007, DEV_CAP_PROCESSOR,
    NULL,               0
};

2) get.c:
ACPIGetProcessorStatus()
    ...
    ASSERT( DeviceExtension->AcpiObject != NULL );
    ...
    
To:
    ASSERT( DeviceExtension->AcpiObject != NULL );
    
    // patch _HID="ACPI0007" device => Processor() object
    if (NSGETOBJTYPE(DeviceExtension->AcpiObject) == OBJTYPE_DEVICE) {
        PNSOBJ      nsObj = DeviceExtension->AcpiObject;

        nsObj->ObjData.dwDataType = OBJTYPE_PROCESSOR;
        nsObj->ObjData.dwDataLen = sizeof(PROCESSOROBJ);

        nsObj->ObjData.pbDataBuff = (PUCHAR) ExAllocatePoolWithTag(
                                                (NonPagedPool),
                                                nsObj->ObjData.dwDataLen,
                                                'ORPH'
                                                );
        if (nsObj->ObjData.pbDataBuff == NULL) {
            ACPIInternalError( ACPI_GET );
        } else {
            PPROCESSOROBJ pproc;
            PNSOBJ      uidObj;
            ULONG       cpuenum = 0;

            RtlZeroMemory(nsObj->ObjData.pbDataBuff, nsObj->ObjData.dwDataLen);
            pproc = (PPROCESSOROBJ)nsObj->ObjData.pbDataBuff;

            uidObj = ACPIAmliGetNamedChild( nsObj, PACKED_UID ); // if _UID exist
            if (uidObj != NULL && DeviceExtension->InstanceID != NULL) {
                // InstanceID because sync-evaluating "_UID" always return error
                RtlCharToInteger((CONST char *)DeviceExtension->InstanceID, 10, &cpuenum);
            }
            pproc->bApicID   = (UCHAR) cpuenum;

            // FACP.PM1A_Event_Block + 0x10
            pproc->dwPBlk    = (ULONG) AcpiInformation->FixedACPIDescTable->pm1a_evt_blk_io_port + 0x10;

            // 0 or 6 per ACPI spec
            pproc->dwPBlkLen = (ULONG) 6;

            KdPrint(("ACPI0007 CPU=%x PBlk=%x \n", cpuenum, pproc->dwPBlk));
        }
    }

    
For dwPBlk  calculation used tips from TonyMACx86 forum, but i don't sure about accuracy this way (may be force to 0 if Windows never uses Processor Block Registers)

Tested on VirtualBox only, need real hardware confirmation

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


Hi @Mov AX, 0xDEAD,

 

I have just added your fix to my source tree, I was comparing dat.c in Win2k3 vs XPSP1 and there is difference. 2k3 dat.c have ACPI0004 and XP ACPI0006. Is this difference OK?

 

@Damnation @Dietmar

Here is compiled file

https://www.mediafire.com/file/ej2amz70wf4lpyl/acpi_x86_5.1.2600.7777.6.7z/file
Edited by George King
Link to comment
Share on other sites

5 hours ago, George King said:

I have just added your fix to my source tree, I was comparing dat.c in Win2k3 vs XPSP1 and there is difference. 2k3 dat.c have ACPI0004 and XP ACPI0006. Is this difference OK?

Compare binaries from MS, they also different with this alias

XP - ACPI0006 General purpose events device

W2003/W7/... - ACPI0004 Module Device (NEC ACPI Module Device for example)

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

@Mov AX, 0xDEAD @George King @Damnation

The new acpi.sys with new processor definition works on my Asrock z690 Extreme board with 12900k cpu.

But it shows not correct the numbers of cores and cpu's in Device Manager.

Core Temp shows 16 cores and 32 threads,

CPU-Z shows correct 8+8 cores.

With my modified Bios, XP gives Bsod with this acpi.sys.

So I flash the original brandnew Bios 10.4 from Asrock Webside for this board

Dietmar

PS: It looks, as if processors are counted double: This cpu has 24 threads, Device Manager shows 48.

Power consumption is now 25 Watt with 0% load of each core.

Those 25 Watt are much higher than it was with my modded Bios.

EDIT: But the most interesting is: ALL benchmarks show an increase from 100% => 136% (!!!).

So i think, those different benchmarks are real. In this case, power consumption reaches 250 Watt.

My cooler Dark Rock Pro4 can handle this just at its limit, temperature on all cores go up to 91 degrees Celsius,

without any throtteling.

The cpu Benchmarks show an unbelievable +36%(!) increase.

 

processor.png

 

Edited by Dietmar
Link to comment
Share on other sites

@Mov AX, 0xDEAD @George King @Damnation

I make some more tests with the new acpi.sys.

First I notice, that the DSDT in Bios 9.04 and 10.04 for the Asrock z690 Extreme board are exact the same.

Then I modd this 10.04 Bios the way I did before, for to get the old processor definition.

After reboot, I get with the new acpi.sys Bsod 0xA5 (0x11, 0x08, xxx, yyy),

know acpi crash because of error in _AMLILoadDDB() .

Ok, quick dirty hack in the new acpi.sys with IDAPro with 90 90 to go over this Bsod.

Now, compi starts with new acpi.sys, showing the correct 24 cores for the 12900k cpu (8+8).

But now comes the most crazy: The speed of the cpu now again only 100%, as before.

Power consumption nearly zero with 0% load and maximum <200 Watt via Prime95.

This means: Even not all is correct with the new acpi.sys, the processor definition there in gives a jump in cpu power + 36%(!) under XP.

I checked this with different benchmarks

Dietmar

This new acpi.sys

https://ufile.io/d82p7icl

old.png

new.png

 

Edited by Dietmar
Link to comment
Share on other sites

@Mov AX, 0xDEAD @George King @Dietmar

Only partially working

161354797_acpi_sys_partiallyworking.PNG.3713463a3765a874f4d97d2b13c6e05e.PNG

Cores 10 - 19 seem to be working, the rest are all "Unknown Device" - I've no idea why.

edit: I can manually brute force install them and they work, but having to do a manual processor install isn't the best. It's almost solved though.

387334244_acpi_sys_partiallyworking_bruteforceworks.PNG.d833fb4b9cca6223e6b13510d839e713.PNG

I hope you'll have a solution for this @Mov AX, 0xDEAD - Thanks again for all your hard work!

Edited by Damnation
Link to comment
Share on other sites

@Dietmar, @Damnation

1) On VirtualBox virtual CPU cores, there is no difference between Device manager and VM settings.

SSDT always defines 4 cores, legacy Processor() commented, if i set processors=1 in VM settings, only one CPU will be showed inside VM XP, so windows kernel detect processor amount from APIC or other way and skip fake DSDT definitions:

DefinitionBlock ("", "SSDT", 1, "VBOX  ", "VBOXCPUT", 0x00000002)
{
    Scope (\_SB)
    {
        Device (PLTF)
        {
            Name (_HID, "ACPI0010" /* Processor Container Device */)  // _HID: Hardware ID
            Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */)  // _CID: Compatible ID
            Name (_UID, One)  // _UID: Unique ID
            Device (C000)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0)  // _UID: Unique ID
            }

            Device (C001)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 1)  // _UID: Unique ID
            }
            Device (C002)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 2)  // _UID: Unique ID
            }
            Device (C003)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 3)  // _UID: Unique ID
            }
        }
    }        

    Scope (\_PR)
    {
        //Processor (CPU0, 0x00, 0x00000000, 0x00) {}
        //Processor (CPU1, 0x01, 0x00000000, 0x00) {}
        Noop
}


kernel debug log fom new patch:

Quote

CPU=0 PBlk=4010
CPU=1 PBlk=4010
CPU=2 PBlk=4010
CPU=3 PBlk=4010

All 4 definitions are active and sucessfully processed by ACPI interpereter, but cpu1, cpu2, cpu3 are fakes and skipped by kernel

Enumeration of kernel started from 0 and match to DSDT definition _UID=0, _UID=1, _UID=2, _UID=3

 

2) BSOD with new acpi.sys is unexpected, new patch don't touch existing Processor() definition, problem is unknow.

Need kernel crashdump from real hardware for investigation

Link to comment
Share on other sites

Hardware Сpu detection behind in ACPIGetProcessorStatus():

Quote

        if (apicEntry->Type == PROCESSOR_LOCAL_APIC &&
            apicEntry->Length == PROCESSOR_LOCAL_APIC_LENGTH) {
            localApic = (PPROCLOCALAPIC) traversePtr;
            if (localApic->ACPIProcessorID != procObj->bApicID) {

Quote

 

bApicID - DSDT/SSDT Processor ID

ACPIProcessorID - APIC Processor ID

 

Real i3 8100 (4 cores, no HT) DSDT static definition (8 processors):

Quote

    Scope (_PR)
    {
        Processor (CPU0, 0x01, 0x00001810, 0x06) {}
        Processor (CPU1, 0x02, 0x00001810, 0x06) {}
        Processor (CPU2, 0x03, 0x00001810, 0x06) {}
        Processor (CPU3, 0x04, 0x00001810, 0x06) {}
        Processor (CPU4, 0x05, 0x00001810, 0x06) {}
        Processor (CPU5, 0x06, 0x00001810, 0x06) {}
        Processor (CPU6, 0x07, 0x00001810, 0x06) {}
        Processor (CPU7, 0x08, 0x00001810, 0x06) {}
    }

i3 8100 APIC table (4 cores):

Quote

  ACPI Processor ID    0x01 (1)
  APIC ID    0x00 (0)

  ACPI Processor ID    0x02 (2)
  APIC ID    0x02 (2)

  ACPI Processor ID    0x03 (3)
  APIC ID    0x04 (4)

  ACPI Processor ID    0x04 (4)
  APIC ID    0x06 (6)

VBOX DSDT (5 processors):

Quote

            Device (C000)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 0)  // _UID: Unique ID
            }
            Device (C001)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 1)  // _UID: Unique ID
            }
            Device (C002)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 2)  // _UID: Unique ID
            }
            Device (C003)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 3)  // _UID: Unique ID
            }
            Device (C004)
            {
                Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
                Name (_UID, 4)  // _UID: Unique ID
            }

VBOX APIC (VM setted to 2 cores)

Quote

  ACPI Processor ID    0x00 (0)
  APIC ID    0x00 (0)

  ACPI Processor ID    0x01 (1)
  APIC ID    0x01 (1)

ACPIGetProcessorStatus() drops all SSDT/DSDT definitions if Processor ID from APIC not found in definition

Definition can be Processor (CPU0, 0x01, 0x00001810, 0x06)  or new Name (_UID, 0)

Interesting thing - on real H110M Processor ID enumerated from 1, on VBOX - from 0

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

My APIC Table -

Multiple APIC Description Table: 0x00000000BCBCD000

Quote

 

41 50 49 43 5E 01 00 00 03 37 41 4C 41 53 4B 41    APIC^....7ALASKA
41 20 4D 20 49 20 00 00 09 20 07 01 41 4D 49 20    A M I ... ..AMI
13 00 01 00 00 00 E0 FE 01 00 00 00 00 08 00 00    ................
01 00 00 00 00 08 02 02 01 00 00 00 00 08 04 04    ................
01 00 00 00 00 08 06 06 01 00 00 00 00 08 08 08    ................
01 00 00 00 00 08 0A 0A 01 00 00 00 00 08 0C 0C    ................
01 00 00 00 00 08 0E 0E 01 00 00 00 00 08 10 10    ................
01 00 00 00 00 08 12 12 01 00 00 00 00 08 14 14    ................
01 00 00 00 00 08 16 16 01 00 00 00 00 08 18 18    ................
01 00 00 00 00 08 1A 1A 01 00 00 00 00 08 1C 1C    ................
01 00 00 00 00 08 1E 1E 01 00 00 00 00 08 01 01    ................
01 00 00 00 00 08 03 03 01 00 00 00 00 08 05 05    ................
01 00 00 00 00 08 07 07 01 00 00 00 00 08 09 09    ................
01 00 00 00 00 08 0B 0B 01 00 00 00 00 08 0D 0D    ................
01 00 00 00 00 08 0F 0F 01 00 00 00 00 08 11 11    ................
01 00 00 00 00 08 13 13 01 00 00 00 00 08 15 15    ................
01 00 00 00 00 08 17 17 01 00 00 00 00 08 19 19    ................
01 00 00 00 00 08 1B 1B 01 00 00 00 00 08 1D 1D    ................
01 00 00 00 00 08 1F 1F 01 00 00 00 04 06 FF 05    ................
00 01 01 0C 21 00 00 00 C0 FE 00 00 00 00 01 0C    ....!...........
22 00 00 10 C0 FE 18 00 00 00 02 0A 00 00 02 00    "...............
00 00 00 00 02 0A 00 09 09 00 00 00 0F 00          ..............  

Signature    "APIC"
Length    0x0000015E (350)
Revision    0x03 (3)
Checksum    0x37 (55)
OEM ID    "ALASKA"
OEM Table ID    "A M I "
OEM Revision    0x01072009 (17244169)
Creator ID    "AMI "
Creator Revision    0x00010013 (65555)
Local APIC    0xFEE00000
Flags    0x00000001
  Dual-8259    1 - Yes
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x00 (0)
  APIC ID    0x00 (0)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x02 (2)
  APIC ID    0x02 (2)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x04 (4)
  APIC ID    0x04 (4)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x06 (6)
  APIC ID    0x06 (6)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x08 (8)
  APIC ID    0x08 (8)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x0A (10)
  APIC ID    0x0A (10)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x0C (12)
  APIC ID    0x0C (12)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x0E (14)
  APIC ID    0x0E (14)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x10 (16)
  APIC ID    0x10 (16)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x12 (18)
  APIC ID    0x12 (18)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x14 (20)
  APIC ID    0x14 (20)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x16 (22)
  APIC ID    0x16 (22)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x18 (24)
  APIC ID    0x18 (24)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x1A (26)
  APIC ID    0x1A (26)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x1C (28)
  APIC ID    0x1C (28)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x1E (30)
  APIC ID    0x1E (30)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x01 (1)
  APIC ID    0x01 (1)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x03 (3)
  APIC ID    0x03 (3)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x05 (5)
  APIC ID    0x05 (5)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x07 (7)
  APIC ID    0x07 (7)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x09 (9)
  APIC ID    0x09 (9)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x0B (11)
  APIC ID    0x0B (11)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x0D (13)
  APIC ID    0x0D (13)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x0F (15)
  APIC ID    0x0F (15)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x11 (17)
  APIC ID    0x11 (17)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x13 (19)
  APIC ID    0x13 (19)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x15 (21)
  APIC ID    0x15 (21)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x17 (23)
  APIC ID    0x17 (23)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x19 (25)
  APIC ID    0x19 (25)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x1B (27)
  APIC ID    0x1B (27)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x1D (29)
  APIC ID    0x1D (29)
  Flags    0x00000001 (1) - Enabled
Processor Local APIC Structure
  Type    0x00 (0)
  Length    0x08 (8)
  ACPI Processor ID    0x1F (31)
  APIC ID    0x1F (31)
  Flags    0x00000001 (1) - Enabled
Local APIC NMI Structure
  Type    0x04 (4)
  Length    0x06 (6)
  ACPI Processor ID    0xFF (255)
  Flags    0x0005
    Polarity    0x01 - Active high
    Trigger Mode    0x01 - Edge triggered
  Local APIC LINT#    0x01 (1)
I/O APIC Structure
  Type    0x01 (1)
  Length    0x0C (12)
  I/O APIC ID    0x21 (33)
  Reserved    0x00 (0)
  I/O APIC Address    0xFEC00000
  System Interrupt Base    0x00000000 (0)
I/O APIC Structure
  Type    0x01 (1)
  Length    0x0C (12)
  I/O APIC ID    0x22 (34)
  Reserved    0x00 (0)
  I/O APIC Address    0xFEC01000
  System Interrupt Base    0x00000018 (24)
Interrupt Source Override Structure
  Type    0x02 (2)
  Length    0x0A (10)
  Bus    0x00 (0) - ISA
  Source    IRQ0
  System Interrupt    0x00000002 (2)
  Flags    0x0000
    Polarity    0x00 - Conforms to the specifications of the bus
    Trigger Mode    0x00 - Conforms to the specifications of the bus
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

 

and my CPU SSDT
 

Quote

 

Secondary System Description Table: 0x00000000BCBEF000

53 53 44 54 F1 03 00 00 02 65 41 4C 41 53 4B 41    SSDT.....eALASKA
43 50 55 53 53 44 54 00 09 20 07 01 41 4D 49 20    CPUSSDT.. ..AMI
09 20 07 01 10 4C 3C 5C 5F 53 42 5F 5B 82 43 3C    . ...L<\_SB_[.C<
50 4C 54 46 08 5F 48 49 44 0D 41 43 50 49 30 30    PLTF._HID.ACPI00
31 30 00 08 5F 43 49 44 0C 41 D0 0A 05 08 5F 55    10.._CID.A...._U
49 44 01 5B 82 1A 43 30 30 30 08 5F 48 49 44 0D    ID.[..C000._HID.
41 43 50 49 30 30 30 37 00 08 5F 55 49 44 00 5B    ACPI0007.._UID.[
82 1A 43 30 30 31 08 5F 48 49 44 0D 41 43 50 49    ..C001._HID.ACPI
30 30 30 37 00 08 5F 55 49 44 01 5B 82 1B 43 30    0007.._UID.[..C0
30 32 08 5F 48 49 44 0D 41 43 50 49 30 30 30 37    02._HID.ACPI0007
00 08 5F 55 49 44 0A 02 5B 82 1B 43 30 30 33 08    .._UID..[..C003.
5F 48 49 44 0D 41 43 50 49 30 30 30 37 00 08 5F    _HID.ACPI0007.._
55 49 44 0A 03 5B 82 1B 43 30 30 34 08 5F 48 49    UID..[..C004._HI
44 0D 41 43 50 49 30 30 30 37 00 08 5F 55 49 44    D.ACPI0007.._UID
0A 04 5B 82 1B 43 30 30 35 08 5F 48 49 44 0D 41    ..[..C005._HID.A
43 50 49 30 30 30 37 00 08 5F 55 49 44 0A 05 5B    CPI0007.._UID..[
82 1B 43 30 30 36 08 5F 48 49 44 0D 41 43 50 49    ..C006._HID.ACPI
30 30 30 37 00 08 5F 55 49 44 0A 06 5B 82 1B 43    0007.._UID..[..C
30 30 37 08 5F 48 49 44 0D 41 43 50 49 30 30 30    007._HID.ACPI000
37 00 08 5F 55 49 44 0A 07 5B 82 1B 43 30 30 38    7.._UID..[..C008
08 5F 48 49 44 0D 41 43 50 49 30 30 30 37 00 08    ._HID.ACPI0007..
5F 55 49 44 0A 08 5B 82 1B 43 30 30 39 08 5F 48    _UID..[..C009._H
49 44 0D 41 43 50 49 30 30 30 37 00 08 5F 55 49    ID.ACPI0007.._UI
44 0A 09 5B 82 1B 43 30 30 41 08 5F 48 49 44 0D    D..[..C00A._HID.
41 43 50 49 30 30 30 37 00 08 5F 55 49 44 0A 0A    ACPI0007.._UID..
5B 82 1B 43 30 30 42 08 5F 48 49 44 0D 41 43 50    [..C00B._HID.ACP
49 30 30 30 37 00 08 5F 55 49 44 0A 0B 5B 82 1B    I0007.._UID..[..
43 30 30 43 08 5F 48 49 44 0D 41 43 50 49 30 30    C00C._HID.ACPI00
30 37 00 08 5F 55 49 44 0A 0C 5B 82 1B 43 30 30    07.._UID..[..C00
44 08 5F 48 49 44 0D 41 43 50 49 30 30 30 37 00    D._HID.ACPI0007.
08 5F 55 49 44 0A 0D 5B 82 1B 43 30 30 45 08 5F    ._UID..[..C00E._
48 49 44 0D 41 43 50 49 30 30 30 37 00 08 5F 55    HID.ACPI0007.._U
49 44 0A 0E 5B 82 1B 43 30 30 46 08 5F 48 49 44    ID..[..C00F._HID
0D 41 43 50 49 30 30 30 37 00 08 5F 55 49 44 0A    .ACPI0007.._UID.
0F 5B 82 1B 43 30 31 30 08 5F 48 49 44 0D 41 43    .[..C010._HID.AC
50 49 30 30 30 37 00 08 5F 55 49 44 0A 10 5B 82    PI0007.._UID..[.
1B 43 30 31 31 08 5F 48 49 44 0D 41 43 50 49 30    .C011._HID.ACPI0
30 30 37 00 08 5F 55 49 44 0A 11 5B 82 1B 43 30    007.._UID..[..C0
31 32 08 5F 48 49 44 0D 41 43 50 49 30 30 30 37    12._HID.ACPI0007
00 08 5F 55 49 44 0A 12 5B 82 1B 43 30 31 33 08    .._UID..[..C013.
5F 48 49 44 0D 41 43 50 49 30 30 30 37 00 08 5F    _HID.ACPI0007.._
55 49 44 0A 13 5B 82 1B 43 30 31 34 08 5F 48 49    UID..[..C014._HI
44 0D 41 43 50 49 30 30 30 37 00 08 5F 55 49 44    D.ACPI0007.._UID
0A 14 5B 82 1B 43 30 31 35 08 5F 48 49 44 0D 41    ..[..C015._HID.A
43 50 49 30 30 30 37 00 08 5F 55 49 44 0A 15 5B    CPI0007.._UID..[
82 1B 43 30 31 36 08 5F 48 49 44 0D 41 43 50 49    ..C016._HID.ACPI
30 30 30 37 00 08 5F 55 49 44 0A 16 5B 82 1B 43    0007.._UID..[..C
30 31 37 08 5F 48 49 44 0D 41 43 50 49 30 30 30    017._HID.ACPI000
37 00 08 5F 55 49 44 0A 17 5B 82 1B 43 30 31 38    7.._UID..[..C018
08 5F 48 49 44 0D 41 43 50 49 30 30 30 37 00 08    ._HID.ACPI0007..
5F 55 49 44 0A 18 5B 82 1B 43 30 31 39 08 5F 48    _UID..[..C019._H
49 44 0D 41 43 50 49 30 30 30 37 00 08 5F 55 49    ID.ACPI0007.._UI
44 0A 19 5B 82 1B 43 30 31 41 08 5F 48 49 44 0D    D..[..C01A._HID.
41 43 50 49 30 30 30 37 00 08 5F 55 49 44 0A 1A    ACPI0007.._UID..
5B 82 1B 43 30 31 42 08 5F 48 49 44 0D 41 43 50    [..C01B._HID.ACP
49 30 30 30 37 00 08 5F 55 49 44 0A 1B 5B 82 1B    I0007.._UID..[..
43 30 31 43 08 5F 48 49 44 0D 41 43 50 49 30 30    C01C._HID.ACPI00
30 37 00 08 5F 55 49 44 0A 1C 5B 82 1B 43 30 31    07.._UID..[..C01
44 08 5F 48 49 44 0D 41 43 50 49 30 30 30 37 00    D._HID.ACPI0007.
08 5F 55 49 44 0A 1D 5B 82 1B 43 30 31 45 08 5F    ._UID..[..C01E._
48 49 44 0D 41 43 50 49 30 30 30 37 00 08 5F 55    HID.ACPI0007.._U
49 44 0A 1E 5B 82 1B 43 30 31 46 08 5F 48 49 44    ID..[..C01F._HID
0D 41 43 50 49 30 30 30 37 00 08 5F 55 49 44 0A    .ACPI0007.._UID.
1F                                                 .               

Signature    "SSDT"
Length    0x000003F1 (1009)
Revision    0x02 (2)
Checksum    0x65 (101)
OEM ID    "ALASKA"
OEM Table ID    "CPUSSDT"
OEM Revision    0x01072009 (17244169)
Creator ID    "AMI "
Creator Revision    0x01072009 (17244169)
DefinitionBlock ("SSDT.AML", "SSDT", 0x02, "ALASKA", "CPUSSDT", 0x01072009)
{
    Scope(\_SB)
    {
        Device(PLTF)
        {
            Name(_HID, "ACPI0010")
            Name(_CID, EISAID("PNP0A05"))
            Name(_UID, One)
            Device(C000)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, Zero)
            }
            Device(C001)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, One)
            }
            Device(C002)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x02)
            }
            Device(C003)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x03)
            }
            Device(C004)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x04)
            }
            Device(C005)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x05)
            }
            Device(C006)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x06)
            }
            Device(C007)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x07)
            }
            Device(C008)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x08)
            }
            Device(C009)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x09)
            }
            Device(C00A)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x0A)
            }
            Device(C00B)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x0B)
            }
            Device(C00C)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x0C)
            }
            Device(C00D)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x0D)
            }
            Device(C00E)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x0E)
            }
            Device(C00F)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x0F)
            }
            Device(C010)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x10)
            }
            Device(C011)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x11)
            }
            Device(C012)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x12)
            }
            Device(C013)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x13)
            }
            Device(C014)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x14)
            }
            Device(C015)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x15)
            }
            Device(C016)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x16)
            }
            Device(C017)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x17)
            }
            Device(C018)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x18)
            }
            Device(C019)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x19)
            }
            Device(C01A)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x1A)
            }
            Device(C01B)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x1B)
            }
            Device(C01C)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x1C)
            }
            Device(C01D)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x1D)
            }
            Device(C01E)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x1E)
            }
            Device(C01F)
            {
                Name(_HID, "ACPI0007")
                Name(_UID, 0x1F)
            }
        }
    }
}

 

I don't see anything abnormal though.

@Mov AX, 0xDEAD do you see anything?

Link to comment
Share on other sites

@Damnation

1 hour ago, Damnation said:

@Mov AX, 0xDEAD do you see anything?

APIC processor enumeration 0,2,4,..30,1,3,..,31

SSDT enumeration 0,1,...,31

This can be problem because patch is not very good (doesn't  use _UID)

 

Try better version:

1) dat.c

Quote

"ACPI0007",         DEV_CAP_PROCESSOR, =>
"ACPI0007",         DEV_CAP_PROCESSOR | DEV_MASK_INTERNAL_DEVICE,

2) get.c

Quote

            PNSOBJ      uidObj;
            ULONG       cpuenum = 0;

            RtlZeroMemory(nsObj->ObjData.pbDataBuff, nsObj->ObjData.dwDataLen);
            pproc = (PPROCESSOROBJ)nsObj->ObjData.pbDataBuff;

            uidObj = ACPIAmliGetNamedChild( nsObj, PACKED_UID ); // if _UID exist
            if (uidObj != NULL && DeviceExtension->InstanceID != NULL) {
                // InstanceID because sync-evaluating "_UID" always return error
                RtlCharToInteger((CONST char *)DeviceExtension->InstanceID, 10, &cpuenum);
            }

=>

Quote

            PNSOBJ        _UID;
            ULONG         cpuenum = 0;

            RtlZeroMemory(nsObj->ObjData.pbDataBuff, nsObj->ObjData.dwDataLen);
            pproc = (PPROCESSOROBJ)nsObj->ObjData.pbDataBuff;

            _UID = ACPIAmliGetNamedChild(nsObj, PACKED_UID);
            if (_UID != NULL && _UID->ObjData.dwDataType == OBJTYPE_INTDATA ) {
                cpuenum = _UID->ObjData.dwDataValue;
            }




 

 

Link to comment
Share on other sites

@Mov AX, 0xDEAD @George King @Damnation

Waaoooh, this acpi.sys counts the cpu's correct:cheerleader::cheerleader::cheerleader:!!!

I have never seen an 12900k running faster.

Power consumption is now 25 Watt with zero loading.

And with Benchmark it reaches 250 Watt.

But this is the by far best benchmark result for Geekbench 2 until now for XP

Dietmar

PS: With my modded Bios, this cpu is not so fast, 36% less but also less Watt.

@Mov AX, 0xDEAD Any idea, why this happens?

newacpi.png
 

 

Edited by Dietmar
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.


×
×
  • Create New...