opnsense-src/sys/powerpc/include
Justin Hibbits e683c328f8 Introduce 64-bit PowerPC Book-E support
Extend the Book-E pmap to support 64-bit operation.  Much of this was taken from
Juniper's Junos FreeBSD port.  It uses a 3-level page table (page directory
list -- PP2D, page directory, page table), but has gaps in the page directory
list where regions will repeat, due to the design of the PP2D hash (a 20-bit gap
between the two parts of the index).  In practice this may not be a problem
given the expanded address space.  However, an alternative to this would be to
use a 4-level page table, like Linux, and possibly reduce the available address
space; Linux appears to use a 46-bit address space.  Alternatively, a cache of
page directory pointers could be used to keep the overall design as-is, but
remove the gaps in the address space.

This includes a new kernel config for 64-bit QorIQ SoCs, based on MPC85XX, with
the following notes:
* The DPAA driver has not yet been ported to 64-bit so is not included in the
  kernel config.
* This has been tested on the AmigaOne X5000, using a MD_ROOT compiled in
  (total size kernel+mdroot must be under 64MB).
* This can run both 32-bit and 64-bit processes, and has even been tested to run
  a 32-bit init with 64-bit children.

Many thanks to stevek and marcel for getting Juniper's FreeBSD patches open
sourced to be used here, and to stevek for reviewing, and providing some
historical contexts on quirks of the code.

