Contribute
Register

<< Solved >> Msi GF63 9RCX Problem HotPatch GPRW PARSEOP_integer error DSDT result

Status
Not open for further replies.
Joined
Nov 5, 2011
Messages
63
Motherboard
MSI GF63 9RCX
CPU
i7-9750H
Graphics
UHD630
Mac
  1. iMac
Mobile Phone
  1. Android
  2. iOS
1024.png



Hi Everyone
Lately I reinstall the Mojave on this computer. very light thin fast but cheap
its i7-9750H CannonLake 300 with Intel I2C, Intel XHC, Realtek8111 Net, IntelAC Wifi.

All working great. Sleep, Shutdown, wake, Brightness, KeyFN. HDMI not tested anyway with USB WIFI.
It was using DSDT+SSDT fix, now using hot patch. still using Clover anyway. Will be go to OpenCore after finishing this problem.
Actually I can't disable GPU Correctly manually as RehabMan did. So I grab SSDT Disable GPU Common from Dornita.github.io

The problem is when I punch the result DSDT from hot patching, got to zipped at origin acpi , a lot of error of unexpected PARSEOP_INTEGER and unexpected EndofFile (kinda miss bracket). I think it is related to SSDT-GPRW.aml and unclean my disable Nvidia SSDT-DGPU.aml.
I tried learn to disable dgpu cleanly, looks _ini method, off_method not related in this dump dsl.


UPDATE: CASE CLOSED. I FORGOT USE REFS.TXT. I AM BACK TO HOTPATCH FULL, INSTEAD PARTIAL HOTPATCH

After checking, I knew the problem.
Basically with hotpatch SSDT-gprw.aml, and patching GPRW method to XPRW method via clover, made how to describe method GPRW internally in the DSDT disappear, made the checked DSDT patched result from clover F5, can't disassembled directly by MaciASL ( a lot of PARSEOP_INTEGER).
Using ref.txt
External (GPRW, MethodObj,2) // 2 Arguments (from opcode)

iasl -da -dl -fe refs.txt.txt DSDT-10060010.aml result from clover patching, just for check it has no error.
Case closed.
 

Attachments

  • debug_8575.zip
    18 MB · Views: 90
  • DSDT-10060010.aml with gprw fix.zip
    40.1 KB · Views: 80
Last edited:
1024.png



Hi Everyone
Lately I reinstall the Mojave on this computer. very light thin fast but cheap
its i7-9750H CannonLake 300 with Intel I2C, Intel XHC, Realtek8111 Net, IntelAC Wifi.

All working great. Sleep, Shutdown, wake, Brightness, KeyFN. HDMI not tested anyway with USB WIFI.
It was using DSDT+SSDT fix, now using hot patch. still using Clover anyway. Will be go to OpenCore after finishing this problem.
Actually I can't disable GPU Correctly manually as RehabMan did. So I grab SSDT Disable GPU Common from Dornita.github.io

The problem is when I punch the result DSDT from hot patching, got to zipped at origin acpi , a lot of error of unexpected PARSEOP_INTEGER and unexpected EndofFile (kinda miss bracket). I think it is related to SSDT-GPRW.aml and unclean my disable Nvidia SSDT-DGPU.aml.
I tried learn to disable dgpu cleanly, looks _ini method, off_method not related in this dump dsl.
may be easier to just use a hotpatch method instead:
 
may be easier to just use a hotpatch method instead:
It was a hotpatch as in the debug file. And I was checked the merge patch result using f5 clover and said a lot of error code parseop_integer.

Now I am back to dsdt plus ssdt patch. Looks good no error at f5 clover patch result.

All worked great even the intel.wifi ac with openintellwireless project .
Gonna try hibernate next, and will post as a guide.

Still thinking about patching dgpu manual, the rehab man way find ini off reg to hard to swallow. Using general hotpatch ssst-dgpu.aml instead.
 
It was a hotpatch as in the debug file. And I was checked the merge patch result using f5 clover and said a lot of error code parseop_integer.

Now I am back to dsdt plus east patch. Looks good no error at f5 clover patch result.
no need for any DSDT edits when using hotpatch

or if you need to edit your DSDT and your other SSDT's, then best to check over:
 
no need for any DSDT edits when using hotpatch

or if you need to edit your DSDT and your other SSDT's, then best to check over:
I did partial hotpatch as 4 ways rehab man thread.


Full hotpatch:
- all patching is done via config.plist
- only add-on SSDTs in ACPI/patched (eg. no patched DSDT, no patched SSDTs)
- SortedOrder can be left unspecified
- DropOem=false

