summaryrefslogtreecommitdiffstats
path: root/sys/conf
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2012-07-07 00:25:17 +0000
committermarcel <marcel@FreeBSD.org>2012-07-07 00:25:17 +0000
commitc55246a63a6df83b0d22260f7e045c8d90ce40b2 (patch)
tree01586c6653c0e2a8b2640228e792f9511709fe0f /sys/conf
parente91d8ed66961ddedc1faefbdbd5e9aaf203640bc (diff)
downloadFreeBSD-src-c55246a63a6df83b0d22260f7e045c8d90ce40b2.zip
FreeBSD-src-c55246a63a6df83b0d22260f7e045c8d90ce40b2.tar.gz
Hide the creation of phys_avail behind an API to make it easier to do it
correctly. We now iterate the EFI memory descriptors once and collect all the information in a single pass. This includes: 1. The I/O port base address, 2. The PAL memory region. Have the physmem API track this. 3. Memory descriptors of memory we can't use, like bad memory, runtime services code & data, etc. Have the physmem API track these. 4. memory descriptors of memory we can use or re-use, such as free memory, boot time services code & data, loader code & data, etc. These are added by the physmem API. Since the PBVM page table and pages are in memory described as loader data, inform the physmem API of chunks that need to be delated from the available physical memory. While here, remove Maxmem and replace it with the better named paddr_max. Maxmem was defined as physmem, which is generally wrong. Now, paddr_max is properly defined as the largesty physical address. The upshot of all this is that: 1. We properly determine realmem. 2. We maximize physmem by re-using memory where possible. 3. We remove complexity from ia64_init() in machdep.c. 4. Remove confusion about realmem, physmem & Maxmem. The new ia64_physmem_alloc() is to replace pmap_steal_memory() in pmap.c, as well as replace the handcrafted allocation of the VHPT for the BSP in pmap_bootstrap() in pmap.c. This is step 2 and addresses the manipulation of phys_avail after it is being created.
Diffstat (limited to 'sys/conf')
-rw-r--r--sys/conf/files.ia641
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/conf/files.ia64 b/sys/conf/files.ia64
index da08545..42fb98d 100644
--- a/sys/conf/files.ia64
+++ b/sys/conf/files.ia64
@@ -98,6 +98,7 @@ ia64/ia64/mp_machdep.c optional smp
ia64/ia64/nexus.c standard
ia64/ia64/pal.S standard
ia64/ia64/physical.S standard
+ia64/ia64/physmem.c standard
ia64/ia64/pmap.c standard
ia64/ia64/ptrace_machdep.c standard
ia64/ia64/sal.c standard
OpenPOWER on IntegriCloud