Reviewed by:	stevek
Obtained from:	Juniper (in part)
MFC after:	2 months
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D9433
2017-03-17 21:40:14 +00:00
..
_align.h
_bus.h
_inttypes.h
_limits.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
_stdint.h Newer versions of gcc define __INT64_C and __UINT64_C, so avoid 2013-09-03 22:04:55 +00:00
_types.h Define the vm_ooffset_t and vm_pindex_t types as machine-independend. 2017-02-04 12:26:38 +00:00
altivec.h Dump VMX registers into the userland coredump. 2015-01-03 21:06:06 +00:00
asm.h Introduce 64-bit PowerPC Book-E support 2017-03-17 21:40:14 +00:00
atomic.h Don't retry a lost reservation in atomic_fcmpset() 2017-01-31 03:40:13 +00:00
bat.h Update NetBSD Foundation copyrights to 2-clause BSD 2014-03-18 01:40:25 +00:00
bus.h Increase booke bus max address to 36-bits. 2016-03-18 01:30:58 +00:00
bus_dma.h Revert r303890 for now here as camdd fails to build on powerpc* 2016-08-11 15:06:12 +00:00
clock.h
counter.h Replace a number of conflations of mp_ncpus and mp_maxid with either 2016-07-06 14:09:49 +00:00
cpu.h Add the SPE feature mask for e500v1 and e500v2 2016-10-29 01:24:30 +00:00
cpufunc.h Bring back r313037, with fixes for mips: 2017-02-19 02:03:09 +00:00
db_machdep.h Truncate DB_SMALL_VALUE_MAX to a much lower value. 2015-01-04 01:45:26 +00:00
dbdma.h Add PMU-based CPU frequency scaling. This method is used on most Titanium 2013-12-13 02:37:35 +00:00
dump.h Factor out duplicated code from dumpsys() on each architecture into generic 2015-01-07 01:01:39 +00:00
efi.h Fix building on i386 and arm. But 'public domain' headers on the files 2016-10-13 06:56:23 +00:00
elf.h Reserve AT_TIMEKEEP auxv entry for providing usermode the pointer to 2012-06-22 06:38:31 +00:00
endian.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
exec.h
float.h Rationalize BSD license on sys/*/include/float.h 2015-08-05 17:05:35 +00:00
floatingpoint.h
fpu.h
frame.h Hide the 'MOREARGS' macro, it conflicts with contrib code, and is only used in one file. 2017-01-22 06:30:55 +00:00
gdb_machdep.h Fix the PowerPC Book-E register definitions used by the remote GDB 2013-05-21 18:00:47 +00:00
hid.h Set EN_MAS7_UPDATE HID0 bit for e500 core. 2016-08-07 19:09:56 +00:00
ieee.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ieeefp.h
in_cksum.h Rationalize BSD license on sys/*/include/in_cksum.h 2015-08-05 19:05:12 +00:00
intr_machdep.h Add support for the Freescale dTSEC DPAA-based ethernet controller. 2016-02-29 03:38:00 +00:00
kdb.h
limits.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
machdep.h Remove booke_enable_l3_cache declaration and remaining definition. 2016-07-17 19:24:28 +00:00
md_var.h Provide support for userland binaries using the new ELFv2 ABI. This is a 2015-11-23 17:07:51 +00:00
memdev.h
metadata.h
mmuvar.h
ofw_machdep.h Implement OF_decode_addr() for arm. Move most of powerpc's implementation 2015-12-21 18:07:32 +00:00
openpicreg.h Add suspend/resume state saving for OpenPIC on PowerMac. It's likely this 2013-12-21 04:31:54 +00:00
openpicvar.h Add suspend/resume state saving for OpenPIC on PowerMac. It's likely this 2013-12-21 04:31:54 +00:00
param.h Create a new MACHINE_ARCH for Freescale PowerPC e500v2 2016-10-22 01:57:15 +00:00
pcb.h Use setjmp() instead of the identical-except-for-having-a-wrong-prototype 2016-01-10 16:42:14 +00:00
pcpu.h Introduce 64-bit PowerPC Book-E support 2017-03-17 21:40:14 +00:00
pio.h Fix final bugs in memory barriers on PowerPC: 2012-05-04 16:00:22 +00:00
platform.h Extend idle support for newer Book-E cores. 2016-01-01 02:47:40 +00:00
platformvar.h Introduce PLATFORMMETHOD_END and use it. 2013-02-13 02:21:45 +00:00
pmap.h Introduce 64-bit PowerPC Book-E support 2017-03-17 21:40:14 +00:00
pmc_mdep.h Implement hwpmc(4) for Freescale e500 core. 2015-04-18 21:39:17 +00:00
proc.h Implement GET_STACK_USAGE() on PowerPC. This implementation is identical 2013-10-02 20:40:21 +00:00
profile.h Provide support for userland binaries using the new ELFv2 ABI. This is a 2015-11-23 17:07:51 +00:00
psl.h Introduce 64-bit PowerPC Book-E support 2017-03-17 21:40:14 +00:00
pte.h Introduce 64-bit PowerPC Book-E support 2017-03-17 21:40:14 +00:00
ptrace.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
reg.h Restore the ABI of 'struct fpreg' on powerpc. 2016-02-01 23:12:04 +00:00
reloc.h
resource.h
rtas.h
runq.h
sc_machdep.h
setjmp.h Use setjmp() instead of the identical-except-for-having-a-wrong-prototype 2016-01-10 16:42:14 +00:00
sigframe.h
signal.h
slb.h Deallocate any leftover page table entries in the LPAR at boot. This 2015-03-13 00:08:58 +00:00
smp.h
spr.h Introduce 64-bit PowerPC Book-E support 2017-03-17 21:40:14 +00:00
sr.h
stack.h
stdarg.h
sysarch.h
tlb.h Introduce 64-bit PowerPC Book-E support 2017-03-17 21:40:14 +00:00
trap.h Unbreak kernel breakpoints, broken for ~4 years now 2017-02-28 04:13:20 +00:00
ucontext.h POSIX states that #include <signal.h> shall make both mcontext_t and 2016-02-12 07:38:19 +00:00
varargs.h
vdso.h Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
vm.h - Rename VM_MEMATTR_UNCACHED to VM_MEMATTR_WEAK_UNCACHEABLE on x86 to 2012-03-29 16:51:22 +00:00
vmparam.h Introduce 64-bit PowerPC Book-E support 2017-03-17 21:40:14 +00:00