[PATCH 18/18] riscv: qemu: Enable usb keyboard as an input device
Heinrich Schuchardt
xypron.glpk at gmx.de
Sun Jul 23 11:30:31 CEST 2023
Am 23. Juli 2023 10:38:00 MESZ schrieb Mark Kettenis <mark.kettenis at xs4all.nl>:
>> From: Bin Meng <bmeng at tinylab.org>
>> Date: Sun, 23 Jul 2023 12:40:41 +0800
>>
>> 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 at tinylab.org>
>>
>> ---
>>
>> board/emulation/qemu-riscv/Kconfig | 5 +++++
>> board/emulation/qemu-riscv/qemu-riscv.c | 5 +++++
>> doc/board/emulation/qemu-riscv.rst | 5 +++++
>> include/configs/qemu-riscv.h | 2 +-
>> 4 files changed, 16 insertions(+), 1 deletion(-)
>>
>> diff --git a/board/emulation/qemu-riscv/Kconfig b/board/emulation/qemu-riscv/Kconfig
>> index 7220c55350..b503578d27 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 f39f3be366..181abbbf97 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();
>> +
>
>This is typically handled by including "usb start" in CONFIG_PREBOOT,
>which is done by boot/Kconfig. Any reason why that doesn't work for
>you?
We run pci_init() in board_r.c. Why don't do the same for USB instead of the PREBOOT quirk?
Regards
Heinrich
>
>> return 0;
>> }
>>
>> diff --git a/doc/board/emulation/qemu-riscv.rst b/doc/board/emulation/qemu-riscv.rst
>> index 9d21f3270c..61137bcbf1 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 d5146e70f7..584559cfa3 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"
>>
>> --
>> 2.34.1
>>
>>
More information about the U-Boot
mailing list