daniel_k
Content Type
Profiles
Forums
Events
Posts posted by daniel_k
-
-
Was wondering why he was away from the forums.
Dencorso was such a nice person, may he rest in peace.6 -
3 hours ago, Mov AX, 0xDEAD said:
OK, seems issue doesn't depend on multicores run. I asked to test because when i played with last acpi.sys in debugger, breakpoint was triggered on same asm opcode from different threads, so i thinked this may be "race condition" problem in patch
Probablly the same issue I have with XP x64, the difference it's that x86 always runs, while x64 hangs randomly during boot.
It's a long shot, but I think the issue may be related to where Windows stores processor definitions (limited size)?
Vista and later versions are not affected by this too many cores issue.1 -
Regarding Windows XP, even with the source code of acpi.sys, support for Processor Aggregator device won't even happen because you'd need to rewrite processor power management support entirely.
acpi.sys properly parses Processor object, then Intelppm.sys / amdk8.sys / Processr.sys use _CST, _PCT, _PSS and _PPC methods to manage power management / performance states.
So it's "easier" to fix the ACPI tables.0 -
Your mod is correct.
The problem is that the Processor Aggregator device (ACPI000C) treats the cores as ACPI devices.
As you've seen from your tests, it's only supported by Windows 8.0 or later (ACPI 5.0+).
From what I've read, this was created for ARM, but was "ported" to x86.
XP supports ACPI 1.0 plus 2.0 processor support
Vista/7 supports ACPI 2.0 plus 3.0 processor support
Interesting doc about Processor Power Management in Windows 7:
https://download.microsoft.com/download/3/0/2/3027D574-C433-412A-A8B6-5E0A75D5B237/ProcPowerMgmtWin7.docxFor Ryzen, maybe can be fixed by porting processor related code from working boards.
For Alder Lake, maybe can be fixed by looking at Hackintosh patches.
0 -
@Damnation, try to run ThrottleStop 8.50.5
https://www.techpowerup.com/download/techpowerup-throttlestop/
Click on Show older versions and download version 8.60Replace \ThrottleStop.exe with \TS850U\ThrottleStop.exe.
0 -
6 hours ago, Damnation said:
Yes!!
Using grub2 I did a DSDT and SSDT ACPI table modification and I can now confirm with 100% certainty that this ACPI0010 "ACPI Processor Container" Device is the cause of the issue!
I know you're not motivated at all @Mov AX, 0xDEAD but a permanent fix implemented through acpi.sys would still be very much appreciated.
Seriously, stop! How old are you?
Do yourself a favor and seek help.
It's not the first time you ask @Dietmar to buy some hardware just to (try to) fix something for you.
Do you even think before asking such questions?
Now you're trying to persuade @Mov AX, 0xDEAD to fix your Processor power management issue.
Your screenshot is so fake. You didn't accomplish anything because I know you can't.
Here is a real screenshot from VirtualBox:
Notice the CPU model in every enumerated processor?0 -
On 7/7/2022 at 3:12 PM, Mov AX, 0xDEAD said:
no IFR setting -> to hard to 1) find exact uefi module 2) find inject place inside module
in old leaked AMI UEFI sources, tolud used in NBPEI.c/NBPEIBoard.c, i dont know name of final module
Thanks, I've found the probable module, but I'll just leave it as is.
Don't have much time to mess with these things and I use this computer to work.0 -
I'm using a stock ISO with just intel ahci driver and acpi.sys replaced as USB 2.0 support is provided by a PCIe card with MCS9990 chipset.
Still didn't have time to make an updated ISO with the XHCI driver integrated.
0 -
I have two questions for you.
For x86, unfortunately, Gigabyte removed the TOLUD (Top of Low Usable DRAM) setting, there is nothing hidden that I can change regarding reserved memory.
Any ideas of how to find the module responsible for this?
For x64, we don't have a ported Win8 LAN debug. Can you please try to add these 20 processors to your VM testing and see if XP x64 (setup) fails to boot?
Or please explain what software (hypervisor) you use and how to mod the ACPI tables?0 -
Sorry for the delay, I was really busy.
The board was defective and I was doing a mess with the acpi.sys versions.
Fortunately, Amazon gives a whole month to return the board, so got a working replacement.Specs:
- i7-11700K
- 16 GB
- Gigabyte Z490 AORUS PRO AX
You latest acpi.sys works perfectly,
Surprisingly, even standby works on this board!
Sadly, don't know if because of SLI/Crossfire or Thunderbolt support, reserved memory eats almost all of my RAM, only 916 MB available.
For x64, there is a strange behavior, text mode setup hangs unless it is in UniProcessor mode (disable HT and only one core enabled in BIOS).
After install, XP x64 also hangs when loading (logo) if I reenable HT and all cores.
My processor has 8 cores/16 threads, so I did a test and "removed" support for additional cores (11900K has 10 cores/20 threads) from all ACPI tables.
DSDT:
QuoteFrom 20 "cores/threads"
Processor (PR00, 0x01, 0x00001810, 0x06) {} Processor (PR01, 0x02, 0x00001810, 0x06) {} Processor (PR02, 0x03, 0x00001810, 0x06) {} Processor (PR03, 0x04, 0x00001810, 0x06) {} Processor (PR04, 0x05, 0x00001810, 0x06) {} Processor (PR05, 0x06, 0x00001810, 0x06) {} Processor (PR06, 0x07, 0x00001810, 0x06) {} Processor (PR07, 0x08, 0x00001810, 0x06) {} Processor (PR08, 0x09, 0x00001810, 0x06) {} Processor (PR09, 0x0A, 0x00001810, 0x06) {} Processor (PR10, 0x0B, 0x00001810, 0x06) {} Processor (PR11, 0x0C, 0x00001810, 0x06) {} Processor (PR12, 0x0D, 0x00001810, 0x06) {} Processor (PR13, 0x0E, 0x00001810, 0x06) {} Processor (PR14, 0x0F, 0x00001810, 0x06) {} Processor (PR15, 0x10, 0x00001810, 0x06) {} Processor (PR16, 0x11, 0x00001810, 0x06) {} Processor (PR17, 0x12, 0x00001810, 0x06) {} Processor (PR18, 0x13, 0x00001810, 0x06) {} Processor (PR19, 0x14, 0x00001810, 0x06) {}
To 16 "cores/threads"
Processor (PR00, 0x01, 0x00001810, 0x06) {} Processor (PR01, 0x02, 0x00001810, 0x06) {} Processor (PR02, 0x03, 0x00001810, 0x06) {} Processor (PR03, 0x04, 0x00001810, 0x06) {} Processor (PR04, 0x05, 0x00001810, 0x06) {} Processor (PR05, 0x06, 0x00001810, 0x06) {} Processor (PR06, 0x07, 0x00001810, 0x06) {} Processor (PR07, 0x08, 0x00001810, 0x06) {} Processor (PR08, 0x09, 0x00001810, 0x06) {} Processor (PR09, 0x0A, 0x00001810, 0x06) {} Processor (PR10, 0x0B, 0x00001810, 0x06) {} Processor (PR11, 0x0C, 0x00001810, 0x06) {} Processor (PR12, 0x0D, 0x00001810, 0x06) {} Processor (PR13, 0x0E, 0x00001810, 0x06) {} Processor (PR14, 0x0F, 0x00001810, 0x06) {} Processor (PR15, 0x10, 0x00001810, 0x06) {}
Also removed references to PR16~PR19 from other SSDT tables.
With these changes, sometimes it restarts but eventually XP x64 loads properly with all cores / HT enabled.
0 -
Thanks, managed to build it and this time it worked.
Is the log size limited? Did 2 times and the old entries are lost, log is 1.58MB.
Any c0140001 errors in ParseIntObj/ParseString result in AMLILoadDDB failed 0xc0140001?
0 -
Enabled Trace, but top of log is cut off and it ends with Stop 0x7E @ ACPI.sys ( ACPI!ConPrintf+2d)
So sad.
Any ideas?
PS: Do you still have your original source of XP SP3 acpi.sys without the ACPI2+ fixes?
If you do, can you please build a debug version of it for me, please? Maybe it doesn't crash like the checked version from MS.0 -
Can you help me, please?
How do I know the ACPI code/opcode that causes the crash? I want to learn.
I've run a kernel debug session with the checked version of acpi.sys SP3.
It runs AsyncEvalObject on all Devices.
AsyncEvalObject(\_SB.AWAC._STA) seems to succeed, but something happen before showing processing device, which should be DSC0?
f6d60283: Device(AWAC)OSNotifyCreate: 850EF760 (AWAC) = 00000103 ... f6d6222f: Device(DSC0)OSNotifyCreate: 850F4344 (DSC0) = 00000103
0 -
Would be interesting if you could do the test on two scenarios:
- Windows 8 (not 8.1)
- Windows 7 with the ported drivers.
0 -
From what I've read from your links to Linux patches, Bay Trail is crazy (half baked ) design and differs from standards.
Don't think we can fix these issues by patching acpi.sys.
0 -
1 hour ago, Dietmar said:
Seems to be a problem with hdaudbus.sys in XP SP3 and this version of the Realtek device.
Unfortunately, I'm almost 100% sure it's not.
Probably related to GPIO, again.
Related code in DSDT, HDA device:
QuoteDevice (HDEF)
{
Name (_ADR, 0x001B0000) // _ADR: Address
OperationRegion (HDAR, PCI_Config, 0x4C, 0x10)
Field (HDAR, WordAcc, NoLock, Preserve)
{
DCKA, 1,
Offset (0x01),
DCKM, 1,
, 6,
DCKS, 1,
Offset (0x08),
Offset (0x09),
PMEE, 1,
, 6,
PMES, 1
}Method (_STA, 0, NotSerialized) // _STA: Status
{
If (LEqual (HDAD, Zero))
{
Return (0x0F)
}Return (Zero)
}Method (_DSW, 3, NotSerialized) // _DSW: Device Sleep Wake
{
}
}
Virtual GPIO Controller may change HDAD variable:QuoteDevice (GPED)
{
Name (_ADR, Zero) // _ADR: Address
Name (_HID, "INT0002" /* Virtual GPIO Controller */) // _HID: Hardware ID
Name (_CID, "INT0002" /* Virtual GPIO Controller */) // _CID: Compatible ID
Name (_DDN, "Virtual GPIO controller") // _DDN: DOS Device Name
Name (_UID, One) // _UID: Unique ID
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
Name (RBUF, ResourceTemplate ()
{
Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
{
0x00000009,
}
})
Return (RBUF) /* \_SB_.GPED._CRS.RBUF */
}Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (Zero)
}Method (_AEI, 0, Serialized) // _AEI: ACPI Event Interrupts
{
Name (RBUF, ResourceTemplate ()
{
GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullDown, 0x0000,
"\\_SB.GPED", 0x00, ResourceConsumer, ,
)
{ // Pin list
0x0002
}
})
Return (RBUF) /* \_SB_.GPED._AEI.RBUF */
}Method (_E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE
{
If (LEqual (PWBS, One))
{
Store (One, PWBS) /* \PWBS */
}If (LEqual (PMEB, One))
{
Store (One, PMEB) /* \PMEB */
}If (LEqual (^^PCI0.SATA.PMES, One))
{
Store (One, ^^PCI0.SATA.PMES) /* \_SB_.PCI0.SATA.PMES */
Notify (^^PCI0.SATA, 0x02) // Device Wake
}If (LAnd (LEqual (^^PCI0.EM41.PMES, One), LEqual (PCIM, One)))
{
Store (One, ^^PCI0.EM41.PMES) /* \_SB_.PCI0.EM41.PMES */
Notify (^^PCI0.EM41, 0x02) // Device Wake
}If (LAnd (LEqual (^^PCI0.EM45.PMES, One), LEqual (PCIM, One)))
{
Store (One, ^^PCI0.EM45.PMES) /* \_SB_.PCI0.EM45.PMES */
Notify (^^PCI0.EM45, 0x02) // Device Wake
}If (LEqual (HDAD, Zero))
{
If (LEqual (^^PCI0.HDEF.PMES, One)) >>> IF THIS CHECK FAILS, WILL NOT WAKE HDA CONTROLLER
{
Store (One, ^^PCI0.HDEF.PMES) /* \_SB_.PCI0.HDEF.PMES */
Notify (^^PCI0.HDEF, 0x02) // Device Wake
}
}If (LEqual (^^PCI0.EHC1.PMES, One))
{
Store (One, ^^PCI0.EHC1.PMES) /* \_SB_.PCI0.EHC1.PMES */
Notify (^^PCI0.EHC1, 0x02) // Device Wake
}If (LEqual (^^PCI0.XHC1.PMES, One))
{
Store (One, ^^PCI0.XHC1.PMES) /* \_SB_.PCI0.XHC1.PMES */
Notify (^^PCI0.XHC1, 0x02) // Device Wake
}If (LEqual (^^PCI0.SEC0.PMES, One))
{
Or (^^PCI0.SEC0.PMES, Zero, ^^PCI0.SEC0.PMES) /* \_SB_.PCI0.SEC0.PMES */
Notify (^^PCI0.SEC0, 0x02) // Device Wake
}
}
}As GPIO code is not properly parsed, may result in malfunctional devices.
Hmm, it seems that Method (_E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE may not be executed at all?
Can't find any document saying that XP supports this?0 -
1 hour ago, Dietmar said:
EDIT: How do you modd DSDT for Enable IO MWAIT Redirection (fixes CPU C states) ?
This I dont have.
Can you upload here your original DSDT from Gigabyte together with the modded DSDT?
It's not a DSDT modification.
You need to change default BIOS settings (EFI Setup variables, AMI default setting and IFR default setting) because Enable IO MWAIT Redirection it's not visible in BIOS Setup.The same way with Enable TCO Timer (fixes ACPI timer), don't need to patch FACP table.
I'll send you the files later.
1 -
I've managed to get XP working on my Z370 by BIOS modding without patching a single file.
Here is what you need to do:
- patch DSDT table (fixes ACPI A5 errors);
- Enable TCO Timer (fixes ACPI timer);
- Enable IO MWAIT Redirection (fixes CPU C states).1 -
Sent you a PM with acpi compiled with the latest patch for your Flex 10 laptop, thanks to @Mov AX, 0xDEAD
0 -
15 minutes ago, Dietmar said:
PS: So, when the same happens again for another unknown >acpi2.0 word,
you only need to do the same patch in parse.c again via its special byte code.
Yes, but you need to read ACPI specs (pdf) to understand the number of fields of the structure, their size etc.
You can't just copy and paste.
Quote// Connection Field
if (*pctxt->pbOp == 0x02) {
PUCHAR pbOp = pctxt->pbOp + 1;if (*pbOp == 0x11) { // Buffer()
ULONG dwcbBits;
pbOp++;
dwcbBits = ParsePackageLen(&pbOp, NULL);
pctxt->pbOp += dwcbBits;
pctxt->pbOp += 2; // 0x02, 0x11, [...] -> skips 2 bytes
} else { // Name()
pctxt->pbOp += 4; // name len -> skips 4 bytes
pctxt->pbOp += 1; // 0x02, name -> skips 1 byte
}
}0 -
I missed that, yeah, it varies a lot, especially laptops.
0 -
ACPI 5.0+ code is usually used in code related to GPIO, I2C and SDHC devices.
What if we skip/ignore these devices, by comparing string names in _HID/_CID/_DDN against I2C, GPIO or "SD Host"/"SD Card"?
These devices seem to be linked to each other.
0 -
Now I see what you mean.
You can't jump over a certain device because sometimes other code may have references to it.
For example, in your Flex 10 DSDT table, if you skip Device GPO0, it is referenced in Device (SDHC), something bad may happen,
Unless you skip all related devices. In the case of your Flex, GPIO/SDHC/I2C.
0 -
33 minutes ago, Dietmar said:
Dietmar, you need to add that code to amlinew\parser.c and compile ACPI.SYS.
0
Compiling ACPI v2.0 driver for Windows XP SP3 and Windows 2003 SP2 (x32/x64)
in Windows XP
Posted
Yes, please.
Noticed something interesting that may be related.
CPU name reported by CPUID is longer for 11th gen and later processors when compared to 10th gen:
Intel(R) Core(TM) i9-10900 CPU @ 2.80GHz 11th Gen Intel(R) Core(TM) i7-11900K @ 3.50GHz
Can you spoof the CPU name?
Maybe longer name and increased number of cores break something?
Would be nice if you could try to load XP x64 Setup to see if it hangs.