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.

m3 firmware size

Hello everyone,

The CBB RDK compile M3 firmware strip after m3vpss.xem3 size about 7.5M.

Have any chance smaller than now ?

Thank you very much.
Have a nice day. 

  • Vic Lin,

    Please have a look in the below wiki page, might be in help:

    http://processors.wiki.ti.com/index.php/EZSDK_Reducing_Size_Of_Media_Controller_Firmware

    BR
    Pavel

  • Pls attach the .map and .xem3. After stripping the size of the firmware should be around 1.9 MB and there is potential to reduce the size further. This was the case with dvr_rdk. I am not sure if the increased size in CBB firmware is due to presence of large constant tables. Analysis of .xem3 and .map file should confirm this.

  • Hello Badri,

    Thank you for your reply.

    .map and .xem3 are attached(please remove suffix .txt)

    6114.m3vpss.xem3.txt

    2526.ipnc_rdk_m3vpss_release.xem3.map.txt

  • Below is section wise breakdown of the image you shared.

    As you can see of the initialized section .data accounts for 4184798 bytes. This should be zero . There is a issue with some version of compiler which wrongly groups uninitialized arrays into .data section. It looks like you are hitting the issue. To workaround the issue check the .data section and add following #pragma to force placement of large uninitialized arrays in bss.

    For example

    #ifdef __TMS470__
    #pragma DATA_SECTION(dcc_buf, ".bss")
    #endif

    You should be able to reduce .data section size to 0.

    Apart from .data I see your .text and .const has H264 codec. I don't understand why they are present in VPSS M3 executable. They should be present only in VideoM3 executable. I am not familiar with CarBB but if it is not intentional to link encLink/decLink into M3VPSS firmware remove encLink_init() and decLink_init calls.

    Finally you can comment out call to Syslink_setup in main_m3vpss.c and remove linking of syslink libraries on M3 side.

    If you are unable to do these change simply tar the xem3 and store it on NAND and untar the file on target to /dev/shm and load firmware from /dev/shm. Tarred firmware should be around 500KB.

    ************************************************************
                    Name : Size (dec)  Size (hex)  Type   Load Addr   Run Addr
    -------------------- : ----------  ----------  ----   ----------  ----------
    ti.sdo.ipc.SharedRegion_0 :    4194304  0x00400000  UDATA  0xae600000  0xae600000
    ti.sdo.ipc.SharedRegion_1 :   15728640  0x00f00000  UDATA  0xaea00000  0xaea00000
    ti.sdo.ipc.SharedRegion_2 :   94371840  0x05a00000  UDATA  0xa8c00000  0xa8c00000
         ti_sdo_ipc_init :        100  0x00000064  DATA   0x882dd380  0x882dd380
                  .stack :      40960  0x0000a000  UDATA  0x882d3360  0x882d3360
                    .bss :   19748980  0x012d5874  UDATA  0x86c00000  0x86c00000
              .resetVecs :        320  0x00000140  DATA   0x00000800  0x00000800
             .ducatiBoot :         80  0x00000050  CODE   0x00000000  0x00000000
            .ducatiGates :         16  0x00000010  UDATA  0x000007f0  0x000007f0
                   .text :    1265906  0x001350f2  CODE   0x8682f7e4  0x8682f7e4
                  .const :    2291681  0x0022f7e1  DATA   0x86600000  0x86600000
                   .data :    4184798  0x003fdade  DATA   0x87ed5880  0x87ed5880
    .bss:extMemNonCache:heap :    2031616  0x001f0000  UDATA  0xaf940000  0xaf940000
    .vpss:extMemNonCache:notify :     102400  0x00019000  UDATA  0xafd00000  0xafd00000
    .bss:extMemNonCache:remoteDebugCoreShm :      61536  0x0000f060  UDATA  0xaff00000  0xaff00000
    .bss:exceptionContextNonCached :      35004  0x000088bc  DATA   0xaf920000  0xaf920000

    ------------------------------------------------------------
    Totals by section type
    ------------------------------------------------------------
      Uninitialized Data :  136280292  0x081f78e4
        Initialized Data :    6511903  0x00635d1f
                    Code :    1265986  0x00135142