summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBin Meng <bmeng@tinylab.org>2023-07-23 12:40:41 +0800
committerLeo Yu-Chi Liang <ycliang@andestech.com>2023-08-02 16:32:44 +0800
commit02be57caf730e2213bc844bf1dbe58bedd2c3734 (patch)
treea56e2dc62406de041c67a18c25dff02d362f36bb
parent124308e67b6e1b6597ef34899211abac9bf7fd60 (diff)
riscv: qemu: Enable usb keyboard as an input device
This brings PCI xHCI support to QEMU RISC-V and uses a usb keyboard as one of the input devices. Signed-off-by: Bin Meng <bmeng@tinylab.org> Reviewed-by: Rick Chen <rick@andestech.com> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--board/emulation/qemu-riscv/Kconfig5
-rw-r--r--board/emulation/qemu-riscv/qemu-riscv.c5
-rw-r--r--doc/board/emulation/qemu-riscv.rst5
-rw-r--r--include/configs/qemu-riscv.h2
4 files changed, 16 insertions, 1 deletions
diff --git a/board/emulation/qemu-riscv/Kconfig b/board/emulation/qemu-riscv/Kconfig
index 7220c55350e..b503578d274 100644
--- a/board/emulation/qemu-riscv/Kconfig
+++ b/board/emulation/qemu-riscv/Kconfig
@@ -76,5 +76,10 @@ config BOARD_SPECIFIC_OPTIONS # dummy
imply VIDEO_BOCHS
imply SYS_WHITE_ON_BLACK
imply PRE_CONSOLE_BUFFER
+ imply USB
+ imply USB_XHCI_HCD
+ imply USB_XHCI_PCI
+ imply USB_KEYBOARD
+ imply CMD_USB
endif
diff --git a/board/emulation/qemu-riscv/qemu-riscv.c b/board/emulation/qemu-riscv/qemu-riscv.c
index f39f3be3663..181abbbf97d 100644
--- a/board/emulation/qemu-riscv/qemu-riscv.c
+++ b/board/emulation/qemu-riscv/qemu-riscv.c
@@ -12,6 +12,7 @@
#include <log.h>
#include <spl.h>
#include <init.h>
+#include <usb.h>
#include <virtio_types.h>
#include <virtio.h>
@@ -41,6 +42,10 @@ int board_init(void)
int board_late_init(void)
{
+ /* start usb so that usb keyboard can be used as input device */
+ if (CONFIG_IS_ENABLED(USB_KEYBOARD))
+ usb_init();
+
return 0;
}
diff --git a/doc/board/emulation/qemu-riscv.rst b/doc/board/emulation/qemu-riscv.rst
index 9d21f3270c6..61137bcbf1c 100644
--- a/doc/board/emulation/qemu-riscv.rst
+++ b/doc/board/emulation/qemu-riscv.rst
@@ -138,6 +138,11 @@ and adding::
-serial stdio -device VGA
+In addition, a usb keyboard can be attached to an emulated xHCI controller in
+RISC-V virt machine as an option of input devices by adding::
+
+ -device qemu-xhci,id=xhci -device usb-kbd,bus=xhci.0
+
Running with KVM
----------------
diff --git a/include/configs/qemu-riscv.h b/include/configs/qemu-riscv.h
index d5146e70f7b..584559cfa32 100644
--- a/include/configs/qemu-riscv.h
+++ b/include/configs/qemu-riscv.h
@@ -17,7 +17,7 @@
/* Environment options */
-#define CFG_STD_DEVICES_SETTINGS "stdin=serial\0" \
+#define CFG_STD_DEVICES_SETTINGS "stdin=serial,usbkbd\0" \
"stdout=serial,vidconsole\0" \
"stderr=serial,vidconsole\0"