Subject: Re: Netwinder progress.
To: Matt Thomas <matt@3am-software.com>
From: Chris Gilbert <chris@paradox.demon.co.uk>
List: port-arm32
Date: 04/19/2001 10:35:24
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.

The old riscpc loader had to map in the physical memory in the first 
pagetables, then copy the kernel there.  However the kernel didn't overlap 
with where it was going, which may be more tricky.

One trick to get it working would be to just chuck away the 0x0 to 
0xc000 area and make physical start = 0xc000 (updating physical_end of 
course, note that the boot loader for the other archs appears to pass in 
bt_memstart, which might actually handle this kind of thing)

You could be more cunning and allocate 0x0 as the kernel L1 page table :)

Good to see some work on this though :)  Anyone know how easy it is to get 
hold of one of these boxes in the UK?

Cheers,
Chris

> [NeTTrom] Second level jump mode
>     [FB B0=0x00000046][FB B1=0x02000046][FB B2=0x00000000][FB
> B3=0x00000000] [Kern loc=0x03C00000]
>     [VGA_30=0x01][VGA_71=0x10][VGA_72=0x05]
>     [VGA_B2=0xDB][VGA_B3=0x54]
> [CMD=ide0=autotune nwconsole=serial netconfig_eth0=disk netconfig_eth1=dhcp
> eth1=192.168.7.72/24 R1=0.0.0.0:192.168.7.3:n ]
> Assuming A.OUT kernel
> Copying 0x0019A175 bytes from 0x03C00200 to 0x0000C000
> Initrd: scan 0x0019A175 bytes @ 0x03C00000.
> Kernel entry point 0x0000C020