Neuer Versuch USB per SSDT zu deklarieren / Probleme mit dem internen USB Hub

  • Moin apfelnico


    Hier nun der zugesagte Thread.


    Problem hier ist, dass USB2.0_1 + _2 beide über ein Hub (HS12) laufen. Insgesamt hat das HS12 also 4 Ports.




    HS12 ist als intern (255 deklariert):



    Egal mit welcher Methode per SSDT oder auch per Kext experimentiert wurde, die darunterlegenden Hubs sind immer 2 oder 0. Aktuell nutze ich daher den Kext.




    Das führt dann zum Instant Wake Problem und ohne GPRW Patch bekomme ich Ihn nicht in den Sleep.


    Die zu erwartende Fehlermeldung bzw. der Wake Reason:

    Wake from Normal Sleep [CDNVA] : due to PWRB RP04 RP05/UserActivity Assertion Using AC (Charge:0%)


    Hier die notwendigen Infos:


    Internal


    ?thumbnail=1


    Backpanel


    ?thumbnail=1


    Front


    ?thumbnail=1


    Die DSDT führt die üblichen 26 Ports auf:


    HS01 - HS014

    USR01, USR02

    SS01 - SS10


    ?thumbnail=1


    In der SSDT-11 werden dann allerdings folgende Ports definiert. Soweit so klar


    HS01-HS14

    SS01-SS10


    ?thumbnail=1


    Wenn ich dann die SSDT-USB-Reset und das XHCI Port Limit nutze, finde ich im IOReg und im Mapping Tool dann aber "nur" 25 Ports:


    16x HS

    9x SS


    ?thumbnail=1


    ?thumbnail=1


    Ich zähle durch und definiere die zu verwendenden Ports:


    ?thumbnail=1


    So dann das Ergebnis (mit Kext):



    PXSX ist meine Fresco Karte, die hatte ich eingebaut, um evtl. das BT Modul darüber laufen zu lassen, das hat aber auch nicht funktionier. Auch ein externen USB mit Adapter zu nutzen hat leider seinerzeit nicht funktioniert.


    Meine SSDT-RHUB-USB anbei, diese hat aber nicht funktioniert. USB 3 wurde damit hart abgeschnitten und war nicht im IOReg vorhanden.


    Trotz Hilfe der Spezialisten hier konnte keine Lösung gefunden werden.

    Der alte Thread HIER


    Vielleicht hast Du als "Erdenker" der Idee einen Vorschlag. Alle anderen Daten habe ich per PN gesendet.


    Vielen Dank schon einmal.


    Viele Grüße


    g.com

  • Hallo, wäre es möglich, einen Fenvi PCIe zu verwenden, um natives Bluetooth zu erhalten? Ich verwende es auf meinem Z790 Aorus Elite AX und es funktioniert wunderbar. In meinem SSDT RHUB hat es eine andere Konfiguration als bei Ihnen. Mir ist aufgefallen, dass bei Ihnen die GUPC-Methode nicht vorhanden ist oder nicht angezeigt wird. Ich würde gerne Ihr Original sehen, wenn ich irgendwie helfen kann. Und was das Mapping angeht, habe ich im Jahr 2022 viele Monate damit verbracht, zu lesen und zu lernen, dass es das Problem nicht lösen kann, wenn man den GUPC nicht ändert und 0x03 hinzufügt.


    Und ich verwende auch Usb Map zum Zuordnen, aber nachdem es hochgefahren ist, wechsle ich zur Extraktion mit Hackintool und verwende Usbports und SSDTS.

    Ich habe den Schlaf mit anderen Methoden gelöst. Ganz anders. Mit SSDTs und Argumenten in der Plist.

  • Meine SSDT-RHUB-USB anbei, diese hat aber nicht funktioniert. USB 3 wurde damit hart abgeschnitten und war nicht im IOReg vorhanden.

    Kann so auch nicht funktionieren, da die Deklaration innerhalb der ACPI längst passiert ist, und zwar über die "xh_rps14", die auch bei dir enthalten ist. Eine zusätzliche SSDT, die die gleichen Methoden anwendet, wird nicht geladen, denn es dürfen je Device und späteren Scope nur Methoden einmalig vorkommen. Was ja auch logisch ist.


    Mir ist aufgefallen, dass bei Ihnen die GUPC-Methode nicht vorhanden ist

    Ist da, in eben dieser vorgenannten SSDT.


    Und die ist auch der Schlüssel. Einfach öffnen und die Table-ID oder Length notieren, diese per OpenCore ACPI dann ausklamüsern.

    Dann diese SSDT als Grundlage für eigene Modifikationen nehmen und wieder per OpenCore in ACPI einfügen.

    Ich würde es dort einfacher halten, das Konstrukt mit GPLD und GUPC entfernen und jeden Port direkt mit _UPC und _PLD beschreiben, ebenso interne Hubs hinzufügen.

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • kleiner Nachtrag, im verlinkten PDF ab Seite 524 wird _UPC und _PLD sehr gut beschrieben mit Beispielen, auch verschachtelten Hubs. Einzelne, nicht benötigte oder vorhandene Ports werden nicht – wie in einer hier schon verlinkten SSDT per _STA Methode rausgekloppt – sondern innerhalb der _UPC definiert.


    ACPI_6.0.pdf

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • G.com


    Mit deinen Bildern und deren Beschriftung der Ports kommt einiges nicht hin. Wenn auf der Rückseite die vier USB2 (interner Hub) HS11 sind, können nicht auf dem Deckel des Gehäuses zwei USB2 Ports ebenfalls HS11 sein. Auch scheinen mir die "versetzten" HS/SS Ports der USB3 zumindest nicht sinnvoll.


    Ich mach mal einen Vorschlag. Ich habe die relevante SSDT mal bereinigt, für HS11 und HS12 die internen Ports hinzugefügt und nach ACPI-Vorgabe beschrieben. Ansonsten habe ich erstmal ALLE HSxx (Highspeed, USB2) als solche definiert, ALLE SSxx (Superspeed, USB3) als solche definiert.

    Damit liegt die Anzahl der Ports natürlich deutlich über das macOS Port-Limit, aber die Definition ist schonmal macOS-leserlich gemacht. Was ich noch nicht weiß, wo die USB-C liegen und konkret welche Variante. Hast du für dein macOS einen gültigen "PortLimitPatch"? Dann nutze den mal, dann werden wir bald schlauer.


    Was wäre also zunächst zu tun?

    • alle SSDT die du zusätzlich für USB eingebunden hast, müssen raus

    • Kexte für USB müssen raus

    • die in der ACPI vorhandene SSDT-11 – "xh_rps14" – muss per OpenCore deaktiviert werden

    • die beigefügte SSDT muss per OpenCore eingefügt werden.

    • macOS Port-Limit aushebeln


    Nach Neustart sollten nun sämtliche Ports aktiv sein. Nun bitte noch die restlichen Ports exakt lokalisieren. USB2-Ports sind soweit klar (HS11/12 vervielfältigt durch Hubs), Aber die USB3 inkl. deren USB2 sind interessant. Bei USB-C bitte unbedingt USB3 und USB2 gerät anstecken und jeweils auch den Stecker drehen! Mitunter hat eine USB-C Buchse drei(!) Ports (einen gemeinsamen HS, zwei SS).


    Wenn das alles klar ist und immer noch das Portlimit übersteigt, dann eben überlegen, welche Ports ge0pfert werden sollen. Das können wir dann in der SSDT aktualisieren und dann wird auch in der Folge keine USB-Kext benötigt, alle Angaben sind ja schon in der ACPI.



    EDIT: Sollte es keine Möglichkeit geben das macOS Port-Limit temporär zu sprengen, dann kann ich die SSDT anpassen, und erstmal (neben HS11/12) die ersten sechs HS/SS aktivieren. Dann liegt mal im Port Limit und kann schauen, welche von den derzeit aktiven Ports auch tatsächlich genutzt werden und korrekt deklarieren, ungenutzte schon entfernen und dann in einem weiteren Anlauf wieder nun freie Ports aufnehmen.

    Dateien

    • SSDT-XHCI.aml

      (5,69 kB, 5 Mal heruntergeladen, zuletzt: )

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • apfelnico


    Oh klasse, danke danke!


    Ja, hast recht, Front USB 2 hängt ja an dem internen Hub HS12. Ist ein Fehler.


    Fakt ist und das ist mir neu, bei dem Board ist eben nicht HS0x gleich SS0x die Endnummern differieren. Das kann ich sicher bestätigen. Hatte unter Windows gleich ohne Opencore und später immer dieselben Abweichungen. Werde das aber erneut sicher stellen und mal unter Windows ohne OC Boot im Hintergrund das USBMap Tool nutzen.


    Die USB-C hatte ich seinerzeit mittels Low und High Speed Kabel(USB2/USB3) und meiner Pico 4 identifiziert.!


    Ich meine das Limit hatte ich durch XHCI Port Limit Patch und SSDT-USB-Reset realisiert, so ich recht entsinne. Werde ich testen.


    VG und nochmal Danke

  • Fakt ist und das ist mir neu, bei dem Board ist eben nicht HS0x gleich SS0x die Endnummern differieren.

    Ja, hatte ich auch noch nicht so gesehen, aber wird genau so sein. Wenn es mit der Zählung schon mit einem USB-C losgeht und dieser drei Ports hat (zwei SSxx, einen HSxx, Connector Type 0x0A (USB2 und SS ohne Switch)), dann verschiebt sich das Ganze schon für die weiteren Ports.


    Ich meine das Limit hatte ich durch XHCI Port Limit Patch und SSDT-USB-Reset realisiert, so ich recht entsinne. Werde ich testen.

    Die "SSDT-USB-Reset" lass bitte ganz raus, die haut ja den ganzen Hub des XHCI weg – und somit auch die weiterführenden SSDT, auch die modifizierte.

    Ich werde die SSDT anhand deiner Screenshots anpassen. Dann muss auch nix mit dem Port Limit Patch gemacht werden.

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)