Subject: Re: Netwinder progress.
To: Robert Swindells <rjs@fdy2.demon.co.uk>
From: Matt Thomas <matt@3am-software.com>
List: port-arm32
Date: 04/19/2001 06:46:14
At 11:06 AM 4/19/2001 +0100, Robert Swindells wrote:

>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.

As I've replies to Chris, the kernel is at it's load point.  (if you look
at the PT setup, you'll see that. :)

>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.

I need that memory 0x0 for netwinder stuff.  Thinking about it, I may not have
switch to PC from 0x0000c0xx to 0xf000c0xx so when the new L1 is loaded, boom!
--
Matt Thomas               Internet:   matt@3am-software.com
3am Software Foundry      WWW URL:    http://www.3am-software.com/bio/matt/
Cupertino, CA             Disclaimer: I avow all knowledge of this message