When collecting memory regions from the BIOS, ignore regions that are less

than a page size.  This assists a decTOP Geode-based system that reports
memory regions:
        start      end         size       type
	0x00000000 0x0009e000  0x0009e000 1 (Memory)
	0x00100000 0x06be3c00  0x06ae3c00 1 (Memory)
	0x06be3c00 0x06be6000  0x00002400 3 (ACPI)
	0x06fff800 0x06fffc00  0x00000400 1 (Memory)
	0x06fffc00 0x07000000  0x00000400 4 (NVS)
This commit is contained in:
briggs 2007-06-26 20:11:12 +00:00
parent 0bee3ccac3
commit a336d0a8d5
1 changed files with 9 additions and 2 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: machdep.c,v 1.603 2007/05/17 14:51:21 yamt Exp $ */
/* $NetBSD: machdep.c,v 1.604 2007/06/26 20:11:12 briggs Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998, 2000, 2004, 2006 The NetBSD Foundation, Inc.
@ -72,7 +72,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.603 2007/05/17 14:51:21 yamt Exp $");
__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.604 2007/06/26 20:11:12 briggs Exp $");
#include "opt_beep.h"
#include "opt_compat_ibcs2.h"
@ -1603,6 +1603,13 @@ init386(paddr_t first_avail)
continue;
}
/*
* If the segment is smaller than a page, skip it.
*/
if (bim->entry[x].size < NBPG) {
continue;
}
/*
* Sanity check the entry.
* XXX Need to handle uint64_t in extent code