diff options
Diffstat (limited to 'nand_spl')
| -rw-r--r-- | nand_spl/board/amcc/bamboo/sdram.c | 2 | ||||
| -rw-r--r-- | nand_spl/board/amcc/canyonlands/ddr2_fixed.c | 4 | ||||
| -rw-r--r-- | nand_spl/board/karo/tx25/u-boot.lds | 14 | ||||
| -rw-r--r-- | nand_spl/nand_boot.c | 7 | ||||
| -rw-r--r-- | nand_spl/nand_boot_fsl_nfc.c | 13 | 
5 files changed, 31 insertions, 9 deletions
| diff --git a/nand_spl/board/amcc/bamboo/sdram.c b/nand_spl/board/amcc/bamboo/sdram.c index 9fec5cad3..504a02b9e 100644 --- a/nand_spl/board/amcc/bamboo/sdram.c +++ b/nand_spl/board/amcc/bamboo/sdram.c @@ -22,7 +22,7 @@   */  #include <common.h> -#include <ppc4xx.h> +#include <asm/ppc4xx.h>  #include <asm/processor.h>  #include <asm/io.h> diff --git a/nand_spl/board/amcc/canyonlands/ddr2_fixed.c b/nand_spl/board/amcc/canyonlands/ddr2_fixed.c index ed1888ceb..f71ecfb93 100644 --- a/nand_spl/board/amcc/canyonlands/ddr2_fixed.c +++ b/nand_spl/board/amcc/canyonlands/ddr2_fixed.c @@ -22,7 +22,7 @@   */  #include <common.h> -#include <ppc4xx.h> +#include <asm/ppc4xx.h>  #include <asm/io.h>  #include <asm/processor.h> @@ -57,7 +57,7 @@ static void ddr_init_common(void)  	/*  	 * Reset the DDR-SDRAM controller.  	 */ -	mtsdr(SDR0_SRST, (0x80000000 >> 10)); +	mtsdr(SDR0_SRST, SDR0_SRST0_DMC);  	mtsdr(SDR0_SRST, 0x00000000);  	/* diff --git a/nand_spl/board/karo/tx25/u-boot.lds b/nand_spl/board/karo/tx25/u-boot.lds index 423bed386..c57255753 100644 --- a/nand_spl/board/karo/tx25/u-boot.lds +++ b/nand_spl/board/karo/tx25/u-boot.lds @@ -41,11 +41,23 @@ SECTIONS  	.rodata : { *(.rodata) }  	. = ALIGN(4); -	.data : { *(.data) } +	.data : { +		*(.data) +	__datarel_start = .; +		*(.data.rel) +	__datarelrolocal_start = .; +		*(.data.rel.ro.local) +	__datarellocal_start = .; +		*(.data.rel.local) +	__datarelro_start = .; +		*(.data.rel.ro) +	} +	__got_start = .;  	. = ALIGN(4);  	.got : { *(.got) } +	__got_end = .;  	. = .;  	__u_boot_cmd_start = .;  	.u_boot_cmd : { *(.u_boot_cmd) } diff --git a/nand_spl/nand_boot.c b/nand_spl/nand_boot.c index b9fd6f544..0580dbf47 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 bfae30e46..f89d54261 100644 --- a/nand_spl/nand_boot_fsl_nfc.c +++ b/nand_spl/nand_boot_fsl_nfc.c @@ -34,7 +34,7 @@  #include <asm/io.h>  #include <fsl_nfc.h> -struct fsl_nfc_regs *nfc; +static struct fsl_nfc_regs *const nfc = (void *)NFC_BASE_ADDR;  static void nfc_wait_ready(void)  { @@ -228,8 +228,6 @@ static int nand_load(unsigned int from, unsigned int size, unsigned char *buf)  	unsigned int maxpages = CONFIG_SYS_NAND_SIZE /  				CONFIG_SYS_NAND_PAGE_SIZE; -	nfc = (void *)NFC_BASE_ADDR; -  	nfc_nand_init();  	/* Convert to page number */ @@ -265,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 @@ -274,8 +279,6 @@ void nand_boot(void)  {  	__attribute__((noreturn)) void (*uboot)(void); -	nfc = (void *)NFC_BASE_ADDR; -  	/*  	 * CONFIG_SYS_NAND_U_BOOT_OFFS and CONFIG_SYS_NAND_U_BOOT_SIZE must  	 * be aligned to full pages |