Alright, the issue I had why it was not loading the pins was that I was trying to set the pinmux on multiple pins at a time. If even only one of those was already taken, the whole rule would be ignored.
Some of the pins were already claimed by the dtb, so I just changed the pinmux settings in there (as it was not possible to override in the overlay those already set there).
Then the overlay re-defines all the core pins again (4 of the pins in there will fail to load (as dmesg
reveals), but it's fine: these are those that have already been set in the dtb
).
I just pushed to the dev-kernel-4.4.y-xenomai-3-support
branch updated device tree and overlays.
On your 4.4.y kernel you should
scp Bela/resources/am335x-boneblack.dtb root@192.168.7.2:/boot/dtbs/$(uname -r)/
scp Bela/resources/BELA-CORE-PINS-00A0.dtbo root@192.168.7.2
and the upon boot you need to manually
echo BELA-CORE-PINS > /sys/devices/platform/bone_capemgr/slots
to load the overlay.
All of this said, the PRU still hangs on the first call to MCASP_REG_SET_BIT_AND_POLL
, which is very strange.
There may be something broken in the prussdrv
/ pruss_uio
? A memory dump of the PRU shows some differences but I am not sure if these are relevant.
Or is there anything else needed in the dtb to activate the McASP?