Subject: Re: Memory map guidelines
To: None <kurt.alstrup@intel.com>
From: Robert Swindells <rjs@fdy2.demon.co.uk>
List: port-arm32
Date: 10/10/2000 00:44:56
> Thank you for the info. This is very close to what I was looking for. Sorry
>if this next is a stupid question, but where would I want to look to find
>your patches?

I'll generate some tomorrow.

> I was thinking of using the Angel loader, so my stuff should bootup very
>much like the eval board (I think, I haven't got the board to play with
>yet). Will the Angel loader set up the initial MMU's like you described? 

Angel won't set up the MMU for you.

You will either need to link the kernel at 0xc0008000 or write a small
program that calls into Angel to switch to supervisor mode, sets up
the MMU and then calls into the kernel itself.

You may also want to take a look at Compaq's bootloader. It is being
used for both Linux and NetBSD on the iPaq 3600 and does all the MMU
initialization.
 
> The reference guides for the IXP1200 is available on the developer CD. It
>is free (afaik), but I think it is necessary to register in order to get it.

Our Intel distributor is phoning me tomorrow, I'll ask if they have got
one.

> Is all this kind of information available in a document somewhere or do I
>simply have to browse over the code to dig it up? For example I'm wondering
>why the linker puts text at address 1020; what is in the address range 0 ->
>101f? Perhaps this is BSD related info, not ARM32 specific.

You probably don't care about how user-mode programs are linked, all
that is likely to need changing is the kernel memory map.

The page containing the interrupt vectors is mapped at 0x0 on the
StrongARM for all processes as well as for the kernel. The entry point
for a.out programs is 0x20 after the start of the file header.

Robert Swindells