More the arm64 early page tables and stack to .bss

This removes 806k from the kernel ELF file that is only needed while
the kernel is running, not in the static file.

Sponsored by:	Innovate UK
This commit is contained in:
Andrew Turner 2020-12-23 08:05:21 +00:00
parent f952bdf142
commit 166ceb6fd1
2 changed files with 13 additions and 6 deletions

View File

@ -189,7 +189,7 @@ virtdone:
.Lbss:
.quad __bss_start
.Lend:
.quad _end
.quad __bss_end
#ifdef SMP
/*
@ -780,8 +780,12 @@ sctlr_clear:
abort:
b abort
//.section .init_pagetable
.align 12 /* 4KiB aligned */
.align 3
init_pt_va:
.quad pagetable /* XXX: Keep page tables VA */
.section .init_pagetable, "aw", %nobits
.align PAGE_SHIFT
/*
* 6 initial tables (in the following order):
* L2 for kernel (High addresses)
@ -813,8 +817,6 @@ el2_pagetable:
.space PAGE_SIZE
.globl init_pt_va
init_pt_va:
.quad pagetable /* XXX: Keep page tables VA */
.align 4
initstack:

View File

@ -112,8 +112,13 @@ SECTIONS
*(.dynbss)
*(.bss)
*(COMMON)
. = ALIGN(8);
__bss_end = .;
/* A section for the initial page table, it doesn't need to be in the
kernel file, however unlike normal .bss entries should not be zeroed
out as we use it before the .bss section is cleared. */
*(.init_pagetable)
}
. = ALIGN(8);
_end = . ;
PROVIDE (end = .);
/* Stabs debugging sections. */