Tool/software: Linux
A15_0 running Linux.
A15_1 running Sysbios(jailhouse inmate).
DSP1 or DSP2 just bare loop uart putout.
A15_0 Linux write the dsp1.out to the share memory, then the A15_1 Sysbios read the dsp1.out from share memory,Sysbios elf_load load the dsp1.out to ddr 0x99000000,and start dsp. DSP unning is normal!
But linux will print out (when DSP start):
[ 372.693635] ------------[ cut here ]------------ [ 372.698354] WARNING: CPU: 0 PID: 0 at /oe/bld/build-CORTEX_1/arago-tmp-external-linaro-toolchain/work-shared/am57xx-evm/kernel-source/drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x254/0x370 [ 372.715901] 44000000.ocp:L3 Standard Error: MASTER MPU TARGET DSP1_SDMA (Read): At Address: 0x00000000 : Data Access in User mode during Functional access [ 372.729781] Modules linked in: jailhouse(O) gsk_gpmc_fpga(O) sha512_generic sha512_arm sha256_generic sha1_generic sha1_arm_neon sha1_arm md5 cbc aes_arm_bs crypto_simd cryptd xfrm_user xfrm4_tunnel ipcomp xfrm_ipcomp esp4 ah4 af_key xfrm_algo bc_example(O) xhci_plat_hcd xhci_hcd dwc3 udc_core ahci_platform libahci_platform libahci omap_sham libata pvrsrvkm(O) omap_aes_driver pruss_soc_bus scsi_mod omap_wdt ti_vpe ti_sc ti_csc ti_vpdma omap_des rtc_palmas extcon_palmas rtc_omap des_generic crypto_engine omap_crypto dwc3_omap pruss pruss_intc sch_fq_codel uio_module_drv(O) uio usbserial usbcore usb_common gdbserverproxy(O) cryptodev(O) cmemk(O) [last unloaded: remoteproc] [ 372.789706] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G O 4.14.40-g4796173fc5 #1 [ 372.798005] Hardware name: Generic DRA74X (Flattened Device Tree) [ 372.804121] Backtrace: [ 372.806587] [<c020b5bc>] (dump_backtrace) from [<c020b8a0>] (show_stack+0x18/0x1c) [ 372.814193] r7:00000009 r6:60070193 r5:00000000 r4:c10539ac [ 372.819885] [<c020b888>] (show_stack) from [<c0925dc8>] (dump_stack+0x90/0xa4) [ 372.827146] [<c0925d38>] (dump_stack) from [<c022b720>] (__warn+0xec/0x104) [ 372.834139] r7:00000009 r6:c0bce70c r5:00000000 r4:c1001cf0 [ 372.839827] [<c022b634>] (__warn) from [<c022b778>] (warn_slowpath_fmt+0x40/0x48) [ 372.847343] r9:00000006 r8:d41e8610 r7:c0bce578 r6:00000002 r5:c0bce62c r4:c0bce6dc [ 372.855125] [<c022b73c>] (warn_slowpath_fmt) from [<c05199bc>] (l3_interrupt_handler+0x254/0x370) [ 372.864035] r3:d41e8480 r2:c0bce6dc [ 372.867623] r4:80080001 [ 372.870172] [<c0519768>] (l3_interrupt_handler) from [<c027f040>] (__handle_irq_event_percpu+0x6c/0x134) [ 372.879695] r10:c10553cd r9:d41e5400 r8:00000017 r7:c1001e14 r6:00000000 r5:d41e5400 [ 372.887557] r4:d41e8980 [ 372.890103] [<c027efd4>] (__handle_irq_event_percpu) from [<c027f12c>] (handle_irq_event_percpu+0x24/0x60) [ 372.899798] r10:c1003ce4 r9:c1000000 r8:d4008000 r7:00000000 r6:c10093ec r5:d41e5400 [ 372.907660] r4:d41e5400 [ 372.910206] [<c027f108>] (handle_irq_event_percpu) from [<c027f1a8>] (handle_irq_event+0x40/0x64) [ 372.919115] r5:d41e5464 r4:d41e5400 [ 372.922709] [<c027f168>] (handle_irq_event) from [<c0282a7c>] (handle_fasteoi_irq+0xac/0x160) [ 372.931270] r7:00000000 r6:c10093ec r5:d41e5464 r4:d41e5400 [ 372.936957] [<c02829d0>] (handle_fasteoi_irq) from [<c027e290>] (generic_handle_irq+0x2c/0x3c) [ 372.945605] r7:00000000 r6:00000000 r5:00000017 r4:c0e64afc [ 372.951290] [<c027e264>] (generic_handle_irq) from [<c027e818>] (__handle_domain_irq+0x64/0xbc) [ 372.960027] [<c027e7b4>] (__handle_domain_irq) from [<c0201474>] (gic_handle_irq+0x44/0x80) [ 372.968415] r9:c1000000 r8:fa213000 r7:fa212000 r6:c1001ed0 r5:fa21200c r4:c1004000 [ 372.976194] [<c0201430>] (gic_handle_irq) from [<c020c478>] (__irq_svc+0x58/0x8c) [ 372.983706] Exception stack(0xc1001ed0 to 0xc1001f18) [ 372.988778] 1ec0: 00000001 00000000 fe600000 00000000 [ 372.996991] 1ee0: ffffe000 c1003cd8 c1003c78 00000000 00000000 c0e643b8 c1003ce4 c1001f2c [ 373.005203] 1f00: c1001f0c c1001f20 c021fd6c c0208804 60070013 ffffffff [ 373.011847] r9:c1000000 r8:00000000 r7:c1001f04 r6:ffffffff r5:60070013 r4:c0208804 [ 373.019630] [<c02087dc>] (arch_cpu_idle) from [<c093e5bc>] (default_idle_call+0x28/0x34) [ 373.027759] [<c093e594>] (default_idle_call) from [<c026b0e8>] (do_idle+0x194/0x224) [ 373.035536] [<c026af54>] (do_idle) from [<c026b43c>] (cpu_startup_entry+0x20/0x24) [ 373.043138] r10:c0e4aa30 r9:c1058000 r8:ffffffff r7:c1058000 r6:00000000 r5:00000002 [ 373.051001] r4:000000be [ 373.053545] [<c026b41c>] (cpu_startup_entry) from [<c0938e2c>] (rest_init+0xd8/0xdc) [ 373.061326] [<c0938d54>] (rest_init) from [<c0e00d9c>] (start_kernel+0x3ec/0x3f8) [ 373.068839] r5:00000000 r4:c105804c [ 373.072432] [<c0e009b0>] (start_kernel) from [<80008090>] (0x80008090) [ 373.078986] ---[ end trace 5c0fc2fdd958b8c9 ]---
But when I move the elf_load and dsp_start code to the linux(A15_0) kernel module, just use linux(A15_0) kernel module to load and start dsp, it will not print the error.