Where is the DTBO coming from? 3.8.13-bone72

In 3.8.13-bone72, where are the overlays? I've grep and find searched the entire disk looking for BB-BONE-AUDI-02*, and I don't have it except in my home dir. But when I try to load the overlay, it works just fine. How can this be? It's not in initrd, or anywhere else I know to look.

This is extraordinarily frustrating, because if it's loading nonexistent DTBOs, then I can't tell what works.

With 3.8 they are built-into the kernel.. do a binary zdump of
"vmlinuz/zImage" and you'll find them..


So, the trick is to rename them and not use the names in the kernel?

What repo/branch has the .dts files for this?


Nevermind, I think I found it (3.8.13-bone72 in bb-kernel). I ran into errors with build_deb.sh, but it applied the patches and I found the two BB-BONE-AUDI-0X-00A0.dts files.

The BB-BONE-AUDI-02-00A0.dts is identical to the one I was compiling and trying to overlay. But if I use any name other than BB-BONE-AUDIO-02, the device tree fails to build correctly. I get these errors:

[ 30.461783] of_get_named_gpio_flags: can't parse gpios property
[ 30.462694] davinci-mcasp 48038000.mcasp: could not find pctldev for node /ocp/i2c@44e0b000/tps@24/regulators/regulator@1, deferring probe
[ 30.462714] davinci-mcasp 48038000.mcasp: pins are not configured from the driver
[ 30.463566] davinci_evm sound.12: ASoC: CODEC (null) not registered
[ 30.470941] davinci_evm sound.12: snd_soc_register_card failed (-517)
[ 30.485116] platform sound.12: Driver davinci_evm requests probe deferral

This is exactly the same error I get when I try to apply MY dtbo.

My only thought is that my dtc is different from the one used to build the dtbo in the bb-kernel build? When building the 3.8.13-bone72 kernel, you say the files are contained within it. How can I find the bytes of the compiled dtbo to compare?

My dtc is:

  $ dtc --version
  Version: DTC 1.4.1-g15342ec5

I build with something like:

  dtc -O dtb -o BB-ENABLE-PRU-00A0.dtbo -b 0 -@ BB-ENABLE-PRU.dts

The one in bb-kernel is:

  $ ./KERNEL/scripts/dtc/dtc -v
  Version: DTC 1.2.0-g37c0b6a0

Yeap, the dtc version matters... This is why i haven't pushed the
"v4.1.x-dtbo" version into the deb repo.. So we don't break v3.8.x..


Did the DTBO format change? In which kernel? This is complicated by the fact that we have to patch dtc to make it support fragments.

I'm still trying to get to a baseline where I can build a DTS that makes the Audio Cape work, and then extend that to getting my Cape to work. I've had absolutely no luck on 4.x kernels, even with the Audio Cape, despite others reporting success. Now I wonder if it's always been due to my dtc, or what.

Correct... Hence the "dtc-overlay.sh" script in the v4.1.x dtbo repo,
and the note about the issue in the readme.md...


Thanks, I'll take a look

here's the script for the old version: (v3.8.x)




Hmm, that built 1.4.0:

  $ ./dtc -v
  Version: DTC 1.4.0-gf345d9e4

Is that still "old"? The one in my kernel build was 1.2.0-something.

1.4.0 is correct for 3.8.x kernels.


For what kernel does this change? That is, starting with which kernel version do I need to use the 1.4.1 dtc?