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


Reply via email to