I’m trying to understand the current state of device tree overlays. Is it correct that the cape manager is now obsolete, and device tree overlays should be set up through /boot/uEnv.txt? What about config-pin? Is that an alternative to device tree overlays, or something orthogonal?
The system I’m using is a PocketBeagle with 4.4.91-ti-r133. Before that I was using the 3.8 kernel on a BeagleBone and everything seems to have changed. (Is there a summary somewhere of the new world?)
Is there any better documentation than this somewhere? I have a custom audio (and other stuff) cape I was working on a couple years ago and had to put aside. I would like to get back to that soon, and I see now that there's a new way to configure it. Is there anything that talks about how to configure Debian to set up my cape in the new paradigm?
Is there any better documentation than this somewhere? I have a custom audio (and other stuff) cape I was working on a couple years ago and had to put aside. I would like to get back to that soon, and I see now that there's a new way to configure it. Is there anything that talks about how to configure Debian to set up my cape in the new paradigm?
The "overlay" is the same, the only difference U-Boot loads it..
Since everything relies on U-Boot, make sure to run the version.sh script:
sudo /opt/scripts/tools/version.sh
Then we debug what's going on.. (unless you have usb serial cable to
log u-boot)
bone$ dpkg --list | grep cape
ii bb-cape-overlays 4.4.20171120.0-0rcnee1~stretch+20171120 armhf Device tree overlays for Beaglebone.
ii roboticscape 0.3.4-git20170602-0rcnee4~stretch+20171108 armhf Robotics Cape Library and Examples
So I'm seeing this as the biggest problem most people are having. It's
bitten me more than once too. Just got to remember people. Get into the
habit of pressing the boot button when flashing newer images.
I want to unexport a couple (14, 113 and 115) so the fbtft_device kernel driver and access them. But I get and error
echo: write error: Invalid argument
I see that if I edit /boot/uEnv.txt and comment out:
#enable_uboot_cape_universal=1
I can then access all sorts of gpio pins. But now I can’t run config-pin on them since there is no pinmux entry in /sys/devices/platform/ocp.
Is there a way to free up a few gpio pins to drive the LCD and keep the rest pinmux-able?
Thanks for the explanation, but could you elaborate a bit more on it?
As far as I understand the world as it is now works this way:
0- If you are running anything beyond kernel 4.1 you should be using uboot overlays. Be careful to load the latest bb-cape overlays and be sure that uboot is the latest version, check via /opt/script/tools/version.sh,
look for
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2015.01-00001-gb2412df]
this is wrong: ^^^^^^^^^^^^^^^^^^^^^^^^^^
Should be something like:
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2017.09-00002-g0f3f1c7907]
If not, do
/opt/scripts/tools/developers/update_bootloader.sh
This should put an updated bootloader in the boot block of your Beaglebone. Careful: you should have booted from the internal flash, not from an external flash-card.
1-Overlays are now loaded in /boot/uEnv.txt at boot time.
Cape-universal or the other universal capes make it possible to use config-pin to configure the pins that you want to use,
example:
config-pin -l p9-21
gives all the possible settings
config-pin -q p9-21
gives the current setting
config-pin -a p9-21 i2c
makes the pin respond to i2c signals.
2-if another overlay is loaded in /bootuEnv.txt which is not of the universal type, config-pin does not work anymore???
3-To find out which overlay is loaded if config-pin does not run, use command ??? to find out which overlay(s) is/are currently running
4-If you want to make a combination of some of the universal settings plus an overlay, ???
</SPECULATIVE STEPS: DO NOT USE IN THE REAL WORLD>
I am pretty sure it’s all wrong, but I am struggling with the info too. I am trying to modernize gobot to the latest uboot overlay stufff (it is still looking for cape_mgr slots file), but it is not exactly clear how I can find out if an overlay is set, or if I am able to set a specific pin after some overlay has been loaded.