Because of the Thanksgiving holiday in the U.S., TI E2E™ design support forum responses may be delayed from November 25 through December 2. Thank you for your patience.

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: DSP memory map

Part Number: AM5728

Tool/software: TI-RTOS

I get a example project from locale FAE, and the Memory Map of it confuse me.

As told in this file:http://processors.wiki.ti.com/index.php/Linux_IPC_on_AM57xx?keyMatch=am57xx%20ipc&tisearch=Search-EN-Everything#Changing_the_DSP_Memory_Map 

"The physical location where the DSP code/data will actually reside is defined by the CMA carveout" and CMA of DSP1 located at 0X9900000. 

 But , the example given out later set DSP_MEM_TEXT to 0X95000000

in rsc_table_vayu_dsp.c, it define memory:

#define DSP_MEM_TEXT 0x95000000
/* Co-locate alongside TILER region for easier flushing */
#define DSP_MEM_IOBUFS 0x80000000
#define DSP_MEM_DATA 0x95100000
#define DSP_MEM_HEAP 0x95600000

why?

 And CMA of IPU2 is 0x95800000, only 8 MByte is left for Dsp1 TEXT and Data?

I try to change this file and the BLD file , to point DSP_MEM_TEXT to 0X99000000. Project pass the compile ,but error when download to DSP in debug

C66xx_DSP1: File Loader: Verification failed: Values at address 0x997A2811 do not match Please verify target memory and memory map.

C66xx_DSP1: GEL: File: E:/AM5728\ivt5728_dsp_with_ipc\Debug\ivt5728_dsp_with_ipc.out: a data verification error occurred, file load failed.

I want to use the hole CMA area of DSP1 that start from 0X9900000, define a 16M memory for code  and 32m for data.  What should I do ? 

  • The RTOS team have been notified. They will respond here.
  • Hello,

    0X95000000 is the virtual address (the address seen by the DSP subsystem). You can increase it as long as it matches what's defined in the config.bld and is within the CMA pool defined in the device tree.

    When the DSP image is loaded by Linux, RemoteProc parses the system resources defined in the resource table that is linked into the DSP image, and allocates the rpmsg vring buffers and trace buffer, and configures the DSP MMU. If the DSP image is loaded via CCS, this step will be skipped.

    To load and run the DSP you should be following the steps shown in the following guides:

  • Thanks for you help!  

    Do you mean the bld file define the CODE and Data memory ,and rsc_table_vayu_dsp.c should define the TEXT ,DATA ,HEAP limit by BLD file?

    But one I  change the BLD defination over 16m,  it case errors,here is my BLD data:


    var evmDRA7XX_ExtMemMapDsp = {
    EXT_CODE: {
    name: "EXT_CODE",
    base: 0x95000000,
    len: 0x01000000,
    space: "code",
    access: "RWX"
    },
    EXT_DATA: {
    name: "EXT_DATA",
    base: 0x96000000,
    len: 0x01000000,
    space: "data",
    access: "RW"
    },
    EXT_HEAP: {
    name: "EXT_HEAP",
    base: 0x97000000,
    len: 0x00800000,
    space: "data",
    access: "RW"
    },
    TRACE_BUF: {
    name: "TRACE_BUF",
    base: 0x9F000000,
    len: 0x00060000,
    space: "data",
    access: "RW"
    },
    EXC_DATA: {
    name: "EXC_DATA",
    base: 0x9F060000,
    len: 0x00010000,
    space: "data",
    access: "RW"
    },
    PM_DATA: {
    name: "PM_DATA",
    base: 0x9F070000,
    len: 0x00020000,
    space: "data",
    access: "RWX" /* should this have execute perm? */
    },
    };

    And here is the error message when loading code to dsp in CCS

    C66xx_DSP1: File Loader: Verification failed: Values at address 0x95DA2811 do not match Please verify target memory and memory map.
    C66xx_DSP1: GEL: File: E:/AM5728\ivt5728_dsp_with_ipc\Debug\ivt5728_dsp_with_ipc.out: a data verification error occurred, file load failed.

  • I found out what's wrong !
    when I change the BLD and rsc_table, I load the new image by CCS to dsp, it case an error.
    It seem that the dsp's mmu not disabled and conflit with the new resouce table.

    after I download the new dsp image to linux and reboot linux , the image load by the echo 4080000.dsp>bind script. It work fine.
    and the resouce table I newly defined was show in /sys/kernel/debug/omap_iommu/40d01000.mmu/pagetable.
    And then, I can load and debug dsp code in ccs correctly.