[U-Boot] [PATCH] ppc/85xx: Introduce RESET_VECTOR_ADDRESS to handle non-standard link address

Kumar Gala galak at kernel.crashing.org
Wed Sep 9 18:47:53 CEST 2009


Some board ports place TEXT_BASE at a location that would cause the
RESET_VECTOR_ADDRESS not to be at 0xfffffffc when we link.  By default
we assume RESET_VECTOR_ADDRESS will be 0xfffffffc if the board doesn't
explicitly set it.

Signed-off-by: Kumar Gala <galak at kernel.crashing.org>
---
 board/freescale/mpc8536ds/config.mk |    2 ++
 board/freescale/mpc8572ds/config.mk |    2 ++
 board/freescale/p1_p2_rdb/config.mk |    2 ++
 board/freescale/p2020ds/config.mk   |    2 ++
 cpu/mpc85xx/u-boot.lds              |   10 +++++++---
 5 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/board/freescale/mpc8536ds/config.mk b/board/freescale/mpc8536ds/config.mk
index f030876..c5fe1ba 100644
--- a/board/freescale/mpc8536ds/config.mk
+++ b/board/freescale/mpc8536ds/config.mk
@@ -26,3 +26,5 @@
 ifndef TEXT_BASE
 TEXT_BASE = 0xeff80000
 endif
+
+PLATFORM_CPPFLAGS += -DRESET_VECTOR_ADDRESS=0xeffffffc
diff --git a/board/freescale/mpc8572ds/config.mk b/board/freescale/mpc8572ds/config.mk
index 08b61f0..b7c18ab 100644
--- a/board/freescale/mpc8572ds/config.mk
+++ b/board/freescale/mpc8572ds/config.mk
@@ -26,3 +26,5 @@
 ifndef TEXT_BASE
 TEXT_BASE = 0xeff80000
 endif
+
+PLATFORM_CPPFLAGS += -DRESET_VECTOR_ADDRESS=0xeffffffc
diff --git a/board/freescale/p1_p2_rdb/config.mk b/board/freescale/p1_p2_rdb/config.mk
index abd64bb..674bdf0 100644
--- a/board/freescale/p1_p2_rdb/config.mk
+++ b/board/freescale/p1_p2_rdb/config.mk
@@ -27,3 +27,5 @@
 ifndef TEXT_BASE
 TEXT_BASE = 0xeff80000
 endif
+
+PLATFORM_CPPFLAGS += -DRESET_VECTOR_ADDRESS=0xeffffffc
diff --git a/board/freescale/p2020ds/config.mk b/board/freescale/p2020ds/config.mk
index 439fa8f..297bed5 100644
--- a/board/freescale/p2020ds/config.mk
+++ b/board/freescale/p2020ds/config.mk
@@ -26,3 +26,5 @@
 ifndef TEXT_BASE
 TEXT_BASE = 0xeff80000
 endif
+
+PLATFORM_CPPFLAGS += -DRESET_VECTOR_ADDRESS=0xeffffffc
diff --git a/cpu/mpc85xx/u-boot.lds b/cpu/mpc85xx/u-boot.lds
index d6e22a7..17753c3 100644
--- a/cpu/mpc85xx/u-boot.lds
+++ b/cpu/mpc85xx/u-boot.lds
@@ -20,6 +20,10 @@
  * MA 02111-1307 USA
  */
 
+#ifndef RESET_VECTOR_ADDRESS
+#define RESET_VECTOR_ADDRESS (0xfffffffc)
+#endif
+
 OUTPUT_ARCH(powerpc)
 /* Do we need any of these for elf?
    __DYNAMIC = 0;    */
@@ -116,17 +120,17 @@ SECTIONS
   . = ALIGN(256);
   __init_end = .;
 
-  .bootpg ADDR(.text) + 0x7f000 :
+  .bootpg RESET_VECTOR_ADDRESS - 0xffc :
   {
     cpu/mpc85xx/start.o	(.bootpg)
   } :text = 0xffff
 
-  .resetvec ADDR(.text) + 0x7fffc :
+  .resetvec RESET_VECTOR_ADDRESS :
   {
     *(.resetvec)
   } :text = 0xffff
 
-  . = ADDR(.text) + 0x80000;
+  . = RESET_VECTOR_ADDRESS + 0x4;
 
   __bss_start = .;
   .bss (NOLOAD)       :
-- 
1.6.0.6



More information about the U-Boot mailing list