Partial hotpatch:
- patched DSDT.aml in ACPI/patched
- only add-on SSDTs in ACPI/patched (eg. no patched SSDTs)
- renames (applies to DSDT.aml in ACPI/patched and native SSDTs) done with config.plist
- SortedOrder left unspecified
- DropOem=false
 
I did partial hotpatch as 4 ways rehab man thread.


Full hotpatch:
- all patching is done via config.plist
- only add-on SSDTs in ACPI/patched (eg. no patched DSDT, no patched SSDTs)
- SortedOrder can be left unspecified
- DropOem=false

Partial hotpatch:
- patched DSDT.aml in ACPI/patched
- only add-on SSDTs in ACPI/patched (eg. no patched SSDTs)
- renames (applies to DSDT.aml in ACPI/patched and native SSDTs) done with config.plist
- SortedOrder left unspecified
- DropOem=false
so what patches have you done in your DSDT?
 
I think I now the problem

I did the laptop patch via maciasl mainly #usb_prw_0x6d_xhc_skl.txt
remove _PRW methods to prevent instant wake





# delete any existing XHC1 device


into device label XHC1 name_adr 0x00140000 remove_entry;





# if _PRW objects are methods by delete


into method label _PRW parent_adr 0x00140000 remove_entry;


into method label _PRW parent_adr 0x00140001 remove_entry;


# LAN 0x001F0006 PROBLEM PATCH!!!


#into method label _PRW parent_adr 0x001F0006 remove_entry;








# seems to work better if _PRW is present, but returns 0 (original was 3) for sleep state,


# Note: These are methods because some Skylake DSDT call _PRW as a method for no reason


into device name_adr 0x00140000 insert begin Method(_PRW) { Return(Package() { 0x6D, 0 }) } end;


into device name_adr 0x00140001 insert begin Method(_PRW) { Return(Package() { 0x6D, 0 }) } end;


into device name_adr 0x001F0003 insert begin Method(_PRW) { Return(Package() { 0x6D, 0 }) } end;


into device name_adr 0x00190000 insert begin Method(_PRW) { Return(Package() { 0x6D, 0 }) } end;





#AGAIN 0x001F0006 iPROBLEM


#into device name_adr 0x001F0006 insert begin Method(_PRW) { Return(Package() { 0x6D, 0 }) } end;





# Insert Apple USB properties into USB 3.0 XHC


into method label _DSM parent_adr 0x00140000 remove_entry;


into device name_adr 0x00140000 insert


begin


Method (_DSM, 4, NotSerialized)\n


{\n


If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n


Return (Package()\n


{\n


"subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 },\n


"subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 },\n


"AAPL,current-available", 2100,\n


"AAPL,current-extra", 2200,\n


"AAPL,current-extra-in-sleep", 1600,\n


"AAPL,device-internal", 0x02,\n


"AAPL,max-port-current-in-sleep", 2100,\n


})\n


}\n


end;
RehabMan has solution for wake : Delete _PRW whatever it contain and then Changed the (0x6D, 0) from others.
Bur These address 0x001F0006 create problem

Also I did some other patch like V2 wake, noirq fix, hpet fix, gpio SKL+ fix , RTC fix, windows _Osi fix
//===========





#Maintained by: RehabMan for: Laptop Patches


#system_WAK2.txt





into method label _WAK code_regex ([\s\S]*) replace_matched


begin


If (LOr(LLess(Arg0,1),LGreater(Arg0,5))) { Store(3,Arg0) }\n


%1


end;





into method label \_WAK code_regex ([\s\S]*) replace_matched


begin


If (LOr(LLess(Arg0,1),LGreater(Arg0,5))) { Store(3,Arg0) }\n


%1


end;








//============





# GPI0 Status patch


# Ensures that OS X can enumerate the GPI0 controller


# Written and maintained by Alexandre Daoud





into method label _STA parent_label GPI0 replace_content begin





Return (0x0F)





end;





//=============





Windows DSDT Patch for VoodooI2C


# Allows I2C controllers and devices to be discovered by OS X.


# Based off patches written by RehabMan





