[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/6] Add xHCI USB support
From: |
Patrick Rudolph |
Subject: |
[PATCH 0/6] Add xHCI USB support |
Date: |
Wed, 2 Dec 2020 11:29:21 +0100 |
Add basic support for xHCI USB controllers.
The code is based on seabios implementation, but has been heavily
modified to match grubs internals.
Changes done in version 2:
* Code cleanup
* Code style fixes
* Don't leak memory buffers
* Compile without warnings
* Add more defines
* Add more helper functions
* Don't assume a 1:1 virtual to physical mapping
* Flush cachelines after writing buffers
* Don't use hardcoded page size
* Proper scratchpad register setup
* xHCI bios ownership handoff
Tested:
* Qemu system x86_64
* virtual USB HID keyboard (usb-kbd)
* virtual USB HID mass storage (usb-storage)
* Intel C246 integrated xHCI (Supermicro X11SSH-F)
* iKVM HID keyboard
* USB3 HID mass storage (controller root port)
* External USB HID keyboard
TODO:
* Test on more hardware
* Test on USB3 hubs
* Support for USB 3.1 and USB 3.2 controllers
Patrick Rudolph (6):
grub-core/bus/usb: Parse SuperSpeed companion descriptors
usb: Add enum for xHCI
usbtrans: Set default maximum packet size
grub-core/bus/usb: Add function pointer for attach/detach events
grub-core/bus/usb/usbhub: Add new private fields for xHCI controller
grub-core/bus/usb: Add xhci support
Makefile.am | 2 +-
grub-core/Makefile.core.def | 7 +
grub-core/bus/usb/ehci.c | 2 +
grub-core/bus/usb/ohci.c | 2 +
grub-core/bus/usb/serial/common.c | 2 +-
grub-core/bus/usb/uhci.c | 2 +
grub-core/bus/usb/usb.c | 44 +-
grub-core/bus/usb/usbhub.c | 55 +-
grub-core/bus/usb/usbtrans.c | 2 +
grub-core/bus/usb/xhci-pci.c | 195 +++
grub-core/bus/usb/xhci.c | 2383 +++++++++++++++++++++++++++++
grub-core/commands/usbtest.c | 2 +-
grub-core/disk/usbms.c | 2 +-
grub-core/term/usb_keyboard.c | 2 +-
include/grub/usb.h | 18 +-
include/grub/usbdesc.h | 11 +-
16 files changed, 2697 insertions(+), 34 deletions(-)
create mode 100644 grub-core/bus/usb/xhci-pci.c
create mode 100644 grub-core/bus/usb/xhci.c
--
2.26.2
- [PATCH 0/6] Add xHCI USB support,
Patrick Rudolph <=
- [PATCH 1/6] grub-core/bus/usb: Parse SuperSpeed companion descriptors, Patrick Rudolph, 2020/12/02
- [PATCH 2/6] usb: Add enum for xHCI, Patrick Rudolph, 2020/12/02
- [PATCH 3/6] usbtrans: Set default maximum packet size, Patrick Rudolph, 2020/12/02
- [PATCH 5/6] grub-core/bus/usb/usbhub: Add new private fields for xHCI controller, Patrick Rudolph, 2020/12/02
- [PATCH 6/6] grub-core/bus/usb: Add xhci support, Patrick Rudolph, 2020/12/02
- [PATCH 4/6] grub-core/bus/usb: Add function pointer for attach/detach events, Patrick Rudolph, 2020/12/02