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? Matt 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