Tool/software:
Hello,
We are trying to run the rpmsg_zero_copy example mentioned in the AM62A7 multicore section of the MCU_PLUS users guide for the AM62A7:
https://git.ti.com/cgit/rpmsg/rpmsg_char_zerocopy/
We are following the README.md's in the git area. We've been able to do the hello world and echo tests without issue.
We have a customer interested in using the DSP for a particular application to offload some filtering / FFT to the C7x DSP in a separate application with common hardware that will potentially use the C7x for the intended AI features.
We are using the following command line:
rpmsg_char_zerocopy -r 8 -s 10 -e "linux,cma"
We have updated the example.syscfg in the DSP application to add the cma reserved region:
mmu_armv812.$name = "CONFIG_SHARED";
mmu_armv812.vAddr = 0xC0000000;
mmu_armv812.pAddr = 0xC0000000;
mmu_armv812.size = 0x1000000;
mmu_armv812.attribute = "MAIR4";
linux gets here and stops
Created endpt device rpmsg-char-8-1317, fd = 4 port = 1025
Exchanging 1 messages with rpmsg device on rproc id 8 ...
dma-buf address: 0xc00f4000
Buffer @0xffff891f7000 (size 10240) filled with pattern 0xaaaa5555
Sending buffer data #0
Address: 0xc00f4000
Size: 10240
Pattern: 0xaaaa5555
Receiving buffer data #0:
when we dump the trace buffer, the DSP is crashed (and seems to be continuously looping on an error, so we miss the beginning). But debugger shows it is crashing on the buffer_validate() in the Cache_inv() operation.
cat /sys/kernel/debug/remoteproc/remoteproc0/trace0
]
[c75ss0] 174.365843s : 0x000000000000000a [7] 0x0000000000000000 [7]
[c75ss0] 174.365361s :
[c75ss0] 174.365553s : Exception at 0x0000000000000000
[c75ss0] 174.365903s : TSR at time of exception: 0x0000000000000000
[c75ss0] 174.365342s : Page fault:
[c75ss0] 174.365545s : IERR=0x0000000000000001
[c75ss0] 174.365825s : IEAR=0x00000000c00f4000
[c75ss0] 174.365115s : IESR=0x00000000000300c5
[c75ss0] 174.365424s : Page fault exception:
[c75ss0] 174.365711s : uTLB Fault, cpu_se_N_rstatus[10:0]=0xc5
0x0000000000000000 [6]
[c75ss0] 174.365704s : 0x0000000000000000 [7] 0x0000000000000000 [7]
[c75ss0] 174.365218s :
[c75ss0] 174.365376s : SE1_2=0x0000000000000000 [0] SE1_3=0x021dcee084aa6e66 [0]
[c75ss0] 174.365882s : 0x0000000000000000 [1] 0xf7d5bfac76060c23 [1]
[c75ss0] 174.365412s : 0x0000000000000000 [2] 0x0e8880a01e30789d [2]
[c75ss0] 174.365943s : 0x0000000000000003 [3] 0x0000000000000808 [3]
[c75ss0] 174.365425s : 0x4d41bc6801f7043a [4] 0x1509a1111a904103 [4]
[c75ss0] 174.365957s : 0xd038226ce83bd4f6 [5] 0x89a919006ebacd26 [5]
[c75ss0] 174.365511s : 0x80283da21d502185 [6] 0x043844ec8c92c192 [6]
[c75ss0] 174.365063s : 0x0000000000000800 [7] 0x0000000000000010 [7]
Is there anything obvious we might be doing wrong?
Thanks,
Mike