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.

AM3874 Memory Map

Other Parts Discussed in Thread: AM3874

Hi all,

We're trying to optimize the memory map for our custom am3874 board. We have 512MB but now we only have access to 176MB from linux, but finally is reduced to 122MB, that's what I get when I run a 'free' info command.

We followed the info from http://processors.wiki.ti.com/index.php/EZSDK_Memory_Map in order to make our board work with only 512MB but now we are trying to recover the memory space occupied by HDVICP2 and the DSP because the AM3874 doesn't have these elements. We have the NDA signed with TI then we'll try to get the firmware sources and we could changes more things not only the firmware loader.

Are there any info I could check? Is it possible what I'm looking for?

Thanks!!

Jorge

  • Jorge,

    As we previously discussed (http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/294217.aspx) you can free memory for the Linux kernel memory (LINUX_MEM_1), reducing the size of the other components from the EZSDK 512MB memory map:

    1. IPC_SR_FRAME_BUFFERS - default size is 188MB. You can reduce to any size that will fit your requirements. For 256MB memory system this size is 16MB.

    2. CMEM - default size is 20MB. As you do not have DSP on Sitara AM387x, you can reduce to 0MB.

    3. DSP_ALG_HEAP - default size is 20MB. As you do not have DSP on Sitara AM387x, you can reduce to 0MB.

    4. IPC_SR_HOST_DSP - default size is 1MB. As you do not have DSP on Sitara AM387x, you can reduce to 0MB.

    5. DSP_DATA - default size is 12MB. As you do not have DSP on Sitara AM387x, you can reduce to 0MB.

    6. IPC_SR_MC_HDVICP2_HDVPSS - default size is 1MB. As you do not have HDVICP2 on Sitara AM387x, you can reduce to 0MB.

    7. MC_HDVICP2_INT_HEAP_CACHED - default size is 24MB. As you do not have HDVICP2 on Sitara AM387x, you can reduce to 0MB.

    8. HDVICP2 Media Controller Firmware - default size is 15MB. As you do not have HDVICP2 on Sitara AM387x, you can reduce to 0MB.

    Thus total sum of freed size is around 265MB. You can add these bytes to the linux kernel memory, mem=441@0x80000000

    Best regards,
    Pavel

  • Hi Pavel,

    Thanks for your answer! Yesterday I was able to do it myself and now I have a lot of free memory :)

    Regards,

    Jorge

  • Hi Pavel,

    I have to open this question again because I've found some weird behavior with the memory defined as you pointed in the previous answer. This is the outcome trying to get gstreamer working with the AM3874.

    My target is to be able to run the next command. In the demoboard is working and no HDVICP2 is needed in order to display in the screen the frames generated.

    gst-launch -v videotestsrc ! omx_ctrl display-mode=OMX_DC_MODE_720P_60  ! gstperf ! omx_videosink sync=false

    The IPC_SR_MC_HDVICP2_HDVPSS segment has to be defined in order to get 'sys_top' show all IPC shared region segments. It's needed too in the memtbl_cfg.h for the 'MEMCFG_SRBASE1' to get the omx components working.

    Now I can run the pipeline but nothing is displayed. More info about this in

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/p/305260/1064345.aspx#1064345

    Regards

    Jorge

  • Hi Jorge,

    Do you mean that you are configuring the DM814x/AM387x EVM to 512MB memory, remove HDVICP2 and DSP, and Gstreamer is working fine, while on your AM387x custom board Gstreamer fails?

    Please have a look on the below links, might be in help:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/205877/765037.aspx

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/186702.aspx

    http://processors.wiki.ti.com/index.php/SysLink_FAQs#Ipc_control.28STARTCALLBACK.29_timeouts_on_TI81XX_device_when_only_the_M3_Core_1_is_used

    Regards,
    Pavel

  • No, I use the demoboard to compare the behavior, and get the differences with the custom board... And I have found and interesting difference!! In the demoboard the command

    gst-launch -v videotestsrc ! omx_ctrl display-mode=OMX_DC_MODE_720P_60  ! gstperf ! omx_videosink sync=false

    is not running too!! But the command

    gst-launch -v videotestsrc ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60  ! gstperf ! omx_videosink sync=false

    works ok! Then I went to my board and I've found the in 1080p the gstreamer works in my custom board too!

    Then the question is: How can I expect to solve this? I think there is a problem supporting 720p in the OMX and gstreamer-omx components from TI. Can you check this? You only have to change the load-hd-firmware.sh to set the video mode and run the gstreamer command:

            modprobe vpss sbufaddr=0xBFB00000 mode=hdmi:720p-60 i2c_mode=1

    I'll post this in the other thread...

    Regards,

    Jorge