Explorar el Código

Kernel: Move super_pages section into the bottom 16MB

This ensures that pages returned by
MM.allocate_supervisor_physical_page() have a physical address that
is in the bottom 16MB and can thus be used by the SB16 driver for DMA.

Fixes #8092.
Gunnar Beutner hace 4 años
padre
commit
017c5fc7d9
Se han modificado 1 ficheros con 10 adiciones y 3 borrados
  1. 10 3
      Kernel/linker.ld

+ 10 - 3
Kernel/linker.ld

@@ -8,10 +8,19 @@ SECTIONS
 
     start_of_kernel_image = .;
 
-    .text ALIGN(4K) : AT (ADDR(.text) - KERNEL_VIRTUAL_BASE)
+    .boot ALIGN(4K) : AT (ADDR(.boot) - KERNEL_VIRTUAL_BASE)
     {
         $<TARGET_OBJECTS:boot>
         *(.multiboot)
+    }
+
+    .super_pages ALIGN(4K) : AT (ADDR(.super_pages) - KERNEL_VIRTUAL_BASE)
+    {
+        *(.super_pages)
+    }
+
+    .text ALIGN(4K) : AT (ADDR(.text) - KERNEL_VIRTUAL_BASE)
+    {
         start_of_kernel_text = .;
 
         start_of_safemem_text = .;
@@ -70,8 +79,6 @@ SECTIONS
 
         . = ALIGN(4K);
         *(.heap)
-        . = ALIGN(4K);
-        *(.super_pages)
     }
 
     end_of_kernel_image = .;