Waiting for root device

I’m trying to boot the 4.4.3 kernel from https://github.com/beagleboard/linux/tree/4.4 on a beaglebone white and the kernel stops the boot after ‘Waiting for root device’

The MMC* and REGULATOR* options are enabled:

CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=16
CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_OMAP=y
CONFIG_MMC_OMAP_HS=y

CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_USERSPACE_CONSUMER=y
CONFIG_REGULATOR_ACT8865=m
CONFIG_REGULATOR_ANATOP=y
CONFIG_REGULATOR_AS3722=y
CONFIG_REGULATOR_AXP20X=y
CONFIG_REGULATOR_DA9052=y
CONFIG_REGULATOR_DA9063=y
CONFIG_REGULATOR_FAN53555=m
CONFIG_REGULATOR_GPIO=y
CONFIG_REGULATOR_MC13XXX_CORE=m
CONFIG_REGULATOR_MC13783=m
CONFIG_REGULATOR_MC13892=m
CONFIG_REGULATOR_MT6311=y
CONFIG_REGULATOR_PALMAS=y
CONFIG_REGULATOR_PBIAS=y
CONFIG_REGULATOR_PFUZE100=y
CONFIG_REGULATOR_PWM=y
CONFIG_REGULATOR_S2MPA01=m
CONFIG_REGULATOR_S2MPS11=m
CONFIG_REGULATOR_S5M8767=m
CONFIG_REGULATOR_TI_ABB=y
CONFIG_REGULATOR_TPS65023=y
CONFIG_REGULATOR_TPS6507X=y
CONFIG_REGULATOR_TPS65217=y
CONFIG_REGULATOR_TPS65218=y
CONFIG_REGULATOR_TPS65910=y
CONFIG_REGULATOR_TWL4030=y
CONFIG_REGULATOR_VEXPRESS=m

The config is generated from bb.org_defconfig.

The full boot log is:

Booting kernel from Legacy Image at 82000000 …

Image Name: Linux-4.4.3+
Image Type: ARM Linux Kernel Image (no loading done) (uncompressed)
Data Size: 8112968 Bytes = 7.7 MiB
Load Address: fffffff2
Entry Point: fffffff2
Verifying Checksum … OK

Flattened Device Tree blob at 88000000

Booting using the fdt blob at 0x88000000
XIP Kernel Image (no loading done) … OK
Using Device Tree in place at 88000000, end 88010cb3

Starting kernel …

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 4.4.3+ () (gcc version 4.9.x-google 20150123 (prerelease) (4.9.2_cos_gg_21201ea_4.9.2-r116) ) #30 Tue Mar 8 17:27:58 PST 2016
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine model: TI AM335x BeagleBone
[ 0.000000] cma: Reserved 24 MiB at 0x8e800000
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES1.0 (sgx neon )
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 64960
[ 0.000000] Kernel command line: console=ttyO0,115200n8 loglevel=7 init=/sbin/init cros_legacy cros_debug oops=panic panic=-1 noinitrd vt.global_cursor_default=0 capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART4,BB-UART5,bone-servo-gpios,bone-servo-spi1 root=/dev/mmcblk0p3 ro rootfstype=ext4 rootwait
[ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Memory: 218028K/262144K available (10677K kernel code, 836K rwdata, 3704K rodata, 592K init, 857K bss, 19540K reserved, 24576K cma-reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xd0800000 - 0xff800000 ( 752 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0e1370c (14382 kB)
[ 0.000000] .init : 0xc0e14000 - 0xc0ea8000 ( 592 kB)
[ 0.000000] .data : 0xc0ea8000 - 0xc0f791c8 ( 837 kB)
[ 0.000000] .bss : 0xc0f7d000 - 0xc1053514 ( 858 kB)
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[ 0.000021] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000050] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000068] OMAP clocksource: timer1 at 24000000 Hz
[ 0.000470] Console: colour dummy device 80x30
[ 0.000515] WARNING: Your ‘console=ttyO0’ has been replaced by ‘ttyS0’
[ 0.000525] This ensures that you still see kernel messages. Please
[ 0.000534] update your kernel commandline.
[ 0.000559] Calibrating delay loop… 548.86 BogoMIPS (lpj=2744320)
[ 0.048563] pid_max: default: 32768 minimum: 301
[ 0.048750] Security Framework initialized
[ 0.048769] Yama: becoming mindful.
[ 0.048821] AppArmor: AppArmor disabled by boot time parameter
[ 0.049088] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.049105] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.050234] Initializing cgroup subsys io
[ 0.050275] Initializing cgroup subsys memory
[ 0.050329] Initializing cgroup subsys devices
[ 0.050352] Initializing cgroup subsys freezer
[ 0.050387] Initializing cgroup subsys net_cls
[ 0.050407] Initializing cgroup subsys perf_event
[ 0.050427] Initializing cgroup subsys net_prio
[ 0.050448] Initializing cgroup subsys pids
[ 0.050522] CPU: Testing write buffer coherency: ok
[ 0.050598] ftrace: allocating 31771 entries in 94 pages
[ 0.204559] Setting up static identity map for 0x80008200 - 0x80008258
[ 0.212365] devtmpfs: initialized
[ 0.236406] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 0.258482] omap_hwmod: debugss: _wait_target_disable failed
[ 0.316406] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.319786] xor: measuring software checksum speed
[ 0.418511] arm4regs : 670.800 MB/sec
[ 0.518506] 8regs : 601.200 MB/sec
[ 0.618507] 32regs : 599.600 MB/sec
[ 0.718505] neon : 967.600 MB/sec
[ 0.718517] xor: using function: neon (967.600 MB/sec)
[ 0.718626] pinctrl core: initialized pinctrl subsystem
[ 0.721372] NET: Registered protocol family 16
[ 0.725267] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.734367] OMAP GPIO hardware version 0.1
[ 0.749607] No ATAGs?
[ 0.749650] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.928636] raid6: int32x1 gen() 128 MB/s
[ 1.098521] raid6: int32x1 xor() 95 MB/s
[ 1.268872] raid6: int32x2 gen() 165 MB/s
[ 1.438707] raid6: int32x2 xor() 112 MB/s
[ 1.608832] raid6: int32x4 gen() 163 MB/s
[ 1.778551] raid6: int32x4 xor() 109 MB/s
[ 1.948595] raid6: int32x8 gen() 169 MB/s
[ 2.118633] raid6: int32x8 xor() 98 MB/s
[ 2.288512] raid6: neonx1 gen() 805 MB/s
[ 2.458524] raid6: neonx1 xor() 466 MB/s
[ 2.628530] raid6: neonx2 gen() 1039 MB/s
[ 2.798546] raid6: neonx2 xor() 645 MB/s
[ 2.968513] raid6: neonx4 gen() 1064 MB/s
[ 3.138526] raid6: neonx4 xor() 665 MB/s
[ 3.308510] raid6: neonx8 gen() 541 MB/s
[ 3.478535] raid6: neonx8 xor() 407 MB/s
[ 3.478548] raid6: using algorithm neonx4 gen() 1064 MB/s
[ 3.478558] raid6: … xor() 665 MB/s, rmw enabled
[ 3.478568] raid6: using intx1 recovery algorithm
[ 3.491647] edma 49000000.edma: TI EDMA DMA engine driver
[ 3.498697] SCSI subsystem initialized
[ 3.499681] usbcore: registered new interface driver usbfs
[ 3.499792] usbcore: registered new interface driver hub
[ 3.499917] usbcore: registered new device driver usb
[ 3.500727] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
[ 3.500796] omap_i2c 4819c000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c2_pins, deferring probe
[ 3.500946] media: Linux media interface: v0.10
[ 3.501053] Linux video capture interface: v2.00
[ 3.501209] pps_core: LinuxPPS API ver. 1 registered

