BB not completing boot w/ updated U-Boot: changed U-Boot 2013.10-00249-g15 > U-Boot SPL 2015.10-rc2

I downloaded and compiled u-boot u-boot-2015.10-rc2. I am using kernel debian-wheezy-7.2-(armhf-rootfs-3.8.13-bone30) on a Beaglebone Black.

The configuration works fine until I update u-boot to the version above.

After copying in the MLO and u-boot.img files, everything goes well until the kernel “init”. At this point, the board hangs, but will continue along fine as soon as I insert an SD card (which is a clone of the internal MMC, except it has the original u-boot.

Any help on getting this to boot would be greatly appreciated!!

I suspect it is not finding/reading the initramFS correctly, or the fdt file… and not sure how to configure this correctly in u-boot.

Any help would be truly appreciated!

the boot proceeds as follows:

1)As an added assistance to anyone who may want to opine on my issue, I have made this table which lists some of the differences I notice between the working printenv and bootup messages, and the non working one. There may be others.
2)Additionally, I have basically just copied MLO and u-boot.img into the 1st (fat) partition on my MMC. I have tried other methods of writing it directly (with tftp, mmc write, etc) but those seem to destroy my partition table. I don’t think my methods of copying MLO and u-boot.img are at fault, but certainly a possility.
THANKS!

Your "working" values actually break with v3.14+..

use: the defaults in u-boot mainline:

43
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l43>
/*
44
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l44>
* We setup defaults based on constraints from the Linux kernel, which should
45
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l45>
* also be safe elsewhere. We have the default load at 32MB into DDR (for
46
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l46>
* the kernel), FDT above 128MB (the maximum location for the end of the
47
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l47>
* kernel), and the ramdisk 512KB above that (allowing for hopefully never
48
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l48>
* seen large trees). We say all of this must be within the first 256MB
49
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l49>
* as that will normally be within the kernel lowmem and thus visible via
50
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l50>
* bootm_size and we only run on platforms with 256MB or more of memory.
51
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l51>
*/
52
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l52>
#define DEFAULT_LINUX_BOOT_ENV \
53
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l53>
        "loadaddr=0x82000000\0" \
54
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l54>
        "kernel_addr_r=0x82000000\0" \
55
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l55>
        "fdtaddr=0x88000000\0" \
56
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l56>
        "fdt_addr_r=0x88000000\0" \
57
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l57>
        "rdaddr=0x88080000\0" \
58
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l58>
        "ramdisk_addr_r=0x88080000\0" \
59
<http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=6dc65158994a3479b293da37d2a13ac07e43b45e;hb=HEAD#l59>
        "bootm_size=0x10000000\0"

Regards,

Mr Nelson,

Thanks very much for helping me on this!
I made sure the values you specified in the previous post are in the u-boot that I am compiling.
At this point, u-boot goes all the way up to the point, (I believe) where it mounts the root filesystem, but it looks for mmcblk1p2, instead of using mmcblk0p2. I don’t think there is anything wrong with my filesystem on mmcblk0, since as soon as I put my original u-boot.img back into the boot partition of mmcblk0, it boots all the way through. I believe that somehow, it starts looking for the wrong mmc device when I update u-boot.img .

I will put the boot output below:

Correct, when the microSD is plugged in:

u-boot:
microSD = mmc0
eMMC = mmc1

kernel:
microSD = /dev/mmcblk0
eMMC = /dev/mmcblk1

When microSD is not plugged in:

u-boot:
microSD = mmc0 (but empty)
eMMC = mmc1

kernel:
microSD = <>
eMMC = /dev/mmcblk1

aka, use an uuid/initramfs when you want to use the eMMC as rootfs
without the microSD card plugged,..

Regards,

and i screwed this up: (2nd try)

Correct, when the microSD is plugged in:

u-boot:
microSD = mmc0
eMMC = mmc1

kernel:
microSD = /dev/mmcblk0
eMMC = /dev/mmcblk1

When microSD is not plugged in:

u-boot:
microSD = mmc0 (but empty)
eMMC = mmc1

kernel:
microSD = <>
eMMC = /dev/mmcblk0

aka, use an uuid/initramfs when you want to use the eMMC as rootfs
without the microSD card plugged,..

Regards,

“aka, use an uuid/initramfs when you want to use the eMMC as rootfs
without the microSD card plugged,”

"aka, use an uuid/initramfs when you want to use the eMMC as rootfs
without the microSD card plugged,"

So, and I thank you for your patience- I am in the situation here where I
am booted from my MMC, (sd card is not in the machine). My BB is booted up
and happy. I want to copy my new u-boot.img file into partition 1, so as to
dispense with auto-boot. I know that if I just copy it now, it will, upon
reboot, not mount the mmc root filesystem, like it does now.

Your other option, force root=mmcblk0p1 (but then it won't work if
your microSD is plugged in)

So I must first generate an initramfs? I did try update-initramfs -u, and
that does nothing- no messages, etc... I tried update-initramfs -c, but that
just tells me how to use initramfs.

sudo update-initramfs -ck `uname -r`

Or do you mean I have to configure u-boot or uEnv.txt to use an initramfs?
Sorry, I am quite new to this, and thanks.

You'll also have to configure u-boot to load the generated
initrd.img-`uname -r` as that's what is going ot decode the "uuid =
/dev/mmblkXyZ"...

you can use:

ls -lh /dev/disk/by-uuid/*

to find the uuid of the eMMC partition...

Regards,

Mr Nelson,
Thank you very much! When I finally saw that Kernel booting, it was more beautiful than a sunset by the ocean.
I intend to looking into the options as far as getting the UUID going; however for the moment I used your “option 1” and forced the board to boot from the MMC. I searched around for quite a while trying to find a “force root” command for u-boot, but finally understood that you meant that more figuratively. I modified uEnv.txt like this, and it works… i just specified device 1 rather than variables. I will try the other option later down the road. I think I may have changed it more than I needed to, but it does work. Thanks again!!

mmcpart=2

optargs=fixrtc capemgr.enable_partno=BB-UART2,BB-UART4

uenvcmd=i2c mw 0x24 1 0x3e; kd=0; if test $mmcdev -eq 1; then mmc dev 1; if mmc rescan; then kd=1; fi; mmc dev 1; fi; setenv mmcroot /dev/mmcblk0p${mmcpart} ro

loadfdt=load mmc 1:${mmcpart} ${fdtaddr} ${bootdir}/dtbs/${fdtfile}

loadimage=load mmc 1:${mmcpart} ${loadaddr} ${bootdir}/${bootfile}

optargs=quiet drm.debug=7 capemgr.enable_partno=BB-I2C1

CONFIDENTIALITY NOTICE: This electronic transmission, including all attachments, is directed in confidence solely to the person(s) to whom it is addressed, or an authorized recipient, and may not otherwise be distributed, copied or disclosed. The contents of the transmission may also be subject to intellectual property rights and all such rights are expressly claimed and are not waived. If you have received this transmission in error, please notify the sender immediately by return electronic transmission and then immediately delete this transmission, including all attachments, without copying, distributing or disclosing same.