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.

RTOS/AM5728: Difficulty accessing L4CFG + L4WKUP registers from c66x user mode

Part Number: AM5728

Tool/software: TI-RTOS

The c66x is running the IPC example for Linux ex02_messageq.

When I connect to the c66x core, I cannot access registers in the 0x4A000000 space (even from the CCS memory window)

An error is thrown:

root@solix:~# [   71.900607] ------------[ cut here ]------------
[   71.905266] WARNING: CPU: 0 PID: 0 at /kernel-source//drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x25c/0x378
[   71.915835] 44000000.ocp:L3 Standard Error: MASTER DSP1_CFG TARGET EVE1 (Read Link): At Address: 0x02620018 : Data Access in User mode during Functional access
[   71.930151] Modules linked in: bc_example(O) pru_rproc pruss_intc xhci_plat_hcd xhci_hcd usbcore unified_kbd(O) rpmsg_proto pruss dwc3 udc_core usb_common bluetooth ecdh_generic extcon_usb_gpio pvrsrvkm(O) omap_aes_driver c_can_platform omap_wdt c_can can_dev pruss_soc_bus omap_sham ti_vpe ti_sc ti_csc ti_vpdma dwc3_omap omap_des ad799x des_generic snd_soc_tlv320aic3x crypto_engine omap_crypto atmel_mxt_ts omap_remoteproc virtio_rpmsg_bus rpmsg_core remoteproc sch_fq_codel cryptodev(O) cmemk(O)
[   71.974302] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G           O    4.14.54-g1170dda772 #1
[   71.982601] Hardware name: Generic DRA72X (Flattened Device Tree)
[   71.988717] Backtrace:
[   71.991184] [<c020b808>] (dump_backtrace) from [<c020baec>] (show_stack+0x18/0x1c)
[   71.998789]  r7:00000009 r6:60060193 r5:00000000 r4:c1055bdc
[   72.004477] [<c020bad4>] (show_stack) from [<c094d664>] (dump_stack+0x90/0xa4)
[   72.011738] [<c094d5d4>] (dump_stack) from [<c022b9ec>] (__warn+0xec/0x104)
[

I expect that this is due to the configuration of RTOS SYS/BIOS. It is in user mode I believe.

I would like to modify some registers from the DSP running firmware to clock the PRU units and bring them online.

How would I go about giving user mode access to these registers so that they can be modified (under RTOS)?

Or, should I try to escape user mode if that is even possible?

Here is are the DSP IOMMU page tables at runtime.

L:      da:     pte:
--------------------------
1: 0x48000000 0x48000002
1: 0x48100000 0x48100002
1: 0x48400000 0x48400002
1: 0x48500000 0x48500002
1: 0x48600000 0x48600002
1: 0x48700000 0x48700002
1: 0x48800000 0x48800002
1: 0x48900000 0x48900002
1: 0x48a00000 0x48a00002
1: 0x48b00000 0x48b00002
1: 0x48c00000 0x48c00002
1: 0x48d00000 0x48d00002
1: 0x48e00000 0x48e00002
1: 0x48f00000 0x48f00002
1: 0x4a000000 0x4a040002
1: 0x4a100000 0x4a040002
1: 0x4a200000 0x4a040002
1: 0x4a300000 0x4a040002
1: 0x4a400000 0x4a040002
1: 0x4a500000 0x4a040002
1: 0x4a600000 0x4a040002
1: 0x4a700000 0x4a040002
1: 0x4a800000 0x4a040002
1: 0x4a900000 0x4a040002
1: 0x4aa00000 0x4a040002
1: 0x4ab00000 0x4a040002
1: 0x4ac00000 0x4a040002
1: 0x4ad00000 0x4a040002
1: 0x4ae00000 0x4a040002
1: 0x4af00000 0x4a040002
and so on