summaryrefslogtreecommitdiffstats
path: root/scripts/lib.sh
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-11-01 16:33:09 +0100
committersalmonik <salmonik@tuta.io>2026-11-01 16:33:09 +0100
commit363e24bcd18a28948f63fa78ac8a4eaa8784fe59 (patch)
tree6b74ab993ff42e3bf15b01f4cfd09bcb3f0d5ea6 /scripts/lib.sh
parentusb: real-hardware rework — hubs, both EHCI controllers, keyboard, xHCI har... (diff)
downloadrs-dos-363e24bcd18a28948f63fa78ac8a4eaa8784fe59.tar.gz
rs-dos-363e24bcd18a28948f63fa78ac8a4eaa8784fe59.zip
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`.
Diffstat (limited to '')
-rw-r--r--scripts/lib.sh6
1 files changed, 5 insertions, 1 deletions
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() {
157 cp "$OVMF" "$nv" 157 cp "$OVMF" "$nv"
158 local -a qargs 158 local -a qargs
159 mapfile -t qargs < <(qemu_args) 159 mapfile -t qargs < <(qemu_args)
160 "$QEMU" -bios "$nv" \ 160 # qemu_args() already carries -bios $OVMF; put the fresh varstore copy
161 # last so it wins (QEMU uses the last -bios) without duplicating the
162 # whole argument set.
163 "$QEMU" \
161 "${qargs[@]}" \ 164 "${qargs[@]}" \
165 -bios "$nv" \
162 -serial "file:$LOG" \ 166 -serial "file:$LOG" \
163 -monitor "unix:$SOCK,server,nowait" \ 167 -monitor "unix:$SOCK,server,nowait" \
164 -display none \ 168 -display none \