- Joined
- Aug 20, 2011
- Messages
- 99
- Motherboard
- ASUS PRIME X299-DELUXE
- CPU
- i9-9940X
- Graphics
- Vega64
- Mac
- Mobile Phone
Need help to create a working minimalistic SSDT
Dear @kgp , @apfelnico and all contributors to this thread, thank you a lot for investing so much time and effort in this, which made my new build possible! And I learned again so much. Thanks a lot!
Before evaluating flaws of my build (nearly all working but not very stable) I would like to have a correct and full PCI implementation, but I am stuck at section E) 9.2 though, after a lot of attempts I never got any PCI implementation working.
Although my bootlog saying that the ssdt files were "successfully" loaded, my system inspector PCI list was showing just 5 entries, TBEX3 and GTX1080, with cryptic names and slot entries and the nvidia audio driver not loaded.
Now I want to start with a radical minimalistic SSDT but even that I dont get running because of one compiling error.
I stripped down the SSDT-X299-imacpro.aml with MacIASL to just some lines concerning the eth0 (thought this might be the easiest) and the DTGP method. Is there anything missing?
In the line
Scope (\_SB.PCI0)" I get the compiling error
Error 6117, Existing object has invalid type for Scope operator (\_SB.PCI0 [Untyped])
my minimal ssdt:
Code:DefinitionBlock ("", "SSDT", 1, "NICO", "X299", 0x00000000) { External (_SB_.PCI0.ETH0, DeviceObj) // (from opcode) External (_SB_.PCI0.GBE1, DeviceObj) // (from opcode) External (DTGP, MethodObj) // 5 Arguments (from opcode) Scope (\_SB.PCI0) { Scope (GBE1) { Name (_STA, Zero) // _STA: Status } Device (ETH0) { Name (_ADR, 0x001F0006) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x10) { "AAPL,slot-name", Buffer (0x09) { "Built In" }, "built-in", Buffer (One) { 0x00 }, "name", Buffer (0x16) { "Intel I219V2 Ethernet" }, "model", Buffer (0x2A) { "Intel I219V2 PCI Express Gigabit Ethernet" }, "location", Buffer (0x02) { "2" }, "subsystem-id", Buffer (0x04) { 0x72, 0x86, 0x00, 0x00 }, "device-id", Buffer (0x04) { 0xB8, 0x15, 0x00, 0x00 }, "subsystem-vendor-id", Buffer (0x04) { 0x43, 0x10, 0x00, 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } } Method (DTGP, 5, NotSerialized) { If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b"))) { If (LEqual (Arg1, One)) { If (LEqual (Arg2, Zero)) { Store (Buffer (One) { 0x03 }, Arg4) Return (One) } If (LEqual (Arg2, One)) { Return (One) } } } Store (Buffer (One) { 0x00 }, Arg4) Return (Zero) } }
IORegistryExplorer shows patched PCI0 path.
Activated patches in Clover:
PC00->PCIO, _OSI->XOSI, GBE1->ETH0, _DSM->XDSM, SMBS._ADR -> XSBU.XADR
I use KGPs EFI distribution 180531, 10.13.4SU (17E202)
running SMBIOS imacpro1,1
Would be so nice if someone could guide me to a working SSDT starting point.
Maybe also someone with a working ASUS X299 DELUXE/ 7820X combo could upload his SSDTs/EFI?
Much appreciated.
I attached EFI without SSDTs.
Two things:
1. You need "External (_SB_.PCI0, DeviceObj)"
2. You can remove: "External (DTGP, MethodObj)"
Because the latter is not externally involved (for example, via another SSDT), but is directly in it.