summaryrefslogtreecommitdiff
path: root/config/grub/xhci/patches/0024-Fix-compilation-on-x86_64.patch
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2025-10-02 23:47:31 +0100
committerLeah Rowe <leah@libreboot.org>2025-10-02 23:48:48 +0100
commitaf88a066d0e4fc5aaa63b2e7a4989d1f64b3f7b2 (patch)
tree070807dcf18f99f9bc3a070bbb55dddd23af199b /config/grub/xhci/patches/0024-Fix-compilation-on-x86_64.patch
parentd90defeae3e4e7c91ba521e44071d962abb33d3f (diff)
grub/xhci: rename to grub/xhci_nvme
we have the "default" tree, then the "nvme" tree which adds nvme support. the "xhci" tree adds xhci patches, *and* nvme patches. riku suggested that i rename it accordingly, and his advice was quite correct, indeed wise. this will reduce confusion for contributors, including *myself*. Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'config/grub/xhci/patches/0024-Fix-compilation-on-x86_64.patch')
-rw-r--r--config/grub/xhci/patches/0024-Fix-compilation-on-x86_64.patch90
1 files changed, 0 insertions, 90 deletions
diff --git a/config/grub/xhci/patches/0024-Fix-compilation-on-x86_64.patch b/config/grub/xhci/patches/0024-Fix-compilation-on-x86_64.patch
deleted file mode 100644
index cdc692d6..00000000
--- a/config/grub/xhci/patches/0024-Fix-compilation-on-x86_64.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 625fdcf42f2cf11a4bfe644412450c9e4f551d25 Mon Sep 17 00:00:00 2001
-From: Patrick Rudolph <patrick.rudolph@9elements.com>
-Date: Wed, 24 Feb 2021 08:25:41 +0100
-Subject: [PATCH 24/26] Fix compilation on x86_64
-
-Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
----
- grub-core/bus/usb/xhci.c | 24 ++++++++++++++++--------
- 1 file changed, 16 insertions(+), 8 deletions(-)
-
-diff --git a/grub-core/bus/usb/xhci.c b/grub-core/bus/usb/xhci.c
-index 88c9ac57f..9b9bae6e5 100644
---- a/grub-core/bus/usb/xhci.c
-+++ b/grub-core/bus/usb/xhci.c
-@@ -184,7 +184,7 @@ enum
- * then we can get it from a trb pointer (provided by evt ring).
- */
- #define XHCI_RING(_trb) \
-- ((struct grub_xhci_ring*)((grub_uint32_t)(_trb) & ~(GRUB_XHCI_RING_SIZE-1)))
-+ ((struct grub_xhci_ring*)((grub_addr_t)(_trb) & ~(GRUB_XHCI_RING_SIZE-1)))
-
- /* slot context */
- struct grub_xhci_slotctx {
-@@ -495,6 +495,14 @@ grub_xhci_read8(volatile void *addr) {
- return (*((volatile grub_uint32_t *)addr));
- }
-
-+static inline void *
-+grub_xhci_read_etrb_ptr(volatile struct grub_xhci_trb *trb) {
-+ grub_uint64_t tmp;
-+ tmp = (grub_uint64_t)grub_xhci_read32(&trb->ptr_low);
-+ tmp |= ((grub_uint64_t)grub_xhci_read32(&trb->ptr_high)) << 32;
-+ return (void *)(grub_addr_t)tmp;
-+}
-+
- static inline grub_uint32_t
- grub_xhci_port_read (struct grub_xhci *x, grub_uint32_t port)
- {
-@@ -697,7 +705,7 @@ static void xhci_process_events(struct grub_xhci *x)
- case ER_TRANSFER:
- case ER_COMMAND_COMPLETE:
- {
-- struct grub_xhci_trb *rtrb = (void*)grub_xhci_read32(&etrb->ptr_low);
-+ struct grub_xhci_trb *rtrb = grub_xhci_read_etrb_ptr(etrb);
- struct grub_xhci_ring *ring = XHCI_RING(rtrb);
- volatile struct grub_xhci_trb *evt = &ring->evt;
- grub_uint32_t eidx = rtrb - ring->ring + 1;
-@@ -730,9 +738,9 @@ static void xhci_process_events(struct grub_xhci *x)
- }
- grub_xhci_write32(&evts->nidx, nidx);
- volatile struct grub_xhci_ir *ir = x->ir;
-- grub_uint32_t erdp = (grub_uint32_t)(evts->ring + nidx);
-- grub_xhci_write32(&ir->erdp_low, erdp);
-- grub_xhci_write32(&ir->erdp_high, 0);
-+ grub_uint64_t erdp = (grub_addr_t)(void *)(&evts->ring[nidx]);
-+ grub_xhci_write32(&ir->erdp_low, erdp & 0xffffffff);
-+ grub_xhci_write32(&ir->erdp_high, erdp >> 32);
- }
- }
-
-@@ -833,7 +841,7 @@ static void xhci_trb_queue(volatile struct grub_xhci_ring *ring,
- grub_uint32_t xferlen, grub_uint32_t flags)
- {
- grub_dprintf("xhci", "%s: ring %p data %llx len %d flags 0x%x remain 0x%x\n", __func__,
-- ring, data_or_addr, xferlen & 0x1ffff, flags, xferlen >> 17);
-+ ring, (unsigned long long)data_or_addr, xferlen & 0x1ffff, flags, xferlen >> 17);
-
- if (xhci_ring_full(ring))
- {
-@@ -1940,7 +1948,7 @@ grub_xhci_setup_transfer (grub_usb_controller_t dev,
- if (transfer->type == GRUB_USB_TRANSACTION_TYPE_CONTROL)
- {
- volatile struct grub_usb_packet_setup *setupdata;
-- setupdata = (void *)transfer->transactions[0].data;
-+ setupdata = (void *)(grub_addr_t)transfer->transactions[0].data;
- grub_dprintf("xhci", "%s: CONTROLL TRANS req %d\n", __func__, setupdata->request);
- grub_dprintf("xhci", "%s: CONTROLL TRANS length %d\n", __func__, setupdata->length);
-
-@@ -2007,7 +2015,7 @@ grub_xhci_setup_transfer (grub_usb_controller_t dev,
- /* Assume the ring has enough free space for all TRBs */
- if (flags & TRB_TR_IDT && tr->size <= (int)sizeof(inline_data))
- {
-- grub_memcpy(&inline_data, (void *)tr->data, tr->size);
-+ grub_memcpy(&inline_data, (void *)(grub_addr_t)tr->data, tr->size);
- xhci_trb_queue(reqs, inline_data, tr->size, flags);
- }
- else
---
-2.39.5
-