Thanks for your explanation. Laszlo Ersek <ler...@redhat.com> 于2021年2月26日周五 上午2:54写道: > > 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 (#72251): https://edk2.groups.io/g/devel/message/72251 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] -=-=-=-=-=-=-=-=-=-=-=-