xCuri0 / ReBarUEFI

Resizable BAR for (almost) any UEFI system
MIT License
1.29k stars 57 forks source link

Issue with modifying DSDT on ASUS Rampage X79 Black Edition #116

Closed pntsrgd closed 3 months ago

pntsrgd commented 4 months ago

System

After working through a number of issues with DSDT compilation, I'm left with the following:

ASL+ Optimizing Compiler/Disassembler version 20230628
Copyright (c) 2000 - 2023 Intel Corporation

dsdttest.dsl   5808:                                     PLD_Revision           = 0x1,
Error    6105 -              Invalid object type for reserved name ^  (_PLD: found Buffer, Package required)

dsdttest.dsl   5847:                                     PLD_Revision           = 0x1,
Error    6105 -              Invalid object type for reserved name ^  (_PLD: found Buffer, Package required)

dsdttest.dsl   5886:                                     PLD_Revision           = 0x1,
Error    6105 -              Invalid object type for reserved name ^  (_PLD: found Buffer, Package required)

dsdttest.dsl   5925:                                     PLD_Revision           = 0x1,
Error    6105 -              Invalid object type for reserved name ^  (_PLD: found Buffer, Package required)

The corresponding section of the decompiled DSDT looks as follows - beginning on line 5807:

                                Name (_PLD, ToPLD (
                                    PLD_Revision           = 0x1,
                                    PLD_IgnoreColor        = 0x1,
                                    PLD_Red                = 0x0,
                                    PLD_Green              = 0x0,
                                    PLD_Blue               = 0x0,
                                    PLD_Width              = 0x0,
                                    PLD_Height             = 0x0,
                                    PLD_UserVisible        = 0x1,
                                    PLD_Dock               = 0x0,
                                    PLD_Lid                = 0x0,
                                    PLD_Panel              = "UNKNOWN",
                                    PLD_VerticalPosition   = "UPPER",
                                    PLD_HorizontalPosition = "LEFT",
                                    PLD_Shape              = "UNKNOWN",
                                    PLD_GroupOrientation   = 0x0,
                                    PLD_GroupToken         = 0x0,
                                    PLD_GroupPosition      = 0x0,
                                    PLD_Bay                = 0x0,
                                    PLD_Ejectable          = 0x0,
                                    PLD_EjectRequired      = 0x0,
                                    PLD_CabinetNumber      = 0x0,
                                    PLD_CardCageNumber     = 0x0,
                                    PLD_Reference          = 0x0,
                                    PLD_Rotation           = 0x0,
                                    PLD_Order              = 0x0)
)  // _PLD: Physical Location of Device
                            }

Any chance someone knows how to resolve this compiler error?

I've attached the original and modified DSDT files. The DSDT modifications needed for ReBAR have not been applied yet as I am trying to sort out the compiler errors. dsdt.zip

ZOXZX commented 4 months ago

Check DSDT fixes after X79 section: https://github.com/xCuri0/ReBarUEFI/wiki/DSDT-Patching#common-dsdt-errors-and-fixes

You probably need this fix: "Invalid object type for reserved name (_PLD: found Integer Again this uses regex, find (Name\s(_PLD,\s)Package(\s([^)].)[^)]) and replace with $1Package() { Buffer$2}."

Follow all steps from xCuri0s guide or https://www.youtube.com/watch?v=78sdn_H5-pM

pntsrgd commented 4 months ago

Check DSDT fixes after X79 section: https://github.com/xCuri0/ReBarUEFI/wiki/DSDT-Patching#common-dsdt-errors-and-fixes

You probably need this fix: "Invalid object type for reserved name (_PLD: found Integer Again this uses regex, find (Name\s(_PLD,\s)Package(\s([^)].)[^)]) and replace with $1Package() { Buffer$2}."

Follow all steps from xCuri0s guide or https://www.youtube.com/watch?v=78sdn_H5-pM

This is a different issue. This fix has already been used - this is for a package that needs to be buffered. The error I have is a buffer that needs to be a package.

EDIT: Is that your video? I actually found it last night in hopes it would see a similar error, but you didn't appear to have the same compiler issues. I was curious which ASUS motherboard you were using because I was going to compare the DSDT to mine to see if I could identify how that section should look to compile successfully.

xCuri0 commented 4 months ago

Have you tried searching for others who got this same error often you will find out how to fix it on Hackintosh forums that's where I figured out most of the wiki DSDT error fixes from

ZOXZX commented 4 months ago

This is a different issue. This fix has already been used - this is for a package that needs to be buffered. The error I have is a buffer that needs to be a package.

EDIT: Is that your video? I actually found it last night in hopes it would see a similar error, but you didn't appear to have the same compiler issues. I was curious which ASUS motherboard you were using because I was going to compare the DSDT to mine to see if I could identify how that section should look to compile successfully.

Oh, sorry, didn't read carefully enough.

Erasing "_" in all 4 instances of "Name (_PLD, ToPLD..." so it becames "Name (PLD, ToPLD" removes errors, but someone more experienced should check if it's a valid solution. Lines 5808, 5846, 5885 and 5924.

Formula: dsdt.txt

Yes, that video is my try to make it easier for people to fix their x79 systems :-)

pntsrgd commented 4 months ago

I found the following from https://github.com/acpica/acpica/issues/122

                                Name (_PLD, Package(){ToPLD (
                                    PLD_Revision           = 0x1,
                                    PLD_IgnoreColor        = 0x1,
                                    PLD_Red                = 0x0,
                                    PLD_Green              = 0x0,
                                    PLD_Blue               = 0x0,
                                    PLD_Width              = 0x0,
                                    PLD_Height             = 0x0,
                                    PLD_UserVisible        = 0x1,
                                    PLD_Dock               = 0x0,
                                    PLD_Lid                = 0x0,
                                    PLD_Panel              = "UNKNOWN",
                                    PLD_VerticalPosition   = "UPPER",
                                    PLD_HorizontalPosition = "LEFT",
                                    PLD_Shape              = "UNKNOWN",
                                    PLD_GroupOrientation   = 0x0,
                                    PLD_GroupToken         = 0x0,
                                    PLD_GroupPosition      = 0x0,
                                    PLD_Bay                = 0x0,
                                    PLD_Ejectable          = 0x0,
                                    PLD_EjectRequired      = 0x0,
                                    PLD_CabinetNumber      = 0x0,
                                    PLD_CardCageNumber     = 0x0,
                                    PLD_Reference          = 0x0,
                                    PLD_Rotation           = 0x0,
                                    PLD_Order              = 0x0)
})  // _PLD: Physical Location of Device

This allows successful compilation.

xCuri0 commented 3 months ago

@pntsrgd Can I close this issue ?