On Tue, 12 May 2026 17:32:09 +0200, Paul Menzel wrote: > As a further data point, adding `ppc_pci_reset_phbs` to the command line > also gets xhci_hcd to initialize the TI xHCI host controller: > > $ lspci -nn -s 0021:0d:00.0 > 0021:0d:00.0 USB controller [0c03]: Texas Instruments TUSB73x0 > SuperSpeed USB 3.0 xHCI Host Controller [104c:8241] (rev 02) > > > [ 14.050249] Issue PHB reset ... > […] > [ 19.339822] ehci_hcd: block sizes: qh 144 qtd 96 itd 192 sitd 96 > [ 19.339919] ohci_hcd: block sizes: ed 112 td 96 > [ 19.340538] xhci_hcd 0021:0d:00.0: xHCI Host Controller
Hi Paul, Are you still interested in this issue, or happy with your workaround? Maybe both? I have some updates: We learned that the kernel does dodgy things with the FW handoff protocol, particularly with TI chips. This may possibly matter if FW is involved. I could supply patches to test this hypothesis. A suspiciously similar case has been reported here: https://lore.kernel.org/linux-usb/[email protected]/T/ There is a new workaround: PCI device reset before kexec. Weird. > No log `xHCI HW did not halt within 32000 usec status = 0x0` (or 0x10 > with the other patch). In `arch/powerpc/platforms/powernv/pci-ioda.c`, > reading the comment in `pnv_pci_init_ioda_phb()` suggests, that PHB > should be reset also in the kexec case: > > /* > * If we're running in kdump kernel, the previous kernel never > * shutdown PCI devices correctly. We already got IODA table > * cleaned out. So we have to issue PHB reset to stop all PCI > * transactions from previous kernel. The ppc_pci_reset_phbs > * kernel parameter will force this reset too. Additionally, > * if the IODA reset above failed then use a bigger hammer. > * This can happen if we get a PHB fatal error in very early > * boot. > */ > if (is_kdump_kernel() || pci_reset_phbs || rc) { > pr_info(" Issue PHB reset ...\n"); > pnv_eeh_phb_reset(hose, EEH_RESET_FUNDAMENTAL); > pnv_eeh_phb_reset(hose, EEH_RESET_DEACTIVATE); > } > > At least, I’d assume that kdump and kexec are similar, that both do not > shut down PCI devices? (Commit 361f2a2a1536 (powrpc/powernv: Reset PHB > in kdump kernel) from 2024 adds (some) the code above.) Apparently, we try to shut down PCI devices on kexec, unless loading a crash dump kernel on panic. So as I wrote in the new thread, we already call xhci_halt() before kexec, the xHC should be halted, and for new kernel xhci_halt() should be almost a no-op with guaranteed success. It seems that we are failing to actually halt it, or something (FW?) touches the chip during kexec, or something else is quite weird. Regards, Michal