into_all method code_regex If\s+\([\\]?_OSI\s+\(\"Windows\s2015\"\)\) replace_matched begin If(LOr(_OSI("Darwin"),_OSI("Windows 2015"))) end;





into_all method code_regex If\s+\([\\]?_OSI\s+\(\"Windows\s2013\"\)\) replace_matched begin If(LOr(_OSI("Darwin"),_OSI("Windows 2013"))) end;





into_all method code_regex If\s+\([\\]?_OSI\s+\(\"Windows\s2012\"\)\) replace_matched begin If(LOr(_OSI("Darwin"),_OSI("Windows 2012"))) end;





into_all method code_regex If\s+\([\\]?_OSI\s+\(\"Windows\s2009\"\)\) replace_matched begin If(LOr(_OSI("Darwin"),_OSI("Windows 2009"))) end;








//==============





# IRQ fix


into device name_hid PNP0000 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;


into device name_hid PNP0100 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;


into device name_hid PNP0B00 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;


into device name_hid PNP0103 code_regex IRQNoFlags\s\(\)\n\s+\{.*\} removeall_matched;


into device name_hid PNP0103 code_regex Name\s\(([^,]+),\sResourceTemplate\s\(\).*\n\s+\{((?:.|\n)*)\}\) replace_matched


begin


Name (%1, ResourceTemplate()\n


{\n


IRQNoFlags() { 0, 8, 11, 15 }\n


%2


})\n


end;








//==============


# RTC fix


into device name_hid PNP0B00 code_regex (IO\s\((?:\s*[^,]+,\s*(?:\/\/\s.*)?\s*\n)+\s*)(\dx\d+)(,\s*(?:\/\/\s.*)?\s*\n\s*\)) replace_matched begin %10x02%3 end;





//===============





# HPET fix to avoid AppleIntelCPUPowerManagement panic


into method label _STA parent_hid PNP0103 remove_entry;


into device name_hid PNP0103 code_regex Name\s\(_STA\,\s+0x0F\) remove_matched;


into device name_hid PNP0103 insert


begin


Name (_STA, 0x0F)\n


end;





into method label _CRS parent_hid PNP0103 remove_entry;


into device name_hid PNP0103 insert


begin


Method (_CRS, 0, NotSerialized)\n


{\n


Return (BUF0)\n


}\n


end;



//===============

THE MAIN PROBLEM THAT HOTPATCH FAIL is this portion: _DSW is below _PRW
{


Scope (_SB.PCI0)


{


Device (GLAN)


{


Name (_ADR, 0x001F0006) // _ADR: Address


Name (_S0W, 0x03) // _S0W: S0 Device Wake State


Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake


{


Return (GPRW (0x6D, 0x04))


}






Method (_DSW, 3, NotSerialized) // _DSW: Device Sleep Wake


{



}


}


}


}
Implementing regex MaciASL patching removing first _PRW
into method label _PRW parent_adr 0x001F0006 remove_entry;

{
Scope (_SB.PCI0)
{
Device (GLAN)
{
Name (_ADR, 0x001F0006) // _ADR: Address
Name (_S0W, 0x03) // _S0W: S0 Device Wake State

}
}
A Bracket loss creating error unexpected end of file.

Implementing regex MaciASL patching paste 0x6D,0 in this section creating.
{
Scope (_SB.PCI0)
{
Device (GLAN)
{
Name (_ADR, 0x001F0006) // _ADR: Address
Name (_S0W, 0x03) // _S0W: S0 Device Wake State


Method (_DSW, 3, NotSerialized) // _DSW: Device Sleep Wake
{
}
}
Method(_PRW) { Return(Package() { 0x6D, 0 }) }
}
}

another error...
So I type manual on that
 
{


Scope (_SB.PCI0)


{


Device (GLAN)


{


Name (_ADR, 0x001F0006) // _ADR: Address


Name (_S0W, 0x03) // _S0W: S0 Device Wake State


Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake


{


Return (GPRW (0x6D, 0x00))


}





Method (_DSW, 3, NotSerialized) // _DSW: Device Sleep Wake


{



}


}


}


}

Question with this weird _DSW at GPRW how to get hot patch XPRW?
 
Question with this weird _DSW at GPRW how to get hot patch XPRW?
probably not not needed is a skylake patch for your system

none of those other patches are needed either with your hotpatches
 
After checking, I knew the problem.
Basically with hotpatch SSDT-gprw.aml, and patching GPRW method to XPRW method via clover, made how to describe method GPRW internally in the DSDT disappear, made the checked DSDT patched result from clover F5, can't disassembled directly by MaciASL ( a lot of PARSEOP_INTEGER).
Using ref.txt
External (GPRW, MethodObj,2) // 2 Arguments (from opcode)

iasl -da -dl -fe refs.txt.txt DSDT-10060010.aml result from clover patching, just for check it has no error.
Case closed.
 
Status
Not open for further replies.
Back
Top