Subject: Re: Bootloader 'Todo' List
To: Ben Harris <bjh21@cam.ac.uk>
From: Reinoud Zandijk <imago@kabel065011.kabel.utwente.nl>
List: port-arm32
Date: 11/15/2000 03:01:55
Hi Ben!,

On Tue, 14 Nov 2000, Ben Harris wrote:
> FWIW, a third possibility is the way I did things in BBBB.  BBBB reads the
> memory map, then tangles the kernel as it loads it so that it all magically
> ends up in the right place when read through the physical memory interface
> (or through a flat mapping).  This turns out to be quite a lot easier than
> your second strategy, but of course it falls over when one of the physical
> pages you need turns out to already be in use.

I've looked at this strategy but i must conclude that RiscOS 3.5 isnt that
nice in memory compared to the earlier RiscOS versions ... If i use BBBB
to make a map from my A4 (yeah i am planning to test NetBSD/arm26 on
it!!) i get a neat memorymap i really could use on my RiscPC... your
solution is then VERY HANDY ! ... a genial idea to use it that way... 

On the RiscPC however .... physical memory is devided in 4 blocks ... for
each SIMM two banks wich can each be filled with just one or with two
banks.

The banks are from 256 Mb to 512Mb in physical memory in chunks of 64 Mb
(therefore the RiscPC is limited to 256Mb), but the VRAM when fitted is on
the same place as your machine !! 32Mb-34Mb

The NetBSD/arm32 port however maps its kernel at 0xf0000000 = 3840 Mb at
the top of its 4Gb memory map followed by its other areas, a video RAM
chunk and the IOC/IOMD/VIDC.

So since the page swapping isn't really working that well since all pages
you need are not nessisarily mapped in by default ... (grumbl) ... and
RiscOS isn't that pleased with the page swapping after all .... i think i
have to opt for my option 2 : relocating the thing...

One problem however is that if i run the kernel with the physical memory
map the `start' ARM code has to run at 0x1000000 but the C main() has to
run in 0xf0000000 ... so maybe its wise to offer a very simple pagetable
with the specific area's section mapped.... and use that as the kernel
pmap bootstrap.

Anyone a better idea ?

Cheers,
Reinoud

Oh on the A4 : it crashes during kernel installation ... it doesnt have an
backplane !! so i guess thats where it goes wrong.... do you have a
`FOURMEG' kernel without backplane ? and with harddisc support ? ... still
a problem how to get stuff on the harddisc but oh well ... we'll see ... a
parallel / serial PPP ?