From: Mathias Nyman <mathias.nyman@linux.intel.com>
To: Alexander Wilhelm <alexander.wilhelm@westermo.com>
Cc: Mathias Nyman <mathias.nyman@intel.com>,
Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: usb: Error while assigning device slot ID
Date: Mon, 15 Dec 2025 13:40:08 +0200 [thread overview]
Message-ID: <52ccfa26-4dc7-4832-8f73-ead5d6c3629f@linux.intel.com> (raw)
In-Reply-To: <aTkvyXSs6_lChFdr@FUE-ALEWI-WINX>
On 12/10/25 10:31, Alexander Wilhelm wrote:
>> Flash driver appears as a Full-Speed device. Is this correct?
>
> Yes, that's right.
>
>> Does it work if you boot without the drive and then connect it later?
>
> If I do so, nothing happens and I see nothing in logread, too.
>
> [...]
>> Could you add xhci tracing, and dump the command and event rings after timeout?
>
> Sure, here are the commands and their respective output:
>
> # tracer: nop
> #
> # entries-in-buffer/entries-written: 103/103 #P:4
> #
> # _-----=> irqs-off/BH-disabled
> # / _----=> need-resched
> # | / _---=> hardirq/softirq
> # || / _--=> preempt-depth
> # ||| / _-=> migrate-disable
> # |||| / delay
> # TASK-PID CPU# ||||| TIMESTAMP FUNCTION
> # | | | ||||| | |
> modprobe-20491 [001] .N... 242.678069: xhci_dbg_init: // Device context base array address = 0x0x00000000813f1000 (DMA), 000000006440d11f (virt)
> modprobe-20491 [001] .N... 242.678079: xhci_ring_alloc: CMD 0000000099949093: enq 0x0000000086616000(0x0000000086616000) deq 0x0000000086616000(0x0000000086616000) segs 1 stream 0 bounce 0 cycle 1
> modprobe-20491 [001] .N... 242.678085: xhci_dbg_init: Allocated command ring at 0000000099949093
> modprobe-20491 [001] .N... 242.678090: xhci_dbg_init: First segment DMA is 0x0x0000000086616000
> modprobe-20491 [001] .N... 242.678095: xhci_dbg_init: // Setting command ring address to 0x0000000086616001
> modprobe-20491 [001] .N... 242.678101: xhci_dbg_init: // Doorbell array is located at offset 0x480 from cap regs base addr
> modprobe-20491 [001] .N... 242.678106: xhci_dbg_init: Allocating primary event ring
> modprobe-20491 [001] .N... 242.678111: xhci_ring_alloc: EVENT 0000000069cb484c: enq 0x000000009dd65000(0x000000009dd65000) deq 0x000000009dd65000(0x000000009dd65000) segs 2 stream 0 bounce 0 cycle 1
> modprobe-20491 [001] .N... 242.678118: xhci_dbg_init: // Write event ring dequeue pointer, preserving EHB bit
> modprobe-20491 [001] .N... 242.678199: xhci_dbg_init: xhci_run
> modprobe-20491 [001] .N... 242.678204: xhci_dbg_init: ERST deq = 64'h9dd65000
> modprobe-20491 [001] dN... 242.678318: xhci_dbg_init: // Turn on HC, cmd = 0x5.
> kworker/1:1-54 [001] d.... 242.695620: xhci_get_port_status: port-0: Powered Not-connected Disabled Link:RxDetect PortSpeed:0 Change: Wake:
> kworker/1:3-20526 [001] d.... 242.699424: xhci_get_port_status: port-0: Powered Connected Disabled Link:Polling PortSpeed:1 Change: CSC Wake:
> kworker/1:2-82 [001] d.... 242.699445: xhci_get_port_status: port-0: Powered Not-connected Disabled Link:RxDetect PortSpeed:0 Change: Wake:
> kworker/1:0-21 [001] d.... 242.775417: xhci_get_port_status: port-0: Powered Not-connected Disabled Link:RxDetect PortSpeed:0 Change: Wake:
> kworker/1:0-21 [001] d.... 242.779413: xhci_get_port_status: port-0: Powered Not-connected Disabled Link:RxDetect PortSpeed:0 Change: Wake:
> kworker/1:0-21 [001] d.... 242.783420: xhci_get_port_status: port-0: Powered Not-connected Disabled Link:RxDetect PortSpeed:0 Change: Wake:
> kworker/1:0-21 [001] d.... 242.803419: xhci_get_port_status: port-0: Powered Connected Disabled Link:Polling PortSpeed:1 Change: Wake:
> kworker/1:0-21 [001] d.... 242.803448: xhci_queue_trb: CMD: Enable Slot Command: flags C
> kworker/1:0-21 [001] d.... 242.803449: xhci_inc_enq: CMD 0000000099949093: enq 0x0000000086616010(0x0000000086616000) deq 0x0000000086616000(0x0000000086616000) segs 1 stream 0 bounce 0 cycle 1
> kworker/1:0-21 [001] d.... 242.803455: xhci_ring_host_doorbell: Ring doorbell for Command Ring 0
>
Command ring is at 0x0000000086616000, crcr register is set correctly, cycle is set to 1
Event ring is at 0x000000009dd65000
Driver correctly writes the command to command ring at 0x0000000086616001
> even-ring/trbs:
>
> 0x000000009dd65000: type 'UNKNOWN' -> raw 00000000 00000000 00000000 00000000
> 0x000000009dd65010: type 'UNKNOWN' -> raw 00000000 00000000 00000000 00000000
>
> command-ring/trbs:
>
> 0x0000000086616000: Enable Slot Command: flags C
> 0x0000000086616010: type 'UNKNOWN' -> raw 00000000 00000000 00000000 00000000
>
> It seems like the TRBS output here is not very useful, is it?
It shows the enable slot command was correctly queued to the command ring at 0x86616000,
but xHC controller didn't process it at all as event ring is empty.
It behaves as if xHC isn't really running at all.
portsc registers can show port status (connect) even if xHC isn't running.
I guess next step would be to bisect this and find the offending commit
Thanks
Mathias
next prev parent reply other threads:[~2025-12-15 11:40 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-04 11:09 usb: Error while assigning device slot ID Alexander Wilhelm
2025-12-04 15:35 ` Mathias Nyman
2025-12-05 8:22 ` Alexander Wilhelm
2025-12-09 14:53 ` Mathias Nyman
2025-12-10 8:31 ` Alexander Wilhelm
2025-12-15 11:40 ` Mathias Nyman [this message]
2026-01-19 7:16 ` Alexander Wilhelm
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=52ccfa26-4dc7-4832-8f73-ead5d6c3629f@linux.intel.com \
--to=mathias.nyman@linux.intel.com \
--cc=Thinh.Nguyen@synopsys.com \
--cc=alexander.wilhelm@westermo.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.