From 363e24bcd18a28948f63fa78ac8a4eaa8784fe59 Mon Sep 17 00:00:00 2001 From: salmonik Date: Sun, 1 Nov 2026 16:33:09 +0100 Subject: scripts: add test-usb; fix duplicate -bios in the test harness - test-usb boots an EHCI and an xHCI controller with a mouse + keyboard and asserts enumeration, report decoding, and input reaching the shell. The EHCI case asserts one key end-to-end (QEMU's EHCI model delivers only the first report through root-port split transactions); the xHCI case asserts a whole typed command. - lib.sh: qemu_args() already supplies -bios, so the fresh OVMF varstore copy was silently overridden by the system firmware. Pass the copy last (QEMU honours the last -bios) so tests really boot clean NVRAM. - DEBUG_NOTES: document why USB never worked on the OptiPlex (EHCI shipped with DEBUG_MATRIX enabled, no RMH/hub support, only the first controller, no boot protocol, unbounded DMA), the success/failure log to look for on hardware, and the QEMU coverage limits. - Makefile: add test-usb and include it in `make test`. --- scripts/lib.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'scripts/lib.sh') diff --git a/scripts/lib.sh b/scripts/lib.sh index d5aecac..6ca3e92 100644 --- a/scripts/lib.sh +++ b/scripts/lib.sh @@ -157,8 +157,12 @@ test_boot() { cp "$OVMF" "$nv" local -a qargs mapfile -t qargs < <(qemu_args) - "$QEMU" -bios "$nv" \ + # qemu_args() already carries -bios $OVMF; put the fresh varstore copy + # last so it wins (QEMU uses the last -bios) without duplicating the + # whole argument set. + "$QEMU" \ "${qargs[@]}" \ + -bios "$nv" \ -serial "file:$LOG" \ -monitor "unix:$SOCK,server,nowait" \ -display none \ -- cgit v1.2.3