debian - My custom cape's devicetree fails to load at boot, but can be loaded manually -


if load own device-tree overlay shell loads fine, if try load @ boot, won't so. missing?

it debian beaglebone black set using bone-debian-7.4-2014-04-23-2gb.img.xz
linux beaglebone 3.8.13-bone47 #1 smp fri apr 11 01:36:09 utc 2014 armv7l gnu/linux

here change made /boot/uboot/uenv.txt :

optargs=capemgr.enable_partno=bb-foo-gpio

this output of dmesg | grep bone-capemgr :

baseboard: 'a335bnlt,00a5,4049bbbk7400'
compatible-baseboard=ti,beaglebone-black
slot #0: no cape found
slot #1: no cape found
slot #2: no cape found
slot #3: no cape found
slot #4: specific override
bone: using override eeprom data @ slot 4
slot #4: 'bone-lt-emmc-2g,00a0,texas instrument,bb-bone-emmc-2g'
slot #5: specific override
bone: using override eeprom data @ slot 5
slot #5: 'bone-black-hdmi,00a0,texas instrument,bb-bonelt-hdmi'
slot #6: specific override
bone: using override eeprom data @ slot 6
slot #6: 'bone-black-hdmin,00a0,texas instrument,bb-bonelt-hdmin'
enabled_partno part_number 'bb-foo-gpio', version 'n/a', prio '0'
slot #7: generic override
bone: using override eeprom data @ slot 7
slot #7: 'override board name,00a0,override manuf,bb-foo-gpio'
loader: before slot-4 bb-bone-emmc-2g:00a0 (prio 1)
loader: check slot-4 bb-bone-emmc-2g:00a0 (prio 1)
loader: before slot-5 bb-bonelt-hdmi:00a0 (prio 1)
loader: check slot-5 bb-bonelt-hdmi:00a0 (prio 1)
loader: before slot-6 bb-bonelt-hdmin:00a0 (prio 2)
loader: check slot-6 bb-bonelt-hdmin:00a0 (prio 2)
initialized ok.
loader: check slot-4 bb-bone-emmc-2g:00a0 (prio 1)
loader: check slot-5 bb-bonelt-hdmi:00a0 (prio 1)
loader: check slot-6 bb-bonelt-hdmin:00a0 (prio 2)
loader: before slot-7 bb-foo-gpio:00a0 (prio 0)
loader: check slot-7 bb-foo-gpio:00a0 (prio 0)
loader: after slot-7 bb-foo-gpio:00a0 (prio 0)
slot #7: requesting part number/version based 'bb-foo-gpio-00a0.dtbo
slot #7: requesting firmware 'bb-foo-gpio-00a0.dtbo' board-name 'override board name', version '00a0'
failed load firmware 'bb-foo-gpio-00a0.dtbo'
loader: failed load slot-7 bb-foo-gpio:00a0 (prio 0)
loader: check slot-6 bb-bonelt-hdmin:00a0 (prio 2)
loader: check slot-5 bb-bonelt-hdmi:00a0 (prio 1)
loader: after slot-5 bb-bonelt-hdmi:00a0 (prio 1)
slot #5: requesting firmware 'cape-boneblack-hdmi-00a0.dtbo' board-name 'bone-black-hdmi', version '00a0'
slot #5: dtbo 'cape-boneblack-hdmi-00a0.dtbo' loaded; converting live tree
slot #5: #4 overlays
loader: check slot-4 bb-bone-emmc-2g:00a0 (prio 1)
loader: after slot-4 bb-bone-emmc-2g:00a0 (prio 1)
slot #4: requesting firmware 'cape-bone-2g-emmc1.dtbo' board-name 'bone-lt-emmc-2g', version '00a0'
slot #4: dtbo 'cape-bone-2g-emmc1.dtbo' loaded; converting live tree
slot #4: #2 overlays
slot #4: applied #2 overlays.
loader: done slot-4 bb-bone-emmc-2g:00a0 (prio 1)
loader: check slot-6 bb-bonelt-hdmin:00a0 (prio 2)
slot #5: applied #4 overlays.
loader: done slot-5 bb-bonelt-hdmi:00a0 (prio 1)
loader: check slot-6 bb-bonelt-hdmin:00a0 (prio 2)
loader: after slot-6 bb-bonelt-hdmin:00a0 (prio 2)
slot #6: requesting firmware 'cape-boneblack-hdmin-00a0.dtbo' board-name 'bone-black-hdmin', version '00a0'
slot #6: dtbo 'cape-boneblack-hdmin-00a0.dtbo' loaded; converting live tree
slot #6: bb-bonelt-hdmin conflict p8.45 (#5:bb-bonelt-hdmi)
slot #6: failed verification
loader: failed load slot-6 bb-bonelt-hdmin:00a0 (prio 2)