So here is a silly question. Are you sure /dev/mmcblk0p3 even exists ? because mmcblk0 on the beaglebone black would be the eMMC . . .

Additionally, are you sure you have 3 partitions on your MMC device ? Typically on modern RCN releases there is only one.

Here's that git checkout on a beaglebone black:

https://paste.debian.net/413462/

I'll test it out on a white tomorrow..

Regards,

Hi William,

Additionally, are you sure you have 3 partitions on your MMC device ? Typically on modern RCN releases there is only one.

So here is a silly question. Are you sure /dev/mmcblk0p3 even exists ? because mmcblk0 on the beaglebone black would be the eMMC . . .

This is a Beaglebone White, so it does not have eMMC. The SD card has 12 partitions, because I’m trying to boot Chromium OS and the root partition it the 3rd partition.

Hi Robert,

I’m trying to boot the 4.4.3 kernel from
https://github.com/beagleboard/linux/tree/4.4 on a beaglebone white and the
kernel stops the boot after ‘Waiting for root device’

Here’s that git checkout on a beaglebone black:

https://paste.debian.net/413462/

I’ll test it out on a white tomorrow…

I want to mention that I was able to boot the 4.1.18 kernel from the same repo, but not the 4.4.3 kernel. The kernel 4.4 does not detect any disks.

I saw that in the kernel 4.4 the DT is a little changed and I tried to change the mmc1_pins configuration (linux/arch/arm/boot/dts/am335x-bone-common.dtsi at 4.4 · beagleboard/linux · GitHub ) to the configuration from the 4.1 kernel (linux/arch/arm/boot/dts/am335x-bone-common.dtsi at 4.1 · beagleboard/linux · GitHub ), but still no luck.

Thank you,
Victor.

It's this change: (i synced our 4.4.x dts tree with 4.5.x, and didn't
pull the revert in fast enough, i'll have a new push shortly)

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/arch/arm/boot?id=e327b3f564031a8d0090a6b3e3562a8b59bafe0e

Regards,

This is a Beaglebone White, so it does not have eMMC.

Yeap, I knew that. But since I do not own a white, was not sure if parttition was the same or not.

The SD card has 12 partitions, because I’m trying to boot Chromium OS and the root partition it the 3rd partition.

OK, I did not know that. I was just troubleshooting from where I know what works on 4.1.x, but seem 4.4.x - 4.5.x have lots of issues. Not just this one.

Thank you Robert,

That indeed fixes the problem and the kernel is able to boot.

Kind regards,
Victor Dodon.