summaryrefslogtreecommitdiff
path: root/config/grub/patches/0005-xhci/0003-usbtrans-Set-default-maximum-packet-size.patch
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2024-04-05 23:44:06 +0100
committerLeah Rowe <leah@libreboot.org>2024-04-05 23:44:06 +0100
commitf7283fa10dad76f20ec4ed2841dbbbb00ee9c865 (patch)
tree63d9351044762100c0b4fc4d40b4097e68357a86 /config/grub/patches/0005-xhci/0003-usbtrans-Set-default-maximum-packet-size.patch
parent5cb17795c647407ae36db82dbd03f7a3ed978735 (diff)
grub xhci support
see: https://github.com/9elements/grub/commits/xhci-module-upstreaming-squash_v4/ grub only supports xhci on bios/uefi targets, but not coreboot. some newer machines don't have ps/2 controllers, and boot in a way where ehci isn't available at startup; the controller can't be used by ehci code, there must be xhci support. the code is from Patrick Rudolph working on behalf of 9elements. the code was also sent here for review: https://lists.gnu.org/archive/html/grub-devel/2020-12/msg00111.html however, upstream never merged these patches. libreboot will have to maintain these from now on. the patches have been rebased for use with grub 2.12. Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'config/grub/patches/0005-xhci/0003-usbtrans-Set-default-maximum-packet-size.patch')
-rw-r--r--config/grub/patches/0005-xhci/0003-usbtrans-Set-default-maximum-packet-size.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/config/grub/patches/0005-xhci/0003-usbtrans-Set-default-maximum-packet-size.patch b/config/grub/patches/0005-xhci/0003-usbtrans-Set-default-maximum-packet-size.patch
new file mode 100644
index 00000000..70e73ca2
--- /dev/null
+++ b/config/grub/patches/0005-xhci/0003-usbtrans-Set-default-maximum-packet-size.patch
@@ -0,0 +1,33 @@
+From 3e25c83a1d1c6e149c7e9f0660ddadb2beca2476 Mon Sep 17 00:00:00 2001
+From: Patrick Rudolph <patrick.rudolph@9elements.com>
+Date: Sun, 15 Nov 2020 19:48:03 +0100
+Subject: [PATCH 3/8] usbtrans: Set default maximum packet size
+
+Set the maximum packet size to 512 for SuperSpeed devices.
+
+Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
+---
+ grub-core/bus/usb/usbtrans.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/grub-core/bus/usb/usbtrans.c b/grub-core/bus/usb/usbtrans.c
+index c5680b33a..c1080bb33 100644
+--- a/grub-core/bus/usb/usbtrans.c
++++ b/grub-core/bus/usb/usbtrans.c
+@@ -128,8 +128,12 @@ grub_usb_control_msg (grub_usb_device_t dev,
+ setupdata_addr = grub_dma_get_phys (setupdata_chunk);
+
+ /* Determine the maximum packet size. */
+- if (dev->descdev.maxsize0)
++ if (dev->descdev.maxsize0 && dev->speed != GRUB_USB_SPEED_SUPER)
+ max = dev->descdev.maxsize0;
++ else if (dev->descdev.maxsize0 && dev->speed == GRUB_USB_SPEED_SUPER)
++ max = 1UL << dev->descdev.maxsize0;
++ else if (dev->speed == GRUB_USB_SPEED_SUPER)
++ max = 512;
+ else
+ max = 64;
+
+--
+2.39.2
+