The Rapsberry Pi4 UEFI firmware (in ACPI mode) uses a QWord() resource
descriptor for the address.

ok?

P.S. I still plan to move this parsing code into something a bit more
     generic at some point instead of replicating slightly different
     versions in each driver.


Index: dev/acpi/xhci_acpi.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/xhci_acpi.c,v
retrieving revision 1.1
diff -u -p -r1.1 xhci_acpi.c
--- dev/acpi/xhci_acpi.c        2 Jul 2018 11:23:19 -0000       1.1
+++ dev/acpi/xhci_acpi.c        10 Apr 2020 15:32:52 -0000
@@ -153,6 +153,13 @@ xhci_acpi_parse_resources(int crsidx, un
                        sc->sc_size = crs->lr_m32fixed._len;
                }
                break;
+       case LR_QWORD:
+               /* XHCI registers are specified by the first resource. */
+               if (sc->sc_size == 0) {
+                       sc->sc_addr = crs->lr_qword._min;
+                       sc->sc_size = crs->lr_qword._len;
+               }
+               break;
        case LR_EXTIRQ:
                sc->sc_irq = crs->lr_extirq.irq[0];
                sc->sc_irq_flags = crs->lr_extirq.flags;

Reply via email to