I want to add EHCI/XHCI switching so platforms older than 0.3
would not complain about missing XHCI.
---
 Silicon/Qemu/SbsaQemu/AcpiTables/AcpiTables.inf |   1 +
 Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl       | 116 -----------------
 Silicon/Qemu/SbsaQemu/AcpiTables/Xhci.asl       | 132 ++++++++++++++++++++
 3 files changed, 133 insertions(+), 116 deletions(-)

diff --git a/Silicon/Qemu/SbsaQemu/AcpiTables/AcpiTables.inf 
b/Silicon/Qemu/SbsaQemu/AcpiTables/AcpiTables.inf
index 42cc203eeb7b..cd89ab346aa7 100644
--- a/Silicon/Qemu/SbsaQemu/AcpiTables/AcpiTables.inf
+++ b/Silicon/Qemu/SbsaQemu/AcpiTables/AcpiTables.inf
@@ -21,6 +21,7 @@ [Sources]
   Fadt.aslc
   Mcfg.aslc
   Spcr.aslc
+  Xhci.asl
 
 [Packages]
   ArmPlatformPkg/ArmPlatformPkg.dec
diff --git a/Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl 
b/Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl
index 4ff267e00802..714636b518a5 100644
--- a/Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl
+++ b/Silicon/Qemu/SbsaQemu/AcpiTables/Dsdt.asl
@@ -68,122 +68,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT",
       }
     }
 
