Linux USB
 help / color / mirror / Atom feed
From: Paul Menzel <pmenzel@molgen.mpg.de>
To: Michal Pecio <michal.pecio@gmail.com>
Cc: Mathias Nyman <mathias.nyman@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-usb@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>,
	linuxppc-dev@lists.ozlabs.org,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>
Subject: Re: IBM Power S822LC: pci 0021:0d:00.0: xHCI HW did not halt within 32000 usec status = 0x0
Date: Tue, 12 May 2026 17:32:09 +0200	[thread overview]
Message-ID: <eff5ca07-26a9-40bd-8668-6e6ed69fe587@molgen.mpg.de> (raw)
In-Reply-To: <20260512102233.290d3665.michal.pecio@gmail.com>

[Cc: +Benjamin]

Dear Michal,


Thank you for your reply.

Am 12.05.26 um 10:22 schrieb Michal Pecio:
> On Tue, 12 May 2026 08:17:08 +0200, Paul Menzel wrote:>
>>> I honestly don't know what to do with this. I think I would start with
>>> looking whether xhci_shutdown() in the old kernel manages to halt it
>>> successfully or if it also fails, and what's the USBSTS there.
>>>
>>> It seems that you can get such information by enabling dynamic debug
>>>
>>>     echo 'module xhci_hcd +p' >/proc/dynamic_debug/control
>>>
>>> and capturing old kernel's log up to kexec() through a serial cable.
>>
>> Unfortunately, nothing is logged over the serial console (BMC SOL) after
>> running `sudo kexec -e` or `sudo systemctl reboot`. I just see:
>>
>>       [69530.180531343,5] OPAL: Switch to big-endian OS
>>       [69538.407292205,5] OPAL: Switch to little-endian OS
>>
>> Which is the OPAL firmware, so it might be involved? No idea, if it
>> touches the xHCI controller.
> 
> So some FW involvement is potentially possible.
> 
> BTW, another method of doing kexec is to setup a crash kernel and
> then trigger panic with /proc/sysrq-trigger.
> 
> This probably won't run xhci_shutdown(). Not sure about OPAL FW.
> Is the outcome any different?
Is the motivation to try to not get the OPAL message to rule out any 
involvement.

I have to check, how to set the crash kernel up.

>> But strangely no xHCI messages are there –  also after booting with
>> Petitboot and initialized xHCI controller? No idea, if it points to,
>> that during kexec or shutdown nothing is power off?
>>
>> With `sudo systemctl reboot` only the line below are logged:
>>
>>       [  121.811384] libvirt-guests.sh[3366]: Running guests on default URI:
>>       [  121.811988] libvirt-guests.sh[3376]: no running guests.
>>       [ … (systemd service stop notifications)]
>>       [  136.254846] systemd-shutdown[1]: Waiting for process: watch_ldconfig
>>       [  218.549684] reboot: Restarting system
>>       [69760.484679183,5] OPAL: Reboot request...
>>         3.55778|Ignoring boot flags, incorrect version 0x0
>>         3.59881|ISTEP  6. 3
> 
> Only "reboot: Restarting system" looks like it's kernel. Maybe you need
> to tweak loglevel before rebooting or kexecing? Try to get more kernel
> messages showing over serial during operation, then kexec.

I actually did set the log level by adding `debug` to the Linux kernel 
command line, and with

     $ echo 9 | sudo tee /proc/sysrq-trigger
     9

and it was confirmed:

     sysrq: Changing Loglevel
     sysrq: Loglevel set to 9

Unfortunately, no more messages.

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

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.)


Kind regards,

Paul

      reply	other threads:[~2026-05-12 15:32 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-06 16:06 IBM Power S822LC: pci 0021:0d:00.0: xHCI HW did not halt within 32000 usec status = 0x0 Paul Menzel
2026-05-06 17:30 ` Michal Pecio
2026-05-11 21:57   ` Paul Menzel
2026-05-11 23:20     ` Michal Pecio
2026-05-12  6:17       ` Paul Menzel
2026-05-12  8:22         ` Michal Pecio
2026-05-12 15:32           ` Paul Menzel [this message]

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=eff5ca07-26a9-40bd-8668-6e6ed69fe587@molgen.mpg.de \
    --to=pmenzel@molgen.mpg.de \
    --cc=benh@kernel.crashing.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mathias.nyman@intel.com \
    --cc=michal.pecio@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox