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.

AM5728: DSP custom resource table

Part Number: AM5728

Hi All,

   Is there proper description to make custom resource table for DSP1 & DSP2 core. As I want to run DSP CSL based application on both DSP cores simultaneously. 

   Am using Linux SDK ( ti-processor-sdk-linux-am57xx-evm-05.01.00.11) on my main core .

   Problem am facing right now, getting error on DSP1 core of iomu fault. 

   Jut want to know, how to differentiate DSP1 and DSP2 in custom resource table, Config.bld and dts file.

   DSP application is CSL based, am not using RTOS on it.

Geek13  

   

  • Below error is coming  on DSP1 core using remoteproc

    omap-iommu 40d01000.mmu: iommu fault: da 0x3ce80000 flags 0x0
    [10216.963698] remoteproc remoteproc2: crash detected in 40800000.dsp: type mmufault
    [10216.971225] omap-iommu 40d01000.mmu: 40d01000.mmu: errs:0x00000002 da:0x3ce80000 pgd:0xec6c4f38 *pgd:px00000000
    [10216.981577] remoteproc remoteproc2: handling crash #1 in 40800000.dsp
    [10216.988216] remoteproc remoteproc2: recovering 40800000.dsp
    [10217.009233] omap_hwmod: mmu0_dsp1: _wait_target_disable failed
    [10217.015213] remoteproc remoteproc2: stopped remote processor 40800000.dsp
    [10217.022090] remoteproc remoteproc2: powering up 40800000.dsp
    [10217.030332] remoteproc remoteproc2: Booting fw image dra7-dsp1-fw.xe66, size 2232424
    [10217.044863] omap_hwmod: mmu0_dsp1: _wait_target_disable failed
    [10217.050745] omap-iommu 40d01000.mmu: 40d01000.mmu: version 3.0
    [10217.056668] omap-iommu 40d02000.mmu: 40d02000.mmu: version 3.0
    [102▒70698] virtio_rpmsg_bus virtio0: rpmsg host is online
    [10217.076026] remoteproc remoteproc2: registered virtio0 (type 7)
    [10217.082012] remoteproc remoteproc2: remote processor 40800000.dsp is now up

    Geek13

     

  • Hello Geek13,

    Have you taken a look at our Custom Resource Table documentation? It looks like rsc_table_vayu_dsp.h distinguishes between DSP1 and DSP2 with #if defined (VAYU_DSP_1) and (VAYU_DSP_2).

    Regards,

    Nick

  • Hi Nick, 

    Yeah I already take care of macros defined for DSP1 and DSP2 selection. But I think that only change not helpul. Something more required to take care like text,data & heap section for both the cores. 

    As I mention am running both the cores together and both having different application. But am getting an error while running one application on either core 

    Below error is coming when I run application on DSP core. second application working fine. One application creating issue and produce below error while running on either core. 

    root@am57xx-evm:~# [ 819.293530] omap-iommu 41501000.mmu: iommu fault: da 0x3cbc0000 flags 0x0
    [ 819.300355] remoteproc remoteproc3: crash detected in 41000000.dsp: type mmufault
    [ 819.307879] omap-iommu 41501000.mmu: 41501000.mmu: errs:0x00000002 da:0x3cbc0000 pgd:0xed2c8f2c *pgd:px00000000
    [ 819.321757] remoteproc remoteproc3: handling crash #2 in 41000000.dsp
    [ 819.328233] remoteproc remoteproc3: recovering 41000000.dsp
    [ 819.350438] omap_hwmod: mmu0_dsp2: _wait_target_disable failed
    [ 819.356332] ------------[ cut here ]------------
    [ 819.360974] WARNING: CPU: 0 PID: 1239 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
    [ 819.378777] 44000000.ocp:L3 Standard Error: MASTER DSP2_DMA TARGET PCIE2 (Read Link): At Address: 0x0CBC0040 : Data Access in User mode during Functional access
    [ 819.393177] Modules linked in: 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) pru_rproc pruss_intc xhci_plat_hcd xhci_hcd pruss dwc3 udc_core snd_soc_simple_card snd_soc_simple_card_utils snd_soc_omap_hdmi_audio ahci_platform libahci_platform libahci libata pvrsrvkm(O) omap_sham omap_wdt scsi_mod omap_aes_driver pruss_soc_bus ti_vpe omap_des ti_sc rtc_omap ti_csc rtc_palmas ti_vpdma dwc3_omap des_generic extcon_palmas rtc_ds1307 snd_soc_tlv320aic3x crypto_engine at24 omap_crypto omap_remoteproc virtio_rpmsg_bus rpmsg_core remoteproc sch_fq_codel uio_module_drv(O) uio ftdi_sio usbserial usbcore usb_common gdbserverproxy(O) cryptodev(O) cmemk(O)
    [ 819.463676] CPU: 0 PID: 1239 Comm: kworker/0:0 Tainted: G W O 4.14.67-gd315a9bb00 #1
    [ 819.472408] Hardware name: Generic DRA74X (Flattened Device Tree)
    [ 819.478537] Workqueue: events rproc_crash_handler_work [remoteproc]
    [ 819.484828] Backtrace:
    [ 819.487287] [<c020b5bc>] (dump_backtrace) from [<c020b8a0>] (show_stack+0x18/0x1c)
    [ 819.494889] r7:00000009 r6:60000193 r5:00000000 r4:c1053a10
    [ 819.500573] [<c020b888>] (show_stack) from [<c092b128>] (dump_stack+0x90/0xa4)
    [ 819.507826] [<c092b098>] (dump_stack) from [<c022b780>] (__warn+0xec/0x104)
    [ 819.514814] r7:00000009 r6:c0bd9760 r5:00000000 r4:edc73a50
    [ 819.520497] [<c022b694>] (__warn) from [<c022b7d8>] (warn_slowpath_fmt+0x40/0x48)
    [ 819.528008] r9:00000011 r8:ee9ca850 r7:c0bd9aec r6:00000004 r5:c0bd9680 r4:c0bd9730
    [ 819.535783] [<c022b79c>] (warn_slowpath_fmt) from [<c051ab3c>] (l3_interrupt_handler+0x254/0x370)
    [ 819.544688] r3:ee9ca6c0 r2:c0bd9730
    [ 819.548273] r4:80080001
    [ 819.550816] [<c051a8e8>] (l3_interrupt_handler) from [<c027f104>] (__handle_irq_event_percpu+0x6c/0x134)
    [ 819.560334] r10:c105540d r9:ee9c8500 r8:00000017 r7:edc73b74 r6:00000000 r5:ee9c8500

    Error is coming basically when I tried to define an array. If I block comment that function then error is gone. 

    Not able to understand, how to solve that issue,. Is that something related to memory -configuration. 

    As DSP1 maximum memory size is 64MiB and for DSP2 size is only 8MiB. but am using same config.bld for both. 

    What are main files(dts, cfg, bld ) need to be take care to redefine separate memory for DSP1 & DSP2. 

    Regards,

    Geek13 

  • Hello Geek13,

    I would guess the iommu fault is related to memory allocation as per Sahin's comment on your post Application Error.

    On the question about configuring memory: From the Linux IPC Documentation, have you taken a look at the App Notes AM57x Customizing Multicore Application and Modifying Memory Usage For IPUMM using DRA7xx ?

    Regards,

    Nick