summaryrefslogtreecommitdiffstats
path: root/nand_spl
diff options
context:
space:
mode:
authorHeiko Schocher <hs@denx.de>2010-09-17 13:10:39 +0200
committerWolfgang Denk <wd@denx.de>2010-09-19 19:29:53 +0200
commitf1d2b313c9eb6808d30c16a9eb5251240452a56c (patch)
tree8b5488d9e882947ef493c0e579aebaa5f40413f4 /nand_spl
parent4fff329df2516a7d9242d0642c07c4506f859051 (diff)
downloadtalos-obmc-uboot-f1d2b313c9eb6808d30c16a9eb5251240452a56c.tar.gz
talos-obmc-uboot-f1d2b313c9eb6808d30c16a9eb5251240452a56c.zip
ARM: add relocation support
!! This breaks support for all arm boards !! To compile in old style, you must define CONFIG_SYS_ARM_WITHOUT_RELOC or you can compile with "CONFIG_SYS_ARM_WITHOUT_RELOC=1 ./MAKEALL board" !! This define will be removed soon, so convert your board to use relocation support Portions of this work were supported by funding from the CE Linux Forum. Signed-off-by: Heiko Schocher <hs@denx.de> Fix boot from NAND for non-ARM systems Signed-off-by: Wolfgang Denk <wd@denx.de>
Diffstat (limited to 'nand_spl')
-rw-r--r--nand_spl/nand_boot.c7
-rw-r--r--nand_spl/nand_boot_fsl_nfc.c7
2 files changed, 14 insertions, 0 deletions
diff --git a/nand_spl/nand_boot.c b/nand_spl/nand_boot.c
index b9fd6f544c..0580dbf47c 100644
--- a/nand_spl/nand_boot.c
+++ b/nand_spl/nand_boot.c
@@ -221,6 +221,13 @@ static int nand_load(struct mtd_info *mtd, unsigned int offs,
return 0;
}
+#if defined(CONFIG_ARM) && !defined(CONFIG_SYS_ARM_WITHOUT_RELOC)
+void board_init_f (ulong bootflag)
+{
+ relocate_code (TEXT_BASE - TOTAL_MALLOC_LEN, NULL, TEXT_BASE);
+}
+#endif
+
/*
* The main entry for NAND booting. It's necessary that SDRAM is already
* configured and available since this code loads the main U-Boot image
diff --git a/nand_spl/nand_boot_fsl_nfc.c b/nand_spl/nand_boot_fsl_nfc.c
index ea3566b87d..f89d54261c 100644
--- a/nand_spl/nand_boot_fsl_nfc.c
+++ b/nand_spl/nand_boot_fsl_nfc.c
@@ -263,6 +263,13 @@ static int nand_load(unsigned int from, unsigned int size, unsigned char *buf)
return 0;
}
+#if defined(CONFIG_ARM) && !defined(CONFIG_SYS_ARM_WITHOUT_RELOC)
+void board_init_f (ulong bootflag)
+{
+ relocate_code (TEXT_BASE - TOTAL_MALLOC_LEN, NULL, TEXT_BASE);
+}
+#endif
+
/*
* The main entry for NAND booting. It's necessary that SDRAM is already
* configured and available since this code loads the main U-Boot image
OpenPOWER on IntegriCloud