Subject: Re: Kernel in FastMem
To: None <philk@rotfl.com.au>
From: Ignatios Souvatzis <is@beverly.rhein.de>
List: port-amiga
Date: 01/14/1998 19:52:17
Hi Phil,

> I have an A2500 (A2630 with A2632 memory card).
> 
> The memory blocks are:
> 
> 	 1M CHIP
> 	 4M FAST  (Zorro II)
> 	64M FAST  (outside Zorro II on the A2632)
> 
> When NetBSD boots, it puts the kernel in chip, and uses the 64M for normal
> operation.

This is not right. Your loader loads the kernel into chip memory, but...

- if the kernel finds itself based at address 0, it copies itself to the
chosen-to-be-kernel fastmem segment.

- if the kernel finds itself already in fastmem, it stays there.

There are loadbsd options (and I think in newer GOBSD too) to enforce
loading to chipmem (-Z for loadbsd). If your loadbsd does this
unconditionally, either your loadbsd or your kernel is old, where old is
err... I think even older than the 1.2 release... 
GOBSD only copies via fastmem if the chipmem is too small, I think, but
I might be wrong.

The other option is to use highest priority memory first, instead of
biggest memory segment first (-p in loadbsd).

Independent of both, you can also tell the kernel to use all, instead of
just its own, memory segment. You need the MACHINE_NONCONTIG option in
the kernel and to give the -n 1 (two segments) or -n 2 (all it can find)
when booting.

This still doesnt include chipmem. Chipmem, if available (DraCos dont
have any) is ONLY used for custom chip graphics, sound buffers, floppy
buffers, and bounce buffers (if no other 16bitdma memory is available).

Regards,
	Ignatios
	Ignatios Souvatzis