[MIPS] Fix linker script to work for non-4K page size.
Very much to my surprise Fuxin Zhang reports this is all it takes to get the kernel to work for page sizes larger than 4kB. This also paves the way for support for the R6000 and R8000 which don't support 4kB page size. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
fcfd980c83
commit
dbee90b7f9
|
@ -1,4 +1,5 @@
|
|||
#include <linux/config.h>
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm-generic/vmlinux.lds.h>
|
||||
|
||||
#undef mips /* CPP really sucks for this job */
|
||||
|
@ -64,10 +65,10 @@ SECTIONS
|
|||
we can shorten the on-disk segment size. */
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
. = ALIGN(4096);
|
||||
. = ALIGN(_PAGE_SIZE);
|
||||
__nosave_begin = .;
|
||||
.data_nosave : { *(.data.nosave) }
|
||||
. = ALIGN(4096);
|
||||
. = ALIGN(_PAGE_SIZE);
|
||||
__nosave_end = .;
|
||||
|
||||
. = ALIGN(32);
|
||||
|
@ -76,7 +77,7 @@ SECTIONS
|
|||
_edata = .; /* End of data section */
|
||||
|
||||
/* will be freed after init */
|
||||
. = ALIGN(4096); /* Init code and data */
|
||||
. = ALIGN(_PAGE_SIZE); /* Init code and data */
|
||||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
|
@ -105,7 +106,7 @@ SECTIONS
|
|||
.con_initcall.init : { *(.con_initcall.init) }
|
||||
__con_initcall_end = .;
|
||||
SECURITY_INIT
|
||||
. = ALIGN(4096);
|
||||
. = ALIGN(_PAGE_SIZE);
|
||||
__initramfs_start = .;
|
||||
.init.ramfs : { *(.init.ramfs) }
|
||||
__initramfs_end = .;
|
||||
|
@ -113,7 +114,7 @@ SECTIONS
|
|||
__per_cpu_start = .;
|
||||
.data.percpu : { *(.data.percpu) }
|
||||
__per_cpu_end = .;
|
||||
. = ALIGN(4096);
|
||||
. = ALIGN(_PAGE_SIZE);
|
||||
__init_end = .;
|
||||
/* freed after init ends here */
|
||||
|
||||
|
|
Loading…
Reference in New Issue