diff options
author | Julius Werner <jwerner@chromium.org> | 2014-01-24 16:23:08 -0800 |
---|---|---|
committer | Marc Jones <marc.jones@se-eng.com> | 2014-11-13 06:49:41 +0100 |
commit | 7c6e489b23476ad6149c173b6971327aa2eb7726 (patch) | |
tree | 07cf2798f857b5455ac83989c774984c010a8470 /src/soc/nvidia | |
parent | 168b0f9e380ababdc1189bac6cd8b121d1adf3b7 (diff) | |
download | coreboot-7c6e489b23476ad6149c173b6971327aa2eb7726.tar.xz |
arm: Put assembly functions into separate sections
This patch changes the ENTRY() macro in asm.h to create a new section
for every assembler function, thus providing dcache_clean/invalidate_all
and friends with the same --gc-sections goodness that our C functions
have. This requires a few minor changes of moving around data (to make
sure it ends up in the right section) and changing some libgcc functions
(which apparently need to have two names?), but nothing serious.
(You may note that some of our assembly functions have data, sometimes
even writable, within the same .text section. This has been this way
before and I'm not looking to change it for now, although it's not
totally clean. Since we don't enforce read-only sections through paging,
it doesn't really hurt.)
BUG=None
TEST=Nyan and Snow still boot. Confirm dcache_invalidate_all is not
output into any binary anymore since no one actually uses it.
Original-Change-Id: I247b29d6173ba516c8dff59126c93b66f7dc4b8d
Original-Signed-off-by: Julius Werner <jwerner@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/183891
(cherry picked from commit 4a3f2e45e06cc8592d56c3577f41ff879f10e9cc)
Signed-off-by: Marc Jones <marc.jones@se-eng.com>
Change-Id: Ieaa4f2ea9d81c5b9e2b36a772ff9610bdf6446f9
Reviewed-on: http://review.coreboot.org/7451
Tested-by: build bot (Jenkins)
Reviewed-by: David Hendricks <dhendrix@chromium.org>
Diffstat (limited to 'src/soc/nvidia')
-rw-r--r-- | src/soc/nvidia/tegra124/bootblock_asm.S | 1 | ||||
-rw-r--r-- | src/soc/nvidia/tegra124/maincpu.S | 20 |
2 files changed, 10 insertions, 11 deletions
diff --git a/src/soc/nvidia/tegra124/bootblock_asm.S b/src/soc/nvidia/tegra124/bootblock_asm.S index 58a34cff7e..e4d43029fe 100644 --- a/src/soc/nvidia/tegra124/bootblock_asm.S +++ b/src/soc/nvidia/tegra124/bootblock_asm.S @@ -31,7 +31,6 @@ #include <arch/asm.h> -.section ".start", "a", %progbits ENTRY(_start) /* * Set the cpu to System mode with IRQ and FIQ disabled. Prefetch/Data diff --git a/src/soc/nvidia/tegra124/maincpu.S b/src/soc/nvidia/tegra124/maincpu.S index 91981ac1ca..11367480ad 100644 --- a/src/soc/nvidia/tegra124/maincpu.S +++ b/src/soc/nvidia/tegra124/maincpu.S @@ -29,16 +29,6 @@ #include <arch/asm.h> - .align 2 - - .global maincpu_stack_pointer -maincpu_stack_pointer: - .word 0 - - .global maincpu_entry_point -maincpu_entry_point: - .word 0 - .arm ENTRY(maincpu_setup) /* @@ -54,3 +44,13 @@ ENTRY(maincpu_setup) ldr r0, maincpu_entry_point bx r0 ENDPROC(maincpu_setup) + + .align 2 + + .global maincpu_stack_pointer +maincpu_stack_pointer: + .word 0 + + .global maincpu_entry_point +maincpu_entry_point: + .word 0 |