Ich schreibe mal etwas, weil ich hier erwähnt wurde. Bitte haut euch nicht.
ZitatHabe das halt neulich in USB ssdts gesehen, die PLD Einträge. Also entweder man füllt sie dann auch tatsächlich richtig aus, oder man lässt sie weg. (…) "PLD" ist vollkommen irrelevant für das USB port Mapping. De geht es nur um die physische Lokation des USB Ports im Gehäuse-Kontext.
Nach ACPI ist genau geregelt, bei welcher Beschreibung der _UPC auch eine _PLD zu erfolgen hat. Ob das nun relevant ist oder nicht; es ist aus Sicht der ACPI-Vorgabe richtig. "Richtig ausfüllen" – viele Positionen kann man mit "0x0" belassen, man muss jetzt nicht Farbe, Position, Form und Gruppierung festlegen, wenn Eintrag und Wert vorhanden ist, ist der ACPI genüge getan und die originale Vorlage gibt auch nicht mehr her.
Sehr wohl gibt es darüber hinaus aber Positionen innerhalb der _PLD, die fürs System interessant sein können. Wie zum Beispiel UserVisible, Ejectable und EjectRequired. Diese gehen deutlich über die sehr rudimentäre Beschreibung via _UPC hinaus und können helfen, zum Beispiel interne Ports besser zu beschreiben, auch für Energiesparmaßnahmen, Sleep etc.
Dann ist noch die Frage, wie man die eigene modifizierte SSDT ins System bekommt. Normal ist ja eine genau dafür in der ACPI des Mainboards vorhanden (möglicherweise auch schon in der DSDT beschrieben). Diese SSDT muss ja nun durch OpenCore gezielt entfernt werden, dafür die eigene modifizierte eingebunden*. Wenn jetzt der Rechner über OpenCore läuft und darüber auch andere Betriebssysteme neben macOS laufen, dann sollte die eigene SSDT – da ja die originäre SSDT nicht mehr vorhanden – auf eben dieser aufgebaut sein. Mit Osi-Weichen kann gezielt für macOS (Darwin) differenziert Parameter festgelegt, so das andere Systeme nicht weiter berührt werden.
Und bevor ich da alles über den Haufen werfe, weil sich macOS (vielleicht/angeblich) nicht für sämtliche Parameter interessiert, mache ich das doch lieber ACPI-konform (wie es auch in der ACPI sämtlicher Intel-Macs aussieht), so das die Eingriffe "minimal invasiv", für macOS verständlich und für alle anderen transparent sind.
Wie gesagt, wenn man es richtig macht, ist es nie nur eine zusätzliche SSDT wie zum Beispiel speziell für eine Grafikkarte oder irgend einen anderen Controller auf einer zusätzlichen PCIe-Karte – sondern eine SSDT, die ausgetauscht gegen eine vorhandene gesetzt wird. Und da ist (meiner Meinung nach) besondere Sorgfalt nötig.
*Denn wenn eine SSDT bereits vorhanden ist die bestimmte Geräte beschreibt, dann kann NICHT eine zusätzliche SSDT das selbe Gerät mit selben Methoden beschreiben. Diese werden dann in der Regel nicht akzeptiert.
Ob das nun alles zu "akademisch" ist?
Deshalb ist das ja auch nicht mehr mein favorisiertes Verfahren. Man muss eben genau hinschauen, hat es mitunter mit einem komplizierten Geflecht zu tun. Im Zweifel ist da eine beschreibende KEXT sehr viel einfacher einzubinden, diese gilt dann auch nur ausschließlich für macOS – und wenn in OpenCore angegeben – auch explizit für bestimmte Versionen von macOS.
Dennoch kann es Spaß machen, bestimmte Tabellen der ACPI, die oftmals für ganze Mainboardklassen universell angelegt sind, zu überarbeiten und ans individuelle System zu optimieren. Und da ist man sicher nicht schlecht beraten, Vorgaben der ACPI sich anzuschauen und danach zu arbeiten, zumal in den offiziellen Unterlagen oft auch hilfreiche Beispiele und gute Erklärungen zu den Funktionen bereit stehen.