This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Trying to load PRU via UIO on 3.12 kernel

I have a binary that was written using the pasm (https://github.com/beagleboard/am335x_pru_package) for a system that used the 3.2 kernel. Everything was dandy, then we updated to the 3.12 kernel. I cannot get the PRU binary to load the way it did in the 3.2 kernel and was hoping it was still possible.

I found these patches that supposedly add support for device tree for the PRU (https://build.merproject.org/package/view_file/home:mike7b4:bbb/kernel-adaptation-bbb-v3.12/0086-These-are-the-patches-necessary-for-enabling-the-PRU.patch?expand=1) however I get the following kernel error when booting:

[    3.015312] platform 4a300000.pruss: omap_device_late_idle: enabled but no driver.  Idling
[    3.024313] ------------[ cut here ]------------
[    3.029261] WARNING: CPU: 0 PID: 1 at arch/arm/mach-omap2/omap_hwmod.c:2359 _idle+0x1b4/0x208()
[    3.038494] omap_hwmod: pruss: idle state can only be entered from enabled state
[    3.046342] Modules linked in:
[    3.049604] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.12.30 #4
[    3.055978] Backtrace: 
[    3.058600] [] (dump_backtrace+0x0/0x10c) from [] (show_stack+0x18/0x1c)
[    3.067555]  r6:c0030b60 r5:00000000 r4:c08b8894 r3:00000000
[    3.073610] [] (show_stack+0x0/0x1c) from [] (dump_stack+0x84/0x9c)
[    3.082133] [] (dump_stack+0x0/0x9c) from [] (warn_slowpath_common+0x70/0x94)
[    3.091548]  r5:00000009 r4:cf071df0
[    3.095365] [] (warn_slowpath_common+0x0/0x94) from [] (warn_slowpath_fmt+0x38/0x40)
[    3.105423]  r8:c07f6470 r7:c08e8a00 r6:a0000113 r5:c0884428 r4:c08843c8
[    3.112579] [] (warn_slowpath_fmt+0x0/0x40) from [] (_idle+0x1b4/0x208)
[    3.121440]  r3:c078e79c r2:c073091c
[    3.125255] [] (_idle+0x0/0x208) from [] (omap_hwmod_idle+0x2c/0x48)
[    3.133840]  r5:c0884428 r4:c08843c8
[    3.137658] [] (omap_hwmod_idle+0x0/0x48) from [] (omap_device_idle+0x40/0x80)
[    3.147164]  r6:c07f660c r5:cf0d0980 r4:00000000 r3:cf0d0940
[    3.153217] [] (omap_device_idle+0x0/0x80) from [] (omap_device_late_idle+0x78/0x88)
[    3.163277]  r5:00000000 r4:cf105000
[    3.167106] [] (omap_device_late_idle+0x0/0x88) from [] (bus_for_each_dev+0x68/0x9c)
[    3.177165]  r4:00000000 r3:cf07ee1c
[    3.180980] [] (bus_for_each_dev+0x0/0x9c) from [] (__omap_device_late_init+0x2c/0x3c)
[    3.191225]  r6:c08e8a00 r5:00000007 r4:c0849bb8
[    3.196153] [] (__omap_device_late_init+0x0/0x3c) from [] (do_one_initcall+0x100/0x160)
[    3.206507] [] (do_one_initcall+0x0/0x160) from [] (kernel_init_freeable+0x10c/0x1d0)
[    3.216669] [] (kernel_init_freeable+0x0/0x1d0) from [] (kernel_init+0x10/0x158)
[    3.226383] [] (kernel_init+0x0/0x158) from [] (ret_from_fork+0x14/0x3c)
[    3.235336]  r5:c05e407c r4:00000000
[    3.239144] ---[ end trace c2b89e2ece3fcafd ]---

Has anyone successfully loaded a program the old way (UIO) on a newer kernel (moving towards remoteproc and rpmsg)? Any suggestions on getting the old way to work on a 3.12 kernel?