Mov AX, 0xDEAD Posted November 24, 2022 Author Posted November 24, 2022 (edited) 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 December 18, 2022 by Mov AX, 0xDEAD
George King Posted November 25, 2022 Posted November 25, 2022 (edited) 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 November 28, 2022 by George King
Mov AX, 0xDEAD Posted November 25, 2022 Author Posted November 25, 2022 (edited) 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 November 25, 2022 by Mov AX, 0xDEAD
Dietmar Posted November 25, 2022 Posted November 25, 2022 (edited) @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. Edited November 26, 2022 by Dietmar
Dietmar Posted November 26, 2022 Posted November 26, 2022 (edited) @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 Edited November 26, 2022 by Dietmar
Damnation Posted November 26, 2022 Posted November 26, 2022 (edited) @Mov AX, 0xDEAD @George King @Dietmar Only partially working 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. I hope you'll have a solution for this @Mov AX, 0xDEAD - Thanks again for all your hard work! Edited November 26, 2022 by Damnation
Mov AX, 0xDEAD Posted November 26, 2022 Author Posted November 26, 2022 @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
Mov AX, 0xDEAD Posted November 26, 2022 Author Posted November 26, 2022 (edited) 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 November 26, 2022 by Mov AX, 0xDEAD
Damnation Posted November 27, 2022 Posted November 27, 2022 @Mov AX, 0xDEAD Regarding my setup where it's only enumerating Cores 10-19? why would it just be those cores and not also 0-9 and 20-32? is there an incorrect count somewhere?
Mov AX, 0xDEAD Posted November 27, 2022 Author Posted November 27, 2022 26 minutes ago, Damnation said: @Mov AX, 0xDEAD Regarding my setup where it's only enumerating Cores 10-19? why would it just be those cores and not also 0-9 and 20-32? is there an incorrect count somewhere? Dump actual APIC table and check against SSDT, look for Processor ID
Damnation Posted November 28, 2022 Posted November 28, 2022 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?
Mov AX, 0xDEAD Posted November 28, 2022 Author Posted November 28, 2022 @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; }
George King Posted November 28, 2022 Posted November 28, 2022 @Dietmar @Damnation Here is compiled files with latest changes https://www.mediafire.com/file/ej2amz70wf4lpyl/acpi_x86_5.1.2600.7777.6.7z/file
Dave-H Posted November 28, 2022 Posted November 28, 2022 Presumably this new version of acpi.sys will make no difference on my Lenovo Flex 10?
Dietmar Posted November 28, 2022 Posted November 28, 2022 (edited) @Mov AX, 0xDEAD @George King @Damnation Waaoooh, this acpi.sys counts the cpu's correct!!! 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? Edited November 28, 2022 by Dietmar
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now