]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/ppc/ppc_vm_init.c
xnu-344.tar.gz
[apple/xnu.git] / osfmk / ppc / ppc_vm_init.c
index cfbaab0335327a602ea92b943d9880b8ca142c76..0fe096d900f4563920b9cb1aa578b37d7ff4e089 100644 (file)
@@ -260,14 +260,18 @@ void ppc_vm_init(unsigned int mem_limit, boot_args *args)
              addr < round_page(sectKLDB+sectSizeKLD);
              addr += PAGE_SIZE) {
 
-            pmap_enter(kernel_pmap, addr, addr, VM_PROT_READ|VM_PROT_WRITE, TRUE);
+            pmap_enter(kernel_pmap, addr, addr, 
+                       VM_PROT_READ|VM_PROT_WRITE, 
+                       VM_WIMG_USE_DEFAULT, TRUE);
        }
 
        for (addr = trunc_page(sectLINKB);
              addr < round_page(sectLINKB+sectSizeLINK);
              addr += PAGE_SIZE) {
 
-            pmap_enter(kernel_pmap, addr, addr, VM_PROT_READ|VM_PROT_WRITE, TRUE);
+            pmap_enter(kernel_pmap, addr, addr, 
+                       VM_PROT_READ|VM_PROT_WRITE, 
+                       VM_WIMG_USE_DEFAULT, TRUE);
        }
 
 /*
@@ -275,7 +279,9 @@ void ppc_vm_init(unsigned int mem_limit, boot_args *args)
  *     be released later, but not all.  Ergo, no block mapping here 
  */
        for(addr = trunc_page(end); addr < round_page(static_memory_end); addr += PAGE_SIZE) {
-               pmap_enter(kernel_pmap, addr, addr, VM_PROT_READ|VM_PROT_WRITE, TRUE);
+               pmap_enter(kernel_pmap, addr, addr, 
+                       VM_PROT_READ|VM_PROT_WRITE, 
+                       VM_WIMG_USE_DEFAULT, TRUE);
        }
 #endif /* __MACHO__ */
 
@@ -286,31 +292,14 @@ void ppc_vm_init(unsigned int mem_limit, boot_args *args)
        }
 #endif
 
-       /* Initialize shadow IBATs */
-       shadow_BAT.IBATs[0].upper=BAT_INVALID;
-       shadow_BAT.IBATs[0].lower=BAT_INVALID;
-       shadow_BAT.IBATs[1].upper=BAT_INVALID;
-       shadow_BAT.IBATs[1].lower=BAT_INVALID;
-       shadow_BAT.IBATs[2].upper=BAT_INVALID;
-       shadow_BAT.IBATs[2].lower=BAT_INVALID;
-       shadow_BAT.IBATs[3].upper=BAT_INVALID;
-       shadow_BAT.IBATs[3].lower=BAT_INVALID;
-
-       LoadIBATs((unsigned int *)&shadow_BAT.IBATs[0]);                /* Load up real IBATs from shadows */
+/*
+ *     Note: the shadow BAT registers were already loaded in ppc_init.c
+ */
 
-       /* Initialize shadow DBATs */
-       shadow_BAT.DBATs[0].upper=BAT_INVALID;
-       shadow_BAT.DBATs[0].lower=BAT_INVALID;
-       shadow_BAT.DBATs[1].upper=BAT_INVALID;
-       shadow_BAT.DBATs[1].lower=BAT_INVALID;
-       mfdbatu(shadow_BAT.DBATs[2].upper,2);
-       mfdbatl(shadow_BAT.DBATs[2].lower,2);
-       mfdbatu(shadow_BAT.DBATs[3].upper,3);
-       mfdbatl(shadow_BAT.DBATs[3].lower,3);
 
+       LoadIBATs((unsigned int *)&shadow_BAT.IBATs[0]);                /* Load up real IBATs from shadows */
        LoadDBATs((unsigned int *)&shadow_BAT.DBATs[0]);                /* Load up real DBATs from shadows */
 
-       sync();isync();
 #if DEBUG
        for(i=0; i<4; i++) kprintf("DBAT%1d: %08X %08X\n", 
                i, shadow_BAT.DBATs[i].upper, shadow_BAT.DBATs[i].lower);