Hello all,

first post hoping you can help me.

I have finally got my PRU working on my BBB Debian 4.1.17-ti-rt-r46.

I used the PRU_gpioToggle example from 
https://git.ti.com/pru-software-support-package/pru-software-support-package/trees/master/examples/am335x/PRU_gpioToggle
 
which I compiled with CCS6.1

I copied the PRU_gpioToggle.out to the BBB in /lib/firmware/ and I made an 
symbolic link as /lib/firmware/am335x-pru0-fw

my uEnv.txt is as follows:
uname_r=4.1.17-ti-rt-r46
dtb=am335x-boneblack-overlay.dtb
cape_enable=bone_capemgr.enable_partno=cape-univ-audio,cape-univ-emmc,cape-univ-hdmi

When I start up the the firmware is loaded onto the PRU:

[   20.181078] pruss-rproc 4a300000.pruss: 8 PRU interrupts parsed
[   20.181178] pruss-rproc 4a300000.pruss: memory    dram0: pa 0x4a300000 
size 0x2000 va e0b04000
[   20.181206] pruss-rproc 4a300000.pruss: memory    dram1: pa 0x4a302000 
size 0x2000 va e0b08000
[   20.181230] pruss-rproc 4a300000.pruss: memory shrdram2: pa 0x4a310000 
size 0x3000 va e0b0c000
[   20.181253] pruss-rproc 4a300000.pruss: memory     intc: pa 0x4a320000 
size 0x2000 va e0b10000
[   20.181275] pruss-rproc 4a300000.pruss: memory      cfg: pa 0x4a326000 
size 0x2000 va e0b14000
[   20.228354] pruss-rproc 4a300000.pruss: creating platform devices for 
PRU cores
[   20.307883] pru-rproc 4a334000.pru0: memory     iram: pa 0x4a334000 size 
0x2000 va e0b18000
[   20.307951] pru-rproc 4a334000.pru0: memory  control: pa 0x4a322000 size 
0x400 va e09fe000
[   20.307977] pru-rproc 4a334000.pru0: memory    debug: pa 0x4a322400 size 
0x100 va e0b02400
[   20.319303]  remoteproc1: 4a334000.pru0 is available
[   20.353277]  remoteproc1: Note: remoteproc is still under development 
and considered experimental.
[   20.362293]  remoteproc1: THE BINARY FORMAT IS NOT YET FINALIZED, and 
backward compatibility isn't yet guaranteed.
[   20.475842] pru-rproc 4a334000.pru0: booting the PRU core manually
[   20.482081]  remoteproc1: powering up 4a334000.pru0
[   20.517432]  remoteproc1: Booting fw image am335x-pru0-fw, size 33132
[   20.566849]  remoteproc1: starting PRU0: entry-point = 0x0
[   20.566872]  remoteproc1: remote processor 4a334000.pru0 is now up
[   20.602059] pru-rproc 4a334000.pru0: PRU rproc node 
/ocp/pruss@4a300000/pru@4a334000 probed successfully
[   20.649346] pru-rproc 4a338000.pru1: memory     iram: pa 0x4a338000 size 
0x2000 va e0b30000
[   20.649419] pru-rproc 4a338000.pru1: memory  control: pa 0x4a324000 size 
0x400 va e0b34000
[   20.649460] pru-rproc 4a338000.pru1: memory    debug: pa 0x4a324400 size 
0x100 va e0b36400
[   20.655799]  remoteproc2: 4a338000.pru1 is available
[   20.660810]  remoteproc2: Note: remoteproc is still under development 
and considered experimental.
[   20.706800]  remoteproc2: THE BINARY FORMAT IS NOT YET FINALIZED, and 
backward compatibility isn't yet guaranteed.
[   20.729074]  remoteproc2: Direct firmware load for am335x-pru1-fw failed 
with error -2
[   20.737528]  remoteproc2: failed to load am335x-pru1-fw
[   20.743186] pru-rproc 4a338000.pru1: booting the PRU core manually
[   20.749404]  remoteproc2: powering up 4a338000.pru1
[   20.755598]  remoteproc2: Direct firmware load for am335x-pru1-fw failed 
with error -2
[   20.763983]  remoteproc2: request_firmware failed: -2
[   20.769068] pru-rproc 4a338000.pru1: rproc_boot failed
[   20.775630]  remoteproc2: releasing 4a338000.pru1
[   20.780579] pru-rproc: probe of 4a338000.pru1 failed with error -2

And the led begins to blink when I enable the pin as pruout
sudo config-pin 8_28 pruout

Now it should be possible to unload the pru code en point the symbolic link 
/lib/firmware/am335x-pru0-fw towards a new block and reload it again

but when I'm trying to reload my pru with
sudo rmmod -f pruss_remoteproc.ko
sudo insmod /drivers/remoteproc/pruss_remoteproc.ko

I get the following output in my dmesg
[  476.862186] Disabling lock debugging due to kernel taint
[  476.868205] pru-rproc 4a334000.pru0: pru_rproc_remove: removing rproc 
4a334000.pru0
[  476.875941] pru-rproc 4a334000.pru0: stopping the manually booted PRU 
core
[  476.890699]  remoteproc1: stopping PRU0
[  476.890752]  remoteproc1: stopped remote processor 4a334000.pru0
[  476.900523]  remoteproc1: releasing 4a334000.pru0
[  476.917068] pruss-rproc 4a300000.pruss: remove platform devices for PRU 
cores
[  517.877498] pruss-rproc 4a300000.pruss: 8 PRU interrupts parsed
[  517.877733] pruss-rproc 4a300000.pruss: memory    dram0: pa 0x4a300000 
size 0x2000 va e0ccc000
[  517.877819] pruss-rproc 4a300000.pruss: memory    dram1: pa 0x4a302000 
size 0x2000 va e0cd0000
[  517.877897] pruss-rproc 4a300000.pruss: memory shrdram2: pa 0x4a310000 
size 0x3000 va e0cd4000
[  517.877972] pruss-rproc 4a300000.pruss: memory     intc: pa 0x4a320000 
size 0x2000 va e0cd8000
[  517.878047] pruss-rproc 4a300000.pruss: memory      cfg: pa 0x4a326000 
size 0x2000 va e0cdc000
[  517.878124] Unable to handle kernel NULL pointer dereference at virtual 
address 0000000c
[  517.896746] pgd = dce20000
[  517.899515] [0000000c] *pgd=00000000
[  517.903170] Internal error: Oops: 5 [#1] PREEMPT SMP THUMB2
[  517.903276] Modules linked in: pruss_remoteproc(+) usb_f_ecm g_ether 
usb_f_rndis u_ether libcomposite omap_rng rng_core snd_soc_davinci_mcasp 
snd_soc_edma spi_omap2_mcspi uio_pdrv_genirq uio [last unloaded: 
pruss_remoteproc]
[  517.903304] CPU: 0 PID: 828 Comm: insmod Tainted: G  R             
4.1.17-ti-rt-r46 #1
[  517.903315] Hardware name: Generic AM33XX (Flattened Device Tree)
[  517.903330] task: dc1a1680 ti: ddd90000 task.ti: ddd90000
[  517.903380] PC is at omap_device_deassert_hardreset+0x10/0x38
[  517.903442] LR is at pruss_probe+0x27a/0x470 [pruss_remoteproc]
[  517.903462] pc : [<c0024bac>]    lr : [<bf893e53>]    psr: 60010133
sp : ddd91cd0  ip : 00000000  fp : ddd91d20
[  517.903475] r10: 00000005  r9 : c0b68e80  r8 : dc205e24
[  517.903488] r7 : dda08010  r6 : dda08000  r5 : 00000000  r4 : dc205e10
[  517.903501] r3 : c0024b9d  r2 : dc8ba311  r1 : c094126c  r0 : dda08000
[  517.903520] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA Thumb 
 Segment user
[  517.903535] Control: 50c5387d  Table: 9ce20019  DAC: 00000015
[  517.903549] Process insmod (pid: 828, stack limit = 0xddd90218)
[  517.903563] Stack: (0xddd91cd0 to 0xddd92000)
[  517.903585] 1cc0:                                     dc205e10 00000008 
dda08000 bf893e53
[  517.903610] 1ce0: dc205e38 00002000 e0cdc000 c0175873 df93a7a4 bf895514 
bf895680 dc205e10
[  517.903635] 1d00: 00000008 c0b68e80 dda07fa0 bf8951f8 bf895200 bf895208 
bf895214 bf89521c
[  517.903660] 1d20: c0b3b384 dda08010 dda08010 bf895430 fffffdfb c0cf3ff0 
bf895430 00000038
[  517.903685] 1d40: bf895818 c0464acd c0464a99 dda08010 c0c21ea8 00000000 
c0cf3fdc c0463613
[  517.903710] 1d60: c0464cad dda08010 dda08010 bf895430 dda08044 c04637d9 
bf895430 00000000
[  517.903735] 1d80: ddc10f88 c0463829 dda08010 00000000 00000001 c04620ef 
dd8a946c dd9e8bc8
[  517.903759] 1da0: bf895430 ddc51100 00000000 c0bde7e8 bf898001 c0462e77 
bf895238 bf895430
[  517.903784] 1dc0: c0b49148 bf895430 c0b49148 c0b4d960 ddc104c0 c0463e19 
00000000 c0b4d960
[  517.903809] 1de0: c0b49148 bf898011 c0b4d960 c00096bd dfda0218 c011c1b7 
00000000 c011c1b7
[  517.903833] 1e00: c0b4a270 c0033179 dddd6a40 0040003e 00000001 00000001 
c0b42e60 000000d0
[  517.903858] 1e20: dd801e40 c011cd25 c06baa23 c011cd25 0040003f dddd67c0 
c0110a31 c0b4a270
[  517.903883] 1e40: dd801e40 dc8ba311 0040003e bf8957d0 bf8957d0 ddc10240 
00000001 00000001
[  517.903908] 1e60: 223ef09c ddc10f88 bf895818 c06baa4d 00000001 00000001 
ddd91f58 bf8957d0
[  517.903933] 1e80: ddc10f80 c0096b53 bf8957dc 00007fff c0094731 c01287e5 
c0b49148 bf895818
[  517.903957] 1ea0: 7f655e80 bf895958 c0b491ec 00000000 00000103 c0c1d5d0 
00000000 c012c5c3
[  517.903980] 1ec0: 00000000 00000000 00000000 00000000 00000000 00000000 
00000000 00000000
[  517.904004] 1ee0: 00000000 00000000 6e72656b 00006c65 00000000 00000000 
00000000 00000000
[  517.904027] 1f00: 00000000 00000000 00000000 00000000 00000000 00000000 
00000000 00000000
[  517.904052] 1f20: 00000000 dc8ba311 00000038 00000000 00000003 7f655e80 
0000017b c000ea44
[  517.904076] 1f40: ddd90000 00000000 00000000 c00971cb ddd91f5c 00000000 
e0cc1000 00006b74
[  517.904101] 1f60: e0cc755c e0cc4847 e0cc59fc 00002968 000033c8 bf895680 
0000000e 00000000
[  517.904125] 1f80: 00000025 00000026 0000001e 00000019 00000015 00000000 
4d7c1300 7f651cdc
[  517.904149] 1fa0: b6ff5f10 c000e8a1 4d7c1300 7f651cdc 00000003 7f655e80 
00000000 00000002
[  517.904174] 1fc0: 4d7c1300 7f651cdc b6ff5f10 0000017b 00000000 7f651cdc 
7f668000 00000000
[  517.904198] 1fe0: bec01530 bec01520 7f64c6c3 b6f70972 80000030 00000003 
00000000 00000000
[  517.904273] [<c0024bac>] (omap_device_deassert_hardreset) from 
[<bf893e53>] (pruss_probe+0x27a/0x470 [pruss_remoteproc])
[  517.904361] [<bf893e53>] (pruss_probe [pruss_remoteproc]) from 
[<c0464acd>] (platform_drv_probe+0x35/0x74)
[  517.904401] [<c0464acd>] (platform_drv_probe) from [<c0463613>] 
(driver_probe_device+0x177/0x314)
[  517.904437] [<c0463613>] (driver_probe_device) from [<c0463829>] 
(__driver_attach+0x51/0x54)
[  517.904470] [<c0463829>] (__driver_attach) from [<c04620ef>] 
(bus_for_each_dev+0x43/0x64)
[  517.904503] [<c04620ef>] (bus_for_each_dev) from [<c0462e77>] 
(bus_add_driver+0xe3/0x170)
[  517.904534] [<c0462e77>] (bus_add_driver) from [<c0463e19>] 
(driver_register+0x39/0x8c)
[  517.904593] [<c0463e19>] (driver_register) from [<bf898011>] 
(pruss_init+0x10/0x63 [pruss_remoteproc])
[  517.904655] [<bf898011>] (pruss_init [pruss_remoteproc]) from 
[<c00096bd>] (do_one_initcall+0xa5/0x194)
[  517.904701] [<c00096bd>] (do_one_initcall) from [<c06baa4d>] 
(do_init_module+0x49/0x13c)
[  517.904752] [<c06baa4d>] (do_init_module) from [<c0096b53>] 
(load_module+0x13b7/0x18ec)
[  517.904791] [<c0096b53>] (load_module) from [<c00971cb>] 
(SyS_finit_module+0x4f/0x70)
[  517.904832] [<c00971cb>] (SyS_finit_module) from [<c000e8a1>] 
(ret_fast_syscall+0x1/0x4c)
[  517.904860] Code: 4605 b108 f8d0 51ec (7b2b) 460e 
[  518.588108] ---[ end trace 0000000000000002 ]---

Does anybody get any idea how to reload the pru using remotepro?

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to