-    // USB XHCI Host Controller
-    Device (USB0) {
-        Name (_HID, "PNP0D10")      // _HID: Hardware ID
-        Name (_UID, 0x00)            // _UID: Unique ID
-        Name (_CCA, 0x01)            // _CCA: Cache Coherency Attribute
-        Method (_STA) {
-          Return (0xF)
-        }
-        Method (_CRS, 0x0, Serialized) {
-            Name (RBUF, ResourceTemplate() {
-                Memory32Fixed (ReadWrite,
-                               FixedPcdGet32 (PcdPlatformUsbBase),
-                               FixedPcdGet32 (PcdPlatformUsbSize))
-                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 
43 }
-            })
-            Return (RBUF)
-        }
-
-        // Root Hub
-        Device (RHUB) {
-            Name (_ADR, 0x00000000)  // Address of Root Hub should be 0 as per 
ACPI 5.0 spec
-            Method (_STA) {
-              Return (0xF)
-            }
-
-            // Ports connected to Root Hub
-            Device (HUB1) {
-                Name (_ADR, 0x00000001)
-                Name (_UPC, Package() {
-                    0x00,       // Port is NOT connectable
-                    0xFF,       // Don't care
-                    0x00000000, // Reserved 0 must be zero
-                    0x00000000  // Reserved 1 must be zero
-                })
-                Method (_STA) {
-                  Return (0xF)
-                }
-
-                Device (PRT1) {
-                    Name (_ADR, 0x00000001)
-                    Name (_UPC, Package() {
-                        0xFF,        // Port is connectable
-                        0x00,        // Port connector is A
-                        0x00000000,
-                        0x00000000
-                    })
-                    Name (_PLD, Package() {
-                        Buffer(0x10) {
-                            0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-                            0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-                        }
-                    })
-                    Method (_STA) {
-                      Return (0xF)
-                    }
-                } // USB0_RHUB_HUB1_PRT1
-                Device (PRT2) {
-                    Name (_ADR, 0x00000002)
-                    Name (_UPC, Package() {
-                        0xFF,        // Port is connectable
-                        0x00,        // Port connector is A
-                        0x00000000,
-                        0x00000000
-                    })
-                    Name (_PLD, Package() {
-                        Buffer(0x10) {
-                            0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-                            0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-                        }
-                    })
-                    Method (_STA) {
-                      Return (0xF)
-                    }
-                } // USB0_RHUB_HUB1_PRT2
-
-                Device (PRT3) {
-                    Name (_ADR, 0x00000003)
-                    Name (_UPC, Package() {
-                        0xFF,        // Port is connectable
-                        0x09,        // Type C connector - USB2 and SS with 
Switch
-                        0x00000000,
-                        0x00000000
-                    })
-                    Name (_PLD, Package() {
-                        Buffer (0x10) {
-                            0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-                            0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-                        }
-                    })
-                    Method (_STA) {
-                      Return (0xF)
-                    }
-                } // USB0_RHUB_HUB1_PRT3
-
-                Device (PRT4) {
-                    Name (_ADR, 0x00000004)
-                    Name (_UPC, Package() {
-                        0xFF,        // Port is connectable
-                        0x09,        // Type C connector - USB2 and SS with 
Switch
-                        0x00000000,
-                        0x00000000
-                    })
-                    Name (_PLD, Package() {
-                        Buffer (0x10){
-                            0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-                            0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-                        }
-                    })
-                    Method (_STA) {
-                      Return (0xF)
-                    }
-                } // USB0_RHUB_HUB1_PRT4
-            } // USB0_RHUB_HUB1
-        } // USB0_RHUB
-    } // USB0
-
     Device (PCI0)
     {
       Name (_HID, EISAID ("PNP0A08")) // PCI Express Root Bridge
diff --git a/Silicon/Qemu/SbsaQemu/AcpiTables/Xhci.asl 
b/Silicon/Qemu/SbsaQemu/AcpiTables/Xhci.asl
new file mode 100644
index 000000000000..bfdcb09b28f0
--- /dev/null
+++ b/Silicon/Qemu/SbsaQemu/AcpiTables/Xhci.asl
@@ -0,0 +1,132 @@
+/** @file
+*  [DSDT] XHCI Usb Host controller
+*
+*  Copyright (c) 2023, Linaro Ltd. All rights reserved.
+*
+*  SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#include <IndustryStandard/Acpi60.h>
+#include <IndustryStandard/SbsaQemuAcpi.h>
+
+DefinitionBlock (__FILE__, "SSDT", 2, "LINARO", "SBSAXHCI", 2)
+{
+  Scope (\_SB_)
+  {
+    // USB XHCI Host Controller
+    Device (USB3) {
+    Name (_HID, "PNP0D10")      // _HID: Hardware ID
+    Name (_UID, 0x00)            // _UID: Unique ID
+    Name (_CCA, 0x01)            // _CCA: Cache Coherency Attribute
+    Method (_STA) {
+    Return (0xF)
+    }
+    Method (_CRS, 0x0, Serialized) {
+        Name (RBUF, ResourceTemplate() {
+        Memory32Fixed (ReadWrite,
+                        FixedPcdGet32 (PcdPlatformUsbBase),
+                        FixedPcdGet32 (PcdPlatformUsbSize))
+        Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 43 }
+        })
+        Return (RBUF)
+    }
+
+    // Root Hub
+    Device (RHUB) {
+        Name (_ADR, 0x00000000)  // Address of Root Hub should be 0 as per 
ACPI 5.0 spec
+        Method (_STA) {
+        Return (0xF)
+        }
+
+        // Ports connected to Root Hub
+        Device (HUB1) {
+        Name (_ADR, 0x00000001)
+        Name (_UPC, Package() {
+                0x00,       // Port is NOT connectable
+                0xFF,       // Don't care
+                0x00000000, // Reserved 0 must be zero
+                0x00000000  // Reserved 1 must be zero
+        })
+        Method (_STA) {
+        Return (0xF)
+        }
+
+        Device (PRT1) {
+                Name (_ADR, 0x00000001)
+                Name (_UPC, Package() {
+                0xFF,        // Port is connectable
+                0x00,        // Port connector is A
+                0x00000000,
+                0x00000000
+                })
+                Name (_PLD, Package() {
+                Buffer(0x10) {
+                        0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                        0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+                }
+                })
+                Method (_STA) {
+                Return (0xF)
+                }
+        } // USB0_RHUB_HUB1_PRT1
+        Device (PRT2) {
+                Name (_ADR, 0x00000002)
+                Name (_UPC, Package() {
+                0xFF,        // Port is connectable
+                0x00,        // Port connector is A
+                0x00000000,
+                0x00000000
+                })
+                Name (_PLD, Package() {
+                Buffer(0x10) {
+                        0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                        0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+                }
+                })
+                Method (_STA) {
+                Return (0xF)
+                }
+        } // USB0_RHUB_HUB1_PRT2
+
+        Device (PRT3) {
+                Name (_ADR, 0x00000003)
+                Name (_UPC, Package() {
+                0xFF,        // Port is connectable
+                0x09,        // Type C connector - USB2 and SS with Switch
+                0x00000000,
+                0x00000000
+                })
+                Name (_PLD, Package() {
+                Buffer (0x10) {
+                        0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                        0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+                }
+                })
+                Method (_STA) {
+                Return (0xF)
+                }
+        } // USB0_RHUB_HUB1_PRT3
+
+        Device (PRT4) {
+                Name (_ADR, 0x00000004)
+                Name (_UPC, Package() {
+                0xFF,        // Port is connectable
+                0x09,        // Type C connector - USB2 and SS with Switch
+                0x00000000,
+                0x00000000
+                })
+                Name (_PLD, Package() {
+                Buffer (0x10){
+                        0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                        0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+                }
+                })
+                Method (_STA) {
+                Return (0xF)
+                }
+        } // USB0_RHUB_HUB1_PRT4
+        } // USB0_RHUB_HUB1
+    } // USB0_RHUB
+    } // USB0
+  } //\SB
+}

-- 
2.41.0



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#109589): https://edk2.groups.io/g/devel/message/109589
Mute This Topic: https://groups.io/mt/101938742/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to