Subject: Re: EISA machine that only sees 16MB
To: Jarkko Torppa <torppa@cute.fi>
From: Andrew Gillham <gillham@andrews.edu>
List: port-i386
Date: 09/01/1995 22:11:37
> What can I do to make this work ? I allready tried hardcoding values to
> bootter and kernel but it resulted in a kernel that crashed before it
> printed out the memory amounts. 

In /sys/arch/i386/i386/machdep.c you need to hard-code 'biosextmem'
to the amount of _extended_ memory, not total memory.
So with 32MB:
	biosextmem = 31 * 1024;

This works for me on my Dell EISA machines.  You can also put
something like:
#ifdef ACTUAL_EXTMEM
	if ( ACTUAL_EXTMEM > biosextmem )
		biosextmem = ACTUAL_EXTMEM;
#endif /* ACTUAL_EXTMEM */

Then add 'options ACTUAL_EXTMEM "31*1024"' to your kernel config file.
The 'if' above isn't really necessary, I only added it so that
accidently doing 'options ACTUAL_EXTMEM 32' wouldn't result in 32K
of extendem memory.. :-)  If the extmem override isn't more than the
BIOS is reporting, then it ignores it. 
Actually, perhaps the if shouldn't be there, because it wouldn't allow 
you to specify less than the bios reported, and in the case of an ISA
DMA device, you _might_ want to limit it to 16MB.
(thought machdep.c looks as if someone is started on bounce buffers?)

-Andrew
-- 
============================ Real 32bit multi-tasking UN*X System
Andrew Gillham             | TCP/IP,NFS,PPP,4.4BSD-lite,multi-user
gillham@andrews.edu        | i386,sparc,alpha,mac68k,amiga,others
LAN/WAN/NW/UN*X specialist |   ---> http://www.NetBSD.org <---
        'Free the daemon in your computer, NetBSD'