summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/param.h
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2015-04-13 15:22:45 +0000
committerkib <kib@FreeBSD.org>2015-04-13 15:22:45 +0000
commit3278a55c03722c3558ee15e7ea6a2750bbcb2d98 (patch)
tree63e315c908ba3df390f4dae4e98bae78cf1a9ade /sys/i386/include/param.h
parent9b718f1d0125184e14e931e959403c2bf32da108 (diff)
downloadFreeBSD-src-3278a55c03722c3558ee15e7ea6a2750bbcb2d98.zip
FreeBSD-src-3278a55c03722c3558ee15e7ea6a2750bbcb2d98.tar.gz
Add config option PAE_TABLES for the i386 kernel. It switches pmap to
use PAE format for the page tables, but does not incur other consequences of the full PAE config. In particular, vm_paddr_t and bus_addr_t are left 32bit, and max supported memory is still limited by 4GB. The option allows to have nx permissions for memory mappings on i386 kernel, while keeping the usual i386 KBI and avoiding the kernel data sizing problems typical for the PAE config. Intel documented that the PAE format for page tables is available starting with the Pentium Pro, but it is possible that the plain Pentium CPUs have the required support (Appendix H). The goal is to enable the option and non-exec mappings on i386 for the GENERIC kernel. Anybody wanting a useful system on 486, have to reconfigure the modern i386 kernel anyway. Discussed with: alc, jhb Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
Diffstat (limited to 'sys/i386/include/param.h')
-rw-r--r--sys/i386/include/param.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/i386/include/param.h b/sys/i386/include/param.h
index d7148ae..54477c1 100644
--- a/sys/i386/include/param.h
+++ b/sys/i386/include/param.h
@@ -90,7 +90,7 @@
#define PAGE_MASK (PAGE_SIZE-1)
#define NPTEPG (PAGE_SIZE/(sizeof (pt_entry_t)))
-#ifdef PAE
+#if defined(PAE) || defined(PAE_TABLES)
#define NPGPTD 4
#define PDRSHIFT 21 /* LOG2(NBPDR) */
#define NPGPTD_SHIFT 9
OpenPOWER on IntegriCloud