]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/vm/vm_init.c
xnu-4903.241.1.tar.gz
[apple/xnu.git] / osfmk / vm / vm_init.c
index b5796e35ee31600e37afebe304d54b1229c8d7df..82f7ce30c68a80cfa1f6bd6cf742d6bddf7336a4 100644 (file)
@@ -97,11 +97,15 @@ boolean_t zlog_ready = FALSE;
 vm_offset_t kmapoff_kaddr;
 unsigned int kmapoff_pgcnt;
 
+#if CONFIG_EMBEDDED
+extern int log_executable_mem_entry;
+#endif /* CONFIG_EMBEDDED */
+
 static inline void
 vm_mem_bootstrap_log(const char *message)
 {
 //     kprintf("vm_mem_bootstrap: %s\n", message);
-       kernel_debug_string_simple(message);
+       kernel_debug_string_early(message);
 }
 
 /*
@@ -152,10 +156,16 @@ vm_mem_bootstrap(void)
                kmapoff_pgcnt = early_random() & 0x1ff; /* 9 bits */
 
        if (kmapoff_pgcnt > 0 &&
-           vm_allocate(kernel_map, &kmapoff_kaddr,
-           kmapoff_pgcnt * PAGE_SIZE_64, VM_FLAGS_ANYWHERE | VM_MAKE_TAG(VM_KERN_MEMORY_OSFMK)) != KERN_SUCCESS)
+           vm_allocate_kernel(kernel_map, &kmapoff_kaddr,
+           kmapoff_pgcnt * PAGE_SIZE_64, VM_FLAGS_ANYWHERE, VM_KERN_MEMORY_OSFMK) != KERN_SUCCESS)
                panic("cannot vm_allocate %u kernel_map pages", kmapoff_pgcnt);
 
+#if CONFIG_EMBEDDED
+       PE_parse_boot_argn("log_executable_mem_entry",
+                          &log_executable_mem_entry,
+                          sizeof (log_executable_mem_entry));
+#endif /* CONFIG_EMBEDDED */
+
        vm_mem_bootstrap_log("pmap_init");
        pmap_init();
        
@@ -169,9 +179,10 @@ vm_mem_bootstrap(void)
 
        if (zsize < ZONE_MAP_MIN)
                zsize = ZONE_MAP_MIN;   /* Clamp to min */
+
 #if defined(__LP64__)
        zsize += zsize >> 1;
-#endif  /* __LP64__ */
+#endif /* __LP64__ */
        if (zsize > sane_size >> 1)
                zsize = sane_size >> 1; /* Clamp to half of RAM max */
 #if !__LP64__
@@ -213,6 +224,11 @@ vm_mem_bootstrap(void)
        vm_paging_map_init();
 
        vm_mem_bootstrap_log("vm_mem_bootstrap done");
+
+#ifdef CONFIG_ZCACHE
+       zcache_bootstrap();
+#endif
+       vm_rtfault_record_init();
 }
 
 void