Subject: Re: Netwinder progress.
To: None <chris@paradox.demon.co.uk>
From: Robert Swindells <rjs@fdy2.demon.co.uk>
List: port-arm32
Date: 04/19/2001 11:06:54
Chris Gilbert wrote:
>On Thursday 19 April 2001 8:10 am, Matt Thomas wrote:
>> With a little assistance, I now have the MMU enabled. I can successfully
>> get into initrom. however, once it starts using the newly setup L1 page
>> table, it never comes back. This leads me to think that the new L1PT is
>> not correct. But it seems to be initialized correctly as far as I can see.
>>
>> Anyone have any ideas? [I've created a arch/netwinder so you can look at
>> sources.]
>Looking over the sources and judging by the following output, the kernel
>isn't actually at physical_start (0x0). It looks like the kernel is actually
>at 0x0000c000. Which means that when you switch pagetables you're not where
>you expect to be.
I think that the problem is that the kernel isn't at it's link
address, but it is the virtual address that is more important. The
link address for the other arm32 kernels is 0xf0000000, with the entry
point at 0xf0000020.
It might be worth taking a look at Compaq's bootldr source. It sets up
the MMU before jumping into an a.out kernel at 0xf0000020. The MMU
setup code is mostly in C, so is easy to tweak.
I would build your temporary L1 pt at the top of RAM and copy the kernel
to 0x0.
Robert