I am contemplating moving from 3.8.x to 3.13.x kernels due to the apparent improvement in USB support. I am confused, however, as to the state of device trees/overlays and their relationship with capes.
It appears to me that 3.8.x kernels use device tree overlays managed by an internal kernel cape manager, whereas 3.13.x kernels handle capes using Robert Nelson's "Really Simple Cape Manager" to patch and recompile the base BBB device tree.
My questions are:
a) Are the above assumptions correct?
b) Will the 3.8.x cape manager be ported to 3.13.x kernel or is RCN's rscm here to stay.
c) Any other pointers?
I am contemplating moving from 3.8.x to 3.13.x kernels due to the apparent
improvement in USB support. I am confused, however, as to the state of
device trees/overlays and their relationship with capes.
It appears to me that 3.8.x kernels use device tree overlays managed by an
internal kernel cape manager, whereas 3.13.x kernels handle capes using
Robert Nelson's "Really Simple Cape Manager" to patch and recompile the
base BBB device tree.
My questions are:
a) Are the above assumptions correct?
b) Will the 3.8.x cape manager be ported to 3.13.x kernel or is RCN's rscm
here to stay.
sadly, it only works for 'simple' things.
c) Any other pointers?
I might have some free time this weekend..
The path i'm going to start heading for v3.13.x/v3.14.x is just to do
separate major cape dtb's..
So in u-boot: fdtbase=am335x-bone or am335x-boneblack
I vote to keep things simple. Since there is no way to add or remove capes with the power on and since the hardware configuration rarely changes, why have an auto discoverable cape solution. Simply edit the uEnv.txt to add or remove cape settings is the best solution.
Using 3.13.5-bone5.1 on my BBB I have edited my uEnv.txt to include the line: cape=cape-bone-argus and I have the file: /boot/uboot/dtbs/am335x-boneblack-cape-bone-argus.dtb The above dtb does not load regardless of $cape. However if I copy am335x-boneblack-cape-bone-argus.dtb to am335x-boneblack.dtb, all works fine. Any pointers? Regards, Dave.
Just a suggestion. If the dtb for the cape does not exist or is corrupted, could the device tree default to the base, for example am335x-boneblack.dtb?
Hey guys, I am trying to decide whether to stay on the 3.8 kernel or move to 3.13 myself… The reason is that my usb wifi dongle does not work in 3.8 but it does in 3.12+. I am fairly new and just became familiar with getting things to work using the device tree overlays and the cape manager; therefore I am a bit hesitant to leave 3.8… How straightforward would it be to configure SPI/PWM/etc using the rscm? Looking at Robert’s am335x-boneblack-default.dts patch, it seems like UART/I2C/TTY are enabled… Would a similar dts node be created for say PWM? Where would I get a template for that stuff - maybe the existing device tree overlays from 3.8?
Just wondering if it would be easier to move forward now, or stay on 3.8 and try and figure out how to get the wifi dongle to work…
@Chris:
Hi Chris, what usb-wifi devices are you using? Is this the only reason to move to 3.13? I have two wifi devices(Netgear WNA1100 and Logic Supply UWN200) working very reliably with RCN’s debian 3.8.13-bone41. Kernel drivers are built into -bone41 for both. I would recommend devices with these chipsets (Atheros or Ralink/Mediatek).
Regards - Eamonn
Hi Chris, I was using a TP-Link TL-WN725N wifi with the Realtek RTL8188 chipset, and I had a lot of problems with it. I think some of the issue may be the fact that the very small device pushes the antenna too close to BBB where you have a lot of nearby electrical activity (usb, hdmi, SD, DDR etc). I found that the larger devices worked very well, and the Atheros and Mediatek chipsets seem to be more reliable.
Hope that helps - Eamonn
Robert,
It looks like I spoke too soon. Although my device tree appears to get loaded and my driver entry point is called with correct parameters, the pinmux does not appear to get set up correctly. Where do I look in 3.13 kernel based systems to debug the pinmux settings?
Robert,
It appears that the GPIO label numbering scheme has been changed from the device tree overlay's "1 to n+1", to the more con-formant 0 to n; I fell into this trap :-[ . I will send you my consolidated patch directly, once I had time to check it out further.
I think its because of this, the Adafruit Python GPIO library broke. Is there anyway to fix this? I fixed the I2C probably by changing the python file, but unsure how for the SPI.