diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2014-01-17 12:41:21 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-01-29 11:31:31 +0100 |
commit | c5b79860899c50e04b21c9fee1b319dbdf10d398 (patch) | |
tree | fca8943d19ed06fcaee714423a789972e7ccb7e0 /arch/arm/mach-imx | |
parent | 0895a9ad1cb7133cb161595a9116fd19f164f81c (diff) | |
download | barebox-c5b79860899c50e04b21c9fee1b319dbdf10d398.tar.gz barebox-c5b79860899c50e04b21c9fee1b319dbdf10d398.tar.xz |
ARM: i.MX: external NAND boot: pass boarddata
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r-- | arch/arm/mach-imx/external-nand-boot.c | 14 | ||||
-rw-r--r-- | arch/arm/mach-imx/include/mach/imx-nand.h | 10 |
2 files changed, 13 insertions, 11 deletions
diff --git a/arch/arm/mach-imx/external-nand-boot.c b/arch/arm/mach-imx/external-nand-boot.c index 7760d8d175..fab37bf77a 100644 --- a/arch/arm/mach-imx/external-nand-boot.c +++ b/arch/arm/mach-imx/external-nand-boot.c @@ -318,7 +318,8 @@ static inline int imx35_pagesize_2k(void) #define DEFINE_EXTERNAL_NAND_ENTRY(soc) \ \ -void __noreturn BARE_INIT_FUNCTION(imx##soc##_boot_nand_external_cont)(void) \ +void __noreturn BARE_INIT_FUNCTION(imx##soc##_boot_nand_external_cont) \ + (uint32_t boarddata) \ { \ unsigned long nfc_base = MX##soc##_NFC_BASE_ADDR; \ unsigned long sdram = MX##soc##_CSD0_BASE_ADDR; \ @@ -328,10 +329,11 @@ void __noreturn BARE_INIT_FUNCTION(imx##soc##_boot_nand_external_cont)(void) (void *)nfc_base, \ imx##soc##_pagesize_2k()); \ \ - imx##soc##_barebox_entry(0); \ + imx##soc##_barebox_entry(boarddata); \ } \ \ -void __noreturn BARE_INIT_FUNCTION(imx##soc##_barebox_boot_nand_external)(void) \ +void __noreturn BARE_INIT_FUNCTION(imx##soc##_barebox_boot_nand_external) \ + (uint32_t boarddata) \ { \ unsigned long nfc_base = MX##soc##_NFC_BASE_ADDR; \ unsigned long sdram = MX##soc##_CSD0_BASE_ADDR; \ @@ -339,12 +341,12 @@ void __noreturn BARE_INIT_FUNCTION(imx##soc##_barebox_boot_nand_external)(void) u32 r; \ u32 *src, *trg; \ int i; \ - void __noreturn (*fn)(void); \ + void __noreturn (*fn)(uint32_t); \ \ /* skip NAND boot if not running from NFC space */ \ r = get_pc(); \ if (r < nfc_base || r > nfc_base + 0x800) \ - imx##soc##_barebox_entry(0); \ + imx##soc##_barebox_entry(boarddata); \ \ src = (unsigned int *)nfc_base; \ trg = (unsigned int *)sdram; \ @@ -368,7 +370,7 @@ void __noreturn BARE_INIT_FUNCTION(imx##soc##_barebox_boot_nand_external)(void) \ fn = (void *)__fn; \ \ - fn(); \ + fn(boarddata); \ } #ifdef BROKEN diff --git a/arch/arm/mach-imx/include/mach/imx-nand.h b/arch/arm/mach-imx/include/mach/imx-nand.h index 9e6416e4d4..972a0da5d7 100644 --- a/arch/arm/mach-imx/include/mach/imx-nand.h +++ b/arch/arm/mach-imx/include/mach/imx-nand.h @@ -3,11 +3,11 @@ #include <linux/mtd/mtd.h> -void imx21_barebox_boot_nand_external(void); -void imx25_barebox_boot_nand_external(void); -void imx27_barebox_boot_nand_external(void); -void imx31_barebox_boot_nand_external(void); -void imx35_barebox_boot_nand_external(void); +void imx21_barebox_boot_nand_external(uint32_t boarddata); +void imx25_barebox_boot_nand_external(uint32_t boarddata); +void imx27_barebox_boot_nand_external(uint32_t boarddata); +void imx31_barebox_boot_nand_external(uint32_t boarddata); +void imx35_barebox_boot_nand_external(uint32_t boarddata); void imx_nand_set_layout(int writesize, int datawidth); struct imx_nand_platform_data { |