af881ec390
Effectively all i386 kernels now have two pmaps compiled in: one managing PAE pagetables, and another non-PAE. The implementation is selected at cold time depending on the CPU features. The vm_paddr_t is always 64bit now. As result, nx bit can be used on all capable CPUs. Option PAE only affects the bus_addr_t: it is still 32bit for non-PAE configs, for drivers compatibility. Kernel layout, esp. max kernel address, low memory PDEs and max user address (same as trampoline start) are now same for PAE and for non-PAE regardless of the type of page tables used. Non-PAE kernel (when using PAE pagetables) can handle physical memory up to 24G now, larger memory requires re-tuning the KVA consumers and instead the code caps the maximum at 24G. Unfortunately, a lot of drivers do not use busdma(9) properly so by default even 4G barrier is not easy. There are two tunables added: hw.above4g_allow and hw.above24g_allow, the first one is kept enabled for now to evaluate the status on HEAD, second is only for dev use. i386 now creates three freelists if there is any memory above 4G, to allow proper bounce pages allocation. Also, VM_KMEM_SIZE_SCALE changed from 3 to 1. The PAE_TABLES kernel config option is retired. In collaboarion with: pho Discussed with: emaste Reviewed by: markj MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D18894
117 lines
2.6 KiB
Plaintext
117 lines
2.6 KiB
Plaintext
# $FreeBSD$
|
|
# Options specific to the i386 platform kernels
|
|
|
|
AUTO_EOI_1 opt_auto_eoi.h
|
|
AUTO_EOI_2 opt_auto_eoi.h
|
|
BROKEN_KEYBOARD_RESET opt_reset.h
|
|
COUNT_XINVLTLB_HITS opt_smp.h
|
|
COUNT_IPIS opt_smp.h
|
|
DISABLE_PG_G opt_pmap.h
|
|
DISABLE_PSE opt_pmap.h
|
|
I586_PMC_GUPROF opt_i586_guprof.h
|
|
MAXMEM
|
|
MPTABLE_FORCE_HTT
|
|
MP_WATCHDOG
|
|
NKPT opt_pmap.h
|
|
PERFMON
|
|
PMAP_SHPGPERPROC opt_pmap.h
|
|
POWERFAIL_NMI opt_trap.h
|
|
PV_STATS opt_pmap.h
|
|
|
|
# Options for emulators. These should only be used at config time, so
|
|
# they are handled like options for static filesystems
|
|
# (see src/sys/conf/options), except for broken debugging options.
|
|
COMPAT_AOUT opt_dontuse.h
|
|
COMPAT_LINUX opt_dontuse.h
|
|
LINPROCFS opt_dontuse.h
|
|
LINSYSFS opt_dontuse.h
|
|
NDISAPI opt_dontuse.h
|
|
|
|
# Change KVM size. Changes things all over the kernel.
|
|
KVA_PAGES opt_global.h
|
|
|
|
# Physical address extensions and support for >4G ram. As above.
|
|
PAE opt_global.h
|
|
|
|
TIMER_FREQ opt_clock.h
|
|
|
|
CPU_ATHLON_SSE_HACK opt_cpu.h
|
|
CPU_BLUELIGHTNING_3X opt_cpu.h
|
|
CPU_BLUELIGHTNING_FPU_OP_CACHE opt_cpu.h
|
|
CPU_BTB_EN opt_cpu.h
|
|
CPU_CYRIX_NO_LOCK opt_cpu.h
|
|
CPU_DIRECT_MAPPED_CACHE opt_cpu.h
|
|
CPU_DISABLE_5X86_LSSER opt_cpu.h
|
|
CPU_ELAN opt_cpu.h
|
|
CPU_ELAN_PPS opt_cpu.h
|
|
CPU_ELAN_XTAL opt_cpu.h
|
|
CPU_ENABLE_LONGRUN opt_cpu.h
|
|
CPU_FASTER_5X86_FPU opt_cpu.h
|
|
CPU_GEODE opt_cpu.h
|
|
CPU_I486_ON_386 opt_cpu.h
|
|
CPU_IORT opt_cpu.h
|
|
CPU_L2_LATENCY opt_cpu.h
|
|
CPU_LOOP_EN opt_cpu.h
|
|
CPU_PPRO2CELERON opt_cpu.h
|
|
CPU_RSTK_EN opt_cpu.h
|
|
CPU_SOEKRIS opt_cpu.h
|
|
CPU_SUSP_HLT opt_cpu.h
|
|
CPU_UPGRADE_HW_CACHE opt_cpu.h
|
|
CPU_WT_ALLOC opt_cpu.h
|
|
CYRIX_CACHE_REALLY_WORKS opt_cpu.h
|
|
CYRIX_CACHE_WORKS opt_cpu.h
|
|
NO_F00F_HACK opt_cpu.h
|
|
NO_MEMORY_HOLE opt_cpu.h
|
|
|
|
# The CPU type affects the endian conversion functions all over the kernel.
|
|
I486_CPU opt_global.h
|
|
I586_CPU opt_global.h
|
|
I686_CPU opt_global.h
|
|
|
|
# options for serial support
|
|
COM_ESP opt_sio.h
|
|
COM_MULTIPORT opt_sio.h
|
|
CONSPEED opt_sio.h
|
|
GDBSPEED opt_sio.h
|
|
COM_NO_ACPI opt_sio.h
|
|
|
|
VGA_ALT_SEQACCESS opt_vga.h
|
|
VGA_DEBUG opt_vga.h
|
|
VGA_NO_FONT_LOADING opt_vga.h
|
|
VGA_NO_MODE_CHANGE opt_vga.h
|
|
VGA_SLOW_IOACCESS opt_vga.h
|
|
VGA_WIDTH90 opt_vga.h
|
|
|
|
VESA
|
|
VESA_DEBUG opt_vesa.h
|
|
|
|
# AGP debugging support
|
|
AGP_DEBUG opt_agp.h
|
|
|
|
PSM_DEBUG opt_psm.h
|
|
PSM_HOOKRESUME opt_psm.h
|
|
PSM_RESETAFTERSUSPEND opt_psm.h
|
|
|
|
ATKBD_DFLT_KEYMAP opt_atkbd.h
|
|
|
|
# Video spigot
|
|
SPIGOT_UNSECURE opt_spigot.h
|
|
|
|
# Enables NETGRAPH support for Cronyx adapters
|
|
NETGRAPH_CRONYX opt_ng_cronyx.h
|
|
|
|
# Device options
|
|
DEV_APIC opt_apic.h
|
|
DEV_ATPIC opt_atpic.h
|
|
|
|
# Debugging
|
|
NPX_DEBUG opt_npx.h
|
|
|
|
# BPF just-in-time compiler
|
|
BPF_JITTER opt_bpf.h
|
|
|
|
XENHVM opt_global.h
|
|
|
|
# options for the Intel C600 SAS driver (isci)
|
|
ISCI_LOGGING opt_isci.h
|