Le mer. 16 sept. 2026 à 23:47, Marek Vasut <[email protected]> a
écrit :
>
> On 9/16/26 9:24 PM, Romain Beauxis wrote:
> > Le sam. 12 sept. 2026 à 22:04, Marek Vasut <[email protected]> a
> > écrit :
> >>
> >> On 9/11/26 10:32 PM, Romain Beauxis wrote:
> >>> Neither bootm nor EFI ExitBootServices() stops USB controllers
> >>> explicitly. Both only remove devices whose driver sets
> >>> DM_FLAG_ACTIVE_DMA or DM_FLAG_OS_PREPARE. xhci-dwc3 sets neither, so a
> >>> controller brought up by "usb start", e.g. from preboot for a USB
> >>> keyboard, is handed to the OS still running.
> >>>
> >>> Set DM_FLAG_OS_PREPARE so that xhci_dwc3_remove() runs at handoff.
This
> >>> is the path "usb stop" already takes: the xHCI is reset, its PHYs are
> >>> shut down and its clocks and resets are released. Child devices such
as
> >>> hubs, storage and keyboards are removed first, and a controller
already
> >>> stopped by "usb stop" is skipped. xhci-pci has done the same since
> >>> commit e3bbc1f74e05 ("usb: xhci-pci: Add DM_FLAG_OS_PREPARE flag"), as
> >>> have ohci-da8xx and the cdns3 wrappers.
> >>>
> >>> On Apple silicon machines the running controller is user visible:
Linux
> >>> does not enumerate a USB device attached to a Type-C port at boot
until
> >>> it is unplugged and plugged back in.
> >>
> >> boot/bootm.c bootm_final() does call dm_remove_devices_active() , is
> >> that not sufficient to tear the controllers down before booting Linux ?
> >
> > Any idea how to test this?
>
> Add a printf() into the controller and uclass .remove/.unbind callbacks ?
:)

Ok I can try that but I'm not sure if your question covers a part that's
been untested. What I did confirm:
* Stock u-boot: kernel does not pick up the USB device on boot
* With explicit usb stop: kernel does pick up the USB device on boot
* With proposed patch: kernel does pick up the USB device on boot

Is your question related to a different scenario that has not been covered
yet?

> > I can confirm that normal boot does not work without the patch and works
> > with it, that's about as far as I've been
> >
> > Also tested passing an explicit usb stop without the patch and it also
> > works.

Reply via email to