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;