diff options
author | kaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2009-06-23 21:04:37 +0000 |
---|---|---|
committer | kaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2009-06-23 21:04:37 +0000 |
commit | 343c185b7d7383b1f5b5144e837045af28afc42b (patch) | |
tree | 6d3382662fa3ad4119d3a3cda223c53949ca4894 /target/linux/coldfire/patches/049-mcfv4e_linker_bss_cleanup.patch | |
parent | 145f9652a593d19b149d2f25febd4aa0c1ab57d1 (diff) |
use broken-out patches for the coldfire to make it easier to follow differences against the bsp
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@16547 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/coldfire/patches/049-mcfv4e_linker_bss_cleanup.patch')
-rw-r--r-- | target/linux/coldfire/patches/049-mcfv4e_linker_bss_cleanup.patch | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/target/linux/coldfire/patches/049-mcfv4e_linker_bss_cleanup.patch b/target/linux/coldfire/patches/049-mcfv4e_linker_bss_cleanup.patch new file mode 100644 index 000000000..06a68aa58 --- /dev/null +++ b/target/linux/coldfire/patches/049-mcfv4e_linker_bss_cleanup.patch @@ -0,0 +1,72 @@ +From 4e16f08c800d57b986217e0d39d4a06b5bdf641d Mon Sep 17 00:00:00 2001 +From: Kurt Mahan <kmahan@freescale.com> +Date: Wed, 19 Mar 2008 17:37:44 -0600 +Subject: [PATCH] Move BSS section in linker script and zero it on boot. + +To work with the latest round of toolchains the bss section +in the linker script needed to be moved to the end (due to +the linker thinking there were overlapping sections). + +The BSS section needs to be manually zeroed. + +LTIBName: mcfv4e-linker-bss-cleanup +Signed-off-by: Kurt Mahan <kmahan@freescale.com> +--- + arch/m68k/coldfire/head.S | 11 +++++++++++ + arch/m68k/coldfire/vmlinux-cf.lds | 11 ++++++++--- + 2 files changed, 19 insertions(+), 3 deletions(-) + +--- a/arch/m68k/coldfire/head.S ++++ b/arch/m68k/coldfire/head.S +@@ -321,6 +321,17 @@ ENTRY(__start) + movec %d0, %acr3 + nop + ++#ifdef CONFIG_COLDFIRE ++/* zero bss */ ++ lea _sbss,%a0 ++ lea _ebss,%a1 ++ clrl %d0 ++_loop_bss: ++ movel %d0,(%a0)+ ++ cmpl %a0,%a1 ++ bne _loop_bss ++#endif ++ + /* If you change the memory size to another value make a matching + change in paging_init(cf-mmu.c) to zones_size[]. */ + +--- a/arch/m68k/coldfire/vmlinux-cf.lds ++++ b/arch/m68k/coldfire/vmlinux-cf.lds +@@ -51,9 +51,6 @@ SECTIONS + CONSTRUCTORS + } :data + +- .bss : AT(ADDR(.bss) - LOAD_OFFSET) { /* BSS */ +- *(.bss) +- } + + . = ALIGN(16); + .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET ) { +@@ -62,6 +59,8 @@ SECTIONS + + _edata = .; /* End of data section */ + ++ NOTES /* support ld --build-id */ ++ + . = ALIGN(8192); /* Initrd */ + .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { + __init_begin = .; +@@ -111,6 +110,12 @@ SECTIONS + *(.data.init_task) /* The initial task and kernel stack */ + } + ++ _sbss = .; ++ .bss : AT(ADDR(.bss) - LOAD_OFFSET) { /* BSS */ ++ *(.bss) ++ } ++ _ebss = .; ++ + _end = . ; + + /* Sections to be discarded */ |