Bug 1080449 - HiKey 960 fails to find rootfs on SD card - Hi6421 PMU missing
HiKey 960 fails to find rootfs on SD card - Hi6421 PMU missing
Classification: openSUSE
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Kernel
aarch64 openSUSE Factory
: P4 - Low : Normal (vote)
: ---
Assigned To: Andreas Färber
E-mail List
Depends on:
  Show dependency treegraph
Reported: 2018-02-11 01:24 UTC by Andreas Färber
Modified: 2022-12-23 11:21 UTC (History)
4 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Färber 2018-02-11 01:24:08 UTC
Using kernel-default 4.14.15 (or 4.15.1 from Kernel:HEAD) the HiKey 960 boots into our initrd but fails to find the rootfs on SD card.

Adding dw_mmc-k3 module to the dracut initrd does not help.

Possible cause: Hi6421 v530 PMU drivers are missing.
Comment 1 Andreas Färber 2018-02-11 01:35:18 UTC
Kconfig patch queued for master branch.
Comment 2 Andreas Färber 2018-02-11 14:21:37 UTC
Enabling Hi6421 drivers and adding them to the initrd along with dw_mmc-k3, k3dma and reset-hi3660 gets it to boot into the rootfs.

add_drivers+=" hi6421-pmic-core hi6421v530-regulator reset-hi3660 k3dma dw_mmc-k3 "

It now hangs during udev:

         Starting udev Coldplug all Devices...
[  OK  ] Started udev Coldplug all Devices.
[   11.825125] cpu cpu0: failed to get clock: -2
[   11.829524] cpufreq-dt: probe of cpufreq-dt failed with error -2
[   11.838453] dwmmc_k3 ff3ff000.dwmmc2: 'num-slots' was deprecated.
[   11.844565] dwmmc_k3 ff3ff000.dwmmc2: fifo-depth property not found, using value of FIFOTH register as default
[   11.856736] dwmmc_k3 ff3ff000.dwmmc2: IDMAC supports 64-bit address mode.
[   11.863644] dwmmc_k3 ff3ff000.dwmmc2: Using internal DMA controller.
[   11.870015] dwmmc_k3 ff3ff000.dwmmc2: Version ID is 270a
[   11.875391] dwmmc_k3 ff3ff000.dwmmc2: DW MMC controller at irq 57,32 bit host data width,64 deep fifo
[   11.884784] mmc_host mmc1: card is non-removable.

This eventually showed up once:

[   72.886593] INFO: rcu_sched detected stalls on CPUs/tasks:
[   72.892101]  0-...0: (1 GPs behind) idle=fc2/140000000000000/0 softirq=1219/1222 fqs=3000 
[   72.900362]  (detected by 7, t=6002 jiffies, g=79, c=78, q=2984)
[   72.906368] Task dump for CPU 0:
[   72.909590] systemd-udevd   R  running task        0   427    407 0x00000822
[   72.916639] Call trace:
[   72.919091]  __switch_to+0x94/0xd8
[   72.922489]  0xffff8000bb458568

That appears to match https://bugs.96boards.org/show_bug.cgi?id=703 behavior.

If I override the DT with dtb-hisilicon 4.15.1 hi3660-hikey960.dtb then the CPU and MMC messages don't appear, but it still hangs during udev.
Comment 3 Andreas Färber 2019-05-13 10:34:55 UTC
With upstream .dtb at latest 4.20 has been booting.