From: Michal Pecio <michal.pecio@gmail.com>
To: Ben <benstaples10@gmail.com>
Cc: Mathias Nyman <mathias.nyman@linux.intel.com>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com
Subject: Re: xhci_hcd 0000:0c:00.0 dies with "Abort failed to stop command ring: -110" exactly 24s post-init, tunneled USB4 xHCI behind Goshen Ridge (ASUS ThunderboltEX 4) + CalDigit TS4
Date: Fri, 25 Sep 2026 10:27:46 +0200 [thread overview]
Message-ID: <20260925102746.25e87ef0.michal.pecio@gmail.com> (raw)
In-Reply-To: <CANcA1gAM7UsSxNyHET7HZndeWzAnf4yBDdhLC4pRFsMNuWOHgQ@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1788 bytes --]
On Thu, 24 Sep 2026 18:18:53 -0400, Ben wrote:
> >I noticed that both event and command rings DMA addresses are above
> >32 bit. Maybe dmesg log with usb core and xhci dynamic debug enabled
> >could show something. Can you add the following to the kernel cmd
> >line:
>
> Unfortunately, did not fix the issue.
Broken 64 bit support usually shows as IOMMU faults logged in dmesg,
because the chip tries to access different addresses than intended.
Here, it looks like this chip doesn't attempt DMA at all.
USBSTS.HSE is supposed to be set by the chip if its DMA transactions
are failing, but it's clear. Only "Port Change Detect" is set.
I suspect we could write junk into CRCR and ERSTBA and nothing would
change. Maybe worth trying, see patch attached.
Are you using some Thunderbolt adapter in a motherboard not officially
supported by this adapter? I recall reading about such configurations
that they may need various tweaks to work.
But Windows works, right?
> > Odd thing is that event ring is completely empty.
> > There's usually a port change event when host detects a device,
> > this event triggers hub driver to start the usb device enumeration
> > process, queuing the 'enable slot' command as one of the first
> > steps.
> >
> > Either xHC isn't really running, or fails to write to the event
> > ring.
I think usbcore scans hubs using control transfers without waiting for
any change events. Here control transfers are emulated by xhci-hub.c
and turned into MMIO accesses. This, if confirmed, would indicate that
the HC is somewhat functional and responsive to MMIO, but doesn't DMA.
It can be confirmed by watching usbmon0 and then:
echo 0000:0c:00.0 >/sys/bus/pci/drivers/xhci_hcd/unbind
echo 0000:0c:00.0 >/sys/bus/pci/drivers/xhci_hcd/bind
Regards,
Michal
[-- Attachment #2: xhci-bogus-dma.patch --]
[-- Type: text/x-patch, Size: 1086 bytes --]
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
index 83ed26c4f9e4..8d0b42afe911 100644
--- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c
@@ -2349,7 +2349,7 @@ void xhci_add_interrupter(struct xhci_hcd *xhci, unsigned int intr_num)
erst_base = xhci_read_64(xhci, &ir->ir_set->erst_base);
erst_base &= ~ERST_BASE_ADDRESS_MASK;
- erst_base |= ir->erst.erst_dma_addr & ERST_BASE_ADDRESS_MASK;
+ erst_base |= 0xbeef0000;
if (xhci->quirks & XHCI_WRITE_64_HI_LO)
hi_lo_writeq(erst_base, &ir->ir_set->erst_base);
else
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index e5c8b3a945a6..803cbadae9c5 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -497,7 +497,7 @@ static void xhci_set_cmd_ring_deq(struct xhci_hcd *xhci)
crcr = xhci_read_64(xhci, &xhci->op_regs->cmd_ring);
crcr &= ~(CMD_RING_PTR_MASK | CMD_RING_CYCLE);
- crcr |= deq_dma;
+ crcr |= 0xcafe0000;
crcr |= xhci->cmd_ring->cycle_state;
xhci_dbg_trace(xhci, trace_xhci_dbg_init, "Setting command ring address to 0x%llx", crcr);
next prev parent reply other threads:[~2026-09-25 8:27 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-15 4:04 xhci_hcd 0000:0c:00.0 dies with "Abort failed to stop command ring: -110" exactly 24s post-init, tunneled USB4 xHCI behind Goshen Ridge (ASUS ThunderboltEX 4) + CalDigit TS4 Ben
2026-09-15 4:19 ` Mika Westerberg
2026-09-15 4:27 ` Ben
2026-09-15 4:38 ` Mika Westerberg
2026-09-15 4:46 ` Ben
2026-09-15 5:05 ` Mika Westerberg
2026-09-16 3:01 ` Ben
2026-09-16 7:51 ` Mika Westerberg
2026-09-17 2:18 ` Ben
2026-09-17 2:40 ` Ben
2026-09-17 4:38 ` Mika Westerberg
2026-09-19 0:28 ` Ben
2026-09-21 4:44 ` Mika Westerberg
2026-09-21 23:25 ` Ben
2026-09-22 4:26 ` Mika Westerberg
2026-09-22 11:28 ` Mathias Nyman
2026-09-24 3:02 ` Ben
2026-09-24 15:49 ` [WARNING: UNSCANNABLE EXTRACTION FAILED]Re: " Mathias Nyman
2026-09-24 22:18 ` Ben
2026-09-25 8:27 ` Michal Pecio [this message]
2026-09-25 8:40 ` Michal Pecio
2026-09-26 0:28 ` Ben
2026-09-26 8:37 ` Michal Pecio
2026-09-26 13:59 ` Ben
2026-09-26 17:41 ` Michal Pecio
2026-09-29 23:50 ` Ben
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-all 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=20260925102746.25e87ef0.michal.pecio@gmail.com \
--to=michal.pecio@gmail.com \
--cc=YehezkelShB@gmail.com \
--cc=andreas.noever@gmail.com \
--cc=benstaples10@gmail.com \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@linux.intel.com \
--cc=mika.westerberg@linux.intel.com \
--cc=westeri@kernel.org \
/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