At least some real-world XHCI controllers expect a 64bit write to the ERDP register.
Signed-off-by: Kevin O'Connor kevin@koconnor.net --- src/hw/usb-xhci.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/src/hw/usb-xhci.c b/src/hw/usb-xhci.c index dc98e5d..d0df6ee 100644 --- a/src/hw/usb-xhci.c +++ b/src/hw/usb-xhci.c @@ -379,6 +379,7 @@ static void xhci_process_events(struct usb_xhci_s *xhci) u32 addr = (u32)(&ir->erdp_low); u32 erdp = (u32)(evts->ring + nidx); pci_writel(addr, erdp); + pci_writel((u32)(&ir->erdp_high), 0); } }