On Sun Apr 6, 2025 at 12:00 AM AEST, Guenter Roeck wrote: > The dwc3 hardware requires the ERSTBA address to be written in > high-low order. > > From information found in the Linux kernel:
In fact this info could be contained within this patch rather than duplicated in both. This is the one for the particular hardware. > > [Synopsys]- The host controller was design to support ERST setting > during the RUN state. But since there is a limitation in controller > in supporting separate ERSTBA_HI and ERSTBA_LO programming, > It is supported when the ERSTBA is programmed in 64bit, > or in 32 bit mode ERSTBA_HI before ERSTBA_LO > > [Synopsys]- The internal initialization of event ring fetches > the "Event Ring Segment Table Entry" based on the indication of > ERSTBA_LO written. > > Inform the XHCI core to expect ERSTBA to be written in high-low order. > > Signed-off-by: Guenter Roeck <li...@roeck-us.net> Should this go to qemu-stable? Thanks, Nick > --- > hw/usb/hcd-dwc3.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/hw/usb/hcd-dwc3.c b/hw/usb/hcd-dwc3.c > index 0bceee2712..6783d55526 100644 > --- a/hw/usb/hcd-dwc3.c > +++ b/hw/usb/hcd-dwc3.c > @@ -603,6 +603,7 @@ static void usb_dwc3_realize(DeviceState *dev, Error > **errp) > SysBusDevice *sbd = SYS_BUS_DEVICE(dev); > Error *err = NULL; > > + qdev_prop_set_bit(DEVICE(&s->sysbus_xhci), "erstba-hi-lo", true); > sysbus_realize(SYS_BUS_DEVICE(&s->sysbus_xhci), &err); > if (err) { > error_propagate(errp, err);