From 017c5fc7d9379831b0bc9bfea73262e47f152cb3 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Thu, 17 Jun 2021 19:27:05 +0200 Subject: [PATCH] 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. --- Kernel/linker.ld | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Kernel/linker.ld b/Kernel/linker.ld index fcc4eee9337..3e67248404b 100644 --- a/Kernel/linker.ld +++ b/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) { $ *(.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 = .;