This is merged from two series now because code especially the test cases have started to depend on one another.
The series are "usb/xhci: TR NOOP, TI HCD device, more qtests" from: https://lore.kernel.org/qemu-devel/20250411080431.207579-1-npig...@gmail.com/ And "usb/msd: Permit relaxed ordering of IN packets" from: https://lore.kernel.org/qemu-devel/20250411080431.207579-1-npig...@gmail.com/ The qtests also depends on the qtest fixes: https://lore.kernel.org/qemu-devel/20250502030446.88310-1-npig...@gmail.com/ This series adds better support qtests support for the xhci controller, adds support for the "TR NOOP" command used by AIX, and adds a new USB controller model from TI that PowerVM and AIX use. It also permits relaxed ordering of USB mass-storage packets from the host, as allowed by the usbmassbulk 1.0 spec, but not usually seen in drivers. AIX drivers do require this ordering. Since previous posting the usb/msd series had some changes that Phil noted. But otherwise the qemu code is mostly unchanged. The qtest code has had some big changes, cleaned up a lot and started adding some USB Mass Storage Device tests including one which verifies the relaxed ordering change. It would be nice if we could plug these into more comprehensive SCSI tests, but so far it mainly just tests the USB MSD protocol. Nicholas Piggin (22): hw/usb/xhci: Move HCD constants to a header and add register constants hw/usb/xhci: Rename and move HCD register region constants to header tests/qtest/xhci: test the qemu-xhci device tests/qtest/xhci: Add controller and device setup and ring tests tests/qtest/xhci: Add basic USB Mass Storage tests hw/usb/xhci: Support TR NOOP commands tests/qtest/xhci: add a test for TR NOOP commands tests/qtest/usb-hcd-xhci: Deliver msix interrupts hw/usb/hcd-xhci-pci: Make PCI device more configurable hw/usb/hcd-xhci-pci: Add TI TUSB73X0 XHCI controller model usb/msd: Split in and out packet handling usb/msd: Ensure packet structure layout is correct usb/msd: Improved handling of mass storage reset usb/msd: Improve packet validation error logging usb/msd: Allow CBW packet size greater than 31 usb/msd: Split async packet tracking into data and csw usb/msd: Add some additional assertions usb/msd: Rename mode to cbw_state, and tweak names usb/msd: Add NODATA CBW state usb/msd: Permit a DATA-IN or CSW packet before CBW packet tests/qtest/xhci: Test USB Mass Storage relaxed CSW order usb/msd: Add more tracing hw/usb/hcd-xhci-pci.h | 9 + hw/usb/hcd-xhci.h | 237 +++++++ include/hw/pci/pci_ids.h | 1 + include/hw/usb/msd.h | 21 +- include/hw/usb/xhci.h | 1 + hw/usb/dev-storage.c | 532 +++++++++++----- hw/usb/hcd-xhci-pci.c | 118 +++- hw/usb/hcd-xhci-ti.c | 77 +++ hw/usb/hcd-xhci.c | 527 ++++++--------- tests/qtest/usb-hcd-xhci-test.c | 1056 ++++++++++++++++++++++++++++++- hw/usb/Kconfig | 5 + hw/usb/meson.build | 1 + hw/usb/trace-events | 11 +- 13 files changed, 2043 insertions(+), 553 deletions(-) create mode 100644 hw/usb/hcd-xhci-ti.c -- 2.47.1