Hi RehabMan,
I am doing my PCI implement for each PCI devices.
I have many 'PXSX' variables for the device's address. So I tried to change it to certain address for iMac Pro. For example, Airport device needs to be changed 'ARPT' but my original board's address name is 'PXSX' Since I know there are many 'PXSX' at other devices, I cannot change it in Config (ACPI- DSDT patches) but only I can change it directly in SSDT. As you can see my Example below:
DefinitionBlock ("", "SSDT", 1, "CLIMB", "Z370", 0x00000000)
{
External (_SB_.PCI0.RP02.ARPT, DeviceObj) // (from opcode)
External (_SB_.PCI0.RP02.PXSX, DeviceObj) // (from opcode)
Scope (_SB.PCI0.RP02.ARPT)
{
OperationRegion (PCIS, PCI_Config, Zero, 0x0100)
Field (PCIS, AnyAcc, NoLock, Preserve)
{
PVID, 16,
PDID, 16
}
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x69, 0x04))
}
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Store (Package (0x0E)
{
"built-in",
Buffer (One)
{
0x00
},
"device-id",
Buffer (0x04)
{
0xA0, 0x43, 0x00, 0x00
},
"AAPL,slot-name",
Buffer (0x07)
{
"Slot-3"
},
"device_type",
Buffer (0x13)
{
"AirPort Controller"
},
"model",
Buffer (0x4A)
{
"OSX WIFI Broadcom BCM94360CD 802.11 a/b/g/n/ac + Bluetooth 4.0 Controller"
},
"compatible",
Buffer (0x0D)
{
"pci14e4,43a0"
},
"name",
Buffer (0x10)
{
"AirPort Extreme"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Name (_SB.PCI0.RP02.PXSX._STA, Zero) // _STA: Status
But IOREG shows alway the 'PXSX' unchanged.
The weird thing is I can change 'PXSX' for NVME to 'ANS2' with the same code.
But another weird thing is that 'PXSX' to 'ANS2' is not changing if it is with other devices codes together.
I am sorry my bad English.
I attached my SSDT files Please see the tile of files and Please help me to fix it.
Do they have to be in sorting method like by alphabetically or by a certain way to edit?