freebsd-skq/sys/x86/include
Konstantin Belousov 9a52756044 i386: Merge PAE and non-PAE pmaps into same kernel.
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
2019-01-30 02:07:13 +00:00
..
xen
_align.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
_inttypes.h sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
_limits.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
_stdint.h sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
_types.h i386: Merge PAE and non-PAE pmaps into same kernel. 2019-01-30 02:07:13 +00:00
acpica_machdep.h sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
apicreg.h sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
apicvar.h Dynamically allocate IRQ ranges on x86. 2018-08-28 21:09:19 +00:00
apm_bios.h
bus_dma.h Clean up MD pollution of bus_dma.h: 2017-07-01 05:35:29 +00:00
bus.h amd64: Add a 48-bit MAXADDR constant 2018-01-13 17:55:22 +00:00
busdma_impl.h x86 busdma: fix mis-use of bus_addr_t where vm_paddr_t is assumed. 2019-01-18 13:38:56 +00:00
cputypes.h
dump.h
elf.h Consolidate identical ELF auxargs type defintions. 2018-10-22 22:24:32 +00:00
endian.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
fdt.h sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
float.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
fpu.h
frame.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ifunc.h Update x86/ifunc.h. 2018-09-30 16:57:30 +00:00
init.h x86: improve reservation of AP trampoline memory 2018-04-05 14:39:51 +00:00
intr_machdep.h Axe MINIMUM_MSI_INT. 2018-11-16 23:39:39 +00:00
legacyvar.h sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
mca.h sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
metadata.h
mptable.h sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
ofw_machdep.h sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
pci_cfgreg.h sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
psl.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ptrace.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
pvclock.h
reg.h Cleanups related to debug exceptions on x86. 2018-05-22 00:45:00 +00:00
segments.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
setjmp.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sigframe.h sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
signal.h Remove very old and unused signal information codes. 2018-03-27 20:57:51 +00:00
specialreg.h Add definitions for AMD Spectre/Meltdown CPUID information 2019-01-17 19:44:47 +00:00
stack.h
stdarg.h Introduce an architecture-agnostic <sys/_stdarg.h> to reduce 2017-12-25 20:54:00 +00:00
sysarch.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
trap.h Remove very old and unused signal information codes. 2018-03-27 20:57:51 +00:00
ucode.h Log a message after a successful boot-time microcode update. 2018-09-14 17:04:36 +00:00
ucontext.h Fix a typo. 2018-03-19 17:14:56 +00:00
vdso.h sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
vmware.h
x86_smp.h x86: improve reservation of AP trampoline memory 2018-04-05 14:39:51 +00:00
x86_var.h i386: Merge PAE and non-PAE pmaps into same kernel. 2019-01-30 02:07:13 +00:00