Skip to content

USB host controller not enumerating in early boot on Apple Silicon M1 with kernel 6.18.10 (USB root broken, works on 6.17) #454

@uschi909

Description

@uschi909

Description:

On Apple Silicon M1 (Asahi Linux), booting with kernel 6.18.10 breaks USB in early boot.
When the root filesystem is on a USB SSD, the system drops into the initramfs/emergency shell because the root device is not found. The USB bus is not enumerated at all in early boot.

This works reliably with 6.17.12, but fails with 6.18.10.

Observed behavior (6.18.10):

Kernel: 6.18.10-1-1-ARCH (aarch64, Asahi)

In early boot / initramfs:

/sys/bus/usb/devices is empty
/sys/class/scsi_host is empty
No /dev/sdX devices appear

dmesg shows:

usbcore, usb-storage, and uas drivers are registered
xhci_hcd and xhci_plat_hcd initcalls run
But no USB root hub / host is actually registered and no devices are enumerated

Result: root=UUID=… on USB cannot be found, boot drops to emergency shell.

Expected behavior:

USB host controller should be initialized in early boot
USB bus should appear in /sys/bus/usb/devices
USB storage should be enumerated and /dev/sdX should appear
Booting with root on USB should work (as it does on 6.17.12)

Regression:

6.17.12: USB root works, USB is enumerated normally in early boot
6.18.10: USB host not enumerated in early boot, USB root impossible

Additional notes:

The same USB SSD works fine with 6.18.10 when booting from internal NVMe and mounting the device later (i.e. USB works in the fully booted system).

This appears to be specific to early boot / initramfs / host controller bring-up.

Boot bundle (m1n1/DTBs) was updated and verified; the correct ESP is used.

The kernel version actually booted is confirmed via uname -a.

dmesg (early boot) shows xhci_hcd init but no actual host/bus registration.

Hardware:

Apple Silicon MacBook Pro M1 (Asahi Linux)

USB SSD: Silicon Motion / Feiya bridge (VID:PID 090c:2320)
(But the issue seems to be at host controller level, not storage/UAS.)

Steps to reproduce:

Install Asahi Linux with root filesystem on a USB SSD.

Boot with kernel 6.18.10. → System drops to emergency shell: root device not found.

Check:

/sys/bus/usb/devices → empty
/sys/class/scsi_host → empty

Boot same setup with kernel 6.17.12 → USB root works.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions