Other Parts Discussed in Thread: OMAP-L137
I'm currently using a reconfigured dsplink-1_61 (expanding the code/data space, using memory from 0xc2000000 for DDR2 and memory above that for cmem (c3000000 - c4e00000), with the following in the config/all file.
/** ============================================================================
* @name RESETCTRLADDR
*
* @desc Indicates the start address of Reset Ctrl memory region.
* last two nibbles must be zero i.e. align to 256 boundary.
* ============================================================================
*/
#define RSTENTRYID 0
#define RESETCTRLADDR 0xC5000000
#define RESETCTRLSIZE 0x1000
/** ============================================================================
* @name CODEMEMORYADDR/CODEMEMORYSIZE
*
* @desc Indicates startaddress/size for dsplink code region.
* ============================================================================
*/
#define CODEENTRYID 1
#define CODEMEMORYADDR (0xC2000000)
#define CODEMEMORYSIZE (0x01000000)
/** ============================================================================
* @name SHAREDENTRYID/SHAREDMEMORYADDR/SHAREDMEMORYSIZE
*
* @desc Indicates startaddress/size for dsplink shared memory region.
* ============================================================================
*/
#define SHAREDENTRYID0 2
#define SHAREDMEMORYADDR0 (RESETCTRLADDR + RESETCTRLSIZE)
#define SHAREDMEMORYSIZE0 0x5000
/** ============================================================================
* @name SHAREDENTRYID/SHAREDMEMORYADDR/SHAREDMEMORYSIZE
*
* @desc Indicates startaddress/size for dsplink shared memory region.
* ============================================================================
*/
#define SHAREDENTRYID1 3
#define SHAREDMEMORYADDR1 (SHAREDMEMORYADDR0 + SHAREDMEMORYSIZE0)
#define SHAREDMEMORYSIZE1 0x2B000
/** ============================================================================
* @name POOLMEMORYADDR/POOLMEMORYSIZE
*
* @desc Indicates startaddress/size for dsplink POOL memory region.
* ============================================================================
*/
#define POOLENTRYID 4
#define POOLMEMORYADDR (SHAREDMEMORYADDR1 + SHAREDMEMORYSIZE1)
#define POOLMEMORYSIZE 0x000D0000u
The associated dsp/inc file and the server.tcf file put the sections in the same place. My cmem configuration puts pools between 0xc3000000 and 0xc4e000000 (way more than I need).
I noticed that Codec Engine has a dsplink directory with files in it that don't match this. These files are associated with lad. I'm not intentionally using lad, but I don't know if Codec Engine uses these files. If not, since I don't rebuild it, how does it get its memory configuration?
I'm currently have multiple tasks/threads on both the ARM9 and DSP sides of the OMAP-L137. They have worked up until now. All of my trace output suggests that everything is fine. Then I add a code statement and the server image load/start hangs. Note that it doesn't matter what the statement is. It could be a GT_0trace. It could be an assignment. It could repeat an existing statement (to null effect). I'm wondering if it has anything to do with Codec Engine's memory configuration. (My server code is very large and does not fit in the default code/data size.)
Do any of you know if Codec Engine has some limitations related to either the size of the memory segments or the use of memory outside of the usual memory map? (I've added more memory from 0xc4000000 to 0xc7ffffff. The memory is functional (read/write/etc) and Linux is still inside its 0xc0000000 to 0xc1ffffff bounds.