Waiting for root device ...

Hi all,

I am having some trouble getting my root partition to mount.

I am a bit new to this and am likely making a simple mistake. If you could take a minute to look and see if you spot a mistake with my setup I would be very thankful.

I am working on my senior design project at the University of Texas at Dallas along with two other team members. We are creating an IOT alarm clock.
I am creating a custom setup which uses the ti mainline kernel (v4.2.3), ti uboot (ti-u-boot-2015.07), busybox (1_23_stable), and qt (5.5.1). I am developing my software on the latest BeagleBone black.

If you wish, you may view my source tree from github.com/Trekkie33/alm100 or clone it from git@github.com:Trekkie33/alm100.git to see all my configurations (sorry if it is a bit messy at the moment)

I have got all of the individual components cross-compiling however I have not gotten past the initial kernel boot.
Currently the root file system partition does not appear to be mounting using eMMC boot.

My current theories as to where the problem lie are as follows (in order of probability)

  1. Incorrect u-boot uEnv.txt settings (probably to do with the mmcroot)
  2. Issue with device tree binary file (using am335x-boneblack.dtb)
  3. Kernel configuration issue (I have already checked to ensure that eMMC drivers are enabled
  4. Rootfs issue (does not seem to be likely as it does not look as though it is mounting)
  • I am using a customized version of Robert’s scripts which create an sd-card (simplified by hard-coding file locations and settings) and am creating the eMMC disk in the 2 partition mode.

  • I am currently copying the MLO, uEnv.txt. dtb, etc to both the boot partition and rootpart/boot/ . I know these only need to be in one of these places but I have not yet had time to figure out where each one goes and my initial version of the create-sdcard script was not getting everything where it needed to go. I will sort this out later but I do not believe it will cause any issues in the mean time.

My uEnv.txt file is as follows:

loadzimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${kernel_file}
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} ${fdtfile}
mmcroot=/dev/mmcblk0p2 ro
mmcrootfstype=ext4 rootwait
mmcargs=setenv bootargs console=${console} mmcroot=${mmcroot} rootfstype=${mmcrootfstype} ${optargs}
uenvcmd=run loadzimage; run loadfdt; run mmcargs; bootz ${loadaddr} - ${fdtaddr}
optargs=“debug init=/etc/preinit”

I get the following upon boot: