[beagleboard] Beaglebone Green Debian 8.2 Kernel 4.1.12-bone16 Capemgr failures

I haven’t been following the postings to closely related to the BBG and have run into a small problem.

I’ve built a new 4.1 system using Robert C Nelson’s instructions from the eewiki.

Root file system:

wget -c https:``//rcn-ee.com/rootfs/eewiki/minfs/debian-8.2-minimal-armhf-2015-09-07.tar.xz

Current /boot/uEnv.txt contents:

uname_r=4.1.12-bone16

dtb=am335x-bonegreen.dtb

cape_enable=bone_capemgr.enable_partno=BB-UART2

uuid=d8dfc06b-1696-4918-9a58-9c781183bbea

I used the flasher script:
bbb-eMMC-flasher-eewiki-ext4.sh
To copy the working uSD card to the eMMC

I followed the capemgr instructions for v4.1.x+ on the BBG after booting, no problems encountered there.

All is working except I’m getting capemgr load failures.
Partial dmesg output:

[ 4.319441] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[ 4.325219] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 4.332151] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[ 4.339003] at24 2-0054: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 4.346257] at24 2-0055: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 4.353462] at24 2-0056: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 4.360633] at24 2-0057: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 4.367574] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
[ 4.379591] bone_capemgr bone_capemgr: Baseboard: ‘A335BNLT,▒,BBG115092762’
[ 4.386620] bone_capemgr bone_capemgr: compatible-baseboard=ti,beaglebone-black - #slots=4
[ 4.452718] bone_capemgr bone_capemgr: slot #0: No cape found
[ 4.512714] bone_capemgr bone_capemgr: slot #1: No cape found
[ 4.572715] bone_capemgr bone_capemgr: slot #2: No cape found
[ 4.632713] bone_capemgr bone_capemgr: slot #3: No cape found
[ 4.638499] bone_capemgr bone_capemgr: enabled_partno PARTNO ‘BB-UART2’ VER ‘N/A’ PR ‘0’
[ 4.646637] bone_capemgr bone_capemgr: slot #4: override
[ 4.651974] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 4.658978] bone_capemgr bone_capemgr: slot #4: ‘Override Board Name,00A0,Override Manuf,BB-UART2’
[ 4.668226] bone_capemgr bone_capemgr: initialized OK.
[ 4.673926] cpu cpu0: of_pm_voltdm_notifier_register: Fail calculating voltage latency[950000<->1325000]:-22
[ 4.684119] cpu cpu0: of_pm_voltdm_notifier_register: Fail calculating voltage latency[950000<->1325000]:-22
[ 4.752743] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[ 4.758870] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
[ 4.765364] davinci_mdio: dt: updated phy_id[0] from phy_mask[fffffffe]
[ 4.772022] davinci_mdio: dt: updated phy_id[1] from phy_mask[fffffffe]
[ 4.783500] libphy: 4a101000.mdio: probed
[ 4.787547] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver SMSC LAN8710/LAN8720
[ 4.797495] cpsw 4a100000.ethernet: Detected MACID = 84:eb:18:e6:d6:32
[ 4.805386] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:01 UTC (946684801)
[ 4.814089] of_cfs_init
[ 4.816617] of_cfs_init: OK
[ 4.822601] PM: Hibernation image not present or could not be loaded.
[ 4.823538] Freeing unused kernel memory: 448K (c098a000 - c09fa000)
[ 4.903712] systemd-udevd[86]: starting version 215
[ 4.910405] random: systemd-udevd urandom read with 10 bits of entropy available
[ 5.627393] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)
[ 5.682949] bone_capemgr bone_capemgr: loader: failed to load slot-4 BB-UART2:00A0 (prio 0)
[ 5.857575] systemd[1]: systemd 215 running in system mode. (+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR)
[ 5.871367] systemd[1]: Detected architecture ‘arm’.
[ 5.904036] systemd[1]: Set hostname to .
[ 6.170629] systemd[1]: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory.
[ 6.188167] systemd[1]: Starting Forward Password Requests to Wall Directory Watch.

root@bbb-green:/# cat /sys/devices/platform/bone_capemgr/slots
0: PF---- -1
1: PF---- -1
2: PF---- -1
3: PF---- -1
root@bbb-green:/#

What have I missed if possible to tell from this info.

Thanks,
Ross

Odd, well rerun:

git clone https://github.com/beagleboard/bb.org-overlays
cd bb.org-overlays/

./dtc-overlay.sh
./install.sh

on your bone again..

Regards,

Robert,

No joy on the redo.

I now remember on a BBB with an erased eMMC and booting off the uSD card, I had to remove /boot/initrd.img-4.1.10-bone16 to get capemgr to work. But again, this was a Black and booting off the uSD card.

Just did the same (remove /boot/initrd....) on my Green, with the uSD card as the boot device. The overlay loads okay.

But, if I remove /boot/initrd... from the eMMC booting version, the system hangs here:

[ 3.983731] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[ 3.989491] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 3.996457] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[ 4.003320] at24 2-0054: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 4.010520] at24 2-0055: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 4.017732] at24 2-0056: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 4.024921] at24 2-0057: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 4.031840] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
[ 4.043863] bone_capemgr bone_capemgr: Baseboard: 'A335BNLT,BBG115092762'
[ 4.050870] bone_capemgr bone_capemgr: compatible-baseboard=ti,beaglebone-black - #slots=4
[ 4.112787] bone_capemgr bone_capemgr: slot #0: No cape found
[ 4.172776] bone_capemgr bone_capemgr: slot #1: No cape found
[ 4.232777] bone_capemgr bone_capemgr: slot #2: No cape found
[ 4.292776] bone_capemgr bone_capemgr: slot #3: No cape found
[ 4.298560] bone_capemgr bone_capemgr: enabled_partno PARTNO 'BB-UART2' VER 'N/A' PR '0'
[ 4.306696] bone_capemgr bone_capemgr: slot #4: override
[ 4.312033] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 4.319038] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,BB-UART2'
[ 4.328278] bone_capemgr bone_capemgr: initialized OK.
[ 4.333993] cpu cpu0: of_pm_voltdm_notifier_register: Fail calculating voltage latency[950000<->1325000]:-22
[ 4.344173] cpu cpu0: of_pm_voltdm_notifier_register: Fail calculating voltage latency[950000<->1325000]:-22
[ 4.412806] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[ 4.418932] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
[ 4.425438] davinci_mdio: dt: updated phy_id[0] from phy_mask[fffffffe]
[ 4.432096] davinci_mdio: dt: updated phy_id[1] from phy_mask[fffffffe]
[ 4.439795] libphy: 4a101000.mdio: probed
[ 4.443882] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver SMSC LAN8710/LAN8720
[ 4.453711] cpsw 4a100000.ethernet: Detected MACID = 84:eb:18:e6:d6:32
[ 4.461534] omap_rtc 44e3e000.rtc: setting system clock to 2015-11-03 18:04:45 UTC (1446573885)
[ 4.470328] of_cfs_init
[ 4.472869] of_cfs_init: OK
[ 4.479376] Waiting for root device /dev/mmcblk1p1…
[ 125.532778] random: nonblocking pool is initialized

This is what I know. I do want to run this off the eMMC, so ideas for finding a solution would be nice.

Thanks,
Ross

odd that shouldn't be needed..

Here's my green:

Loaded environment from /boot/uEnv.txt
Checking if uname_r is set in /boot/uEnv.txt...
gpio: pin 56 (gpio 56) value is 1
Running uname_boot ...
loading /boot/vmlinuz-4.1.10-bone16 ...
7001280 bytes read in 405 ms (16.5 MiB/s)
loading /boot/dtbs/4.1.10-bone16/am335x-bonegreen.dtb ...
54482 bytes read in 47 ms (1.1 MiB/s)
loading /boot/initrd.img-4.1.10-bone16 ...
3900537 bytes read in 237 ms (15.7 MiB/s)
debug: [console=ttyO0,115200n8 bone_capemgr.enable_partno=BB-UART2
root=UUID=e759a48a-f2f3-4bfd-a08e-fe33c3547612 ro rootfstype=ext4
rootwait coherent_pool=1M quiet init=/lib/systemd/systemd] ...
debug: [bootz 0x82000000 0x88080000:3b8479 0x88000000] ...
Kernel image @ 0x82000000 [ 0x000000 - 0x6ad4c0 ]
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Ramdisk to 8fc47000, end 8ffff479 ... OK
   Loading Device Tree to 8fc36000, end 8fc464d1 ... OK

Starting kernel ...

debian@beaglebone:~$ cat /boot/uEnv.txt
uname_r=4.1.10-bone16
uuid=e759a48a-f2f3-4bfd-a08e-fe33c3547612
#dtb=

cmdline=coherent_pool=1M quiet init=/lib/systemd/systemd

cape_enable=bone_capemgr.enable_partno=BB-UART2

[ 0.000000] Linux version 4.1.10-bone16
(root@a5-imx6q-wandboard-2gb) (gcc version 4.6.3 (Debian 4.6.3-14) )
#1 Sun Oct 4 10:00:59 UTC 2015
[ 0.000000] Kernel command line: console=ttyO0,115200n8
bone_capemgr.enable_partno=BB-UART2
root=UUID=e759a48a-f2f3-4bfd-a08e-fe33c3547612 ro rootfstype=ext4
rootwait coherent_pool=1M quiet init=/lib/systemd/systemd
[ 3.072409] usb usb1: Manufacturer: Linux 4.1.10-bone16 musb-hcd
[ 3.249190] bone_capemgr bone_capemgr: Baseboard:
'A335BNLT,\x1a,BBG115081143'
[ 3.249214] bone_capemgr bone_capemgr:
compatible-baseboard=ti,beaglebone-black - #slots=4
[ 3.303112] bone_capemgr bone_capemgr: slot #0: No cape found
[ 3.363112] bone_capemgr bone_capemgr: slot #1: No cape found
[ 3.423108] bone_capemgr bone_capemgr: slot #2: No cape found
[ 3.483108] bone_capemgr bone_capemgr: slot #3: No cape found
[ 3.488894] bone_capemgr bone_capemgr: enabled_partno PARTNO
'BB-UART2' VER 'N/A' PR '0'
[ 3.488905] bone_capemgr bone_capemgr: slot #4: override
[ 3.488918] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 3.488932] bone_capemgr bone_capemgr: slot #4: 'Override Board
Name,00A0,Override Manuf,BB-UART2'
[ 3.489178] bone_capemgr bone_capemgr: initialized OK.
[ 3.506182] bone_capemgr bone_capemgr: slot #4: dtbo
'BB-UART2-00A0.dtbo' loaded; overlay id #0

debian@beaglebone:~$ cat /sys/devices/platform/bone_capemgr/slots
0: PF---- -1
1: PF---- -1
2: PF---- -1
3: PF---- -1
4: P-O-L- 0 Override Board Name,00A0,Override Manuf,BB-UART2

debian@beaglebone:~$ ls -lh /lib/firmware/BB-UART*
-rw-r--r-- 1 root root 883 Nov 3 18:26 /lib/firmware/BB-UART1-00A0.dtbo
-rw-r--r-- 1 root root 883 Nov 3 18:26 /lib/firmware/BB-UART2-00A0.dtbo
-rw-r--r-- 1 root root 883 Nov 3 18:26 /lib/firmware/BB-UART4-00A0.dtbo
-rw-r--r-- 1 root root 883 Nov 3 18:26 /lib/firmware/BB-UART5-00A0.dtbo

debian@beaglebone:~$ cat /usr/share/initramfs-tools/hooks/dtbo
#!/bin/sh -e
# Copy the *.dtbo's into the initramfs

if [ "$1" = "prereqs" ]; then exit 0; fi

. /usr/share/initramfs-tools/hook-functions

if [ -d /lib/firmware/ ] ; then
    unset check
    check=$(ls /lib/firmware/ | grep dtbo | head -n 1)
    if [ ! "x${check}" = "x" ] ; then
        mkdir -p $DESTDIR/lib/firmware/
        cp -a /lib/firmware/*.dtbo $DESTDIR/lib/firmware/
    fi
fi

Regards,

Here is my updated uEnv.txt. By ordering the entries like yours and adding the cmdline= entry, the overlays are now loaded at boot time without error.

Not sure either, I disabled each individually,

coherent_pool=1M
This is for some wifi module, with it removed, the cape loads fine..

init=/lib/systemd/systemd
This is for debian wheezy (7.x) to load systemd as init, for debian
(8.x) this isn't needed as systemd is init..
with it removed, the cape loads fine..

Regards,

Okay, this was unexpected. The cmdline=quiet NEEDS to be there for the capes to load at boot.
I confirmed your findings in that the other two entries made no difference, but the quiet option apparently is SIGNIFICANT.

Thanks for your help on this one. Don't even want to guess what's up here.

Moving on now,
Ross