diff options
| author | salmonik <salmonik@tuta.io> | 2026-11-01 16:33:09 +0100 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-11-01 16:33:09 +0100 |
| commit | 363e24bcd18a28948f63fa78ac8a4eaa8784fe59 (patch) | |
| tree | 6b74ab993ff42e3bf15b01f4cfd09bcb3f0d5ea6 /scripts/lib.sh | |
| parent | usb: real-hardware rework — hubs, both EHCI controllers, keyboard, xHCI har... (diff) | |
| download | rs-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.sh | 6 |
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 \ |
