Jump to content

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


Mov AX, 0xDEAD

Recommended Posts

@daniel_k

Can you please modd the DSDT from the AMD AM4 board AB350 gaming k4 for me via your wished way,

because I do not know how to put Device (GPIO) inside Device (PCI0).

This DSDT I read just out via EEpromer of the Bios chip.

May be hard work, to make again a *.raw from it and integrate it back into Bios, because of missing entries in head.

Dietmar

DSDTAB350k4ORI.7z

Edited by Dietmar
Link to comment
Share on other sites


@daniel_k

I integrate your *.raw file into Bios.

Then I read with Uefitool again DSDT out in *.raw and compare it with your *.raw before.

They are identic ).

Now I need to put Bios chip, cpu, ram etc. into this board again,

because 2 years not used

Dietmar

EDIT1: I just flash the Bios chip and read it out again and compare with Bios.rom, identic.

Now fun starts )..

Edited by Dietmar
Link to comment
Share on other sites

@daniel_k

I put all together,

but does not help.

Again I see the famous Bsod 7E (0xC0000005, xxx, yyy, zzz)

Dietmar

PS: And when I change the acpi.sys Debug V2 against acpi.sys free V2 with my Ryzen hack,

compi boots to desktop. Happy, that the AB350 gaming k6 is still alive )..

 

Edited by Dietmar
Link to comment
Share on other sites

Thanks, so this means that the issue is probably related to resource assignments.

Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )

The code above is used by the GPIO device only and ACPI "dies" after processing the device.

Edited by daniel_k
Link to comment
Share on other sites

@daniel_k

I think the same.

But to change

Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )  ---->

Interrupt (ResourceConsumer, Edge, ActiveHigh, Shared, ,, )

does not help.

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

This I tried already,

Dietmar

PS: In Linux they introduce an extra function for this problem

Edited by Dietmar
Link to comment
Share on other sites

@daniel_k

Now I am with the Ryzen 3700x on the AB350 gaming k4 board.

Bios is 5.80 .

Win7 SP1 works, Win8.0 works

Dietmar

PS: I notice, that RWeverything produces garbage when you use it for to read out Bios DSDT.

So I use the Bios tool V2. The DSDT is exact the same as you send to me with Mods, so that I am not going nuts with this Bsod )..

 

Edited by Dietmar
Link to comment
Share on other sites

@Mov AX, 0xDEAD

I see that there is a NoOp (No Operation) operator.

Still don't know how the built in AML interpreter in ACPI.SYS works, but what if we create a generic function based on the NoOp and use it for all unsupported opcodes, so the DSDT is properly loaded?

Link to comment
Share on other sites

10 hours ago, Dietmar said:

@Mov AX, 0xDEAD

Do you have an idea, how to forbid a call to AcpiArbCrackPRT() from GPIO (connected to SystemBus directly)

i already wrote how to avoid BSOD and keep running AcpiArbCrackPRT()

see https://msfn.org/board/topic/183464-compiling-acpi-v20-driver-for-windows-xp-sp3-x32-only/?do=findComment&comment=1216379

Link to comment
Share on other sites

8 hours ago, daniel_k said:

@Dietmar

Please do the following test, without the last ACPI patches (only QwordField fix):
- put Device (GPIO) inside Device (PCI0)
- search for _SB.GPIO and replace it with _SB.PCI0.GPIO

So we will know for sure if the issue is the improper location of the GPIO device or the device itself.

@daniel_k

Bad idea, GPIO is not pci device and have fixed IRQ Vector

Problem is bugged acpi code, it should not call AcpiArbCrackPRT() for non-pci devices, or have check for non-pci inside AcpiArbCrackPRT() at least

Link to comment
Share on other sites

10 hours ago, Damnation said:

@Dietmar

maybe try this?

        elseif (((PDEVICE_EXTENSION)Pdo->DeviceExtension)->Flags & DEV_CAP_ISA) {
	            //
	            return STATUS_NOT_FOUND;
        }

this better:

Quote

        elseif (! ((PDEVICE_EXTENSION)Pdo->DeviceExtension)->Flags & DEV_CAP_PCI_DEVICE ) {
                //
                return STATUS_NOT_FOUND;
        }

in both cases we must be 100% sure about configured flags for all devices, need additional debug print

i already did it partialy, but not inside AcpiArbCrackPRT(), check Dietmar's logfile:

Quote

 

ACPIBuildProcessDevicePhaseHid: UpdateFlags=40300000

ACPI\PNP0C02 ACPIBuildProcessDevicePhaseHid:

...

ACPI\PNP0A08-0 ACPIBuildProcessDevicePhaseCid: UpdateFlags=02000000...

 

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...