[ixp1200] core locks using IXA SDK

Tim Stevens tim.stevens at intec.ugent.be
Tue Apr 20 08:41:48 EDT 2004


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

  



More information about the ixp1200 mailing list