[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