Hi everyone :-)

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!

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to