Changing name and starting new thread as this topic may be very key to many other people. The earlier thread of 'PRU on beaglebone black' discusses some of this but had other info too.
(best on web as far as I found and I looked a LOT. Problem is all sorts of kernel .dtsi stuff or out of date 3.8 capemgr stuff clogs the senses and is highly misleading if you want 3.14 info)
NutShell: A new binary device tree file (ends in .dts) is required in order to re-configure pins on BBBlack from a boot.
For simple addition of uart port ttyO1 that is very simple and works now for my serial need as a .dtb file existed already for uart1 and also one for uart2
Backup your /boot/dtbs/3.14.22-ti-r31/am335x-boneblack.dtb and also your microSD which I boot from for safety.
- sudo cp /boot/dtbs/3.14.22-ti-r31/am335x-boneblack-ttyO1.dtb /boot/dtbs/3.14.22-ti-r31/am335x-boneblack.dtb NOTE it is tty 'letter O' 'Number 1' here!
The full general proceedure IF YOU KNOW HOW TO MODIFY THE TEXT .dts FILE PROPERLY (a highly awkward file) follows ...
Because there is no capemgr (yet) on the 3.14.22-ti-r31 kernel for Ubuntu 14.04.1 on beaglebone black one has to use this basic process.
You will need to have the dtc (device tree compiler) and if not, use sudo apt-get install device-tree-compiler. Do all of below after a 'sudo su' to keep life simple.
I did this completely with boot from microSD and have backed up my full image using Win32DiskImager as this if done wrong can really mess up your boot (ive been lucky so far)
- locate the binary device tree file in use in dir with kernel name like: /boot/dtbs/3.14.22-ti-r31/am335x-boneblack.dtb and put it in some temp folder then cd to there.
- Decompile dtb file: dtc -I dtb -O dts am335x-boneblack.dtb > am335x-boneblack.dts
- Make changes (these changes are rather involved so for this explanation I leave that part off but it's best to find some example 'somewhere'
Examples if you are lucky may be present in other am335x-boneblack.dtb files which you also decompile and diff with the decompiled am335x-boneblack.dts
For example you could get both Uart /dev/ttyO1 AND /dev/ttyO2 both added by combining changes from two files (2nd one for -ttyO2)
- Compile your changes still in temp folder: dtc -O dtb -o am335x-boneblack_new.dtb -b 0 am335x-boneblack.dts
- make copy of master then copy down your changed file like this: cp am335x-boneblack_new.dtb /boot/dtbs/3.14.22-ti-r31/am335x-boneblack.dtb
now on reboot you can see driver changes in assorted ways but use of 'dmesg | grep tty' have been useful for my efforts to enable another Uart
I have yet to work out the more elusive PWM config I need by using this method as there seems to be no default PWM config I could use for example.
I continue to search for one and will try that next.
May the Farce Be With You,
Mark Johnston