summaryrefslogtreecommitdiff
path: root/arch/powerpc
diff options
context:
space:
mode:
authorJoakim Tjernlund <joakim.tjernlund@infinera.com>2018-11-28 10:59:55 +0100
committerMario Six <mario.six@gdsys.cc>2019-01-21 08:33:42 +0100
commit64d68dcdd7de3f8a20753a73a988835fafc3ce7c (patch)
tree9f68e5cc4f14f60a93219bc75b54284489b56fb8 /arch/powerpc
parent2acc24fc28ef782f4baef1aa0193d520ee9610b9 (diff)
mpc83xx: Add support for -msingle-pic-base
-msingle-pic-base is a new gcc(from 4.6) option for ppc and it reduces the size of my u-boot with about 4 KB. While at it, add -fno-jump-tables too to save a few more bytes. Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com> Reviewed-by: Mario Six <mario.six@gdsys.cc> Tested-by: Mario Six <mario.six@gdsys.cc> (on MPC8308)
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/cpu/mpc83xx/config.mk1
-rw-r--r--arch/powerpc/cpu/mpc83xx/start.S3
2 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/cpu/mpc83xx/config.mk b/arch/powerpc/cpu/mpc83xx/config.mk
index 14870eec4d..a07df4d389 100644
--- a/arch/powerpc/cpu/mpc83xx/config.mk
+++ b/arch/powerpc/cpu/mpc83xx/config.mk
@@ -3,3 +3,4 @@
# Copyright 2004 Freescale Semiconductor, Inc.
PLATFORM_CPPFLAGS += -DCONFIG_E300 -msoft-float
+PLATFORM_RELFLAGS += -msingle-pic-base -fno-jump-tables
diff --git a/arch/powerpc/cpu/mpc83xx/start.S b/arch/powerpc/cpu/mpc83xx/start.S
index a3bacf138c..c00bb31363 100644
--- a/arch/powerpc/cpu/mpc83xx/start.S
+++ b/arch/powerpc/cpu/mpc83xx/start.S
@@ -288,6 +288,9 @@ in_flash:
/*------------------------------------------------------*/
GET_GOT /* initialize GOT access */
+ /* Needed for -msingle-pic-base */
+ bl _GLOBAL_OFFSET_TABLE_@local-4
+ mflr r30
/* r3: IMMR */
lis r3, CONFIG_SYS_IMMR@h