here source file device-tree overlay:

/dts-v1/; /plugin/;  / {     compatible = "ti,beaglebone", "ti,beaglebone-black";      /* identification */     part-number = "bb-foo-gpio";     version = "00a0";      /* resources required */     exclusive-use =         "p9.27",        /* xxx */         "p9.23",        /* xxx */         "gpio3_19",     /* xxx */         "gpio1_17";     /* xxx */      fragment@0 {         target = <&am33xx_pinmux>;         __overlay__ {             foo_gpio_pins: pinmux_gpio_helper_pins {                 pinctrl-single,pins = <                     0x1a4 0x0f      /* p9.27 gpio3_19: mode7 - output */                     0x044 0x2f      /* p9.23 gpio1_17: mode7 - input */                 >;             };         };     };      fragment@1 {         target = <&ocp>;    /* on-chip peripherals */         __overlay__ {              foo_gpio_helper {                 compatible = "gpio-of-helper";                 pinctrl-names = "default";                 pinctrl-0 = <&foo_gpio_pins>;                 status = "okay";                  foo_test_output {                     gpio-name = "foo_test_output";                     gpio = <&gpio4 19 0x00>;            /* gpio4 => gpio-3 */                     output;                     init-high;                 };                  foo_test_input {                     gpio-name = "foo_test_input";                     gpio = <&gpio2 17 0x00>;            /* gpio2 => gpio-1 */                     input;                     count-rising-edge;                     count-falling-edge;                 };             };         };     }; }; 

~
(i compiled so: dtc -o dtb -o bb-foo-gpio-00a0.dtbo -b 0 -@ bb-foo-gpio-00a0.dts}

now loading manually using echo bb-foo-gpio > $slots" loads fine..
dmesg -c gives me:

bone-capemgr bone_capemgr.9: part_number 'bb-foo-gpio', version 'n/a'
bone-capemgr bone_capemgr.9: slot #8: generic override
bone-capemgr bone_capemgr.9: bone: using override eeprom data @ slot 8
bone-capemgr bone_capemgr.9: slot #8: 'override board name,00a0,override manuf,bb-foo-gpio'
bone-capemgr bone_capemgr.9: slot #8: requesting part number/version based 'bb-foo-gpio-00a0.dtbo
bone-capemgr bone_capemgr.9: slot #8: requesting firmware 'bb-foo-gpio-00a0.dtbo' board-name 'override board name', version '00a0'
bone-capemgr bone_capemgr.9: slot #8: dtbo 'bb-foo-gpio-00a0.dtbo' loaded; converting live tree
bone-capemgr bone_capemgr.9: slot #8: #2 overlays
of_get_named_gpio_flags exited status 17
gpio-of-helper foo_gpio_helper.15: allocated gpio id=0
of_get_named_gpio_flags exited status 115
gpio-of-helper foo_gpio_helper.15: allocated gpio id=1
gpio-of-helper foo_gpio_helper.15: ready
bone-capemgr bone_capemgr.9: slot #8: applied #2 overlays.

and cat /sys/devices/bone_capemgr.9/slots gives me desire:

0: 54:pf---
1: 55:pf---
2: 56:pf---
3: 57:pf---
4: ff:p-o-l bone-lt-emmc-2g,00a0,texas instrument,bb-bone-emmc-2g
5: ff:p-o-l bone-black-hdmi,00a0,texas instrument,bb-bonelt-hdmi
8: ff:p-o-l override board name,00a0,override manuf,bb-foo-gpio

so, missing? why won't load @ boot time, shell? problem seems related firmware not being loaded... don't understand.

this issue has solution described in link: http://elinux.org/beagleboard:beagleboneblack_debian#loading_custom_capes

i hope helps, george


Comments

Popular posts from this blog

database - VFP Grid + SQL server 2008 - grid not showing correctly -

jquery - Set jPicker field to empty value -

.htaccess - htaccess convert request to clean url and add slash at the end of the url -