Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Oct 1996 21:58:17 +0200
From:      "Philippe Charnier" <charnier@xp11.frmug.org>
To:        hackers@FreeBSD.org
Subject:   16MB -> 32MB and the boot fails
Message-ID:  <199610251958.VAA14625@xp11.frmug.org>

next in thread | raw e-mail | index | archive | help
Hello,

I moved this from questions to hackers. I added some printfs in the
kernel (and a dummy loop to see results) code to see why it fails on
my box if I don't add MAXMEM definition into the kernel.

My box is a 486dx50 ISA/VLB with AMI BIOS (1992). The bios detects the
memory and prints 32640K during memory test. I have BOUNCE_BUFFERS
enabled because of my AHA 1542CF.

>From /usr/src/sys/i386/i386/machdep.c(v 1.208):

void
init386(first)
	int first;
{
	[...]

	pagesinbase = biosbasemem * 1024 / PAGE_SIZE;
	pagesinext = biosextmem * 1024 / PAGE_SIZE;

I get pagesinbase = 160, pagesinext = 8000

	[...]
	if ((pagesinext > 3840) && (pagesinext < 4096))
		pagesinext = 3840;

pagesinext is still 8000 here.
	/*
	 * Maxmem isn't the "maximum memory", it's one larger than the
	 * highest page of the physical address space.  It should be
	 * called something like "Maxphyspage".
	 */
	Maxmem = pagesinext + 0x100000/PAGE_SIZE;

Maxmem is 8256 here which seems to be more than my memory!!!

#ifdef MAXMEM
	Maxmem = MAXMEM/4;
#endif

The working value I must set here is 8192. Maybe, there is something in the
code that _assumes_ Maxmem to be the maximum memory.
 
------                                                            ------ 
Philippe Charnier                               charnier@lirmm.fr (smtp)       
                                          charnier@xp11.frmug.org (uucp) 

    ``a PC not running FreeBSD is like a venusian with no tentacles'' 
------------------------------------------------------------------------



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199610251958.VAA14625>