opnsense-src/sys
Marcel Moolenaar 76dd035301 Implement Pre-Boot Virtual Memory (PBVM). There's no 1-to-1 mapping
between kernel virtual address and physical address anymore. This so
that we can link the kernel at some virtual address without having
to worry whether the corresponding physical memory exists and is
available. The PBVM uses 64KB pages that are mapped to physical
addresses using a page table. The page table is at least 1 EFI page
in size, but can grow up to 1MB. This effectively gives us a memory
size between 32MB and 8GB -- i.e. enough to load a DVD image if one
wants to.

The loader assigns physical memory based on the EFI memory map and
makes sure that all physical memory is naturally aligned and a power
of 2. At this time there's no consideration for allocating physical
memory that is close to the BSP.

The kernel is informed about the physical address of the page table
and its size and can locate all PBVM pages through it.

The loader does not wire the PBVM page table yet. Instead it wires
all of the PBVM with a single translation. This is fine for now,
but a follow-up commit will fix it. We cannot handle more than 32MB
right now.

Note that the loader will map as much of the loaded kernel and
modules as possible, but it's up to the kernel to handle page faults
for references that aren't mapped. To make that easier, the page
table is mapped at a fixed virtual address.
2011-03-11 22:14:02 +00:00
..
amd64 Merge svn+ssh://svn.freebsd.org/base/head@218816 2011-02-18 21:39:09 +00:00
arm Fix the R_ARM_ABS32 relocation implementation. The memory address 2011-02-17 19:31:21 +00:00
boot Implement Pre-Boot Virtual Memory (PBVM). There's no 1-to-1 mapping 2011-03-11 22:14:02 +00:00
bsm Add audit events for process descriptor system calls, which will appear in 2009-09-29 21:25:59 +00:00
cam In addition to r217444 ignore also ATA status errors on DMA Auto-Activation 2011-01-26 06:57:48 +00:00
cddl Use the preload_fetch_addr() and preload_fetch_size() convenience 2011-02-13 19:46:55 +00:00
compat For realtime signals fill the sigval value. 2011-02-15 21:46:36 +00:00
conf Merge svn+ssh://svn.freebsd.org/base/head@218875 2011-02-20 03:35:59 +00:00
contrib Merge ACPICA 20110211. 2011-02-12 01:03:15 +00:00
crypto Remove DEBUG sections. 2010-11-27 15:41:44 +00:00
ddb Modify kdb_trap() so that it re-calls the dbbe_trap function as long as 2011-02-18 22:25:11 +00:00
dev Merge svn+ssh://svn.freebsd.org/base/head@218875 2011-02-20 03:35:59 +00:00
fs tmpfs_remove() isn't modifying the file's data, so it shouldn't set 2011-02-19 21:04:36 +00:00
gdb Modify kdb_trap() so that it re-calls the dbbe_trap function as long as 2011-02-18 22:25:11 +00:00
geom Add support to set a slice name. 2011-02-19 11:09:38 +00:00
gnu Remove prtactive variable and related printf()s in the vop_inactive 2010-11-19 21:17:34 +00:00
i386 Merge svn+ssh://svn.freebsd.org/base/head@218816 2011-02-18 21:39:09 +00:00
ia64 o Add defines for Pre-Boot Virtual Memory (PBVM) 2011-03-11 22:00:45 +00:00
isa bus_add_child: change type of order parameter to u_int 2010-09-10 11:19:03 +00:00
kern Merge svn+ssh://svn.freebsd.org/base/head@218875 2011-02-20 03:35:59 +00:00
kgssapi When the KOBJMETHOD() macro was updated, it resulted in the 2009-06-14 17:33:46 +00:00
libkern Add support for asterisk characters when filling in the GELI password 2010-11-14 14:12:43 +00:00
mips Remove pmap fields that are either unused or not fully implemented. 2011-02-17 15:36:29 +00:00
modules cxgbe(4) - NIC driver for Chelsio T4 (Terminator 4) based 10Gb/1Gb adapters. 2011-02-18 08:00:26 +00:00
net Mfp4 CH=177274,177280,177284-177285,177297,177324-177325 2011-02-16 21:29:13 +00:00
net80211 Instead of always returning 0 to a scan request, indicate if there is 2011-01-30 14:05:21 +00:00
netatalk Reverse misordered unlock and lock in at_control for netatalk phase I 2009-08-12 10:44:13 +00:00
netgraph Mfp4 CH=177274,177280,177284-177285,177297,177324-177325 2011-02-16 21:29:13 +00:00
netinet Bugfix: Get per vnet sysctl variables and statistics working. 2011-02-18 20:30:58 +00:00
netinet6 Fix bugs related to M_FLOWID: 2011-02-07 15:04:23 +00:00
netipsec Fixed IPsec's HMAC_SHA256-512 support to be RFC4868 compliant. 2011-02-18 09:40:13 +00:00
netipx Use queue(9) instead of hand-crafted link lists for the global IPX 2009-06-24 20:57:50 +00:00
netnatm Reimplement the netisr framework in order to support parallel netisr 2009-06-01 10:41:38 +00:00
netncp Switch to our preferred 2-clause BSD license. 2010-04-07 16:50:38 +00:00
netsmb Change some variables from int to size_t. This is more accurate since 2011-01-08 23:06:54 +00:00
nfs Modify the experimental NFSv4 server so that it posts a SIGUSR2 2011-01-14 23:30:35 +00:00
nfsclient Mfp4 CH=177274,177280,177284-177285,177297,177324-177325 2011-02-16 21:29:13 +00:00
nfsserver Unless "cnt" exceeds MAX_COMMIT_COUNT, nfsrv_commit() and nfsvno_fsync() are 2011-02-05 21:21:27 +00:00
nlm sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly. 2011-01-12 19:54:19 +00:00
opencrypto Let cryptosoft(4) add its pseudo-device with a specific unit number and its 2010-11-14 13:09:32 +00:00
pc98 MFi386: revision 218744 2011-02-19 10:36:05 +00:00
pci Add initial support for RTL8401E PCIe Fast Ethernet. 2011-02-16 21:59:42 +00:00
powerpc Turn off default generation of userland dot symbols on powerpc64 now that 2011-02-18 21:44:53 +00:00
rpc Mfp4 CH=177274,177280,177284-177285,177297,177324-177325 2011-02-16 21:29:13 +00:00
security Unless "cnt" exceeds MAX_COMMIT_COUNT, nfsrv_commit() and nfsvno_fsync() are 2011-02-05 21:21:27 +00:00
sparc64 Remove pmap fields that are either unused or not fully implemented. 2011-02-17 15:36:29 +00:00
sun4v Remove pmap fields that are either unused or not fully implemented. 2011-02-17 15:36:29 +00:00
sys Merge svn+ssh://svn.freebsd.org/base/head@218875 2011-02-20 03:35:59 +00:00
teken Use proper bounds checking on VPA. 2010-12-05 10:15:23 +00:00
tools Add an extra comment to the SDT probes definition. This allows us to get 2010-08-22 11:18:57 +00:00
ufs v_mountedhere is a member of the union. Check that the vnodes have 2011-02-19 07:47:25 +00:00
vm Remove pmap fields that are either unused or not fully implemented. 2011-02-17 15:36:29 +00:00
x86 Merge svn+ssh://svn.freebsd.org/base/head@218816 2011-02-18 21:39:09 +00:00
xdr Add a check for a NULL mbuf ptr at the beginning of xdrmbuf_inline() 2009-08-12 16:27:51 +00:00
xen Fix a few more SYSCTL_PROC() that were missing a CTLFLAG type specifier. 2011-01-19 00:57:58 +00:00
Makefile Add lex and yacc sources to things cscope'd. 2010-11-21 03:58:11 +00:00