On 02/24/21 03:55, Zhu Yijun wrote: > Thanks for the update. > > Now the usb tablet and keyboard are the only two usb devices on > aarch64, so I want to eliminate the "qemu-xhci" controller. > > I even think the situation that something more lightweight VMM instead > of QEMU may not support any USB controller, then virtio-input support > in UEFI is necessary.
It's not necessary for me. It may be necessary for you. Feel free to contribute a virtio-input driver. > So if I want to implement this feature, can you give me some advice? I > see there are several keyboards in edk2, > VirtualKeyboardDxe/VirtualKeyboard.c looks more simple than usbkbd, > > can it be used as an example for reference? I've not dealt with EmbeddedPkg/Drivers/VirtualKeyboardDxe before. I don't know what kind of device this driver works with. The only commonality that VirtualKeyboardDxe might have with a possible virtio-input driver is that both of these drivers would be expected to produce EFI_SIMPLE_TEXT_INPUT_PROTOCOL. The virtio-input device is described in the virtio spec. You can see some virtio drivers under OvmfPkg. One of the simpler drivers there is VirtioRngDxe. Note that virtio-input, somewhat similarly to virtio-net, allows the host (= the device) to send events "asynchronously" to the guest (= the driver). This means that, because virtio is a request-response protocol, the driver would keep the virtio-input "eventq" populated with "requests" at all times. When there is an input event, the device "completes" a request with a "response", to inform the driver of a new input event. Anyhow, the virtio spec does explain this. Thanks, Laszlo > > Laszlo Ersek <ler...@redhat.com> 于2021年2月23日周二 下午10:47写道: >> >> On 02/23/21 09:48, Zhu Yijun wrote: >>> Hi all, >>> I boot vm with the virtio keyboard on aarch64. It looks UEFI lacks >>> support for the virtio keyboard, so I can't do any keyboard input >>> before the linux kernel driver loads, i.e. edit the grub boot menu. Is >>> there any plan to support it? >> >> Not on my side. >> >> My team discussed virtio-input's relevance for ArmVirtQemu in September >> 2016. >> >> We decided not to bother about it, because: >> >> (1) XHCI was virtualization-friendly, both performance-wise and >> configuration-wise (unlike EHCI), >> >> (2) QEMU and libvirt were going to gain (... or had just gained ...) >> XHCI support, on aarch64 / "virt". >> >> >> So today, just use a "qemu-xhci" controller in your domain config >> please, in combination with a USB keyboard. (If you define a new aarch64 >> domain with libvirt, this should happen out of the box for you.) >> >> ArmVirtQemu includes all the edk2 drivers necessary for driving those >> devices, and ArmVirtQemu's PlatformBootManagerLib instance will connect >> the USB keyboard automatically. There shouldn't be a problem when typing >> in "grub". >> >> Thanks >> Laszlo >> >>> I find UsbKeyboardDevice attach on UsbIO which implements its >>> protocol interface structure(such as UsbGetInterfaceDescriptor, >>> UsbAsyncInterruptTransfer) defined by UEFI spec, but virtio not. So is >>> there some way to implement similar interfaces? >>> >>> Best regards, >>> Cheng Mao >>> >> > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#72205): https://edk2.groups.io/g/devel/message/72205 Mute This Topic: https://groups.io/mt/80852197/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-