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.

AM3894 memory map configuration does not match the published map



We are unable to allocate all the areas defined as LINUX_MEM in the 1GB memory map (http://processors.wiki.ti.com/index.php/EZSDK_Memory_Map) for the DM816x dev board as we have found that HDVPSS_NOTIFY_MEM is declared in the kernel arguments (as supplied with the Android 4 build) set at

notifyk.vpssm3_sva=0xA0000000

which is in the middle of LINUX_MEM_2 and causes the graphics system to stop working if removed.  This is one example and we do not know how many other areas are defined incorrectly.

Is there an accurate memory map for the subsystems that we are using?

We aren't necessarily going to be using all the features of the VPSS on our custom hardware, for example we might want to exclude video encoding and DSP.  We really need a set of instructions on how we can expand the usable memory should we not need the related memory areas for these dropped features.  The wiki mentions that the media controller firmware source is available after signing an NDA which should help us remove/move the modules that we don't need, is this available to us?

The versions of syslink and drivers we are using are:

 Syslink : 2_00_00_78
 IPC     : 1.23.01.26
 HDVPSS  : 01.00.01.28
 SGX: 1.8 DDK

Thanks.

  • Ian,

    Normally the M3 code for codecs in EZSDK 5.0x  runs out of internal M3 heap. The memory map wiki does explain the process but I did write a step by step guide to steal memory from DSP to allocate to M3 heaps. I've attached two versions for 1Gb EVM and also 512Mb as on a customer board.

    I've attached a couple of files describing how to 'steal' memory. Let me know if this helps.

    Jase 

    How to increase Heap Memory available to VPSS and VICP M3 cores v2.zip
  • Hi Jase,

         I try to enlarge the VIDEO_M3_INT_HEAP_CACHED size by modifying the Memory Map. I did exactly what you have said in the attached file(1Gb). But when I try to run the omx examples, there are some problems. The OMX_Init() failed, and I don't know what's the problem. Could you help me?

    BTW, I doubt if the "HOST_CODEGEN_INSTALL_DIR" set in makefile should be the path to gcc or the cross-compiler arm-none-linux-gcc ?

    Thank you very much !

  • We’ve seen some omx_init() hangs when vmalloc is > 370M - we are not 100% certain but have a hypothesis ... 

    HOST_CODEGEN_INSTALL_DIR is for /usr/bin/gcc   as it builds the host executable memsegdef_dm81xxbm which is used to create the mm_dm81xxbm.bin file that is loaded into target filesystem.

    Also the latest 5.05 has increased the heap on M3 to support more channels. 

    SDOCM00095475 Default Memory map needs to be modified for providing more heap to video M3. ( 3. 1080p, or 4 720p decode apps)

     http://software-dl.ti.com/dsps/dsps_public_sw/ezsdk/latest/index_FDS.html

    Cheers

    J

  • Hi, 

    Notify address seems to be not in sync with memory map. If EZSDK omx M3 binaries are used _sva address would be vpssm3_sva=0xBF900000 and not 0xa0000000; Please change the boot args for that.

    Regards

    Vimal