core locks using IXA SDK
Hi all, While programming our IXP1200 we face a problem concerning issueing a memory lock from the core. We are using linux (bluecat 2.3.99) as the operating system for the core and the IXA SDK programming model for our application development. Memory shared between the core and the microengines is allocated using the RmMalloc(...) function and read/write (without lock constraints) works fine from both the core and the MEs (passing the address returned by RmGetPhysOffset(...)). Chapter 7 (p 167) of the IXP1200 programming book states that an SRAM memory read-lock can be obtained by the following command: *(unsigned int *)(SRAM_READ_LOCK + (sramLWAddr << 2)); where sramLWAddr is the physical address in longwords and SRAM_READ_LOCK is defined as follows: #define SRAM_READ_LOCK 0x12000000 Quite obviously, this results in a memory violation because the memory was not previously allocated (in the 0x12000000 range). A related problem we face is that our addresses allocated in SRAM (by RmMalloc) seem to have a virtual address starting with 0xf400...., which does not correspond to the 10000000-->107fffff range presented in the "StrongARM Core Memory Map" (appendix C) from the "Microcode Programmer's Reference Manual". If the memory is not allocated in this range, does the corresponding 0x12000000 range for the SRAM locks make any sense? Any help for these issues would be greatly appreciated. Kind regards, Tim
participants (1)
-
Tim Stevens