Nicht gleich eingeschnappt sein, im Guide werden auch solche Beispiele behandelt.
Dieses Beispiel ist schon korrekt. Am PCIe Root Port (PCH) RPxx (von 01-24 in der ACPI) hängt generell das Device "PXSX". Was da dann ein Mainboard-Hersteller anbaumelt, ist dem überlassen. Können zusätzliche USB-Controller sein (oft ASMedia), zusätzliche Netzwerkkarten, M.2, U.2, Wifi, weitere SATA-Controller etc. Im Beispiel hängt an RP21/PXSX eben eine M.2. Nichts ungewöhnliches. OSI Abfrage, wenn "Darwin", dann bitte diese _DSM-Methode. Du kannst in den Packages sämtliche Buffergrößen weglassen, da musst du nix zählen, einfach "Buffer ()" schreiben. Beim sichern der AML werden die Werte automatisch gesetzt, siehst du beim erneuten öffnen der Datei.
"Model" – diese Angabe ist recht nett, dass siehst du dann im Systembericht unter PCI.
device_type muss nicht unbedingt gesetzt werden, in der Regel weiß macOS selbst, was das ist. device-id, revision-id sowie compatible werden hier im Beispiel nur benötigt, damit dieser Controller, der eigentlich andere Adressen hat, als ein Apple-Gerät darsteht. Reine Kosmetik, sonst würde da etwas von "generisch" stehen:
Die UUID verweist auf DTGP, sowie unten auch noch mal Übergabe von Parametern an diese Methode, die sich entweder auch in der SSDT befindet oder im Header als extern (in einer anderen SSDT) eingebunden wird. Damit wird der ganze Bums injiziert. Rausfinden, wo dein spezieller Controller sitzt, kannst du sehr einfach mit "IORegistryExplorer". Der zeigt dir den Pfad und Adressen und vieles mehr. Auch später, ob die Properties übergeben wurden.