Trying to boot 3.16 kernel on Beaglebone White

Hi everyone :slight_smile:

I’m trying to test a fix for arm on the latest Linux kernel, and since my snowball board recently died, I decided to test it
out on my beaglebone white. But I’m having trouble with it. Here’s what I’ve done so far:

First, I updated u-boot to the latest at git://git.denx.de/u-boot.git

I moved the kernel that came with the board to my tftp server and boot it via:
bootcmd=bootp; run mmcargs; bootm
mmcargs=setenv bootargs console=${console} ${optargs} root=${mmcroot} rootfstype=${mmcrootfstype}
console=ttyO0,115200n8

mmcroot=/dev/mmcblk0p2 ro

mmcrootfstype=ext4 rootwait

This works fine when I boot the supplied kernel (3.2). But when I build and boot my own kernel
(I’ve tried 3.13,3.14,3.15 and 3.16, and latest git) it stops at:

[ 2.201723] omap_hsmmc 48060000.mmc: unable to get vmmc regulator -517
[ 2.208937] platform 48060000.mmc: Driver omap_hsmmc requests probe deferral
[ 2.217172] Waiting for root device /dev/mmcblk0p2…

I build the kernel as

CROSS_COMPILE=arm-unknown-linux-gnueabi- make ARCH=arm multi_v7_defconfig
CROSS_COMPILE=arm-unknown-linux-gnueabi- make ARCH=arm dtbs

CROSS_COMPILE=arm-unknown-linux-gnueabi- make ARCH=arm LOADADDR=0x80008000 -j8 zImage modules

cat arch/arm/boot/zImage arch/arm/boot/dts/am335x-evm.dtb > arch/arm/boot/zImage.beagle; mkimage -A arm -O linux -C none -T kernel -a 0x80008000 -e 0x80008000 -d arch/arm/boot/zImage.beagle arch/arm/boot/uImage.beagle

Then I scp the uImage.beagle to my tftp server as the image to load, and reboot the beaglebone white.

I added debugging into the kernel to see what’s happening. There’s three times that the above error is shown.
That -517 is -EPROBE_DEFER. In drivers/regulator/core.c: regulator_dev_lookup() I added printks that look like so:

regulator_supply_alias(&dev, &supply);

printk(“dev=%p of_node=%p\n”, dev, dev ? dev->of_node : NULL);
/* first do a dt based lookup */
if (dev && dev->of_node) {
printk(“dev=%s node=%s\n”, dev->init_name, dev->of_node->name);
node = of_get_regulator(dev, supply);
if (node) {
list_for_each_entry(r, &regulator_list, list) {
printk(“r=%p dev=%s %s\n”, r,
r->dev.init_name,
r->dev.of_node ? r->dev.of_node->name : “(NULL)”);
if (r->dev.parent &&
node == r->dev.of_node)
return r;
}
printk(“FAILED\n”);
*ret = -EPROBE_DEFER;

return NULL;
} else {

Here’s the output for that:

[ 1.843192] dev=cf0d6610 of_node=cfce38e4
[ 1.847374] dev=(null) node=mmc
[ 1.850666] prop_name=vmmc-supply
[ 1.854162] found regnode=regulator
[ 1.857803] r=cf18a000 dev=(null) fixedregulator
[ 1.862639] r=cf00a000 dev=(null) fixedregulator
[ 1.867455] r=cf049c00 dev=(null) (NULL)
[ 1.871542] FAILED

I don’t know if this is a dts problem or what. But I doubt it’s a hardware issue as I can boot the supplied 3.2 kernel with no problem.

Anyone have any ideas on how to get pass this. My workaround may be to just boot an nfs filesystem, but I really don’t
feel like setting that up at the moment.

Thanks!

multi_v7_defconfig doesn't have the regular enabled:

CONFIG_REGULATOR_TPS65217

Regards,

and:

CONFIG_MFD_TPS65217

needs to be enabled to allow CONFIG_REGULATOR_TPS65217

Regards,

multi_v7_defconfig doesn’t have the regular enabled:

CONFIG_REGULATOR_TPS65217

and:

CONFIG_MFD_TPS65217

needs to be enabled to allow CONFIG_REGULATOR_TPS65217

Thank you very much! I also had one other thing wrong, because it didn’t originally work.
I was currently using am335x-evm.dtb instead of am335x-bone.dtb. I used am335x-bone.dtb first
but changed it while debugging. I needed to put it back to boot with the above added configs.

Again, thanks for you quick reply!

I still have a minor issue. Nothing too big as I can still get work done.

One, is that the kernel does not keep the NIC mac address and just assigns a new random one on boot.
This makes my dhcp server not give it the right ip address.

The second is that it does not reboot. It gets down to:

Starting Notify Audit System and Update UTMP about System Shutdown…
Stopping Remount API VFS…
Stopped Remount API VFS [ OK ]
Stopping Temporary Directory…
Stopping Remount Root FS…
Stopped Remount Root FS [ OK ]
Stopped Temporary Directory [ OK ]
Started Notify Audit System and Update UTMP about System Shutdown [ OK ]
Started Console System Reboot Logging [ OK ]

and then hangs. (this is the Angsbroem distro).

Note, the supplied kernel comes keeps the NIC mac addr and reboots fine.

I still have a minor issue. Nothing too big as I can still get work done.

One, is that the kernel does not keep the NIC mac address and just assigns a
new random one on boot.
This makes my dhcp server not give it the right ip address.

I believe the in-kernel efuse mac address read (via dt) was NAK'ed and
they asked to have u-boot set it up instead. (which u-boot doesn't' do
yet either.) Just can't find the discussion on l-o/l-a-k list's.

For these boards in my build farm, i'm just doing the 'hwaddress' override:

echo "hwaddress ether ${override_mac}" >> /etc/network/interfaces

The second is that it does not reboot. It gets down to:

Starting Notify Audit System and Update UTMP about System Shutdown...
Stopping Remount API VFS...
Stopped Remount API VFS [ OK
]
Stopping Temporary Directory...
Stopping Remount Root FS...
Stopped Remount Root FS [ OK
]
Stopped Temporary Directory [ OK
]
Started Notify Audit System and Update UTMP about System Shutdown [ OK
]
Started Console System Reboot Logging [ OK
]

and then hangs. (this is the Angsbroem distro).

Note, the supplied kernel comes keeps the NIC mac addr and reboots fine.

Humm, off hand i'm not sure what config is causing the reboot lockup.
i know in my v3.16.x kitchen_sink_config it's rebooting..

Regards,

http://lists.infradead.org/pipermail/linux-arm-kernel/2013-December/220371.html

Regards,

Can you email me that config please: rostedt@goodmis.org

Thanks!

– Steve

It's right here:

https://github.com/RobertCNelson/bb-kernel/blob/am33x-v3.16/patches/defconfig

ubuntu@arm:~$ uname -a
Linux arm 3.16.1-bone3 #1 Fri Aug 15 01:58:32 UTC 2014 armv7l armv7l
armv7l GNU/Linux
ubuntu@arm:~$ sudo reboot
[sudo] password for ubuntu:
ubuntu@arm:~$
Broadcast message from ubuntu@arm
(/dev/ttyO0) at 17:11 ...

The system is going down for reboot NOW!
[ 37.854354] reboot: Restarting system

U-Boot SPL 2014.07-00016-g329fca9 (Jul 28 2014 - 12:35:02)
reading u-boot.img
reading u-boot.img

Regards,