TI E2E Community
Digital Signal Processors (DSP)
DaVinci™ Video Processors
DM816x, C6A816x and AM389x Processors Forum
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
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
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.
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)
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.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.