So, I've got an interesting problem... which has forced me to look at
the use of the LOADADDR variable in the Makefile, and try (quickly) to
brush up on my linker scripting...
Basically I've got a processor with on-chip registers that need to be
located in the first 512MByte of _physical_ address. To make things
difficult, they cannot be re-located once placed (configuration is
done by a hardware config stream at reset). It's only 16KBytes of
address, but since I recall that linux on mips can't (well, probably
can't) handle discontiguous memory maps (we discussed this about a
year ago, I think), I was looking for a good place to put them.
Now, I think my problems are solved if the LOADADDR variable works the
way I think it does -- that the kernel loads at that address, and only
uses memory from that point upwards. So, if my LOADADDR is
0x80100000, then the first 0x100000 won't get used. Of course, the
exception vectors are there, but that doesn't take up that much space.
So there should be a chunk of address space I can use for other
things, like this register bank.
Yes? No? Is my understanding even close?
P.S. Of course, if this is right, then I need to figure out the
proper/best way to use the add_memory_region() function....
Matthew D. Dharm Senior Software Designer
Momentum Computer Inc. 1815 Aston Ave. Suite 107
(760) 431-8663 X-115 Carlsbad, CA 92008-7310
Momentum Works For You www.momenco.com