grub-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]