From: Zhu Yijun <lovemrd@gmail.com>
To: Laszlo Ersek <lersek@redhat.com>
Cc: devel@edk2.groups.io, Ruiyu Ni <ruiyu.ni@intel.com>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>
Subject: Re: implement about virtio-keyboard
Date: Fri, 26 Feb 2021 15:59:36 +0800 [thread overview]
Message-ID: <CAF_Z_jodkL5Q9K_Qx+rO4NOBe3bkuJNOyA4FjHdbJf1g9jSZvw@mail.gmail.com> (raw)
In-Reply-To: <7e60715f-7b06-9751-8efb-fffba363959b@redhat.com>
Thanks for your explanation.
Laszlo Ersek <lersek@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 <lersek@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
> >>>
> >>
> >
>
prev parent reply other threads:[~2021-02-26 8:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-23 8:48 implement about virtio-keyboard Zhu Yijun
2021-02-23 14:46 ` Laszlo Ersek
2021-02-24 2:55 ` Zhu Yijun
2021-02-25 18:54 ` Laszlo Ersek
2021-02-26 7:59 ` Zhu Yijun [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAF_Z_jodkL5Q9K_Qx+rO4NOBe3bkuJNOyA4FjHdbJf1g9jSZvw@mail.gmail.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox