Part Number: PROCESSOR-SDK-AM437X
Hello,
I tried to access ARM's peripherals in PRU but received error.
SDK version I used is ti-processor-sdk-linux-rt-am437x-evm-02.00.02.11.
The PRU I used was PRUSS0.
I have already enable the ocp master of PRUSS1 by below code, and RPMsg is working now.
/* Enable the OCP master port of PRUSS1 to read external memories */
PRUSS1_CFG_SYSCFG &= ~(STANDY_INIT_BIT);
The accessing code in PRU is: put_uint32(*(volatile uint32_t *)(0x481CC000));
I tried to access DMTIMER2, I2C, ePWM0~2. Only DMTIMER2 could be accessed.
The error message is as follow:
[ 234.724970] ------------[ cut here ]------------
[ 234.728502] WARNING: CPU: 0 PID: 22 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x25c/0x36c()
[ 234.737069] 44000000.ocp:L3 Custom Error: MASTER ICSS0 TARGET L4_PER_1 (Read): Data Access in User mode during Functional access
[ 234.738798] remoteproc0: kicking vq index: 0
[ 234.738804] remoteproc0: kicking vqid 0 on PRU0
[ 234.738815] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 234.738895] remoteproc0: registered virtio0 (type 7)
[ 234.738963] pru-rproc 54474000.pru0: PRU rproc node /ocp/pruss@54440000/pru0@54474000 probed successfully
[ 234.766900] Modules linked in: mod_pru_rproc(O) mod_pruss(O) mod_sram(O) mod_rtc(O) mod_powerfail(O) mod_iobus(O) mod_coupler(O)
[ 234.777820] CPU: 0 PID: 22 Comm: irq/19-l3-app-i Tainted: G O 4.1.20-rt23-yocto-preempt-rt #51
[ 234.787646] Hardware name: Generic AM43 (Flattened Device Tree)
[ 234.792580] [<c00173e8>] (unwind_backtrace) from [<c0013eb0>] (show_stack+0x20/0x24)
[ 234.800408] [<c0013eb0>] (show_stack) from [<c042735c>] (dump_stack+0x24/0x28)
[ 234.806693] [<c042735c>] (dump_stack) from [<c003acdc>] (warn_slowpath_common+0x98/0xc4)
[ 234.813892] [<c003acdc>] (warn_slowpath_common) from [<c003ad48>] (warn_slowpath_fmt+0x40/0x48)
[ 234.822640] [<c003ad48>] (warn_slowpath_fmt) from [<c0296d00>] (l3_interrupt_handler+0x25c/0x36c)
[ 234.830669] [<c0296d00>] (l3_interrupt_handler) from [<c0077e90>] (irq_forced_thread_fn+0x30/0x64)
[ 234.839662] [<c0077e90>] (irq_forced_thread_fn) from [<c00780f4>] (irq_thread+0x11c/0x1fc)
[ 234.847051] [<c00780f4>] (irq_thread) from [<c0056ee0>] (kthread+0xd4/0xec)
[ 234.853043] [<c0056ee0>] (kthread) from [<c000fc08>] (ret_from_fork+0x14/0x2c)
[ 234.860195] ---[ end trace 0000000000000002 ]---
Could you give me some advice?
Best Regards
Jerry