ppc4xx: Remove 4xx NAND booting support
As ppc4xx currently only supports the deprecated nand_spl infrastructure and nobody seems to have time / resources to port this over to the newer SPL infrastructure, lets remove NAND booting completely. This should not affect the "normal", non NAND-booting ppc4xx platforms that are currently supported. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Wolfgang Denk <wd@denx.de> Cc: Tirumala Marri <tmarri@apm.com> Cc: Matthias Fuchs <matthias.fuchs@esd.eu> Cc: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Tom Rini <trini@ti.com> Tested-by: Matthias Fuchs <matthias.fuchs@esd.eu>
This commit is contained in:
		
							parent
							
								
									dc116bd6c4
								
							
						
					
					
						commit
						345b77baca
					
				|  | @ -49,7 +49,6 @@ | ||||||
| 		       "SDRAM_" #mnemonic, SDRAM_##mnemonic, data);	\ | 		       "SDRAM_" #mnemonic, SDRAM_##mnemonic, data);	\ | ||||||
| 	} while (0) | 	} while (0) | ||||||
| 
 | 
 | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) |  | ||||||
| static void update_rdcc(void) | static void update_rdcc(void) | ||||||
| { | { | ||||||
| 	u32 val; | 	u32 val; | ||||||
|  | @ -72,7 +71,6 @@ static void update_rdcc(void) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| #if defined(CONFIG_440) | #if defined(CONFIG_440) | ||||||
| /*
 | /*
 | ||||||
|  | @ -101,7 +99,6 @@ void dcbz_area(u32 start_address, u32 num_bytes); | ||||||
| 
 | 
 | ||||||
| #define MULDIV64(m1, m2, d)	(u32)(((u64)(m1) * (u64)(m2)) / (u64)(d)) | #define MULDIV64(m1, m2, d)	(u32)(((u64)(m1) * (u64)(m2)) / (u64)(d)) | ||||||
| 
 | 
 | ||||||
| #if !defined(CONFIG_NAND_SPL) |  | ||||||
| /*-----------------------------------------------------------------------------+
 | /*-----------------------------------------------------------------------------+
 | ||||||
|  * sdram_memsize |  * sdram_memsize | ||||||
|  *-----------------------------------------------------------------------------*/ |  *-----------------------------------------------------------------------------*/ | ||||||
|  | @ -217,7 +214,6 @@ void board_add_ram_info(int use_default) | ||||||
| 	val = (val & SDRAM_MMODE_DCL_MASK) >> 4; | 	val = (val & SDRAM_MMODE_DCL_MASK) >> 4; | ||||||
| 	printf(", CL%d)", val); | 	printf(", CL%d)", val); | ||||||
| } | } | ||||||
| #endif /* !CONFIG_NAND_SPL */ |  | ||||||
| 
 | 
 | ||||||
| #if defined(CONFIG_SPD_EEPROM) | #if defined(CONFIG_SPD_EEPROM) | ||||||
| 
 | 
 | ||||||
|  | @ -2843,16 +2839,6 @@ static void test(void) | ||||||
|  *---------------------------------------------------------------------------*/ |  *---------------------------------------------------------------------------*/ | ||||||
| phys_size_t initdram(int board_type) | phys_size_t initdram(int board_type) | ||||||
| { | { | ||||||
| 	/*
 |  | ||||||
| 	 * Only run this SDRAM init code once. For NAND booting |  | ||||||
| 	 * targets like Kilauea, we call initdram() early from the |  | ||||||
| 	 * 4k NAND booting image (CONFIG_NAND_SPL) from nand_boot(). |  | ||||||
| 	 * Later on the NAND U-Boot image runs (CONFIG_NAND_U_BOOT) |  | ||||||
| 	 * which calls initdram() again. This time the controller |  | ||||||
| 	 * mustn't be reconfigured again since we're already running |  | ||||||
| 	 * from SDRAM. |  | ||||||
| 	 */ |  | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) |  | ||||||
| 	unsigned long val; | 	unsigned long val; | ||||||
| 
 | 
 | ||||||
| #if defined(CONFIG_440) | #if defined(CONFIG_440) | ||||||
|  | @ -2969,12 +2955,10 @@ phys_size_t initdram(int board_type) | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #if defined(CONFIG_PPC4xx_DDR_AUTOCALIBRATION) | #if defined(CONFIG_PPC4xx_DDR_AUTOCALIBRATION) | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| 	/*------------------------------------------------------------------
 | 	/*------------------------------------------------------------------
 | ||||||
| 	 | DQS calibration. | 	 | DQS calibration. | ||||||
| 	 +-----------------------------------------------------------------*/ | 	 +-----------------------------------------------------------------*/ | ||||||
| 	DQS_autocalibration(); | 	DQS_autocalibration(); | ||||||
| #endif /* !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) */ |  | ||||||
| #endif /* CONFIG_PPC4xx_DDR_AUTOCALIBRATION */ | #endif /* CONFIG_PPC4xx_DDR_AUTOCALIBRATION */ | ||||||
| 
 | 
 | ||||||
| 	/*
 | 	/*
 | ||||||
|  | @ -3009,13 +2993,10 @@ phys_size_t initdram(int board_type) | ||||||
| 	set_mcsr(get_mcsr()); | 	set_mcsr(get_mcsr()); | ||||||
| #endif /* CONFIG_PPC4xx_DDR_AUTOCALIBRATION */ | #endif /* CONFIG_PPC4xx_DDR_AUTOCALIBRATION */ | ||||||
| 
 | 
 | ||||||
| #endif /* !defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) */ |  | ||||||
| 
 |  | ||||||
| 	return (CONFIG_SYS_MBYTES_SDRAM << 20); | 	return (CONFIG_SYS_MBYTES_SDRAM << 20); | ||||||
| } | } | ||||||
| #endif /* CONFIG_SPD_EEPROM */ | #endif /* CONFIG_SPD_EEPROM */ | ||||||
| 
 | 
 | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| #if defined(CONFIG_440) | #if defined(CONFIG_440) | ||||||
| u32 mfdcr_any(u32 dcr) | u32 mfdcr_any(u32 dcr) | ||||||
| { | { | ||||||
|  | @ -3062,7 +3043,6 @@ void mtdcr_any(u32 dcr, u32 val) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| #endif /* defined(CONFIG_440) */ | #endif /* defined(CONFIG_440) */ | ||||||
| #endif /* !defined(CONFIG_NAND_U_BOOT) &&  !defined(CONFIG_NAND_SPL) */ |  | ||||||
| 
 | 
 | ||||||
| inline void ppc4xx_ibm_ddr2_register_dump(void) | inline void ppc4xx_ibm_ddr2_register_dump(void) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -27,12 +27,6 @@ | ||||||
| 
 | 
 | ||||||
| #include "ecc.h" | #include "ecc.h" | ||||||
| 
 | 
 | ||||||
| /*
 |  | ||||||
|  * Only compile the DDR auto-calibration code for NOR boot and |  | ||||||
|  * not for NAND boot (NAND SPL and NAND U-Boot - NUB) |  | ||||||
|  */ |  | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| 
 |  | ||||||
| #define MAXBXCF			4 | #define MAXBXCF			4 | ||||||
| #define SDRAM_RXBAS_SHIFT_1M	20 | #define SDRAM_RXBAS_SHIFT_1M	20 | ||||||
| 
 | 
 | ||||||
|  | @ -1231,9 +1225,3 @@ u32 DQS_autocalibration(void) | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| #else /* defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) */ |  | ||||||
| u32 DQS_autocalibration(void) |  | ||||||
| { |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| #endif /* !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) */ |  | ||||||
|  |  | ||||||
|  | @ -14,11 +14,7 @@ obj-y	+= kgdb.o | ||||||
| 
 | 
 | ||||||
| obj-y	+= 40x_spd_sdram.o | obj-y	+= 40x_spd_sdram.o | ||||||
| 
 | 
 | ||||||
| ifndef CONFIG_NAND_SPL |  | ||||||
| ifndef CONFIG_NAND_U_BOOT |  | ||||||
| obj-y	+= 44x_spd_ddr.o | obj-y	+= 44x_spd_ddr.o | ||||||
| endif |  | ||||||
| endif |  | ||||||
| obj-$(CONFIG_SDRAM_PPC4xx_IBM_DDR2) += 44x_spd_ddr2.o | obj-$(CONFIG_SDRAM_PPC4xx_IBM_DDR2) += 44x_spd_ddr2.o | ||||||
| obj-$(CONFIG_PPC4xx_DDR_AUTOCALIBRATION) += 4xx_ibm_ddr2_autocalib.o | obj-$(CONFIG_PPC4xx_DDR_AUTOCALIBRATION) += 4xx_ibm_ddr2_autocalib.o | ||||||
| obj-y	+= 4xx_pci.o | obj-y	+= 4xx_pci.o | ||||||
|  |  | ||||||
|  | @ -182,16 +182,13 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 	.extern ext_bus_cntlr_init
 | 	.extern ext_bus_cntlr_init
 | ||||||
| #ifdef CONFIG_NAND_U_BOOT |  | ||||||
| 	.extern reconfig_tlb0
 |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /* | /* | ||||||
|  * Set up GOT: Global Offset Table |  * Set up GOT: Global Offset Table | ||||||
|  * |  * | ||||||
|  * Use r12 to access the GOT |  * Use r12 to access the GOT | ||||||
|  */ |  */ | ||||||
| #if !defined(CONFIG_NAND_SPL) && !defined(CONFIG_SPL_BUILD) | #if !defined(CONFIG_SPL_BUILD) | ||||||
| 	START_GOT | 	START_GOT | ||||||
| 	GOT_ENTRY(_GOT2_TABLE_) | 	GOT_ENTRY(_GOT2_TABLE_) | ||||||
| 	GOT_ENTRY(_FIXUP_TABLE_) | 	GOT_ENTRY(_FIXUP_TABLE_) | ||||||
|  | @ -205,22 +202,7 @@ | ||||||
| 	GOT_ENTRY(__bss_end) | 	GOT_ENTRY(__bss_end) | ||||||
| 	GOT_ENTRY(__bss_start) | 	GOT_ENTRY(__bss_start) | ||||||
| 	END_GOT | 	END_GOT | ||||||
| #endif /* CONFIG_NAND_SPL */ | #endif /* CONFIG_SPL_BUILD */ | ||||||
| 
 |  | ||||||
| #if defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) && \ |  | ||||||
| 	!defined(CONFIG_SPL_BUILD) |  | ||||||
| 	/* |  | ||||||
| 	 * NAND U-Boot image is started from offset 0 |  | ||||||
| 	 */ |  | ||||||
| 	.text |  | ||||||
| #if defined(CONFIG_440) |  | ||||||
| 	bl	reconfig_tlb0 |  | ||||||
| #endif |  | ||||||
| 	GET_GOT |  | ||||||
| 	bl	cpu_init_f	/* run low-level CPU init code	   (from Flash) */ |  | ||||||
| 	bl	board_init_f |  | ||||||
| 	/* NOTREACHED - board_init_f() does not return */ |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| #if defined(CONFIG_SYS_RAMBOOT) || defined(CONFIG_BOOT_FROM_XMD) | #if defined(CONFIG_SYS_RAMBOOT) || defined(CONFIG_BOOT_FROM_XMD) | ||||||
| 	/* | 	/* | ||||||
|  | @ -255,9 +237,7 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #if defined(CONFIG_440) | #if defined(CONFIG_440) | ||||||
| #if !defined(CONFIG_NAND_SPL) |  | ||||||
|     .section .bootpg,"ax" |     .section .bootpg,"ax" | ||||||
| #endif |  | ||||||
|     .globl _start_440
 |     .globl _start_440
 | ||||||
| 
 | 
 | ||||||
| /**************************************************************************/ | /**************************************************************************/ | ||||||
|  | @ -511,7 +491,7 @@ tlbnx2:	addi	r4,r4,1		/* Next TLB */ | ||||||
|  * r3 - 1st arg to board_init(): IMMP pointer |  * r3 - 1st arg to board_init(): IMMP pointer | ||||||
|  * r4 - 2nd arg to board_init(): boot flag |  * r4 - 2nd arg to board_init(): boot flag | ||||||
|  */ |  */ | ||||||
| #if !defined(CONFIG_NAND_SPL) && !defined(CONFIG_SPL_BUILD) | #if !defined(CONFIG_SPL_BUILD) | ||||||
| 	.text | 	.text | ||||||
| 	.long	0x27051956		/* U-Boot Magic Number			*/ | 	.long	0x27051956		/* U-Boot Magic Number			*/ | ||||||
| 	.globl	version_string
 | 	.globl	version_string
 | ||||||
|  | @ -777,9 +757,6 @@ _start: | ||||||
| 	stwu	r1,-8(r1)		/* Save back chain and move SP */ | 	stwu	r1,-8(r1)		/* Save back chain and move SP */ | ||||||
| 	stw	r0,+12(r1)		/* Save return addr (underflow vect) */ | 	stw	r0,+12(r1)		/* Save return addr (underflow vect) */ | ||||||
| 
 | 
 | ||||||
| #ifdef CONFIG_NAND_SPL |  | ||||||
| 	bl	nand_boot_common	/* will not return */ |  | ||||||
| #else |  | ||||||
| #ifndef CONFIG_SPL_BUILD | #ifndef CONFIG_SPL_BUILD | ||||||
| 	GET_GOT | 	GET_GOT | ||||||
| #endif | #endif | ||||||
|  | @ -787,7 +764,6 @@ _start: | ||||||
| 	bl	cpu_init_f	/* run low-level CPU init code	   (from Flash) */ | 	bl	cpu_init_f	/* run low-level CPU init code	   (from Flash) */ | ||||||
| 	bl	board_init_f | 	bl	board_init_f | ||||||
| 	/* NOTREACHED - board_init_f() does not return */ | 	/* NOTREACHED - board_init_f() does not return */ | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| #endif /* CONFIG_440 */ | #endif /* CONFIG_440 */ | ||||||
| 
 | 
 | ||||||
|  | @ -1050,9 +1026,6 @@ _start: | ||||||
| 	stw	r0, +12(r1)		/* Save return addr (underflow vect) */ | 	stw	r0, +12(r1)		/* Save return addr (underflow vect) */ | ||||||
| #endif /* CONFIG_SYS_INIT_DCACHE_CS */ | #endif /* CONFIG_SYS_INIT_DCACHE_CS */ | ||||||
| 
 | 
 | ||||||
| #ifdef CONFIG_NAND_SPL |  | ||||||
| 	bl	nand_boot_common	/* will not return */ |  | ||||||
| #else |  | ||||||
| 	GET_GOT			/* initialize GOT access			*/ | 	GET_GOT			/* initialize GOT access			*/ | ||||||
| 
 | 
 | ||||||
| 	bl	cpu_init_f	/* run low-level CPU init code	   (from Flash) */ | 	bl	cpu_init_f	/* run low-level CPU init code	   (from Flash) */ | ||||||
|  | @ -1060,13 +1033,11 @@ _start: | ||||||
| 	bl	board_init_f	/* run first part of init code (from Flash)	*/ | 	bl	board_init_f	/* run first part of init code (from Flash)	*/ | ||||||
| 	/* NOTREACHED - board_init_f() does not return */ | 	/* NOTREACHED - board_init_f() does not return */ | ||||||
| 
 | 
 | ||||||
| #endif /* CONFIG_NAND_SPL */ |  | ||||||
| 
 |  | ||||||
| #endif	/* CONFIG_405GP || CONFIG_405 || CONFIG_405EP */ | #endif	/* CONFIG_405GP || CONFIG_405 || CONFIG_405EP */ | ||||||
| 	/*----------------------------------------------------------------------- */ | 	/*----------------------------------------------------------------------- */ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| #if !defined(CONFIG_NAND_SPL) && !defined(CONFIG_SPL_BUILD) | #if !defined(CONFIG_SPL_BUILD) | ||||||
| /* | /* | ||||||
|  * This code finishes saving the registers to the exception frame |  * This code finishes saving the registers to the exception frame | ||||||
|  * and jumps to the appropriate handler for the exception. |  * and jumps to the appropriate handler for the exception. | ||||||
|  | @ -1632,7 +1603,7 @@ __440_msr_continue: | ||||||
| 	blr | 	blr | ||||||
| 	function_epilog(dcbz_area) | 	function_epilog(dcbz_area) | ||||||
| #endif /* CONFIG_440 */ | #endif /* CONFIG_440 */ | ||||||
| #endif /* CONFIG_NAND_SPL */ | #endif /* CONFIG_SPL_BUILD */ | ||||||
| 
 | 
 | ||||||
| /*------------------------------------------------------------------------------- */ | /*------------------------------------------------------------------------------- */ | ||||||
| /* Function:	 in8 */ | /* Function:	 in8 */ | ||||||
|  | @ -1981,75 +1952,3 @@ pll_wait: | ||||||
| 	blr | 	blr | ||||||
| 	function_epilog(mftlb1) | 	function_epilog(mftlb1) | ||||||
| #endif /* CONFIG_440 */ | #endif /* CONFIG_440 */ | ||||||
| 
 |  | ||||||
| #if defined(CONFIG_NAND_SPL) |  | ||||||
| /* |  | ||||||
|  * void nand_boot_relocate(dst, src, bytes) |  | ||||||
|  * |  | ||||||
|  * r3 = Destination address to copy code to (in SDRAM) |  | ||||||
|  * r4 = Source address to copy code from |  | ||||||
|  * r5 = size to copy in bytes |  | ||||||
|  */ |  | ||||||
| nand_boot_relocate: |  | ||||||
| 	mr	r6,r3 |  | ||||||
| 	mr	r7,r4 |  | ||||||
| 	mflr	r8 |  | ||||||
| 
 |  | ||||||
| 	/* |  | ||||||
| 	 * Copy SPL from icache into SDRAM |  | ||||||
| 	 */ |  | ||||||
| 	subi	r3,r3,4 |  | ||||||
| 	subi	r4,r4,4 |  | ||||||
| 	srwi	r5,r5,2 |  | ||||||
| 	mtctr	r5 |  | ||||||
| ..spl_loop: |  | ||||||
| 	lwzu	r0,4(r4) |  | ||||||
| 	stwu	r0,4(r3) |  | ||||||
| 	bdnz	..spl_loop |  | ||||||
| 
 |  | ||||||
| 	/* |  | ||||||
| 	 * Calculate "corrected" link register, so that we "continue" |  | ||||||
| 	 * in execution in destination range |  | ||||||
| 	 */ |  | ||||||
| 	sub	r3,r7,r6	/* r3 = src - dst */ |  | ||||||
| 	sub	r8,r8,r3	/* r8 = link-reg - (src - dst) */ |  | ||||||
| 	mtlr	r8 |  | ||||||
| 	blr |  | ||||||
| 
 |  | ||||||
| nand_boot_common: |  | ||||||
| 	/* |  | ||||||
| 	 * First initialize SDRAM. It has to be available *before* calling |  | ||||||
| 	 * nand_boot(). |  | ||||||
| 	 */ |  | ||||||
| 	lis	r3,CONFIG_SYS_SDRAM_BASE@h
 |  | ||||||
| 	ori	r3,r3,CONFIG_SYS_SDRAM_BASE@l
 |  | ||||||
| 	bl	initdram |  | ||||||
| 
 |  | ||||||
| 	/* |  | ||||||
| 	 * Now copy the 4k SPL code into SDRAM and continue execution |  | ||||||
| 	 * from there. |  | ||||||
| 	 */ |  | ||||||
| 	lis	r3,CONFIG_SYS_NAND_BOOT_SPL_DST@h
 |  | ||||||
| 	ori	r3,r3,CONFIG_SYS_NAND_BOOT_SPL_DST@l
 |  | ||||||
| 	lis	r4,CONFIG_SYS_NAND_BOOT_SPL_SRC@h
 |  | ||||||
| 	ori	r4,r4,CONFIG_SYS_NAND_BOOT_SPL_SRC@l
 |  | ||||||
| 	lis	r5,CONFIG_SYS_NAND_BOOT_SPL_SIZE@h
 |  | ||||||
| 	ori	r5,r5,CONFIG_SYS_NAND_BOOT_SPL_SIZE@l
 |  | ||||||
| 	bl	nand_boot_relocate |  | ||||||
| 
 |  | ||||||
| 	/* |  | ||||||
| 	 * We're running from SDRAM now!!! |  | ||||||
| 	 * |  | ||||||
| 	 * It is necessary for 4xx systems to relocate from running at |  | ||||||
| 	 * the original location (0xfffffxxx) to somewhere else (SDRAM |  | ||||||
| 	 * preferably). This is because CS0 needs to be reconfigured for |  | ||||||
| 	 * NAND access. And we can't reconfigure this CS when currently |  | ||||||
| 	 * "running" from it. |  | ||||||
| 	 */ |  | ||||||
| 
 |  | ||||||
| 	/* |  | ||||||
| 	 * Finally call nand_boot() to load main NAND U-Boot image from |  | ||||||
| 	 * NAND and jump to it. |  | ||||||
| 	 */ |  | ||||||
| 	bl	nand_boot		/* will not return */ |  | ||||||
| #endif /* CONFIG_NAND_SPL */ |  | ||||||
|  |  | ||||||
|  | @ -17,7 +17,6 @@ | ||||||
| 
 | 
 | ||||||
| extern void board_pll_init_f(void); | extern void board_pll_init_f(void); | ||||||
| 
 | 
 | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) |  | ||||||
| static void cram_bcr_write(u32 wr_val) | static void cram_bcr_write(u32 wr_val) | ||||||
| { | { | ||||||
| 	wr_val <<= 2; | 	wr_val <<= 2; | ||||||
|  | @ -41,20 +40,9 @@ static void cram_bcr_write(u32 wr_val) | ||||||
| 
 | 
 | ||||||
| 	return; | 	return; | ||||||
| } | } | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| phys_size_t initdram(int board_type) | phys_size_t initdram(int board_type) | ||||||
| { | { | ||||||
| #if defined(CONFIG_NAND_SPL) |  | ||||||
| 	u32 reg; |  | ||||||
| 
 |  | ||||||
| 	/* don't reinit PLL when booting via I2C bootstrap option */ |  | ||||||
| 	mfsdr(SDR0_PINSTP, reg); |  | ||||||
| 	if (reg != 0xf0000000) |  | ||||||
| 		board_pll_init_f(); |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) |  | ||||||
| 	int i; | 	int i; | ||||||
| 	u32 val; | 	u32 val; | ||||||
| 
 | 
 | ||||||
|  | @ -88,7 +76,6 @@ phys_size_t initdram(int board_type) | ||||||
| 	/* Wait a short while, since for NAND booting this is too fast */ | 	/* Wait a short while, since for NAND booting this is too fast */ | ||||||
| 	for (i=0; i<200000; i++) | 	for (i=0; i<200000; i++) | ||||||
| 		; | 		; | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| 	return (CONFIG_SYS_MBYTES_RAM << 20); | 	return (CONFIG_SYS_MBYTES_RAM << 20); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -135,45 +135,3 @@ void board_pll_init_f(void) | ||||||
| 	mtcpr(CPR0_CLKUP, 0x40000000); | 	mtcpr(CPR0_CLKUP, 0x40000000); | ||||||
| } | } | ||||||
| #endif				/* CPU_<speed>_405EZ */ | #endif				/* CPU_<speed>_405EZ */ | ||||||
| 
 |  | ||||||
| #if defined(CONFIG_NAND_SPL) || defined(CONFIG_SPI_SPL) |  | ||||||
| /*
 |  | ||||||
|  * Get timebase clock frequency |  | ||||||
|  */ |  | ||||||
| unsigned long get_tbclk(void) |  | ||||||
| { |  | ||||||
| 	unsigned long cpr_plld; |  | ||||||
| 	unsigned long cpr_primad; |  | ||||||
| 	unsigned long primad_cpudv; |  | ||||||
| 	unsigned long pllFbkDiv; |  | ||||||
| 	unsigned long freqProcessor; |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * Read PLL Mode registers |  | ||||||
| 	 */ |  | ||||||
| 	mfcpr(CPR0_PLLD, cpr_plld); |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * Read CPR_PRIMAD register |  | ||||||
| 	 */ |  | ||||||
| 	mfcpr(CPR0_PRIMAD, cpr_primad); |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * Determine CPU clock frequency |  | ||||||
| 	 */ |  | ||||||
| 	primad_cpudv = ((cpr_primad & PRIMAD_CPUDV_MASK) >> 24); |  | ||||||
| 	if (primad_cpudv == 0) |  | ||||||
| 		primad_cpudv = 16; |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * Determine FBK_DIV. |  | ||||||
| 	 */ |  | ||||||
| 	pllFbkDiv = ((cpr_plld & PLLD_FBDV_MASK) >> 24); |  | ||||||
| 	if (pllFbkDiv == 0) |  | ||||||
| 		pllFbkDiv = 256; |  | ||||||
| 
 |  | ||||||
| 	freqProcessor = (CONFIG_SYS_CLK_FREQ * pllFbkDiv) / primad_cpudv; |  | ||||||
| 
 |  | ||||||
| 	return (freqProcessor); |  | ||||||
| } |  | ||||||
| #endif /* defined(CONFIG_NAND_SPL) || defined(CONFIG_SPI_SPL) */ |  | ||||||
|  |  | ||||||
|  | @ -16,7 +16,6 @@ void ext_bus_cntlr_init(void); | ||||||
| void configure_ppc440ep_pins(void); | void configure_ppc440ep_pins(void); | ||||||
| int is_nand_selected(void); | int is_nand_selected(void); | ||||||
| 
 | 
 | ||||||
| #if !(defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL)) |  | ||||||
| /*************************************************************************
 | /*************************************************************************
 | ||||||
|  * |  * | ||||||
|  * Bamboo has one bank onboard sdram (plus DIMM) |  * Bamboo has one bank onboard sdram (plus DIMM) | ||||||
|  | @ -178,7 +177,6 @@ const unsigned char cfg_simulate_spd_eeprom[128] = { | ||||||
| 	0, | 	0, | ||||||
| 	0 | 	0 | ||||||
| }; | }; | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| #if 0 | #if 0 | ||||||
| {	   /* GPIO   Alternate1	      Alternate2	Alternate3 */ | {	   /* GPIO   Alternate1	      Alternate2	Alternate3 */ | ||||||
|  | @ -440,15 +438,11 @@ int checkboard(void) | ||||||
| 
 | 
 | ||||||
| phys_size_t initdram (int board_type) | phys_size_t initdram (int board_type) | ||||||
| { | { | ||||||
| #if !(defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL)) |  | ||||||
| 	long dram_size; | 	long dram_size; | ||||||
| 
 | 
 | ||||||
| 	dram_size = spd_sdram(); | 	dram_size = spd_sdram(); | ||||||
| 
 | 
 | ||||||
| 	return dram_size; | 	return dram_size; | ||||||
| #else |  | ||||||
| 	return CONFIG_SYS_MBYTES_SDRAM << 20; |  | ||||||
| #endif |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*----------------------------------------------------------------------------+
 | /*----------------------------------------------------------------------------+
 | ||||||
|  | @ -1794,23 +1788,12 @@ void configure_ppc440ep_pins(void) | ||||||
| 	if (ppc440ep_core_selection[NAND_FLASH] == CORE_SELECTED) | 	if (ppc440ep_core_selection[NAND_FLASH] == CORE_SELECTED) | ||||||
| 	{ | 	{ | ||||||
| 		update_ndfc_ios(gpio_tab); | 		update_ndfc_ios(gpio_tab); | ||||||
| 
 |  | ||||||
| #if !(defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL)) |  | ||||||
| 		mtsdr(SDR0_CUST0, SDR0_CUST0_MUX_NDFC_SEL   | | 		mtsdr(SDR0_CUST0, SDR0_CUST0_MUX_NDFC_SEL   | | ||||||
| 		      SDR0_CUST0_NDFC_ENABLE	| | 		      SDR0_CUST0_NDFC_ENABLE	| | ||||||
| 		      SDR0_CUST0_NDFC_BW_8_BIT	| | 		      SDR0_CUST0_NDFC_BW_8_BIT	| | ||||||
| 		      SDR0_CUST0_NDFC_ARE_MASK	| | 		      SDR0_CUST0_NDFC_ARE_MASK	| | ||||||
| 		      SDR0_CUST0_CHIPSELGAT_EN1 | | 		      SDR0_CUST0_CHIPSELGAT_EN1 | | ||||||
| 		      SDR0_CUST0_CHIPSELGAT_EN2); | 		      SDR0_CUST0_CHIPSELGAT_EN2); | ||||||
| #else |  | ||||||
| 		mtsdr(SDR0_CUST0, SDR0_CUST0_MUX_NDFC_SEL   | |  | ||||||
| 		      SDR0_CUST0_NDFC_ENABLE	| |  | ||||||
| 		      SDR0_CUST0_NDFC_BW_8_BIT	| |  | ||||||
| 		      SDR0_CUST0_NDFC_ARE_MASK	| |  | ||||||
| 		      SDR0_CUST0_CHIPSELGAT_EN0 | |  | ||||||
| 		      SDR0_CUST0_CHIPSELGAT_EN2); |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| 		ndfc_selection_in_fpga(); | 		ndfc_selection_in_fpga(); | ||||||
| 	} | 	} | ||||||
| 	else | 	else | ||||||
|  |  | ||||||
|  | @ -32,12 +32,7 @@ tlbtab: | ||||||
| 	 * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the | 	 * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the | ||||||
| 	 * speed up boot process. It is patched after relocation to enable SA_I | 	 * speed up boot process. It is patched after relocation to enable SA_I | ||||||
| 	 */ | 	 */ | ||||||
| #ifndef CONFIG_NAND_SPL |  | ||||||
| 	tlbentry(CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 0, AC_RWX | SA_G) | 	tlbentry(CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 0, AC_RWX | SA_G) | ||||||
| #else |  | ||||||
| 	tlbentry(CONFIG_SYS_NAND_BOOT_SPL_SRC, SZ_4K, CONFIG_SYS_NAND_BOOT_SPL_SRC, 0, AC_RWX | SA_G) |  | ||||||
| 	tlbentry(CONFIG_SYS_SDRAM_BASE, SZ_256M, CONFIG_SYS_SDRAM_BASE, 0, AC_RWX | SA_IG) |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| 	/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */ | 	/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */ | ||||||
| 	tlbentry(CONFIG_SYS_INIT_RAM_ADDR, SZ_4K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_RWX | SA_G) | 	tlbentry(CONFIG_SYS_INIT_RAM_ADDR, SZ_4K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_RWX | SA_G) | ||||||
|  | @ -58,31 +53,3 @@ tlbtab: | ||||||
| 	tlbentry(CONFIG_SYS_USB_DEVICE, SZ_1K, CONFIG_SYS_USB_DEVICE, 0, AC_RW | SA_IG) | 	tlbentry(CONFIG_SYS_USB_DEVICE, SZ_1K, CONFIG_SYS_USB_DEVICE, 0, AC_RW | SA_IG) | ||||||
| 
 | 
 | ||||||
| 	tlbtab_end | 	tlbtab_end | ||||||
| 
 |  | ||||||
| #if defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| 	/* |  | ||||||
| 	 * For NAND booting the first TLB has to be reconfigured to full size |  | ||||||
| 	 * and with caching disabled after running from RAM! |  | ||||||
| 	 */ |  | ||||||
| #define TLB00	TLB0(CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M) |  | ||||||
| #define TLB01	TLB1(CONFIG_SYS_BOOT_BASE_ADDR, 0) |  | ||||||
| #define TLB02	TLB2(AC_RWX | SA_IG) |  | ||||||
| 
 |  | ||||||
| 	.globl	reconfig_tlb0
 |  | ||||||
| reconfig_tlb0: |  | ||||||
| 	sync |  | ||||||
| 	isync |  | ||||||
| 	addi	r4,r0,0x0000		/* TLB entry #0 */ |  | ||||||
| 	lis	r5,TLB00@h
 |  | ||||||
| 	ori	r5,r5,TLB00@l
 |  | ||||||
| 	tlbwe	r5,r4,0x0000		/* Save it out */ |  | ||||||
| 	lis	r5,TLB01@h
 |  | ||||||
| 	ori	r5,r5,TLB01@l
 |  | ||||||
| 	tlbwe	r5,r4,0x0001		/* Save it out */ |  | ||||||
| 	lis	r5,TLB02@h
 |  | ||||||
| 	ori	r5,r5,TLB02@l
 |  | ||||||
| 	tlbwe	r5,r4,0x0002		/* Save it out */ |  | ||||||
| 	sync |  | ||||||
| 	isync |  | ||||||
| 	blr |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|  | @ -379,11 +379,7 @@ int board_early_init_r (void) | ||||||
| 	 */ | 	 */ | ||||||
| 
 | 
 | ||||||
| 	/* Remap the NOR FLASH to 0xcc00.0000 ... 0xcfff.ffff */ | 	/* Remap the NOR FLASH to 0xcc00.0000 ... 0xcfff.ffff */ | ||||||
| #if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) |  | ||||||
| 	mtebc(PB3CR, CONFIG_SYS_FLASH_BASE_PHYS_L | 0xda000); |  | ||||||
| #else |  | ||||||
| 	mtebc(PB0CR, CONFIG_SYS_FLASH_BASE_PHYS_L | 0xda000); | 	mtebc(PB0CR, CONFIG_SYS_FLASH_BASE_PHYS_L | 0xda000); | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| 	/* Remove TLB entry of boot EBC mapping */ | 	/* Remove TLB entry of boot EBC mapping */ | ||||||
| 	remove_tlb(CONFIG_SYS_BOOT_BASE_ADDR, 16 << 20); | 	remove_tlb(CONFIG_SYS_BOOT_BASE_ADDR, 16 << 20); | ||||||
|  |  | ||||||
|  | @ -31,13 +31,7 @@ tlbtab: | ||||||
| 	 * use the speed up boot process. It is patched after relocation to | 	 * use the speed up boot process. It is patched after relocation to | ||||||
| 	 * enable SA_I | 	 * enable SA_I | ||||||
| 	 */ | 	 */ | ||||||
| #ifndef CONFIG_NAND_SPL |  | ||||||
| 	tlbentry(CONFIG_SYS_BOOT_BASE_ADDR, SZ_16M, CONFIG_SYS_BOOT_BASE_ADDR, 4, AC_RWX | SA_G) /* TLB 0 */ | 	tlbentry(CONFIG_SYS_BOOT_BASE_ADDR, SZ_16M, CONFIG_SYS_BOOT_BASE_ADDR, 4, AC_RWX | SA_G) /* TLB 0 */ | ||||||
| #else |  | ||||||
| 	tlbentry(CONFIG_SYS_NAND_BOOT_SPL_SRC, SZ_4K, CONFIG_SYS_NAND_BOOT_SPL_SRC, 4, AC_RWX | SA_G) |  | ||||||
| 	tlbentry(CONFIG_SYS_SDRAM_BASE, SZ_256M, CONFIG_SYS_SDRAM_BASE, 0, AC_RWX | SA_IG) |  | ||||||
| 	tlbentry(256 << 20, SZ_256M, 256 << 20, 0, AC_RWX | SA_IG) |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| 	/* | 	/* | ||||||
| 	 * TLB entries for SDRAM are not needed on this platform. | 	 * TLB entries for SDRAM are not needed on this platform. | ||||||
|  | @ -95,31 +89,3 @@ tlbtab: | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| 	tlbtab_end | 	tlbtab_end | ||||||
| 
 |  | ||||||
| #if defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| 	/* |  | ||||||
| 	 * For NAND booting the first TLB has to be reconfigured to full size |  | ||||||
| 	 * and with caching disabled after running from RAM! |  | ||||||
| 	 */ |  | ||||||
| #define TLB00	TLB0(CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M) |  | ||||||
| #define TLB01	TLB1(CONFIG_SYS_BOOT_BASE_ADDR, 1) |  | ||||||
| #define TLB02	TLB2(AC_RWX | SA_IG) |  | ||||||
| 
 |  | ||||||
| 	.globl	reconfig_tlb0
 |  | ||||||
| reconfig_tlb0: |  | ||||||
| 	sync |  | ||||||
| 	isync |  | ||||||
| 	addi	r4,r0,0x0000		/* TLB entry #0 */ |  | ||||||
| 	lis	r5,TLB00@h
 |  | ||||||
| 	ori	r5,r5,TLB00@l
 |  | ||||||
| 	tlbwe	r5,r4,0x0000		/* Save it out */ |  | ||||||
| 	lis	r5,TLB01@h
 |  | ||||||
| 	ori	r5,r5,TLB01@l
 |  | ||||||
| 	tlbwe	r5,r4,0x0001		/* Save it out */ |  | ||||||
| 	lis	r5,TLB02@h
 |  | ||||||
| 	ori	r5,r5,TLB02@l
 |  | ||||||
| 	tlbwe	r5,r4,0x0002		/* Save it out */ |  | ||||||
| 	sync |  | ||||||
| 	isync |  | ||||||
| 	blr |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|  | @ -48,11 +48,7 @@ tlbtab: | ||||||
| 	/* BOOT_CS (FLASH) must be forth. Before relocation SA_I can be off to use the | 	/* BOOT_CS (FLASH) must be forth. Before relocation SA_I can be off to use the | ||||||
| 	 * speed up boot process. It is patched after relocation to enable SA_I | 	 * speed up boot process. It is patched after relocation to enable SA_I | ||||||
| 	 */ | 	 */ | ||||||
| #ifndef CONFIG_NAND_SPL |  | ||||||
| 	tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 1, AC_RWX | SA_G ) | 	tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 1, AC_RWX | SA_G ) | ||||||
| #else |  | ||||||
| 	tlbentry( CONFIG_SYS_NAND_BOOT_SPL_SRC, SZ_4K, CONFIG_SYS_NAND_BOOT_SPL_SRC, 1, AC_RWX | SA_G ) |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| #ifdef CONFIG_SYS_INIT_RAM_DCACHE | #ifdef CONFIG_SYS_INIT_RAM_DCACHE | ||||||
| 	/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */ | 	/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */ | ||||||
|  | @ -81,31 +77,3 @@ tlbtab: | ||||||
| 	tlbentry(0xE8000000, SZ_64K, 0xE8000000, 1, AC_RWX | SA_IG) | 	tlbentry(0xE8000000, SZ_64K, 0xE8000000, 1, AC_RWX | SA_IG) | ||||||
| 
 | 
 | ||||||
| 	tlbtab_end | 	tlbtab_end | ||||||
| 
 |  | ||||||
| #if defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| 	/* |  | ||||||
| 	 * For NAND booting the first TLB has to be reconfigured to full size |  | ||||||
| 	 * and with caching disabled after running from RAM! |  | ||||||
| 	 */ |  | ||||||
| #define TLB00	TLB0(CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M) |  | ||||||
| #define TLB01	TLB1(CONFIG_SYS_BOOT_BASE_ADDR, 1) |  | ||||||
| #define TLB02	TLB2(AC_RWX | SA_IG) |  | ||||||
| 
 |  | ||||||
| 	.globl	reconfig_tlb0
 |  | ||||||
| reconfig_tlb0: |  | ||||||
| 	sync |  | ||||||
| 	isync |  | ||||||
| 	addi	r4,r0,CONFIG_SYS_TLB_FOR_BOOT_FLASH /* TLB entry # */ |  | ||||||
| 	lis	r5,TLB00@h
 |  | ||||||
| 	ori	r5,r5,TLB00@l
 |  | ||||||
| 	tlbwe	r5,r4,0x0000		/* Save it out */ |  | ||||||
| 	lis	r5,TLB01@h
 |  | ||||||
| 	ori	r5,r5,TLB01@l
 |  | ||||||
| 	tlbwe	r5,r4,0x0001		/* Save it out */ |  | ||||||
| 	lis	r5,TLB02@h
 |  | ||||||
| 	ori	r5,r5,TLB02@l
 |  | ||||||
| 	tlbwe	r5,r4,0x0002		/* Save it out */ |  | ||||||
| 	sync |  | ||||||
| 	isync |  | ||||||
| 	blr |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|  | @ -26,14 +26,6 @@ | ||||||
| extern int denali_wait_for_dlllock(void); | extern int denali_wait_for_dlllock(void); | ||||||
| extern void denali_core_search_data_eye(void); | extern void denali_core_search_data_eye(void); | ||||||
| 
 | 
 | ||||||
| #if defined(CONFIG_NAND_SPL) |  | ||||||
| /* Using arch/powerpc/cpu/ppc4xx/speed.c to calculate the bus frequency is too big
 |  | ||||||
|  * for the 4k NAND boot image so define bus_frequency to 133MHz here |  | ||||||
|  * which is save for the refresh counter setup. |  | ||||||
|  */ |  | ||||||
| #define get_bus_freq(val)	133333333 |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*************************************************************************
 | /*************************************************************************
 | ||||||
|  * |  * | ||||||
|  * initdram -- 440EPx's DDR controller is a DENALI Core |  * initdram -- 440EPx's DDR controller is a DENALI Core | ||||||
|  | @ -41,8 +33,7 @@ extern void denali_core_search_data_eye(void); | ||||||
|  ************************************************************************/ |  ************************************************************************/ | ||||||
| phys_size_t initdram (int board_type) | phys_size_t initdram (int board_type) | ||||||
| { | { | ||||||
| #if !(defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_SYS_RAMBOOT)) || \ | #if !defined(CONFIG_SYS_RAMBOOT) | ||||||
|     defined(CONFIG_NAND_SPL) |  | ||||||
| 	ulong speed = get_bus_freq(0); | 	ulong speed = get_bus_freq(0); | ||||||
| 
 | 
 | ||||||
| 	mtsdram(DDR0_02, 0x00000000); | 	mtsdram(DDR0_02, 0x00000000); | ||||||
|  | @ -81,7 +72,7 @@ phys_size_t initdram (int board_type) | ||||||
| 	mtsdram(DDR0_02, 0x00000001); | 	mtsdram(DDR0_02, 0x00000001); | ||||||
| 
 | 
 | ||||||
| 	denali_wait_for_dlllock(); | 	denali_wait_for_dlllock(); | ||||||
| #endif /* #ifndef CONFIG_NAND_U_BOOT */ | #endif /* #ifndef CONFIG_SYS_RAMBOOT */ | ||||||
| 
 | 
 | ||||||
| #ifdef CONFIG_DDR_DATA_EYE | #ifdef CONFIG_DDR_DATA_EYE | ||||||
| 	/* -----------------------------------------------------------+
 | 	/* -----------------------------------------------------------+
 | ||||||
|  |  | ||||||
|  | @ -142,8 +142,7 @@ int misc_init_r(void) | ||||||
| 	gd->bd->bi_flashstart = 0 - gd->bd->bi_flashsize; | 	gd->bd->bi_flashstart = 0 - gd->bd->bi_flashsize; | ||||||
| 	gd->bd->bi_flashoffset = 0; | 	gd->bd->bi_flashoffset = 0; | ||||||
| 
 | 
 | ||||||
| #if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) || \ | #if defined(CONFIG_SYS_RAMBOOT) | ||||||
|     defined(CONFIG_SYS_RAMBOOT) |  | ||||||
| 	mtdcr(EBC0_CFGADDR, PB3CR); | 	mtdcr(EBC0_CFGADDR, PB3CR); | ||||||
| #else | #else | ||||||
| 	mtdcr(EBC0_CFGADDR, PB0CR); | 	mtdcr(EBC0_CFGADDR, PB0CR); | ||||||
|  | @ -151,8 +150,7 @@ int misc_init_r(void) | ||||||
| 	pbcr = mfdcr(EBC0_CFGDATA); | 	pbcr = mfdcr(EBC0_CFGDATA); | ||||||
| 	size_val = ffs(gd->bd->bi_flashsize) - 21; | 	size_val = ffs(gd->bd->bi_flashsize) - 21; | ||||||
| 	pbcr = (pbcr & 0x0001ffff) | gd->bd->bi_flashstart | (size_val << 17); | 	pbcr = (pbcr & 0x0001ffff) | gd->bd->bi_flashstart | (size_val << 17); | ||||||
| #if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) || \ | #if defined(CONFIG_SYS_RAMBOOT) | ||||||
|     defined(CONFIG_SYS_RAMBOOT) |  | ||||||
| 	mtdcr(EBC0_CFGADDR, PB3CR); | 	mtdcr(EBC0_CFGADDR, PB3CR); | ||||||
| #else | #else | ||||||
| 	mtdcr(EBC0_CFGADDR, PB0CR); | 	mtdcr(EBC0_CFGADDR, PB0CR); | ||||||
|  | @ -360,7 +358,7 @@ void board_pci_fixup_irq(struct pci_controller *hose, pci_dev_t dev) | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_SYS_RAMBOOT) | #if defined(CONFIG_SYS_RAMBOOT) | ||||||
| /*
 | /*
 | ||||||
|  * On NAND-booting sequoia, we need to patch the chips select numbers |  * On NAND-booting sequoia, we need to patch the chips select numbers | ||||||
|  * in the dtb (CS0 - NAND, CS3 - NOR) |  * in the dtb (CS0 - NAND, CS3 - NOR) | ||||||
|  | @ -411,4 +409,4 @@ void ft_board_setup(void *blob, bd_t *bd) | ||||||
| 		return; | 		return; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| #endif /* CONFIG_NAND_U_BOOT */ | #endif /* CONFIG_SYS_RAMBOOT */ | ||||||
|  |  | ||||||
|  | @ -27,11 +27,7 @@ tlbtab: | ||||||
| 	 * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the | 	 * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the | ||||||
| 	 * speed up boot process. It is patched after relocation to enable SA_I | 	 * speed up boot process. It is patched after relocation to enable SA_I | ||||||
| 	 */ | 	 */ | ||||||
| #ifndef CONFIG_NAND_SPL |  | ||||||
| 	tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 1, AC_RWX | SA_G ) | 	tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 1, AC_RWX | SA_G ) | ||||||
| #else |  | ||||||
| 	tlbentry( CONFIG_SYS_NAND_BOOT_SPL_SRC, SZ_4K, CONFIG_SYS_NAND_BOOT_SPL_SRC, 1, AC_RWX | SA_G ) |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| 	/* TLB entries for DDR2 SDRAM are generated dynamically */ | 	/* TLB entries for DDR2 SDRAM are generated dynamically */ | ||||||
| 
 | 
 | ||||||
|  | @ -71,31 +67,3 @@ tlbtab: | ||||||
| 
 | 
 | ||||||
| 	/* TODO:  what about high IO space */ | 	/* TODO:  what about high IO space */ | ||||||
| 	tlbtab_end | 	tlbtab_end | ||||||
| 
 |  | ||||||
| #if defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| 	/* |  | ||||||
| 	 * For NAND booting the first TLB has to be reconfigured to full size |  | ||||||
| 	 * and with caching disabled after running from RAM! |  | ||||||
| 	 */ |  | ||||||
| #define TLB00	TLB0(CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M) |  | ||||||
| #define TLB01	TLB1(CONFIG_SYS_BOOT_BASE_ADDR, 1) |  | ||||||
| #define TLB02	TLB2(AC_RWX | SA_IG) |  | ||||||
| 
 |  | ||||||
| 	.globl	reconfig_tlb0
 |  | ||||||
| reconfig_tlb0: |  | ||||||
| 	sync |  | ||||||
| 	isync |  | ||||||
| 	addi	r4,r0,0x0000		/* TLB entry #0 */ |  | ||||||
| 	lis	r5,TLB00@h
 |  | ||||||
| 	ori	r5,r5,TLB00@l
 |  | ||||||
| 	tlbwe	r5,r4,0x0000		/* Save it out */ |  | ||||||
| 	lis	r5,TLB01@h
 |  | ||||||
| 	ori	r5,r5,TLB01@l
 |  | ||||||
| 	tlbwe	r5,r4,0x0001		/* Save it out */ |  | ||||||
| 	lis	r5,TLB02@h
 |  | ||||||
| 	ori	r5,r5,TLB02@l
 |  | ||||||
| 	tlbwe	r5,r4,0x0002		/* Save it out */ |  | ||||||
| 	sync |  | ||||||
| 	isync |  | ||||||
| 	blr |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|  | @ -229,19 +229,11 @@ int misc_init_r(void) | ||||||
| 	gd->bd->bi_flashstart = 0 - gd->bd->bi_flashsize; | 	gd->bd->bi_flashstart = 0 - gd->bd->bi_flashsize; | ||||||
| 	gd->bd->bi_flashoffset = 0; | 	gd->bd->bi_flashoffset = 0; | ||||||
| 
 | 
 | ||||||
| #if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) |  | ||||||
| 	mtdcr(EBC0_CFGADDR, PB2CR); |  | ||||||
| #else |  | ||||||
| 	mtdcr(EBC0_CFGADDR, PB0CR); | 	mtdcr(EBC0_CFGADDR, PB0CR); | ||||||
| #endif |  | ||||||
| 	pbcr = mfdcr(EBC0_CFGDATA); | 	pbcr = mfdcr(EBC0_CFGDATA); | ||||||
| 	size_val = ffs(gd->bd->bi_flashsize) - 21; | 	size_val = ffs(gd->bd->bi_flashsize) - 21; | ||||||
| 	pbcr = (pbcr & 0x0001ffff) | gd->bd->bi_flashstart | (size_val << 17); | 	pbcr = (pbcr & 0x0001ffff) | gd->bd->bi_flashstart | (size_val << 17); | ||||||
| #if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) |  | ||||||
| 	mtdcr(EBC0_CFGADDR, PB2CR); |  | ||||||
| #else |  | ||||||
| 	mtdcr(EBC0_CFGADDR, PB0CR); | 	mtdcr(EBC0_CFGADDR, PB0CR); | ||||||
| #endif |  | ||||||
| 	mtdcr(EBC0_CFGDATA, pbcr); | 	mtdcr(EBC0_CFGDATA, pbcr); | ||||||
| 
 | 
 | ||||||
| 	/*
 | 	/*
 | ||||||
|  |  | ||||||
|  | @ -1121,22 +1121,14 @@ Active  powerpc     ppc4xx         -           amcc            - | ||||||
| Active  powerpc     ppc4xx         -           amcc            -                   taihu                                -                                                                                                                                 John Otken <jotken@softadvances.com> | Active  powerpc     ppc4xx         -           amcc            -                   taihu                                -                                                                                                                                 John Otken <jotken@softadvances.com> | ||||||
| Active  powerpc     ppc4xx         -           amcc            -                   taishan                              -                                                                                                                                 Stefan Roese <sr@denx.de> | Active  powerpc     ppc4xx         -           amcc            -                   taishan                              -                                                                                                                                 Stefan Roese <sr@denx.de> | ||||||
| Active  powerpc     ppc4xx         -           amcc            -                   yucca                                -                                                                                                                                 - | Active  powerpc     ppc4xx         -           amcc            -                   yucca                                -                                                                                                                                 - | ||||||
| Active  powerpc     ppc4xx         -           amcc            acadia              acadia_nand                          acadia:NAND_U_BOOT,SYS_TEXT_BASE=0x01000000                                                                                       Stefan Roese <sr@denx.de> |  | ||||||
| Active  powerpc     ppc4xx         -           amcc            bamboo              bamboo_nand                          bamboo:NAND_U_BOOT,SYS_TEXT_BASE=0x01000000                                                                                       Stefan Roese <sr@denx.de> |  | ||||||
| Active  powerpc     ppc4xx         -           amcc            canyonlands         arches                               canyonlands:ARCHES                                                                                                                Stefan Roese <sr@denx.de> | Active  powerpc     ppc4xx         -           amcc            canyonlands         arches                               canyonlands:ARCHES                                                                                                                Stefan Roese <sr@denx.de> | ||||||
| Active  powerpc     ppc4xx         -           amcc            canyonlands         canyonlands                          canyonlands:CANYONLANDS                                                                                                           Stefan Roese <sr@denx.de> | Active  powerpc     ppc4xx         -           amcc            canyonlands         canyonlands                          canyonlands:CANYONLANDS                                                                                                           Stefan Roese <sr@denx.de> | ||||||
| Active  powerpc     ppc4xx         -           amcc            canyonlands         canyonlands_nand                     canyonlands:CANYONLANDS,NAND_U_BOOT,SYS_TEXT_BASE=0x01000000                                                                      Stefan Roese <sr@denx.de> |  | ||||||
| Active  powerpc     ppc4xx         -           amcc            canyonlands         glacier                              canyonlands:GLACIER                                                                                                               Stefan Roese <sr@denx.de> | Active  powerpc     ppc4xx         -           amcc            canyonlands         glacier                              canyonlands:GLACIER                                                                                                               Stefan Roese <sr@denx.de> | ||||||
| Active  powerpc     ppc4xx         -           amcc            canyonlands         glacier_nand                         canyonlands:GLACIER,NAND_U_BOOT,SYS_TEXT_BASE=0x01000000                                                                          Stefan Roese <sr@denx.de> |  | ||||||
| Active  powerpc     ppc4xx         -           amcc            kilauea             haleakala                            kilauea:HALEAKALA                                                                                                                 Stefan Roese <sr@denx.de> | Active  powerpc     ppc4xx         -           amcc            kilauea             haleakala                            kilauea:HALEAKALA                                                                                                                 Stefan Roese <sr@denx.de> | ||||||
| Active  powerpc     ppc4xx         -           amcc            kilauea             haleakala_nand                       kilauea:NAND_U_BOOT,SYS_TEXT_BASE=0x01000000                                                                                      Stefan Roese <sr@denx.de> |  | ||||||
| Active  powerpc     ppc4xx         -           amcc            kilauea             kilauea                              kilauea:KILAUEA                                                                                                                   Stefan Roese <sr@denx.de> | Active  powerpc     ppc4xx         -           amcc            kilauea             kilauea                              kilauea:KILAUEA                                                                                                                   Stefan Roese <sr@denx.de> | ||||||
| Active  powerpc     ppc4xx         -           amcc            kilauea             kilauea_nand                         kilauea:NAND_U_BOOT,SYS_TEXT_BASE=0x01000000                                                                                      Stefan Roese <sr@denx.de> |  | ||||||
| Active  powerpc     ppc4xx         -           amcc            sequoia             rainier                              sequoia:RAINIER                                                                                                                   Stefan Roese <sr@denx.de> | Active  powerpc     ppc4xx         -           amcc            sequoia             rainier                              sequoia:RAINIER                                                                                                                   Stefan Roese <sr@denx.de> | ||||||
| Active  powerpc     ppc4xx         -           amcc            sequoia             rainier_nand                         sequoia:RAINIER,NAND_U_BOOT,SYS_TEXT_BASE=0x01000000                                                                              Stefan Roese <sr@denx.de> |  | ||||||
| Active  powerpc     ppc4xx         -           amcc            sequoia             rainier_ramboot                      sequoia:RAINIER,SYS_RAMBOOT,SYS_TEXT_BASE=0x01000000,SYS_LDSCRIPT=board/amcc/sequoia/u-boot-ram.lds                               Stefan Roese <sr@denx.de> | Active  powerpc     ppc4xx         -           amcc            sequoia             rainier_ramboot                      sequoia:RAINIER,SYS_RAMBOOT,SYS_TEXT_BASE=0x01000000,SYS_LDSCRIPT=board/amcc/sequoia/u-boot-ram.lds                               Stefan Roese <sr@denx.de> | ||||||
| Active  powerpc     ppc4xx         -           amcc            sequoia             sequoia                              sequoia:SEQUOIA                                                                                                                   Stefan Roese <sr@denx.de> | Active  powerpc     ppc4xx         -           amcc            sequoia             sequoia                              sequoia:SEQUOIA                                                                                                                   Stefan Roese <sr@denx.de> | ||||||
| Active  powerpc     ppc4xx         -           amcc            sequoia             sequoia_nand                         sequoia:SEQUOIA,NAND_U_BOOT,SYS_TEXT_BASE=0x01000000                                                                              Stefan Roese <sr@denx.de> |  | ||||||
| Active  powerpc     ppc4xx         -           amcc            sequoia             sequoia_ramboot                      sequoia:SEQUOIA,SYS_RAMBOOT,SYS_TEXT_BASE=0x01000000,SYS_LDSCRIPT=board/amcc/sequoia/u-boot-ram.lds                               Stefan Roese <sr@denx.de> | Active  powerpc     ppc4xx         -           amcc            sequoia             sequoia_ramboot                      sequoia:SEQUOIA,SYS_RAMBOOT,SYS_TEXT_BASE=0x01000000,SYS_LDSCRIPT=board/amcc/sequoia/u-boot-ram.lds                               Stefan Roese <sr@denx.de> | ||||||
| Active  powerpc     ppc4xx         -           amcc            walnut              sycamore                             walnut                                                                                                                            Stefan Roese <sr@denx.de> | Active  powerpc     ppc4xx         -           amcc            walnut              sycamore                             walnut                                                                                                                            Stefan Roese <sr@denx.de> | ||||||
| Active  powerpc     ppc4xx         -           amcc            walnut              walnut                               -                                                                                                                                 Stefan Roese <sr@denx.de> | Active  powerpc     ppc4xx         -           amcc            walnut              walnut                               -                                                                                                                                 Stefan Roese <sr@denx.de> | ||||||
|  |  | ||||||
|  | @ -104,7 +104,6 @@ static void ndfc_read_buf(struct mtd_info *mtdinfo, uint8_t *buf, int len) | ||||||
| 		*p++ = in_be32((u32 *)(base + NDFC_DATA)); | 		*p++ = in_be32((u32 *)(base + NDFC_DATA)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #ifndef CONFIG_NAND_SPL |  | ||||||
| /*
 | /*
 | ||||||
|  * Don't use these speedup functions in NAND boot image, since the image |  * Don't use these speedup functions in NAND boot image, since the image | ||||||
|  * has to fit into 4kByte. |  * has to fit into 4kByte. | ||||||
|  | @ -148,8 +147,6 @@ static uint8_t ndfc_read_byte(struct mtd_info *mtd) | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #endif /* #ifndef CONFIG_NAND_SPL */ |  | ||||||
| 
 |  | ||||||
| void board_nand_select_device(struct nand_chip *nand, int chip) | void board_nand_select_device(struct nand_chip *nand, int chip) | ||||||
| { | { | ||||||
| 	/*
 | 	/*
 | ||||||
|  | @ -207,21 +204,11 @@ int board_nand_init(struct nand_chip *nand) | ||||||
| 	nand->options |= NAND_BUSWIDTH_16; | 	nand->options |= NAND_BUSWIDTH_16; | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifndef CONFIG_NAND_SPL |  | ||||||
| 	nand->write_buf  = ndfc_write_buf; | 	nand->write_buf  = ndfc_write_buf; | ||||||
| 	nand->verify_buf = ndfc_verify_buf; | 	nand->verify_buf = ndfc_verify_buf; | ||||||
| 	nand->read_byte = ndfc_read_byte; | 	nand->read_byte = ndfc_read_byte; | ||||||
| 
 | 
 | ||||||
| 	chip++; | 	chip++; | ||||||
| #else |  | ||||||
| 	/*
 |  | ||||||
| 	 * Setup EBC (CS0 only right now) |  | ||||||
| 	 */ |  | ||||||
| 	mtebc(EBC0_CFG, CONFIG_SYS_NDFC_EBC0_CFG); |  | ||||||
| 
 |  | ||||||
| 	mtebc(PB0CR, CONFIG_SYS_EBC_PB0CR); |  | ||||||
| 	mtebc(PB0AP, CONFIG_SYS_EBC_PB0AP); |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -95,12 +95,7 @@ | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * Environment |  * Environment | ||||||
|  *----------------------------------------------------------------------*/ |  *----------------------------------------------------------------------*/ | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| #define CONFIG_ENV_IS_IN_EEPROM	1	/* use FLASH for environment vars */ | #define CONFIG_ENV_IS_IN_EEPROM	1	/* use FLASH for environment vars */ | ||||||
| #else |  | ||||||
| #define CONFIG_ENV_IS_IN_NAND	1	/* use NAND for environment vars */ |  | ||||||
| #define CONFIG_ENV_IS_EMBEDDED	1	/* use embedded environment */ |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * RTC |  * RTC | ||||||
|  | @ -142,69 +137,10 @@ | ||||||
| #define CONFIG_ENV_SIZE		0x1000	/* 4096 bytes may be used for env vars */ | #define CONFIG_ENV_SIZE		0x1000	/* 4096 bytes may be used for env vars */ | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| /*
 |  | ||||||
|  * IPL (Initial Program Loader, integrated inside CPU) |  | ||||||
|  * Will load first 4k from NAND (SPL) into cache and execute it from there. |  | ||||||
|  * |  | ||||||
|  * SPL (Secondary Program Loader) |  | ||||||
|  * Will load special U-Boot version (NUB) from NAND and execute it. This SPL |  | ||||||
|  * has to fit into 4kByte. It sets up the CPU and configures the SDRAM |  | ||||||
|  * controller and the NAND controller so that the special U-Boot image can be |  | ||||||
|  * loaded from NAND to SDRAM. |  | ||||||
|  * |  | ||||||
|  * NUB (NAND U-Boot) |  | ||||||
|  * This NAND U-Boot (NUB) is a special U-Boot version which can be started |  | ||||||
|  * from RAM. Therefore it mustn't (re-)configure the SDRAM controller. |  | ||||||
|  * |  | ||||||
|  * On 440EPx the SPL is copied to SDRAM before the NAND controller is |  | ||||||
|  * set up. While still running from cache, I experienced problems accessing |  | ||||||
|  * the NAND controller.	sr - 2006-08-25 |  | ||||||
|  */ |  | ||||||
| #if defined (CONFIG_NAND_U_BOOT) |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_SRC	0xfffff000	/* SPL location                 */ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_SIZE	(4 << 10)	/* SPL size                     */ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_DST	(CONFIG_SYS_OCM_BASE + (12 << 10)) /* Copy SPL here    */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_DST	0x01000000	/* Load NUB to this addr        */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_NAND_U_BOOT_DST /* Start NUB from this addr */ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_DELTA	(CONFIG_SYS_NAND_BOOT_SPL_SRC - CONFIG_SYS_NAND_BOOT_SPL_DST) |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Define the partitioning of the NAND chip (only RAM U-Boot is needed here) |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_OFFS	(16 << 10)	/* Offset to RAM U-Boot image   */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_SIZE	(384 << 10)	/* Size of RAM U-Boot image     */ |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Now the NAND chip has to be defined (no autodetection used!) |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_PAGE_SIZE	512	/* NAND chip page size          */ |  | ||||||
| #define CONFIG_SYS_NAND_BLOCK_SIZE	(16 << 10) /* NAND chip block size      */ |  | ||||||
| #define CONFIG_SYS_NAND_PAGE_COUNT	32	/* NAND chip page count         */ |  | ||||||
| #define CONFIG_SYS_NAND_BAD_BLOCK_POS	5	/* Location of bad block marker */ |  | ||||||
| #undef CONFIG_SYS_NAND_4_ADDR_CYCLE		/* No fourth addr used (<=32MB) */ |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_NAND_ECCSIZE	256 |  | ||||||
| #define CONFIG_SYS_NAND_ECCBYTES	3 |  | ||||||
| #define CONFIG_SYS_NAND_OOBSIZE	16 |  | ||||||
| #define CONFIG_SYS_NAND_ECCPOS		{0, 1, 2, 3, 6, 7} |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| #ifdef CONFIG_ENV_IS_IN_NAND |  | ||||||
| /*
 |  | ||||||
|  * For NAND booting the environment is embedded in the U-Boot image. Please take |  | ||||||
|  * look at the file board/amcc/sequoia/u-boot-nand.lds for details. |  | ||||||
|  */ |  | ||||||
| #define CONFIG_ENV_SIZE		CONFIG_SYS_NAND_BLOCK_SIZE |  | ||||||
| #define CONFIG_ENV_OFFSET		(CONFIG_SYS_NAND_U_BOOT_OFFS + CONFIG_ENV_SIZE) |  | ||||||
| #define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * DDR SDRAM |  * DDR SDRAM | ||||||
|  *----------------------------------------------------------------------*/ |  *----------------------------------------------------------------------*/ | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| #define CONFIG_DDR_DATA_EYE	/* use DDR2 optimization        */ | #define CONFIG_DDR_DATA_EYE	/* use DDR2 optimization        */ | ||||||
| #endif |  | ||||||
| #define CONFIG_SYS_MEM_TOP_HIDE	(4 << 10) /* don't use last 4kbytes */ | #define CONFIG_SYS_MEM_TOP_HIDE	(4 << 10) /* don't use last 4kbytes */ | ||||||
| 						  /* 440EPx errata CHIP 11 */ | 						  /* 440EPx errata CHIP 11 */ | ||||||
| 
 | 
 | ||||||
|  | @ -448,7 +384,6 @@ | ||||||
| /*
 | /*
 | ||||||
|  * On Sequoia CS0 and CS3 are switched when configuring for NAND booting |  * On Sequoia CS0 and CS3 are switched when configuring for NAND booting | ||||||
|  */ |  */ | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| #define CONFIG_SYS_NAND_CS		2	/* NAND chip connected to CSx   */ | #define CONFIG_SYS_NAND_CS		2	/* NAND chip connected to CSx   */ | ||||||
| 
 | 
 | ||||||
| /* Memory Bank 0 (NOR-FLASH) initialization */ | /* Memory Bank 0 (NOR-FLASH) initialization */ | ||||||
|  | @ -458,16 +393,6 @@ | ||||||
| /* Memory Bank 2 (NAND-FLASH) initialization */ | /* Memory Bank 2 (NAND-FLASH) initialization */ | ||||||
| #define CONFIG_SYS_EBC_PB2AP		0x018003c0 | #define CONFIG_SYS_EBC_PB2AP		0x018003c0 | ||||||
| #define CONFIG_SYS_EBC_PB2CR		(CONFIG_SYS_NAND_ADDR | 0x1c000) | #define CONFIG_SYS_EBC_PB2CR		(CONFIG_SYS_NAND_ADDR | 0x1c000) | ||||||
| #else |  | ||||||
| #define CONFIG_SYS_NAND_CS		0	/* NAND chip connected to CSx   */ |  | ||||||
| /* Memory Bank 2 (NOR-FLASH) initialization */ |  | ||||||
| #define CONFIG_SYS_EBC_PB2AP		0x03017200 |  | ||||||
| #define CONFIG_SYS_EBC_PB2CR		(CONFIG_SYS_FLASH_BASE | 0xda000) |  | ||||||
| 
 |  | ||||||
| /* Memory Bank 0 (NAND-FLASH) initialization */ |  | ||||||
| #define CONFIG_SYS_EBC_PB0AP		0x018003c0 |  | ||||||
| #define CONFIG_SYS_EBC_PB0CR		(CONFIG_SYS_NAND_ADDR | 0x1c000) |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /* Memory Bank 1 (RESET) initialization */ | /* Memory Bank 1 (RESET) initialization */ | ||||||
| #define CONFIG_SYS_EBC_PB1AP		0x7f817200 /* 0x03017200 */ | #define CONFIG_SYS_EBC_PB1AP		0x7f817200 /* 0x03017200 */ | ||||||
|  |  | ||||||
|  | @ -82,17 +82,11 @@ | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * Environment |  * Environment | ||||||
|  *----------------------------------------------------------------------*/ |  *----------------------------------------------------------------------*/ | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| #define CONFIG_ENV_IS_IN_FLASH     1	/* use FLASH for environment vars	*/ | #define CONFIG_ENV_IS_IN_FLASH     1	/* use FLASH for environment vars	*/ | ||||||
| #else |  | ||||||
| #define CONFIG_ENV_IS_IN_NAND	1	/* use NAND for environment vars	*/ |  | ||||||
| #define CONFIG_ENV_IS_EMBEDDED	1	/* use embedded environment */ |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * FLASH related |  * FLASH related | ||||||
|  *----------------------------------------------------------------------*/ |  *----------------------------------------------------------------------*/ | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| #define CONFIG_SYS_FLASH_CFI			/* The flash is CFI compatible	*/ | #define CONFIG_SYS_FLASH_CFI			/* The flash is CFI compatible	*/ | ||||||
| #define CONFIG_FLASH_CFI_DRIVER		/* Use common CFI driver	*/ | #define CONFIG_FLASH_CFI_DRIVER		/* Use common CFI driver	*/ | ||||||
| 
 | 
 | ||||||
|  | @ -106,16 +100,6 @@ | ||||||
| #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1	/* use buffered writes (20x faster)	*/ | #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1	/* use buffered writes (20x faster)	*/ | ||||||
| #define CONFIG_SYS_FLASH_EMPTY_INFO		/* print 'E' for empty sector on flinfo */ | #define CONFIG_SYS_FLASH_EMPTY_INFO		/* print 'E' for empty sector on flinfo */ | ||||||
| 
 | 
 | ||||||
| #else |  | ||||||
| /*
 |  | ||||||
|  * No NOR-flash on Acadia when NAND-booting. We need to undef the |  | ||||||
|  * NOR device-tree fixup code as well, since flash_info is not defined |  | ||||||
|  * in this case. |  | ||||||
|  */ |  | ||||||
| #define	CONFIG_SYS_NO_FLASH		1 |  | ||||||
| #undef CONFIG_FDT_FIXUP_NOR_FLASH_SIZE |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| #ifdef CONFIG_ENV_IS_IN_FLASH | #ifdef CONFIG_ENV_IS_IN_FLASH | ||||||
| #define CONFIG_ENV_SECT_SIZE	0x40000 /* size of one complete sector	*/ | #define CONFIG_ENV_SECT_SIZE	0x40000 /* size of one complete sector	*/ | ||||||
| #define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_BASE-CONFIG_ENV_SECT_SIZE) | #define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_BASE-CONFIG_ENV_SECT_SIZE) | ||||||
|  | @ -126,61 +110,6 @@ | ||||||
| #define CONFIG_ENV_SIZE_REDUND	(CONFIG_ENV_SIZE) | #define CONFIG_ENV_SIZE_REDUND	(CONFIG_ENV_SIZE) | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| /*
 |  | ||||||
|  * IPL (Initial Program Loader, integrated inside CPU) |  | ||||||
|  * Will load first 4k from NAND (SPL) into cache and execute it from there. |  | ||||||
|  * |  | ||||||
|  * SPL (Secondary Program Loader) |  | ||||||
|  * Will load special U-Boot version (NUB) from NAND and execute it. This SPL |  | ||||||
|  * has to fit into 4kByte. It sets up the CPU and configures the SDRAM |  | ||||||
|  * controller and the NAND controller so that the special U-Boot image can be |  | ||||||
|  * loaded from NAND to SDRAM. |  | ||||||
|  * |  | ||||||
|  * NUB (NAND U-Boot) |  | ||||||
|  * This NAND U-Boot (NUB) is a special U-Boot version which can be started |  | ||||||
|  * from RAM. Therefore it mustn't (re-)configure the SDRAM controller. |  | ||||||
|  * |  | ||||||
|  * On 440EPx the SPL is copied to SDRAM before the NAND controller is |  | ||||||
|  * set up. While still running from cache, I experienced problems accessing |  | ||||||
|  * the NAND controller.	sr - 2006-08-25 |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_SRC	0xfffff000	/* SPL location			*/ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_SIZE	(4 << 10)	/* SPL size			*/ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_DST	(CONFIG_SYS_OCM_DATA_ADDR + (16 << 10)) /* Copy SPL here*/ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_DST	0x01000000	/* Load NUB to this addr	*/ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_NAND_U_BOOT_DST /* Start NUB from this addr	*/ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_DELTA	(CONFIG_SYS_NAND_BOOT_SPL_SRC - CONFIG_SYS_NAND_BOOT_SPL_DST) |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Define the partitioning of the NAND chip (only RAM U-Boot is needed here) |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_OFFS	(16 << 10)	/* Offset to RAM U-Boot image	*/ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_SIZE	(384 << 10)	/* Size of RAM U-Boot image	*/ |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Now the NAND chip has to be defined (no autodetection used!) |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_PAGE_SIZE	512		/* NAND chip page size		*/ |  | ||||||
| #define CONFIG_SYS_NAND_BLOCK_SIZE	(16 << 10)	/* NAND chip block size		*/ |  | ||||||
| #define CONFIG_SYS_NAND_PAGE_COUNT	32		/* NAND chip page count		*/ |  | ||||||
| #define CONFIG_SYS_NAND_BAD_BLOCK_POS	5		/* Location of bad block marker	*/ |  | ||||||
| #undef CONFIG_SYS_NAND_4_ADDR_CYCLE			/* No fourth addr used (<=32MB)	*/ |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_NAND_ECCSIZE	256 |  | ||||||
| #define CONFIG_SYS_NAND_ECCBYTES	3 |  | ||||||
| #define CONFIG_SYS_NAND_OOBSIZE	16 |  | ||||||
| #define CONFIG_SYS_NAND_ECCPOS		{0, 1, 2, 3, 6, 7} |  | ||||||
| 
 |  | ||||||
| #ifdef CONFIG_ENV_IS_IN_NAND |  | ||||||
| /*
 |  | ||||||
|  * For NAND booting the environment is embedded in the U-Boot image. Please take |  | ||||||
|  * look at the file board/amcc/sequoia/u-boot-nand.lds for details. |  | ||||||
|  */ |  | ||||||
| #define CONFIG_ENV_SIZE		CONFIG_SYS_NAND_BLOCK_SIZE |  | ||||||
| #define CONFIG_ENV_OFFSET		(CONFIG_SYS_NAND_U_BOOT_OFFS + CONFIG_ENV_SIZE) |  | ||||||
| #define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * RAM (CRAM) |  * RAM (CRAM) | ||||||
|  *----------------------------------------------------------------------*/ |  *----------------------------------------------------------------------*/ | ||||||
|  | @ -219,7 +148,6 @@ | ||||||
| 	CONFIG_AMCC_DEF_ENV_POWERPC					\ | 	CONFIG_AMCC_DEF_ENV_POWERPC					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_PPC_OLD					\ | 	CONFIG_AMCC_DEF_ENV_PPC_OLD					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_NOR_UPD					\ | 	CONFIG_AMCC_DEF_ENV_NOR_UPD					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_NAND_UPD					\ |  | ||||||
| 	"kernel_addr=fff10000\0"					\ | 	"kernel_addr=fff10000\0"					\ | ||||||
| 	"ramdisk_addr=fff20000\0"					\ | 	"ramdisk_addr=fff20000\0"					\ | ||||||
| 	"kozio=bootm ffc60000\0"					\ | 	"kozio=bootm ffc60000\0"					\ | ||||||
|  | @ -242,14 +170,6 @@ | ||||||
| #define CONFIG_CMD_NAND | #define CONFIG_CMD_NAND | ||||||
| #define CONFIG_CMD_USB | #define CONFIG_CMD_USB | ||||||
| 
 | 
 | ||||||
| /*
 |  | ||||||
|  * No NOR on Acadia when NAND-booting |  | ||||||
|  */ |  | ||||||
| #if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) |  | ||||||
| #undef CONFIG_CMD_FLASH |  | ||||||
| #undef CONFIG_CMD_IMLS |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * NAND FLASH |  * NAND FLASH | ||||||
|  *----------------------------------------------------------------------*/ |  *----------------------------------------------------------------------*/ | ||||||
|  | @ -260,7 +180,6 @@ | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * External Bus Controller (EBC) Setup |  * External Bus Controller (EBC) Setup | ||||||
|  *----------------------------------------------------------------------*/ |  *----------------------------------------------------------------------*/ | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| #define CONFIG_SYS_NAND_CS		3 | #define CONFIG_SYS_NAND_CS		3 | ||||||
| /* Memory Bank 0 (Flash) initialization						*/ | /* Memory Bank 0 (Flash) initialization						*/ | ||||||
| #define CONFIG_SYS_EBC_PB0AP		0x03337200 | #define CONFIG_SYS_EBC_PB0AP		0x03337200 | ||||||
|  | @ -278,24 +197,6 @@ | ||||||
| /* Memory Bank 2 (CRAM) initialization						*/ | /* Memory Bank 2 (CRAM) initialization						*/ | ||||||
| #define CONFIG_SYS_EBC_PB2AP		0x030400c0 | #define CONFIG_SYS_EBC_PB2AP		0x030400c0 | ||||||
| #define CONFIG_SYS_EBC_PB2CR		0x020bc000 | #define CONFIG_SYS_EBC_PB2CR		0x020bc000 | ||||||
| #else |  | ||||||
| #define CONFIG_SYS_NAND_CS		0		/* NAND chip connected to CSx	*/ |  | ||||||
| /* Memory Bank 0 (NAND-FLASH) initialization					*/ |  | ||||||
| #define CONFIG_SYS_EBC_PB0AP		0x018003c0 |  | ||||||
| #define CONFIG_SYS_EBC_PB0CR		(CONFIG_SYS_NAND_ADDR | 0x1c000) |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * When NAND-booting the CRAM EBC setup must be done in sync mode, since the |  | ||||||
|  * NAND-SPL already initialized the CRAM and EBC to sync mode. |  | ||||||
|  */ |  | ||||||
| /* Memory Bank 1 (CRAM) initialization						*/ |  | ||||||
| #define CONFIG_SYS_EBC_PB1AP		0x9C0201C0 |  | ||||||
| #define CONFIG_SYS_EBC_PB1CR		0x000bc000 |  | ||||||
| 
 |  | ||||||
| /* Memory Bank 2 (CRAM) initialization						*/ |  | ||||||
| #define CONFIG_SYS_EBC_PB2AP		0x9C0201C0 |  | ||||||
| #define CONFIG_SYS_EBC_PB2CR		0x020bc000 |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /* Memory Bank 4 (CPLD) initialization						*/ | /* Memory Bank 4 (CPLD) initialization						*/ | ||||||
| #define CONFIG_SYS_EBC_PB4AP		0x04006000 | #define CONFIG_SYS_EBC_PB4AP		0x04006000 | ||||||
|  |  | ||||||
|  | @ -253,10 +253,4 @@ | ||||||
| 		"cp.b ${fileaddr} " __stringify(CONFIG_SYS_MONITOR_BASE) " ${filesize}\0" \ | 		"cp.b ${fileaddr} " __stringify(CONFIG_SYS_MONITOR_BASE) " ${filesize}\0" \ | ||||||
| 	"upd=run load update\0"						\ | 	"upd=run load update\0"						\ | ||||||
| 
 | 
 | ||||||
| #define CONFIG_AMCC_DEF_ENV_NAND_UPD					\ |  | ||||||
| 	"u-boot-nand=" __stringify(CONFIG_HOSTNAME) "/u-boot-nand.bin\0"\ |  | ||||||
| 	"nload=tftp 200000 ${u-boot-nand}\0"				\ |  | ||||||
| 	"nupdate=nand erase 0 100000;nand write 200000 0 100000\0"	\ |  | ||||||
| 	"nupd=run nload nupdate\0" |  | ||||||
| 
 |  | ||||||
| #endif /* __AMCC_COMMON_H */ | #endif /* __AMCC_COMMON_H */ | ||||||
|  |  | ||||||
|  | @ -86,12 +86,7 @@ | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * Environment |  * Environment | ||||||
|  *----------------------------------------------------------------------*/ |  *----------------------------------------------------------------------*/ | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| #define CONFIG_ENV_IS_IN_FLASH     1	/* use FLASH for environment vars	*/ | #define CONFIG_ENV_IS_IN_FLASH     1	/* use FLASH for environment vars	*/ | ||||||
| #else |  | ||||||
| #define CONFIG_ENV_IS_IN_NAND	1	/* use NAND for environment vars	*/ |  | ||||||
| #define CONFIG_ENV_IS_EMBEDDED	1	/* use embedded environment */ |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * FLASH related |  * FLASH related | ||||||
|  | @ -120,61 +115,6 @@ | ||||||
| #define CONFIG_ENV_SIZE_REDUND	(CONFIG_ENV_SIZE) | #define CONFIG_ENV_SIZE_REDUND	(CONFIG_ENV_SIZE) | ||||||
| #endif /* CONFIG_ENV_IS_IN_FLASH */ | #endif /* CONFIG_ENV_IS_IN_FLASH */ | ||||||
| 
 | 
 | ||||||
| /*
 |  | ||||||
|  * IPL (Initial Program Loader, integrated inside CPU) |  | ||||||
|  * Will load first 4k from NAND (SPL) into cache and execute it from there. |  | ||||||
|  * |  | ||||||
|  * SPL (Secondary Program Loader) |  | ||||||
|  * Will load special U-Boot version (NUB) from NAND and execute it. This SPL |  | ||||||
|  * has to fit into 4kByte. It sets up the CPU and configures the SDRAM |  | ||||||
|  * controller and the NAND controller so that the special U-Boot image can be |  | ||||||
|  * loaded from NAND to SDRAM. |  | ||||||
|  * |  | ||||||
|  * NUB (NAND U-Boot) |  | ||||||
|  * This NAND U-Boot (NUB) is a special U-Boot version which can be started |  | ||||||
|  * from RAM. Therefore it mustn't (re-)configure the SDRAM controller. |  | ||||||
|  * |  | ||||||
|  * On 440EPx the SPL is copied to SDRAM before the NAND controller is |  | ||||||
|  * set up. While still running from cache, I experienced problems accessing |  | ||||||
|  * the NAND controller.	sr - 2006-08-25 |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_SRC	0xfffff000	/* SPL location			*/ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_SIZE	(4 << 10)	/* SPL size			*/ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_DST	0x00800000	/* Copy SPL here		*/ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_DST	0x01000000	/* Load NUB to this addr	*/ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_NAND_U_BOOT_DST /* Start NUB from this addr	*/ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_DELTA	(CONFIG_SYS_NAND_BOOT_SPL_SRC - CONFIG_SYS_NAND_BOOT_SPL_DST) |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Define the partitioning of the NAND chip (only RAM U-Boot is needed here) |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_OFFS	(16 << 10)	/* Offset to RAM U-Boot image	*/ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_SIZE	(384 << 10)	/* Size of RAM U-Boot image	*/ |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Now the NAND chip has to be defined (no autodetection used!) |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_PAGE_SIZE	512		/* NAND chip page size		*/ |  | ||||||
| #define CONFIG_SYS_NAND_BLOCK_SIZE	(16 << 10)	/* NAND chip block size		*/ |  | ||||||
| #define CONFIG_SYS_NAND_PAGE_COUNT	32		/* NAND chip page count		*/ |  | ||||||
| #define CONFIG_SYS_NAND_BAD_BLOCK_POS	5		/* Location of bad block marker	*/ |  | ||||||
| #define CONFIG_SYS_NAND_4_ADDR_CYCLE	1		/* Fourth addr used (>32MB)	*/ |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_NAND_ECCSIZE	256 |  | ||||||
| #define CONFIG_SYS_NAND_ECCBYTES	3 |  | ||||||
| #define CONFIG_SYS_NAND_OOBSIZE	16 |  | ||||||
| #define CONFIG_SYS_NAND_ECCPOS		{0, 1, 2, 3, 6, 7} |  | ||||||
| 
 |  | ||||||
| #ifdef CONFIG_ENV_IS_IN_NAND |  | ||||||
| /*
 |  | ||||||
|  * For NAND booting the environment is embedded in the U-Boot image. Please take |  | ||||||
|  * look at the file board/amcc/sequoia/u-boot-nand.lds for details. |  | ||||||
|  */ |  | ||||||
| #define CONFIG_ENV_SIZE		CONFIG_SYS_NAND_BLOCK_SIZE |  | ||||||
| #define CONFIG_ENV_OFFSET		(CONFIG_SYS_NAND_U_BOOT_OFFS + CONFIG_ENV_SIZE) |  | ||||||
| #define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * NAND FLASH |  * NAND FLASH | ||||||
|  *----------------------------------------------------------------------*/ |  *----------------------------------------------------------------------*/ | ||||||
|  | @ -182,15 +122,7 @@ | ||||||
| #define CONFIG_SYS_NAND_BASE		(CONFIG_SYS_NAND_ADDR + CONFIG_SYS_NAND_CS) | #define CONFIG_SYS_NAND_BASE		(CONFIG_SYS_NAND_ADDR + CONFIG_SYS_NAND_CS) | ||||||
| #define CONFIG_SYS_NAND_BASE_LIST	{ CONFIG_SYS_NAND_BASE, CONFIG_SYS_NAND_ADDR + 2 } | #define CONFIG_SYS_NAND_BASE_LIST	{ CONFIG_SYS_NAND_BASE, CONFIG_SYS_NAND_ADDR + 2 } | ||||||
| #define CONFIG_SYS_NAND_SELECT_DEVICE  1	/* nand driver supports mutipl. chips	*/ | #define CONFIG_SYS_NAND_SELECT_DEVICE  1	/* nand driver supports mutipl. chips	*/ | ||||||
| 
 |  | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| #define CONFIG_SYS_NAND_CS		1 | #define CONFIG_SYS_NAND_CS		1 | ||||||
| #else |  | ||||||
| #define CONFIG_SYS_NAND_CS		0		/* NAND chip connected to CSx	*/ |  | ||||||
| /* Memory Bank 0 (NAND-FLASH) initialization					*/ |  | ||||||
| #define CONFIG_SYS_EBC_PB0AP		0x018003c0 |  | ||||||
| #define CONFIG_SYS_EBC_PB0CR		(CONFIG_SYS_NAND_ADDR | 0x1c000) |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * DDR SDRAM |  * DDR SDRAM | ||||||
|  | @ -226,7 +158,6 @@ | ||||||
| 	CONFIG_AMCC_DEF_ENV_POWERPC					\ | 	CONFIG_AMCC_DEF_ENV_POWERPC					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_PPC_OLD					\ | 	CONFIG_AMCC_DEF_ENV_PPC_OLD					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_NOR_UPD					\ | 	CONFIG_AMCC_DEF_ENV_NOR_UPD					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_NAND_UPD					\ |  | ||||||
| 	"kernel_addr=fff00000\0"					\ | 	"kernel_addr=fff00000\0"					\ | ||||||
| 	"ramdisk_addr=fff10000\0"					\ | 	"ramdisk_addr=fff10000\0"					\ | ||||||
| 	"" | 	"" | ||||||
|  |  | ||||||
|  | @ -125,78 +125,9 @@ | ||||||
| /*
 | /*
 | ||||||
|  * Define here the location of the environment variables (FLASH). |  * Define here the location of the environment variables (FLASH). | ||||||
|  */ |  */ | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| #define	CONFIG_ENV_IS_IN_FLASH	1	/* use FLASH for environment vars */ | #define	CONFIG_ENV_IS_IN_FLASH	1	/* use FLASH for environment vars */ | ||||||
| #define CONFIG_SYS_NOR_CS		0	/* NOR chip connected to CSx */ | #define CONFIG_SYS_NOR_CS		0	/* NOR chip connected to CSx */ | ||||||
| #define CONFIG_SYS_NAND_CS		3	/* NAND chip connected to CSx */ | #define CONFIG_SYS_NAND_CS		3	/* NAND chip connected to CSx */ | ||||||
| #else |  | ||||||
| #define	CONFIG_ENV_IS_IN_NAND	1	/* use NAND for environment vars  */ |  | ||||||
| #define CONFIG_SYS_NOR_CS		3	/* NOR chip connected to CSx */ |  | ||||||
| #define CONFIG_SYS_NAND_CS		0	/* NAND chip connected to CSx */ |  | ||||||
| #define CONFIG_ENV_IS_EMBEDDED	1	/* use embedded environment */ |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * IPL (Initial Program Loader, integrated inside CPU) |  | ||||||
|  * Will load first 4k from NAND (SPL) into cache and execute it from there. |  | ||||||
|  * |  | ||||||
|  * SPL (Secondary Program Loader) |  | ||||||
|  * Will load special U-Boot version (NUB) from NAND and execute it. This SPL |  | ||||||
|  * has to fit into 4kByte. It sets up the CPU and configures the SDRAM |  | ||||||
|  * controller and the NAND controller so that the special U-Boot image can be |  | ||||||
|  * loaded from NAND to SDRAM. |  | ||||||
|  * |  | ||||||
|  * NUB (NAND U-Boot) |  | ||||||
|  * This NAND U-Boot (NUB) is a special U-Boot version which can be started |  | ||||||
|  * from RAM. Therefore it mustn't (re-)configure the SDRAM controller. |  | ||||||
|  * |  | ||||||
|  * On 440EPx the SPL is copied to SDRAM before the NAND controller is |  | ||||||
|  * set up. While still running from cache, I experienced problems accessing |  | ||||||
|  * the NAND controller.	sr - 2006-08-25 |  | ||||||
|  * |  | ||||||
|  * This is the first official implementation of booting from 2k page sized |  | ||||||
|  * NAND devices (e.g. Micron 29F2G08AA 256Mbit * 8) |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_SRC	0xfffff000	/* SPL location		      */ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_SIZE	(4 << 10)	/* SPL size		      */ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_DST	(CONFIG_SYS_OCM_BASE + (12 << 10)) /* Copy SPL here  */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_DST	0x01000000	/* Load NUB to this addr      */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_NAND_U_BOOT_DST	/* Start NUB from     */ |  | ||||||
| 							/*   this addr	      */ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_DELTA	(CONFIG_SYS_NAND_BOOT_SPL_SRC - CONFIG_SYS_NAND_BOOT_SPL_DST) |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Define the partitioning of the NAND chip (only RAM U-Boot is needed here) |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_OFFS	(128 << 10)	/* Offset to RAM U-Boot image */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_SIZE	(1 << 20)	/* Size of RAM U-Boot image   */ |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Now the NAND chip has to be defined (no autodetection used!) |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_PAGE_SIZE	(2 << 10)	/* NAND chip page size	      */ |  | ||||||
| #define CONFIG_SYS_NAND_BLOCK_SIZE	(128 << 10)	/* NAND chip block size	      */ |  | ||||||
| #define CONFIG_SYS_NAND_PAGE_COUNT	(CONFIG_SYS_NAND_BLOCK_SIZE / CONFIG_SYS_NAND_PAGE_SIZE) |  | ||||||
| 						/* NAND chip page count	      */ |  | ||||||
| #define CONFIG_SYS_NAND_BAD_BLOCK_POS	0		/* Location of bad block marker*/ |  | ||||||
| #define CONFIG_SYS_NAND_5_ADDR_CYCLE			/* Fifth addr used (<=128MB)  */ |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_NAND_ECCSIZE	256 |  | ||||||
| #define CONFIG_SYS_NAND_ECCBYTES	3 |  | ||||||
| #define CONFIG_SYS_NAND_OOBSIZE	64 |  | ||||||
| #define CONFIG_SYS_NAND_ECCPOS		{40, 41, 42, 43, 44, 45, 46, 47, \ |  | ||||||
| 				 48, 49, 50, 51, 52, 53, 54, 55, \ |  | ||||||
| 				 56, 57, 58, 59, 60, 61, 62, 63} |  | ||||||
| 
 |  | ||||||
| #ifdef CONFIG_ENV_IS_IN_NAND |  | ||||||
| /*
 |  | ||||||
|  * For NAND booting the environment is embedded in the U-Boot image. Please take |  | ||||||
|  * look at the file board/amcc/canyonlands/u-boot-nand.lds for details. |  | ||||||
|  */ |  | ||||||
| #define CONFIG_ENV_SIZE		CONFIG_SYS_NAND_BLOCK_SIZE |  | ||||||
| #define CONFIG_ENV_OFFSET		(CONFIG_SYS_NAND_U_BOOT_OFFS + CONFIG_ENV_SIZE) |  | ||||||
| #define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * FLASH related |  * FLASH related | ||||||
|  | @ -235,7 +166,6 @@ | ||||||
| /*------------------------------------------------------------------------------
 | /*------------------------------------------------------------------------------
 | ||||||
|  * DDR SDRAM |  * DDR SDRAM | ||||||
|  *----------------------------------------------------------------------------*/ |  *----------------------------------------------------------------------------*/ | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) |  | ||||||
| #if !defined(CONFIG_ARCHES) | #if !defined(CONFIG_ARCHES) | ||||||
| /*
 | /*
 | ||||||
|  * NAND booting U-Boot version uses a fixed initialization, since the whole |  * NAND booting U-Boot version uses a fixed initialization, since the whole | ||||||
|  | @ -308,7 +238,6 @@ | ||||||
| #define CONFIG_SYS_SDRAM0_MMODE		0x00000432 | #define CONFIG_SYS_SDRAM0_MMODE		0x00000432 | ||||||
| #define CONFIG_SYS_SDRAM0_MEMODE	0x00000004 | #define CONFIG_SYS_SDRAM0_MEMODE	0x00000004 | ||||||
| #endif	/* !defined(CONFIG_ARCHES) */ | #endif	/* !defined(CONFIG_ARCHES) */ | ||||||
| #endif	/* !defined(CONFIG_NAND_U_BOOT) */ |  | ||||||
| 
 | 
 | ||||||
| #define CONFIG_SYS_MBYTES_SDRAM	512	/* 512MB			*/ | #define CONFIG_SYS_MBYTES_SDRAM	512	/* 512MB			*/ | ||||||
| 
 | 
 | ||||||
|  | @ -421,7 +350,6 @@ | ||||||
| 	CONFIG_AMCC_DEF_ENV						\ | 	CONFIG_AMCC_DEF_ENV						\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_POWERPC					\ | 	CONFIG_AMCC_DEF_ENV_POWERPC					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_NOR_UPD					\ | 	CONFIG_AMCC_DEF_ENV_NOR_UPD					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_NAND_UPD					\ |  | ||||||
| 	"kernel_addr=fc000000\0"					\ | 	"kernel_addr=fc000000\0"					\ | ||||||
| 	"fdt_addr=fc1e0000\0"						\ | 	"fdt_addr=fc1e0000\0"						\ | ||||||
| 	"ramdisk_addr=fc200000\0"					\ | 	"ramdisk_addr=fc200000\0"					\ | ||||||
|  | @ -556,15 +484,6 @@ | ||||||
|  * 0xfe00.0000 -> 4.ce00.0000 |  * 0xfe00.0000 -> 4.ce00.0000 | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) |  | ||||||
| /* Memory Bank 3 (NOR-FLASH) initialization					*/ |  | ||||||
| #define CONFIG_SYS_EBC_PB3AP		0x10055e00 |  | ||||||
| #define CONFIG_SYS_EBC_PB3CR		(CONFIG_SYS_BOOT_BASE_ADDR | 0x9a000) |  | ||||||
| 
 |  | ||||||
| /* Memory Bank 0 (NAND-FLASH) initialization						*/ |  | ||||||
| #define CONFIG_SYS_EBC_PB0AP		0x018003c0 |  | ||||||
| #define CONFIG_SYS_EBC_PB0CR		(CONFIG_SYS_NAND_ADDR | 0x1E000) /* BAS=NAND,BS=1MB,BU=R/W,BW=32bit*/ |  | ||||||
| #else |  | ||||||
| /* Memory Bank 0 (NOR-FLASH) initialization					*/ | /* Memory Bank 0 (NOR-FLASH) initialization					*/ | ||||||
| #define CONFIG_SYS_EBC_PB0AP		0x10055e00 | #define CONFIG_SYS_EBC_PB0AP		0x10055e00 | ||||||
| #define CONFIG_SYS_EBC_PB0CR		(CONFIG_SYS_BOOT_BASE_ADDR | 0x9a000) | #define CONFIG_SYS_EBC_PB0CR		(CONFIG_SYS_BOOT_BASE_ADDR | 0x9a000) | ||||||
|  | @ -574,7 +493,6 @@ | ||||||
| #define CONFIG_SYS_EBC_PB3AP		0x018003c0 | #define CONFIG_SYS_EBC_PB3AP		0x018003c0 | ||||||
| #define CONFIG_SYS_EBC_PB3CR		(CONFIG_SYS_NAND_ADDR | 0x1E000) /* BAS=NAND,BS=1MB,BU=R/W,BW=32bit*/ | #define CONFIG_SYS_EBC_PB3CR		(CONFIG_SYS_NAND_ADDR | 0x1E000) /* BAS=NAND,BS=1MB,BU=R/W,BW=32bit*/ | ||||||
| #endif | #endif | ||||||
| #endif	/*defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) */ |  | ||||||
| 
 | 
 | ||||||
| #if !defined(CONFIG_ARCHES) | #if !defined(CONFIG_ARCHES) | ||||||
| /* Memory Bank 2 (CPLD) initialization						*/ | /* Memory Bank 2 (CPLD) initialization						*/ | ||||||
|  |  | ||||||
|  | @ -118,12 +118,7 @@ | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * Environment |  * Environment | ||||||
|  *----------------------------------------------------------------------*/ |  *----------------------------------------------------------------------*/ | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| #define CONFIG_ENV_IS_IN_FLASH     1	/* use FLASH for environment vars	*/ | #define CONFIG_ENV_IS_IN_FLASH     1	/* use FLASH for environment vars	*/ | ||||||
| #else |  | ||||||
| #define CONFIG_ENV_IS_IN_NAND	1	/* use NAND for environment vars	*/ |  | ||||||
| #define CONFIG_ENV_IS_EMBEDDED	1	/* use embedded environment */ |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * FLASH related |  * FLASH related | ||||||
|  | @ -151,61 +146,6 @@ | ||||||
| #define CONFIG_ENV_SIZE_REDUND	(CONFIG_ENV_SIZE) | #define CONFIG_ENV_SIZE_REDUND	(CONFIG_ENV_SIZE) | ||||||
| #endif /* CONFIG_ENV_IS_IN_FLASH */ | #endif /* CONFIG_ENV_IS_IN_FLASH */ | ||||||
| 
 | 
 | ||||||
| /*
 |  | ||||||
|  * IPL (Initial Program Loader, integrated inside CPU) |  | ||||||
|  * Will load first 4k from NAND (SPL) into cache and execute it from there. |  | ||||||
|  * |  | ||||||
|  * SPL (Secondary Program Loader) |  | ||||||
|  * Will load special U-Boot version (NUB) from NAND and execute it. This SPL |  | ||||||
|  * has to fit into 4kByte. It sets up the CPU and configures the SDRAM |  | ||||||
|  * controller and the NAND controller so that the special U-Boot image can be |  | ||||||
|  * loaded from NAND to SDRAM. |  | ||||||
|  * |  | ||||||
|  * NUB (NAND U-Boot) |  | ||||||
|  * This NAND U-Boot (NUB) is a special U-Boot version which can be started |  | ||||||
|  * from RAM. Therefore it mustn't (re-)configure the SDRAM controller. |  | ||||||
|  * |  | ||||||
|  * On 405EX the SPL is copied to SDRAM before the NAND controller is |  | ||||||
|  * set up. While still running from location 0xfffff000...0xffffffff the |  | ||||||
|  * NAND controller cannot be accessed since it is attached to CS0 too. |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_SRC	0xfffff000	/* SPL location			*/ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_SIZE	(4 << 10)	/* SPL size			*/ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_DST	0x00800000	/* Copy SPL here		*/ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_DST	0x01000000	/* Load NUB to this addr	*/ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_NAND_U_BOOT_DST /* Start NUB from this addr	*/ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_DELTA	(CONFIG_SYS_NAND_BOOT_SPL_SRC - CONFIG_SYS_NAND_BOOT_SPL_DST) |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Define the partitioning of the NAND chip (only RAM U-Boot is needed here) |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_OFFS	(16 << 10)	/* Offset to RAM U-Boot image	*/ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_SIZE	(384 << 10)	/* Size of RAM U-Boot image	*/ |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Now the NAND chip has to be defined (no autodetection used!) |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_PAGE_SIZE	512		/* NAND chip page size		*/ |  | ||||||
| #define CONFIG_SYS_NAND_BLOCK_SIZE	(16 << 10)	/* NAND chip block size		*/ |  | ||||||
| #define CONFIG_SYS_NAND_PAGE_COUNT	32		/* NAND chip page count		*/ |  | ||||||
| #define CONFIG_SYS_NAND_BAD_BLOCK_POS	5		/* Location of bad block marker	*/ |  | ||||||
| #define CONFIG_SYS_NAND_4_ADDR_CYCLE	1		/* Fourth addr used (>32MB)	*/ |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_NAND_ECCSIZE	256 |  | ||||||
| #define CONFIG_SYS_NAND_ECCBYTES	3 |  | ||||||
| #define CONFIG_SYS_NAND_OOBSIZE	16 |  | ||||||
| #define CONFIG_SYS_NAND_ECCPOS		{0, 1, 2, 3, 6, 7} |  | ||||||
| 
 |  | ||||||
| #ifdef CONFIG_ENV_IS_IN_NAND |  | ||||||
| /*
 |  | ||||||
|  * For NAND booting the environment is embedded in the U-Boot image. Please take |  | ||||||
|  * look at the file board/amcc/sequoia/u-boot-nand.lds for details. |  | ||||||
|  */ |  | ||||||
| #define CONFIG_ENV_SIZE		CONFIG_SYS_NAND_BLOCK_SIZE |  | ||||||
| #define CONFIG_ENV_OFFSET		(CONFIG_SYS_NAND_U_BOOT_OFFS + CONFIG_ENV_SIZE) |  | ||||||
| #define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * NAND FLASH |  * NAND FLASH | ||||||
|  *----------------------------------------------------------------------*/ |  *----------------------------------------------------------------------*/ | ||||||
|  | @ -230,11 +170,9 @@ | ||||||
|  * |  * | ||||||
|  * DDR Autocalibration Method_B is the default. |  * DDR Autocalibration Method_B is the default. | ||||||
|  */ |  */ | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) |  | ||||||
| #define	CONFIG_PPC4xx_DDR_AUTOCALIBRATION	/* IBM DDR autocalibration */ | #define	CONFIG_PPC4xx_DDR_AUTOCALIBRATION	/* IBM DDR autocalibration */ | ||||||
| #define	DEBUG_PPC4xx_DDR_AUTOCALIBRATION	/* dynamic DDR autocal debug */ | #define	DEBUG_PPC4xx_DDR_AUTOCALIBRATION	/* dynamic DDR autocal debug */ | ||||||
| #undef	CONFIG_PPC4xx_DDR_METHOD_A | #undef	CONFIG_PPC4xx_DDR_METHOD_A | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| #define	CONFIG_SYS_SDRAM0_MB0CF_BASE	((  0 << 20) + CONFIG_SYS_SDRAM_BASE) | #define	CONFIG_SYS_SDRAM0_MB0CF_BASE	((  0 << 20) + CONFIG_SYS_SDRAM_BASE) | ||||||
| 
 | 
 | ||||||
|  | @ -416,7 +354,6 @@ | ||||||
| 	CONFIG_AMCC_DEF_ENV_POWERPC					\ | 	CONFIG_AMCC_DEF_ENV_POWERPC					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_PPC_OLD					\ | 	CONFIG_AMCC_DEF_ENV_PPC_OLD					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_NOR_UPD					\ | 	CONFIG_AMCC_DEF_ENV_NOR_UPD					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_NAND_UPD					\ |  | ||||||
| 	"logversion=2\0"						\ | 	"logversion=2\0"						\ | ||||||
| 	"kernel_addr=fc000000\0"					\ | 	"kernel_addr=fc000000\0"					\ | ||||||
| 	"fdt_addr=fc1e0000\0"						\ | 	"fdt_addr=fc1e0000\0"						\ | ||||||
|  | @ -434,16 +371,7 @@ | ||||||
| #define CONFIG_CMD_PCI | #define CONFIG_CMD_PCI | ||||||
| #define CONFIG_CMD_SNTP | #define CONFIG_CMD_SNTP | ||||||
| 
 | 
 | ||||||
| /*
 |  | ||||||
|  * Don't run the memory POST on the NAND-booting version. It will |  | ||||||
|  * overwrite part of the U-Boot image which is already loaded from NAND |  | ||||||
|  * to SDRAM. |  | ||||||
|  */ |  | ||||||
| #if defined(CONFIG_NAND_U_BOOT) |  | ||||||
| #define CONFIG_SYS_POST_MEMORY_ON	0 |  | ||||||
| #else |  | ||||||
| #define CONFIG_SYS_POST_MEMORY_ON	CONFIG_SYS_POST_MEMORY | #define CONFIG_SYS_POST_MEMORY_ON	CONFIG_SYS_POST_MEMORY | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /* POST support */ | /* POST support */ | ||||||
| #define CONFIG_POST		(CONFIG_SYS_POST_CACHE		| \ | #define CONFIG_POST		(CONFIG_SYS_POST_CACHE		| \ | ||||||
|  | @ -494,18 +422,6 @@ | ||||||
| /*-----------------------------------------------------------------------
 | /*-----------------------------------------------------------------------
 | ||||||
|  * External Bus Controller (EBC) Setup |  * External Bus Controller (EBC) Setup | ||||||
|  *----------------------------------------------------------------------*/ |  *----------------------------------------------------------------------*/ | ||||||
| #if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) |  | ||||||
| /* booting from NAND, so NAND chips select has to be on CS 0 */ |  | ||||||
| #define CONFIG_SYS_NAND_CS		0		/* NAND chip connected to CSx	*/ |  | ||||||
| 
 |  | ||||||
| /* Memory Bank 1 (NOR-FLASH) initialization					*/ |  | ||||||
| #define CONFIG_SYS_EBC_PB1AP		0x05806500 |  | ||||||
| #define CONFIG_SYS_EBC_PB1CR           0xFC0DA000  /* BAS=0xFC0,BS=64MB,BU=R/W,BW=16bit*/ |  | ||||||
| 
 |  | ||||||
| /* Memory Bank 0 (NAND-FLASH) initialization					*/ |  | ||||||
| #define CONFIG_SYS_EBC_PB0AP		0x018003c0 |  | ||||||
| #define CONFIG_SYS_EBC_PB0CR		(CONFIG_SYS_NAND_ADDR | 0x1e000) |  | ||||||
| #else |  | ||||||
| #define CONFIG_SYS_NAND_CS		1		/* NAND chip connected to CSx	*/ | #define CONFIG_SYS_NAND_CS		1		/* NAND chip connected to CSx	*/ | ||||||
| 
 | 
 | ||||||
| /* Memory Bank 0 (NOR-FLASH) initialization					*/ | /* Memory Bank 0 (NOR-FLASH) initialization					*/ | ||||||
|  | @ -515,7 +431,6 @@ | ||||||
| /* Memory Bank 1 (NAND-FLASH) initialization					*/ | /* Memory Bank 1 (NAND-FLASH) initialization					*/ | ||||||
| #define CONFIG_SYS_EBC_PB1AP		0x018003c0 | #define CONFIG_SYS_EBC_PB1AP		0x018003c0 | ||||||
| #define CONFIG_SYS_EBC_PB1CR		(CONFIG_SYS_NAND_ADDR | 0x1e000) | #define CONFIG_SYS_EBC_PB1CR		(CONFIG_SYS_NAND_ADDR | 0x1e000) | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /* Memory Bank 2 (FPGA) initialization					*/ | /* Memory Bank 2 (FPGA) initialization					*/ | ||||||
| #define CONFIG_SYS_EBC_PB2AP		(EBC_BXAP_BME_ENABLED |		\ | #define CONFIG_SYS_EBC_PB2AP		(EBC_BXAP_BME_ENABLED |		\ | ||||||
|  |  | ||||||
|  | @ -120,7 +120,6 @@ | ||||||
| 	CONFIG_AMCC_DEF_ENV						\ | 	CONFIG_AMCC_DEF_ENV						\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_POWERPC					\ | 	CONFIG_AMCC_DEF_ENV_POWERPC					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_NOR_UPD					\ | 	CONFIG_AMCC_DEF_ENV_NOR_UPD					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_NAND_UPD					\ |  | ||||||
| 	"kernel_addr=fc000000\0"					\ | 	"kernel_addr=fc000000\0"					\ | ||||||
| 	"fdt_addr=fc1e0000\0"						\ | 	"fdt_addr=fc1e0000\0"						\ | ||||||
| 	"ramdisk_addr=fc200000\0"					\ | 	"ramdisk_addr=fc200000\0"					\ | ||||||
|  |  | ||||||
|  | @ -97,10 +97,7 @@ | ||||||
| /*
 | /*
 | ||||||
|  * Environment |  * Environment | ||||||
|  */ |  */ | ||||||
| #if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL) | #if defined(CONFIG_SYS_RAMBOOT) | ||||||
| #define CONFIG_ENV_IS_IN_NAND		/* use NAND for environ vars	*/ |  | ||||||
| #define CONFIG_ENV_IS_EMBEDDED		/* use embedded environment	*/ |  | ||||||
| #elif defined(CONFIG_SYS_RAMBOOT) |  | ||||||
| #define CONFIG_ENV_IS_NOWHERE		/* Store env in memory only	*/ | #define CONFIG_ENV_IS_NOWHERE		/* Store env in memory only	*/ | ||||||
| #define CONFIG_ENV_SIZE		(8 << 10) | #define CONFIG_ENV_SIZE		(8 << 10) | ||||||
| /*
 | /*
 | ||||||
|  | @ -148,68 +145,11 @@ | ||||||
| #endif | #endif | ||||||
| #endif /* CONFIG_CMD_FLASH */ | #endif /* CONFIG_CMD_FLASH */ | ||||||
| 
 | 
 | ||||||
| /*
 |  | ||||||
|  * IPL (Initial Program Loader, integrated inside CPU) |  | ||||||
|  * Will load first 4k from NAND (SPL) into cache and execute it from there. |  | ||||||
|  * |  | ||||||
|  * SPL (Secondary Program Loader) |  | ||||||
|  * Will load special U-Boot version (NUB) from NAND and execute it. This SPL |  | ||||||
|  * has to fit into 4kByte. It sets up the CPU and configures the SDRAM |  | ||||||
|  * controller and the NAND controller so that the special U-Boot image can be |  | ||||||
|  * loaded from NAND to SDRAM. |  | ||||||
|  * |  | ||||||
|  * NUB (NAND U-Boot) |  | ||||||
|  * This NAND U-Boot (NUB) is a special U-Boot version which can be started |  | ||||||
|  * from RAM. Therefore it mustn't (re-)configure the SDRAM controller. |  | ||||||
|  * |  | ||||||
|  * On 440EPx the SPL is copied to SDRAM before the NAND controller is |  | ||||||
|  * set up. While still running from cache, I experienced problems accessing |  | ||||||
|  * the NAND controller.	sr - 2006-08-25 |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_SRC	0xfffff000	/* SPL location		      */ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_SIZE	(4 << 10)	/* SPL size		      */ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_DST	(CONFIG_SYS_OCM_BASE + (12 << 10)) /* Copy SPL here  */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_DST	0x01000000	/* Load NUB to this addr      */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_NAND_U_BOOT_DST	/* Start NUB from     */ |  | ||||||
| 							/*   this addr	      */ |  | ||||||
| #define CONFIG_SYS_NAND_BOOT_SPL_DELTA	(CONFIG_SYS_NAND_BOOT_SPL_SRC - CONFIG_SYS_NAND_BOOT_SPL_DST) |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Define the partitioning of the NAND chip (only RAM U-Boot is needed here) |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_OFFS	(16 << 10)	/* Offset to RAM U-Boot image */ |  | ||||||
| #define CONFIG_SYS_NAND_U_BOOT_SIZE	(512 << 10)	/* Size of RAM U-Boot image   */ |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Now the NAND chip has to be defined (no autodetection used!) |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_NAND_PAGE_SIZE	512		/* NAND chip page size	      */ |  | ||||||
| #define CONFIG_SYS_NAND_BLOCK_SIZE	(16 << 10)	/* NAND chip block size	      */ |  | ||||||
| #define CONFIG_SYS_NAND_PAGE_COUNT	32		/* NAND chip page count	      */ |  | ||||||
| #define CONFIG_SYS_NAND_BAD_BLOCK_POS	5	      /* Location of bad block marker */ |  | ||||||
| #undef CONFIG_SYS_NAND_4_ADDR_CYCLE		      /* No fourth addr used (<=32MB) */ |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_NAND_ECCSIZE	256 |  | ||||||
| #define CONFIG_SYS_NAND_ECCBYTES	3 |  | ||||||
| #define CONFIG_SYS_NAND_OOBSIZE	16 |  | ||||||
| #define CONFIG_SYS_NAND_ECCPOS		{0, 1, 2, 3, 6, 7} |  | ||||||
| 
 |  | ||||||
| #ifdef CONFIG_ENV_IS_IN_NAND |  | ||||||
| /*
 |  | ||||||
|  * For NAND booting the environment is embedded in the U-Boot image. Please take |  | ||||||
|  * look at the file board/amcc/sequoia/u-boot-nand.lds for details. |  | ||||||
|  */ |  | ||||||
| #define CONFIG_ENV_SIZE		CONFIG_SYS_NAND_BLOCK_SIZE |  | ||||||
| #define CONFIG_ENV_OFFSET		(CONFIG_SYS_NAND_U_BOOT_OFFS + CONFIG_ENV_SIZE) |  | ||||||
| #define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*
 | /*
 | ||||||
|  * DDR SDRAM |  * DDR SDRAM | ||||||
|  */ |  */ | ||||||
| #define CONFIG_SYS_MBYTES_SDRAM        (256)	/* 256MB			*/ | #define CONFIG_SYS_MBYTES_SDRAM        (256)	/* 256MB			*/ | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) && \ | #if !defined(CONFIG_SYS_RAMBOOT) | ||||||
|     !defined(CONFIG_SYS_RAMBOOT) |  | ||||||
| #define CONFIG_DDR_DATA_EYE		/* use DDR2 optimization	*/ | #define CONFIG_DDR_DATA_EYE		/* use DDR2 optimization	*/ | ||||||
| #endif | #endif | ||||||
| #define CONFIG_SYS_MEM_TOP_HIDE	(4 << 10) /* don't use last 4kbytes	*/ | #define CONFIG_SYS_MEM_TOP_HIDE	(4 << 10) /* don't use last 4kbytes	*/ | ||||||
|  | @ -247,7 +187,6 @@ | ||||||
| 	CONFIG_AMCC_DEF_ENV_POWERPC					\ | 	CONFIG_AMCC_DEF_ENV_POWERPC					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_PPC_OLD					\ | 	CONFIG_AMCC_DEF_ENV_PPC_OLD					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_NOR_UPD					\ | 	CONFIG_AMCC_DEF_ENV_NOR_UPD					\ | ||||||
| 	CONFIG_AMCC_DEF_ENV_NAND_UPD					\ |  | ||||||
| 	"kernel_addr=FC000000\0"					\ | 	"kernel_addr=FC000000\0"					\ | ||||||
| 	"ramdisk_addr=FC180000\0"					\ | 	"ramdisk_addr=FC180000\0"					\ | ||||||
| 	"" | 	"" | ||||||
|  | @ -321,7 +260,7 @@ | ||||||
|  * overwrite part of the U-Boot image which is already loaded from NAND |  * overwrite part of the U-Boot image which is already loaded from NAND | ||||||
|  * to SDRAM. |  * to SDRAM. | ||||||
|  */ |  */ | ||||||
| #if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_SYS_RAMBOOT) | #if defined(CONFIG_SYS_RAMBOOT) | ||||||
| #define CONFIG_SYS_POST_MEMORY_ON	0 | #define CONFIG_SYS_POST_MEMORY_ON	0 | ||||||
| #else | #else | ||||||
| #define CONFIG_SYS_POST_MEMORY_ON	CONFIG_SYS_POST_MEMORY | #define CONFIG_SYS_POST_MEMORY_ON	CONFIG_SYS_POST_MEMORY | ||||||
|  | @ -370,8 +309,7 @@ | ||||||
| /*
 | /*
 | ||||||
|  * On Sequoia CS0 and CS3 are switched when configuring for NAND booting |  * On Sequoia CS0 and CS3 are switched when configuring for NAND booting | ||||||
|  */ |  */ | ||||||
| #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL) && \ | #if !defined(CONFIG_SYS_RAMBOOT) | ||||||
|     !defined(CONFIG_SYS_RAMBOOT) |  | ||||||
| #define CONFIG_SYS_NAND_CS		3	/* NAND chip connected to CSx	*/ | #define CONFIG_SYS_NAND_CS		3	/* NAND chip connected to CSx	*/ | ||||||
| /* Memory Bank 0 (NOR-FLASH) initialization				*/ | /* Memory Bank 0 (NOR-FLASH) initialization				*/ | ||||||
| #define CONFIG_SYS_EBC_PB0AP		0x03017200 | #define CONFIG_SYS_EBC_PB0AP		0x03017200 | ||||||
|  |  | ||||||
|  | @ -1,88 +0,0 @@ | ||||||
| #
 |  | ||||||
| # (C) Copyright 2007
 |  | ||||||
| # Stefan Roese, DENX Software Engineering, sr@denx.de.
 |  | ||||||
| #
 |  | ||||||
| # SPDX-License-Identifier:	GPL-2.0+
 |  | ||||||
| #
 |  | ||||||
| 
 |  | ||||||
| include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk |  | ||||||
| 
 |  | ||||||
| nandobj	:= $(OBJTREE)/nand_spl/ |  | ||||||
| 
 |  | ||||||
| LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds |  | ||||||
| LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 |  | ||||||
| 	   $(LDFLAGS_FINAL) |  | ||||||
| asflags-y += -DCONFIG_NAND_SPL |  | ||||||
| ccflags-y += -DCONFIG_NAND_SPL |  | ||||||
| 
 |  | ||||||
| SOBJS	= start.o resetvec.o cache.o |  | ||||||
| COBJS	= gpio.o nand_boot.o nand_ecc.o memory.o ndfc.o pll.o |  | ||||||
| 
 |  | ||||||
| OBJS	:= $(addprefix $(obj)/,$(SOBJS) $(COBJS)) |  | ||||||
| __OBJS	:= $(SOBJS) $(COBJS) |  | ||||||
| LNDIR	:= $(nandobj)board/$(BOARDDIR) |  | ||||||
| 
 |  | ||||||
| targets += $(__OBJS) |  | ||||||
| 
 |  | ||||||
| all: $(nandobj)u-boot-spl.bin $(nandobj)u-boot-spl-16k.bin \ |  | ||||||
| 	$(nandobj)System.map |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl |  | ||||||
| 	$(OBJCOPY) $(OBJCOPYFLAGS) --pad-to=$(PAD_TO) -O binary $< $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl.bin:	$(nandobj)u-boot-spl |  | ||||||
| 	$(OBJCOPY) $(OBJCOPYFLAGS) -O binary $< $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds |  | ||||||
| 	cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) $(PLATFORM_LIBS) \
 |  | ||||||
| 		-Map $(nandobj)u-boot-spl.map -o $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)System.map:	$(nandobj)u-boot-spl |  | ||||||
| 		@$(NM) $< | \
 |  | ||||||
| 		grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
 |  | ||||||
| 		sort > $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot.lds: $(LDSCRIPT) |  | ||||||
| 	$(CPP) $(cpp_flags) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@ |  | ||||||
| 
 |  | ||||||
| # create symbolic links for common files
 |  | ||||||
| 
 |  | ||||||
| # from cpu directory
 |  | ||||||
| $(obj)/cache.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/cache.S $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/gpio.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/gpio.c $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/ndfc.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/drivers/mtd/nand/ndfc.c $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/resetvec.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/resetvec.S $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/start.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/start.S $@ |  | ||||||
| 
 |  | ||||||
| # from board directory
 |  | ||||||
| $(obj)/memory.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/board/amcc/acadia/memory.c $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/pll.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/board/amcc/acadia/pll.c $@ |  | ||||||
| 
 |  | ||||||
| # from nand_spl directory
 |  | ||||||
| $(obj)/nand_boot.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/nand_spl/nand_boot.c $@ |  | ||||||
| 
 |  | ||||||
| # from drivers/mtd/nand directory
 |  | ||||||
| $(obj)/nand_ecc.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/drivers/mtd/nand/nand_ecc.c $@ |  | ||||||
|  | @ -1,31 +0,0 @@ | ||||||
| #
 |  | ||||||
| # (C) Copyright 2007
 |  | ||||||
| # Stefan Roese, DENX Software Engineering, sr@denx.de.
 |  | ||||||
| #
 |  | ||||||
| # SPDX-License-Identifier:	GPL-2.0+
 |  | ||||||
| #
 |  | ||||||
| #
 |  | ||||||
| # AMCC 405EZ Reference Platform (Acadia) board
 |  | ||||||
| #
 |  | ||||||
| 
 |  | ||||||
| #
 |  | ||||||
| # CONFIG_SYS_TEXT_BASE for SPL:
 |  | ||||||
| #
 |  | ||||||
| # On 4xx platforms the SPL is located at 0xfffff000...0xffffffff,
 |  | ||||||
| # in the last 4kBytes of memory space in cache.
 |  | ||||||
| # We will copy this SPL into internal SRAM in start.S. So we set
 |  | ||||||
| # CONFIG_SYS_TEXT_BASE to starting address in internal SRAM here.
 |  | ||||||
| #
 |  | ||||||
| CONFIG_SYS_TEXT_BASE = 0xf8004000 |  | ||||||
| 
 |  | ||||||
| # PAD_TO used to generate a 16kByte binary needed for the combined image
 |  | ||||||
| # -> PAD_TO = CONFIG_SYS_TEXT_BASE + 0x4000
 |  | ||||||
| PAD_TO	= 0xf8008000 |  | ||||||
| 
 |  | ||||||
| ifeq ($(debug),1) |  | ||||||
| PLATFORM_CPPFLAGS += -DDEBUG |  | ||||||
| endif |  | ||||||
| 
 |  | ||||||
| ifeq ($(dbcr),1) |  | ||||||
| PLATFORM_CPPFLAGS += -DCONFIG_SYS_INIT_DBCR=0x8cff0000 |  | ||||||
| endif |  | ||||||
|  | @ -1,48 +0,0 @@ | ||||||
| /* |  | ||||||
|  * (C) Copyright 2007 |  | ||||||
|  * Stefan Roese, DENX Software Engineering, sr@denx.de. |  | ||||||
|  * |  | ||||||
|  * SPDX-License-Identifier:	GPL-2.0+ |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| OUTPUT_ARCH(powerpc:common) |  | ||||||
| SECTIONS |  | ||||||
| { |  | ||||||
|   .resetvec 0xf8004ffc : |  | ||||||
|   { |  | ||||||
|     KEEP(*(.resetvec)) |  | ||||||
|   } = 0xffff |  | ||||||
| 
 |  | ||||||
|   .text      : |  | ||||||
|   { |  | ||||||
|     start.o	(.text) |  | ||||||
|     nand_boot.o	(.text) |  | ||||||
|     ndfc.o	(.text) |  | ||||||
| 
 |  | ||||||
|     *(.text) |  | ||||||
|     *(.fixup) |  | ||||||
|   } |  | ||||||
|   _etext = .; |  | ||||||
| 
 |  | ||||||
|   .data    : |  | ||||||
|   { |  | ||||||
|     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) |  | ||||||
|     *(.data*) |  | ||||||
|     *(.sdata*) |  | ||||||
|     __got2_start = .; |  | ||||||
|     *(.got2) |  | ||||||
|     __got2_end = .; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   _edata  =  .; |  | ||||||
| 
 |  | ||||||
|   __bss_start = .; |  | ||||||
|   .bss (NOLOAD)       : |  | ||||||
|   { |  | ||||||
|    *(.sbss) |  | ||||||
|    *(.bss) |  | ||||||
|    . = ALIGN(4); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   __bss_end = . ; |  | ||||||
| } |  | ||||||
|  | @ -1,70 +0,0 @@ | ||||||
| #
 |  | ||||||
| # (C) Copyright 2007
 |  | ||||||
| # Stefan Roese, DENX Software Engineering, sr@denx.de.
 |  | ||||||
| #
 |  | ||||||
| # SPDX-License-Identifier:	GPL-2.0+
 |  | ||||||
| #
 |  | ||||||
| 
 |  | ||||||
| include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk |  | ||||||
| 
 |  | ||||||
| nandobj	:= $(OBJTREE)/nand_spl/ |  | ||||||
| 
 |  | ||||||
| LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds |  | ||||||
| LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 |  | ||||||
| 	   $(LDFLAGS_FINAL) |  | ||||||
| asflags-y += -DCONFIG_NAND_SPL |  | ||||||
| ccflags-y += -DCONFIG_NAND_SPL |  | ||||||
| 
 |  | ||||||
| SOBJS	= start.o init.o resetvec.o |  | ||||||
| COBJS	= nand_boot.o nand_ecc.o ndfc.o sdram.o |  | ||||||
| 
 |  | ||||||
| OBJS	:= $(addprefix $(obj)/,$(SOBJS) $(COBJS)) |  | ||||||
| __OBJS	:= $(SOBJS) $(COBJS) |  | ||||||
| LNDIR	:= $(nandobj)board/$(BOARDDIR) |  | ||||||
| 
 |  | ||||||
| targets += $(__OBJS) |  | ||||||
| 
 |  | ||||||
| all: $(nandobj)u-boot-spl.bin $(nandobj)u-boot-spl-16k.bin |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl |  | ||||||
| 	$(OBJCOPY) $(OBJCOPYFLAGS) --pad-to=$(PAD_TO) -O binary $< $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl.bin:	$(nandobj)u-boot-spl |  | ||||||
| 	$(OBJCOPY) $(OBJCOPYFLAGS) -O binary $< $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds |  | ||||||
| 	cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) $(PLATFORM_LIBS) \
 |  | ||||||
| 		-Map $(nandobj)u-boot-spl.map -o $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot.lds: $(LDSCRIPT) |  | ||||||
| 	$(CPP) $(cpp_flags) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@ |  | ||||||
| 
 |  | ||||||
| # create symbolic links for common files
 |  | ||||||
| 
 |  | ||||||
| # from cpu directory
 |  | ||||||
| $(obj)/ndfc.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/drivers/mtd/nand/ndfc.c $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/resetvec.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/resetvec.S $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/start.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/start.S $@ |  | ||||||
| 
 |  | ||||||
| # from board directory
 |  | ||||||
| $(obj)/init.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/board/amcc/bamboo/init.S $@ |  | ||||||
| 
 |  | ||||||
| # from nand_spl directory
 |  | ||||||
| $(obj)/nand_boot.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/nand_spl/nand_boot.c $@ |  | ||||||
| 
 |  | ||||||
| # from drivers/mtd/nand directory
 |  | ||||||
| $(obj)/nand_ecc.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/drivers/mtd/nand/nand_ecc.c $@ |  | ||||||
|  | @ -1,33 +0,0 @@ | ||||||
| #
 |  | ||||||
| # (C) Copyright 2007
 |  | ||||||
| # Stefan Roese, DENX Software Engineering, sr@denx.de.
 |  | ||||||
| #
 |  | ||||||
| # SPDX-License-Identifier:	GPL-2.0+
 |  | ||||||
| #
 |  | ||||||
| #
 |  | ||||||
| # AMCC 440EP Reference Platform (Bamboo) board
 |  | ||||||
| #
 |  | ||||||
| 
 |  | ||||||
| #
 |  | ||||||
| # CONFIG_SYS_TEXT_BASE for SPL:
 |  | ||||||
| #
 |  | ||||||
| # On 440EP(x) platforms the SPL is located at 0xfffff000...0xffffffff,
 |  | ||||||
| # in the last 4kBytes of memory space in cache.
 |  | ||||||
| # We will copy this SPL into instruction-cache in start.S. So we set
 |  | ||||||
| # CONFIG_SYS_TEXT_BASE to starting address in i-cache here.
 |  | ||||||
| #
 |  | ||||||
| CONFIG_SYS_TEXT_BASE = 0x00800000 |  | ||||||
| 
 |  | ||||||
| # PAD_TO used to generate a 16kByte binary needed for the combined image
 |  | ||||||
| # -> PAD_TO = CONFIG_SYS_TEXT_BASE + 0x4000
 |  | ||||||
| PAD_TO	= 0x00804000 |  | ||||||
| 
 |  | ||||||
| PLATFORM_CPPFLAGS += -DCONFIG_440=1 |  | ||||||
| 
 |  | ||||||
| ifeq ($(debug),1) |  | ||||||
| PLATFORM_CPPFLAGS += -DDEBUG |  | ||||||
| endif |  | ||||||
| 
 |  | ||||||
| ifeq ($(dbcr),1) |  | ||||||
| PLATFORM_CPPFLAGS += -DCONFIG_SYS_INIT_DBCR=0x8cff0000 |  | ||||||
| endif |  | ||||||
|  | @ -1,76 +0,0 @@ | ||||||
| /*
 |  | ||||||
|  * (C) Copyright 2007 |  | ||||||
|  * Stefan Roese, DENX Software Engineering, sr@denx.de. |  | ||||||
|  * |  | ||||||
|  * SPDX-License-Identifier:	GPL-2.0+ |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #include <common.h> |  | ||||||
| #include <asm/ppc4xx.h> |  | ||||||
| #include <asm/processor.h> |  | ||||||
| #include <asm/io.h> |  | ||||||
| 
 |  | ||||||
| static void wait_init_complete(void) |  | ||||||
| { |  | ||||||
| 	u32 val; |  | ||||||
| 
 |  | ||||||
| 	do { |  | ||||||
| 		mfsdram(SDRAM0_MCSTS, val); |  | ||||||
| 	} while (!(val & 0x80000000)); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * phys_size_t initdram(int board_type) |  | ||||||
|  * |  | ||||||
|  * As the name already indicates, this function is called very early |  | ||||||
|  * from start.S and configures the SDRAM with fixed values. This is needed, |  | ||||||
|  * since the 440EP has no internal SRAM and the 4kB NAND_SPL loader has |  | ||||||
|  * not enough free space to implement the complete I2C SPD DDR autodetection |  | ||||||
|  * routines. Therefore the Bamboo only supports the onboard 64MBytes of SDRAM |  | ||||||
|  * when booting from NAND flash. |  | ||||||
|  * |  | ||||||
|  * Note: |  | ||||||
|  * As found out by Eugene O'Brien <eugene.obrien@advantechamt.com>, the fixed |  | ||||||
|  * DDR setup has problems (U-Boot crashes randomly upon TFTP), when the DIMM |  | ||||||
|  * modules are still plugged in. So it is recommended to remove the DIMM |  | ||||||
|  * modules while using the NAND booting code with the fixed SDRAM setup! |  | ||||||
|  */ |  | ||||||
| phys_size_t initdram(int board_type) |  | ||||||
| { |  | ||||||
| 	/*
 |  | ||||||
| 	 * Soft-reset SDRAM controller. |  | ||||||
| 	 */ |  | ||||||
| 	mtsdr(SDR0_SRST, SDR0_SRST_DMC); |  | ||||||
| 	mtsdr(SDR0_SRST, 0x00000000); |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * Disable memory controller. |  | ||||||
| 	 */ |  | ||||||
| 	mtsdram(SDRAM0_CFG0, 0x00000000); |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * Setup some default |  | ||||||
| 	 */ |  | ||||||
| 	mtsdram(SDRAM0_UABBA, 0x00000000); /* ubba=0 (default)		*/ |  | ||||||
| 	mtsdram(SDRAM0_SLIO, 0x00000000);	/* rdre=0 wrre=0 rarw=0		*/ |  | ||||||
| 	mtsdram(SDRAM0_DEVOPT, 0x00000000); /* dll=0 ds=0 (normal)		*/ |  | ||||||
| 	mtsdram(SDRAM0_WDDCTR, 0x00000000); /* wrcp=0 dcd=0		*/ |  | ||||||
| 	mtsdram(SDRAM0_CLKTR, 0x40000000); /* clkp=1 (90 deg wr) dcdt=0	*/ |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * Following for CAS Latency = 2.5 @ 133 MHz PLB |  | ||||||
| 	 */ |  | ||||||
| 	mtsdram(SDRAM0_B0CR, 0x00082001); |  | ||||||
| 	mtsdram(SDRAM0_TR0, 0x41094012); |  | ||||||
| 	mtsdram(SDRAM0_TR1, 0x8080083d);	/* SS=T2 SL=STAGE 3 CD=1 CT=0x00*/ |  | ||||||
| 	mtsdram(SDRAM0_RTR, 0x04100000);	/* Interval 7.8µs @ 133MHz PLB	*/ |  | ||||||
| 	mtsdram(SDRAM0_CFG1, 0x00000000);	/* Self-refresh exit, disable PM*/ |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * Enable the controller, then wait for DCEN to complete |  | ||||||
| 	 */ |  | ||||||
| 	mtsdram(SDRAM0_CFG0, 0x80000000); /* DCEN=1, PMUD=0*/ |  | ||||||
| 	wait_init_complete(); |  | ||||||
| 
 |  | ||||||
| 	return CONFIG_SYS_MBYTES_SDRAM << 20; |  | ||||||
| } |  | ||||||
|  | @ -1,50 +0,0 @@ | ||||||
| /* |  | ||||||
|  * (C) Copyright 2007 |  | ||||||
|  * Stefan Roese, DENX Software Engineering, sr@denx.de. |  | ||||||
|  * |  | ||||||
|  * SPDX-License-Identifier:	GPL-2.0+ |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| OUTPUT_ARCH(powerpc:common) |  | ||||||
| SECTIONS |  | ||||||
| { |  | ||||||
|   .resetvec 0x00800FFC : |  | ||||||
|   { |  | ||||||
|     KEEP(*(.resetvec)) |  | ||||||
|   } = 0xffff |  | ||||||
| 
 |  | ||||||
|   .text      : |  | ||||||
|   { |  | ||||||
|     start.o	(.text) |  | ||||||
|     init.o	(.text) |  | ||||||
|     nand_boot.o	(.text) |  | ||||||
|     sdram.o	(.text) |  | ||||||
|     ndfc.o	(.text) |  | ||||||
| 
 |  | ||||||
|     *(.text) |  | ||||||
|     *(.fixup) |  | ||||||
|   } |  | ||||||
|   _etext = .; |  | ||||||
| 
 |  | ||||||
|   .data    : |  | ||||||
|   { |  | ||||||
|     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) |  | ||||||
|     *(.data*) |  | ||||||
|     *(.sdata*) |  | ||||||
|     __got2_start = .; |  | ||||||
|     *(.got2) |  | ||||||
|     __got2_end = .; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   _edata  =  .; |  | ||||||
| 
 |  | ||||||
|   __bss_start = .; |  | ||||||
|   .bss (NOLOAD)       : |  | ||||||
|   { |  | ||||||
|    *(.sbss) |  | ||||||
|    *(.bss) |  | ||||||
|    . = ALIGN(4); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   __bss_end = . ; |  | ||||||
| } |  | ||||||
|  | @ -1,75 +0,0 @@ | ||||||
| #
 |  | ||||||
| # (C) Copyright 2008
 |  | ||||||
| # Stefan Roese, DENX Software Engineering, sr@denx.de.
 |  | ||||||
| #
 |  | ||||||
| # SPDX-License-Identifier:	GPL-2.0+
 |  | ||||||
| #
 |  | ||||||
| 
 |  | ||||||
| include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk |  | ||||||
| 
 |  | ||||||
| nandobj	:= $(OBJTREE)/nand_spl/ |  | ||||||
| 
 |  | ||||||
| LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds |  | ||||||
| LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 |  | ||||||
| 	   $(LDFLAGS_FINAL) |  | ||||||
| asflags-y += -DCONFIG_NAND_SPL |  | ||||||
| ccflags-y += -DCONFIG_NAND_SPL |  | ||||||
| 
 |  | ||||||
| SOBJS	:= start.o |  | ||||||
| SOBJS	+= init.o |  | ||||||
| SOBJS	+= resetvec.o |  | ||||||
| COBJS	:= ddr2_fixed.o |  | ||||||
| COBJS	+= nand_boot.o |  | ||||||
| COBJS	+= nand_ecc.o |  | ||||||
| COBJS	+= ndfc.o |  | ||||||
| 
 |  | ||||||
| OBJS	:= $(addprefix $(obj)/,$(SOBJS) $(COBJS)) |  | ||||||
| __OBJS	:= $(SOBJS) $(COBJS) |  | ||||||
| LNDIR	:= $(nandobj)board/$(BOARDDIR) |  | ||||||
| 
 |  | ||||||
| targets += $(__OBJS) |  | ||||||
| 
 |  | ||||||
| all: $(nandobj)u-boot-spl.bin $(nandobj)u-boot-spl-16k.bin |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl |  | ||||||
| 	$(OBJCOPY) $(OBJCOPYFLAGS) --pad-to=$(PAD_TO) -O binary $< $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl.bin:	$(nandobj)u-boot-spl |  | ||||||
| 	$(OBJCOPY) $(OBJCOPYFLAGS) -O binary $< $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds |  | ||||||
| 	cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) $(PLATFORM_LIBS) \
 |  | ||||||
| 		-Map $(nandobj)u-boot-spl.map -o $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot.lds: $(LDSCRIPT) |  | ||||||
| 	$(CPP) $(cpp_flags) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@ |  | ||||||
| 
 |  | ||||||
| # create symbolic links for common files
 |  | ||||||
| 
 |  | ||||||
| # from cpu directory
 |  | ||||||
| $(obj)/ndfc.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/drivers/mtd/nand/ndfc.c $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/resetvec.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/resetvec.S $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/start.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/start.S $@ |  | ||||||
| 
 |  | ||||||
| # from board directory
 |  | ||||||
| $(obj)/init.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/board/amcc/canyonlands/init.S $@ |  | ||||||
| 
 |  | ||||||
| # from nand_spl directory
 |  | ||||||
| $(obj)/nand_boot.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/nand_spl/nand_boot.c $@ |  | ||||||
| 
 |  | ||||||
| # from drivers/mtd/nand directory
 |  | ||||||
| $(obj)/nand_ecc.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/drivers/mtd/nand/nand_ecc.c $@ |  | ||||||
|  | @ -1,33 +0,0 @@ | ||||||
| #
 |  | ||||||
| # (C) Copyright 2008
 |  | ||||||
| # Stefan Roese, DENX Software Engineering, sr@denx.de.
 |  | ||||||
| #
 |  | ||||||
| # SPDX-License-Identifier:	GPL-2.0+
 |  | ||||||
| #
 |  | ||||||
| #
 |  | ||||||
| # AMCC 460EX Reference Platform (Canyonlands) board
 |  | ||||||
| #
 |  | ||||||
| 
 |  | ||||||
| #
 |  | ||||||
| # CONFIG_SYS_TEXT_BASE for SPL:
 |  | ||||||
| #
 |  | ||||||
| # On 460EX platforms the SPL is located at 0xfffff000...0xffffffff,
 |  | ||||||
| # in the last 4kBytes of memory space in cache.
 |  | ||||||
| # We will copy this SPL into internal SRAM in start.S. So we set
 |  | ||||||
| # CONFIG_SYS_TEXT_BASE to starting address in internal SRAM here.
 |  | ||||||
| #
 |  | ||||||
| CONFIG_SYS_TEXT_BASE = 0xE3003000 |  | ||||||
| 
 |  | ||||||
| # PAD_TO used to generate a 128kByte binary needed for the combined image
 |  | ||||||
| # -> PAD_TO = CONFIG_SYS_TEXT_BASE + 0x20000
 |  | ||||||
| PAD_TO	= 0xE3023000 |  | ||||||
| 
 |  | ||||||
| PLATFORM_CPPFLAGS += -DCONFIG_440=1 |  | ||||||
| 
 |  | ||||||
| ifeq ($(debug),1) |  | ||||||
| PLATFORM_CPPFLAGS += -DDEBUG |  | ||||||
| endif |  | ||||||
| 
 |  | ||||||
| ifeq ($(dbcr),1) |  | ||||||
| PLATFORM_CPPFLAGS += -DCONFIG_SYS_INIT_DBCR=0x8cff0000 |  | ||||||
| endif |  | ||||||
|  | @ -1,130 +0,0 @@ | ||||||
| /*
 |  | ||||||
|  * (C) Copyright 2008-2009 |  | ||||||
|  * Stefan Roese, DENX Software Engineering, sr@denx.de. |  | ||||||
|  * |  | ||||||
|  * SPDX-License-Identifier:	GPL-2.0+ |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #include <common.h> |  | ||||||
| #include <asm/ppc4xx.h> |  | ||||||
| #include <asm/io.h> |  | ||||||
| #include <asm/processor.h> |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * This code can configure those two Crucial SODIMM's: |  | ||||||
|  * |  | ||||||
|  * Crucial CT6464AC667.4FE - 512MB SO-DIMM (single rank) |  | ||||||
|  * Crucial CT6464AC667.8FB - 512MB SO-DIMM (dual rank) |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #define TEST_ADDR	0x10000000 |  | ||||||
| #define TEST_MAGIC	0x11223344 |  | ||||||
| 
 |  | ||||||
| static void wait_init_complete(void) |  | ||||||
| { |  | ||||||
| 	u32 val; |  | ||||||
| 
 |  | ||||||
| 	do { |  | ||||||
| 		mfsdram(SDRAM_MCSTAT, val); |  | ||||||
| 	} while (!(val & 0x80000000)); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static void ddr_start(void) |  | ||||||
| { |  | ||||||
| 	mtsdram(SDRAM_MCOPT2, 0x28000000); |  | ||||||
| 	wait_init_complete(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static void ddr_init_common(void) |  | ||||||
| { |  | ||||||
| 	/*
 |  | ||||||
| 	 * Reset the DDR-SDRAM controller. |  | ||||||
| 	 */ |  | ||||||
| 	mtsdr(SDR0_SRST, SDR0_SRST0_DMC); |  | ||||||
| 	mtsdr(SDR0_SRST, 0x00000000); |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * These values are cloned from a running NOR booting |  | ||||||
| 	 * Canyonlands with SPD-DDR2 detection and calibration |  | ||||||
| 	 * enabled. This will only work for the same memory |  | ||||||
| 	 * configuration as used here: |  | ||||||
| 	 * |  | ||||||
| 	 */ |  | ||||||
| 	mtsdram(SDRAM_MCOPT2, 0x00000000); |  | ||||||
| 	mtsdram(SDRAM_MODT0, 0x01000000); |  | ||||||
| 	mtsdram(SDRAM_WRDTR, 0x82000823); |  | ||||||
| 	mtsdram(SDRAM_CLKTR, 0x40000000); |  | ||||||
| 	mtsdram(SDRAM_MB0CF, 0x00000201); |  | ||||||
| 	mtsdram(SDRAM_RTR, 0x06180000); |  | ||||||
| 	mtsdram(SDRAM_SDTR1, 0x80201000); |  | ||||||
| 	mtsdram(SDRAM_SDTR2, 0x42103243); |  | ||||||
| 	mtsdram(SDRAM_SDTR3, 0x0A0D0D16); |  | ||||||
| 	mtsdram(SDRAM_MMODE, 0x00000632); |  | ||||||
| 	mtsdram(SDRAM_MEMODE, 0x00000040); |  | ||||||
| 	mtsdram(SDRAM_INITPLR0, 0xB5380000); |  | ||||||
| 	mtsdram(SDRAM_INITPLR1, 0x82100400); |  | ||||||
| 	mtsdram(SDRAM_INITPLR2, 0x80820000); |  | ||||||
| 	mtsdram(SDRAM_INITPLR3, 0x80830000); |  | ||||||
| 	mtsdram(SDRAM_INITPLR4, 0x80810040); |  | ||||||
| 	mtsdram(SDRAM_INITPLR5, 0x80800532); |  | ||||||
| 	mtsdram(SDRAM_INITPLR6, 0x82100400); |  | ||||||
| 	mtsdram(SDRAM_INITPLR7, 0x8A080000); |  | ||||||
| 	mtsdram(SDRAM_INITPLR8, 0x8A080000); |  | ||||||
| 	mtsdram(SDRAM_INITPLR9, 0x8A080000); |  | ||||||
| 	mtsdram(SDRAM_INITPLR10, 0x8A080000); |  | ||||||
| 	mtsdram(SDRAM_INITPLR11, 0x80000432); |  | ||||||
| 	mtsdram(SDRAM_INITPLR12, 0x808103C0); |  | ||||||
| 	mtsdram(SDRAM_INITPLR13, 0x80810040); |  | ||||||
| 	mtsdram(SDRAM_RDCC, 0x40000000); |  | ||||||
| 	mtsdram(SDRAM_RQDC, 0x80000038); |  | ||||||
| 	mtsdram(SDRAM_RFDC, 0x00000257); |  | ||||||
| 
 |  | ||||||
| 	mtdcr(SDRAM_R0BAS, 0x0000F800);		/* MQ0_B0BAS */ |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| phys_size_t initdram(int board_type) |  | ||||||
| { |  | ||||||
| 	/*
 |  | ||||||
| 	 * First try init for this module: |  | ||||||
| 	 * |  | ||||||
| 	 * Crucial CT6464AC667.8FB - 512MB SO-DIMM (dual rank) |  | ||||||
| 	 */ |  | ||||||
| 
 |  | ||||||
| 	ddr_init_common(); |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * Crucial CT6464AC667.8FB - 512MB SO-DIMM |  | ||||||
| 	 */ |  | ||||||
| 	mtdcr(SDRAM_R0BAS, 0x0000F800); |  | ||||||
| 	mtdcr(SDRAM_R1BAS, 0x0400F800); |  | ||||||
| 	mtsdram(SDRAM_MCOPT1, 0x05122000); |  | ||||||
| 	mtsdram(SDRAM_CODT, 0x02800021); |  | ||||||
| 	mtsdram(SDRAM_MB1CF, 0x00000201); |  | ||||||
| 
 |  | ||||||
| 	ddr_start(); |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * Now test if the dual-ranked module is really installed |  | ||||||
| 	 * by checking an address in the upper 256MByte region |  | ||||||
| 	 */ |  | ||||||
| 	out_be32((void *)TEST_ADDR, TEST_MAGIC); |  | ||||||
| 	if (in_be32((void *)TEST_ADDR) != TEST_MAGIC) { |  | ||||||
| 		/*
 |  | ||||||
| 		 * The test failed, so we assume that the single |  | ||||||
| 		 * ranked module is installed: |  | ||||||
| 		 * |  | ||||||
| 		 * Crucial CT6464AC667.4FE - 512MB SO-DIMM (single rank) |  | ||||||
| 		 */ |  | ||||||
| 
 |  | ||||||
| 		ddr_init_common(); |  | ||||||
| 
 |  | ||||||
| 		mtdcr(SDRAM_R0BAS, 0x0000F000); |  | ||||||
| 		mtsdram(SDRAM_MCOPT1, 0x05322000); |  | ||||||
| 		mtsdram(SDRAM_CODT, 0x00800021); |  | ||||||
| 
 |  | ||||||
| 		ddr_start(); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return CONFIG_SYS_MBYTES_SDRAM << 20; |  | ||||||
| } |  | ||||||
|  | @ -1,50 +0,0 @@ | ||||||
| /* |  | ||||||
|  * (C) Copyright 2008 |  | ||||||
|  * Stefan Roese, DENX Software Engineering, sr@denx.de. |  | ||||||
|  * |  | ||||||
|  * SPDX-License-Identifier:	GPL-2.0+ |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| OUTPUT_ARCH(powerpc:common) |  | ||||||
| SECTIONS |  | ||||||
| { |  | ||||||
|   .resetvec 0xE3003FFC : |  | ||||||
|   { |  | ||||||
|     KEEP(*(.resetvec)) |  | ||||||
|   } = 0xffff |  | ||||||
| 
 |  | ||||||
|   .text      : |  | ||||||
|   { |  | ||||||
|     start.o	(.text) |  | ||||||
|     init.o	(.text) |  | ||||||
|     nand_boot.o	(.text) |  | ||||||
|     ddr2_fixed.o (.text) |  | ||||||
|     ndfc.o	(.text) |  | ||||||
| 
 |  | ||||||
|     *(.text) |  | ||||||
|     *(.fixup) |  | ||||||
|   } |  | ||||||
|   _etext = .; |  | ||||||
| 
 |  | ||||||
|   .data    : |  | ||||||
|   { |  | ||||||
|     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) |  | ||||||
|     *(.data*) |  | ||||||
|     *(.sdata*) |  | ||||||
|     __got2_start = .; |  | ||||||
|     *(.got2) |  | ||||||
|     __got2_end = .; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   _edata  =  .; |  | ||||||
| 
 |  | ||||||
|   __bss_start = .; |  | ||||||
|   .bss (NOLOAD)       : |  | ||||||
|   { |  | ||||||
|    *(.sbss) |  | ||||||
|    *(.bss) |  | ||||||
|    . = ALIGN(4); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   __bss_end = . ; |  | ||||||
| } |  | ||||||
|  | @ -1,77 +0,0 @@ | ||||||
| #
 |  | ||||||
| # (C) Copyright 2007
 |  | ||||||
| # Stefan Roese, DENX Software Engineering, sr@denx.de.
 |  | ||||||
| #
 |  | ||||||
| # SPDX-License-Identifier:	GPL-2.0+
 |  | ||||||
| #
 |  | ||||||
| 
 |  | ||||||
| include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk |  | ||||||
| 
 |  | ||||||
| nandobj	:= $(OBJTREE)/nand_spl/ |  | ||||||
| 
 |  | ||||||
| LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds |  | ||||||
| LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 |  | ||||||
| 	   $(LDFLAGS_FINAL) |  | ||||||
| asflags-y += -DCONFIG_NAND_SPL |  | ||||||
| ccflags-y += -DCONFIG_NAND_SPL |  | ||||||
| 
 |  | ||||||
| SOBJS	= start.o resetvec.o cache.o |  | ||||||
| COBJS	= 44x_spd_ddr2.o nand_boot.o nand_ecc.o ndfc.o |  | ||||||
| 
 |  | ||||||
| OBJS	:= $(addprefix $(obj)/,$(SOBJS) $(COBJS)) |  | ||||||
| __OBJS	:= $(SOBJS) $(COBJS) |  | ||||||
| LNDIR	:= $(nandobj)board/$(BOARDDIR) |  | ||||||
| 
 |  | ||||||
| targets += $(__OBJS) |  | ||||||
| 
 |  | ||||||
| all: $(nandobj)u-boot-spl.bin $(nandobj)u-boot-spl-16k.bin |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl |  | ||||||
| 	$(OBJCOPY) $(OBJCOPYFLAGS) --pad-to=$(PAD_TO) -O binary $< $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl.bin:	$(nandobj)u-boot-spl |  | ||||||
| 	$(OBJCOPY) $(OBJCOPYFLAGS) -O binary $< $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds |  | ||||||
| 	cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) $(PLATFORM_LIBS) \
 |  | ||||||
| 		-Map $(nandobj)u-boot-spl.map -o $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot.lds: $(LDSCRIPT) |  | ||||||
| 	$(CPP) $(cpp_flags) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@ |  | ||||||
| 
 |  | ||||||
| # create symbolic links for common files
 |  | ||||||
| 
 |  | ||||||
| # from cpu directory
 |  | ||||||
| $(obj)/44x_spd_ddr2.c: $(obj)/ecc.h |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/44x_spd_ddr2.c $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/cache.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/cache.S $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/ecc.h: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/ecc.h $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/ndfc.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/drivers/mtd/nand/ndfc.c $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/resetvec.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/resetvec.S $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/start.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/start.S $@ |  | ||||||
| 
 |  | ||||||
| # from nand_spl directory
 |  | ||||||
| $(obj)/nand_boot.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/nand_spl/nand_boot.c $@ |  | ||||||
| 
 |  | ||||||
| # from drivers/nand directory
 |  | ||||||
| $(obj)/nand_ecc.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/drivers/mtd/nand/nand_ecc.c $@ |  | ||||||
|  | @ -1,32 +0,0 @@ | ||||||
| #
 |  | ||||||
| # (C) Copyright 2007
 |  | ||||||
| # Stefan Roese, DENX Software Engineering, sr@denx.de.
 |  | ||||||
| #
 |  | ||||||
| # SPDX-License-Identifier:	GPL-2.0+
 |  | ||||||
| #
 |  | ||||||
| #
 |  | ||||||
| # AMCC 405EX Reference Platform (Kilauea) board
 |  | ||||||
| #
 |  | ||||||
| 
 |  | ||||||
| #
 |  | ||||||
| # CONFIG_SYS_TEXT_BASE for SPL:
 |  | ||||||
| #
 |  | ||||||
| # On 4xx platforms the SPL is located at 0xfffff000...0xffffffff,
 |  | ||||||
| # in the last 4kBytes of memory space in cache.
 |  | ||||||
| # We will copy this SPL into SDRAM since we can't access the NAND
 |  | ||||||
| # controller at CS0 while running from this location. So we set
 |  | ||||||
| # CONFIG_SYS_TEXT_BASE to starting address in SDRAM here.
 |  | ||||||
| #
 |  | ||||||
| CONFIG_SYS_TEXT_BASE = 0x00800000 |  | ||||||
| 
 |  | ||||||
| # PAD_TO used to generate a 16kByte binary needed for the combined image
 |  | ||||||
| # -> PAD_TO = CONFIG_SYS_TEXT_BASE + 0x4000
 |  | ||||||
| PAD_TO	= 0x00804000 |  | ||||||
| 
 |  | ||||||
| ifeq ($(debug),1) |  | ||||||
| PLATFORM_CPPFLAGS += -DDEBUG |  | ||||||
| endif |  | ||||||
| 
 |  | ||||||
| ifeq ($(dbcr),1) |  | ||||||
| PLATFORM_CPPFLAGS += -DCONFIG_SYS_INIT_DBCR=0x8cff0000 |  | ||||||
| endif |  | ||||||
|  | @ -1,48 +0,0 @@ | ||||||
| /* |  | ||||||
|  * (C) Copyright 2007 |  | ||||||
|  * Stefan Roese, DENX Software Engineering, sr@denx.de. |  | ||||||
|  * |  | ||||||
|  * SPDX-License-Identifier:	GPL-2.0+ |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| OUTPUT_ARCH(powerpc:common) |  | ||||||
| SECTIONS |  | ||||||
| { |  | ||||||
|   .resetvec 0x00800FFC : |  | ||||||
|   { |  | ||||||
|     KEEP(*(.resetvec)) |  | ||||||
|   } = 0xffff |  | ||||||
| 
 |  | ||||||
|   .text      : |  | ||||||
|   { |  | ||||||
|     start.o	(.text) |  | ||||||
|     nand_boot.o	(.text) |  | ||||||
|     ndfc.o	(.text) |  | ||||||
| 
 |  | ||||||
|     *(.text) |  | ||||||
|     *(.fixup) |  | ||||||
|   } |  | ||||||
|   _etext = .; |  | ||||||
| 
 |  | ||||||
|   .data    : |  | ||||||
|   { |  | ||||||
|     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) |  | ||||||
|     *(.data*) |  | ||||||
|     *(.sdata*) |  | ||||||
|     __got2_start = .; |  | ||||||
|     *(.got2) |  | ||||||
|     __got2_end = .; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   _edata  =  .; |  | ||||||
| 
 |  | ||||||
|   __bss_start = .; |  | ||||||
|   .bss (NOLOAD)       : |  | ||||||
|   { |  | ||||||
|    *(.sbss) |  | ||||||
|    *(.bss) |  | ||||||
|    . = ALIGN(4); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   __bss_end = . ; |  | ||||||
| } |  | ||||||
|  | @ -1,80 +0,0 @@ | ||||||
| #
 |  | ||||||
| # (C) Copyright 2006-2007
 |  | ||||||
| # Stefan Roese, DENX Software Engineering, sr@denx.de.
 |  | ||||||
| #
 |  | ||||||
| # SPDX-License-Identifier:	GPL-2.0+
 |  | ||||||
| #
 |  | ||||||
| 
 |  | ||||||
| include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk |  | ||||||
| 
 |  | ||||||
| nandobj	:= $(OBJTREE)/nand_spl/ |  | ||||||
| 
 |  | ||||||
| LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds |  | ||||||
| LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 |  | ||||||
| 	   $(LDFLAGS_FINAL) |  | ||||||
| asflags-y += -DCONFIG_NAND_SPL |  | ||||||
| ccflags-y += -DCONFIG_NAND_SPL |  | ||||||
| 
 |  | ||||||
| SOBJS	= start.o init.o resetvec.o |  | ||||||
| COBJS	= denali_data_eye.o nand_boot.o nand_ecc.o ndfc.o sdram.o |  | ||||||
| 
 |  | ||||||
| OBJS	:= $(addprefix $(obj)/,$(SOBJS) $(COBJS)) |  | ||||||
| __OBJS	:= $(SOBJS) $(COBJS) |  | ||||||
| LNDIR	:= $(nandobj)board/$(BOARDDIR) |  | ||||||
| 
 |  | ||||||
| targets += $(__OBJS) |  | ||||||
| 
 |  | ||||||
| all: $(nandobj)u-boot-spl.bin $(nandobj)u-boot-spl-16k.bin |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl |  | ||||||
| 	$(OBJCOPY) $(OBJCOPYFLAGS) --pad-to=$(PAD_TO) -O binary $< $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl.bin:	$(nandobj)u-boot-spl |  | ||||||
| 	$(OBJCOPY) $(OBJCOPYFLAGS) -O binary $< $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds |  | ||||||
| 	cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) $(PLATFORM_LIBS) \
 |  | ||||||
| 		-Map $(nandobj)u-boot-spl.map -o $@ |  | ||||||
| 
 |  | ||||||
| $(nandobj)u-boot.lds: $(LDSCRIPT) |  | ||||||
| 	$(CPP) $(cpp_flags) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@ |  | ||||||
| 
 |  | ||||||
| # create symbolic links for common files
 |  | ||||||
| 
 |  | ||||||
| # from cpu directory
 |  | ||||||
| $(obj)/denali_data_eye.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/denali_data_eye.c $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/ndfc.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/drivers/mtd/nand/ndfc.c $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/resetvec.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/resetvec.S $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/start.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/start.S $@ |  | ||||||
| 
 |  | ||||||
| # from board directory
 |  | ||||||
| $(obj)/init.S: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/board/amcc/sequoia/init.S $@ |  | ||||||
| 
 |  | ||||||
| $(obj)/sdram.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	@rm -f $(obj)/sdram.h |  | ||||||
| 	ln -s $(SRCTREE)/board/amcc/sequoia/sdram.c $@ |  | ||||||
| 	ln -s $(SRCTREE)/board/amcc/sequoia/sdram.h $(obj)/sdram.h |  | ||||||
| 
 |  | ||||||
| # from nand_spl directory
 |  | ||||||
| $(obj)/nand_boot.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/nand_spl/nand_boot.c $@ |  | ||||||
| 
 |  | ||||||
| # from drivers/mtd/nand directory
 |  | ||||||
| $(obj)/nand_ecc.c: |  | ||||||
| 	@rm -f $@ |  | ||||||
| 	ln -s $(SRCTREE)/drivers/mtd/nand/nand_ecc.c $@ |  | ||||||
|  | @ -1,33 +0,0 @@ | ||||||
| #
 |  | ||||||
| # (C) Copyright 2006
 |  | ||||||
| # Stefan Roese, DENX Software Engineering, sr@denx.de.
 |  | ||||||
| #
 |  | ||||||
| # SPDX-License-Identifier:	GPL-2.0+
 |  | ||||||
| #
 |  | ||||||
| #
 |  | ||||||
| # AMCC 440EPx Reference Platform (Sequoia) board
 |  | ||||||
| #
 |  | ||||||
| 
 |  | ||||||
| #
 |  | ||||||
| # CONFIG_SYS_TEXT_BASE for SPL:
 |  | ||||||
| #
 |  | ||||||
| # On 440EP(x) platforms the SPL is located at 0xfffff000...0xffffffff,
 |  | ||||||
| # in the last 4kBytes of memory space in cache.
 |  | ||||||
| # We will copy this SPL into internal SRAM in start.S. So we set
 |  | ||||||
| # CONFIG_SYS_TEXT_BASE to starting address in internal SRAM here.
 |  | ||||||
| #
 |  | ||||||
| CONFIG_SYS_TEXT_BASE = 0xE0013000 |  | ||||||
| 
 |  | ||||||
| # PAD_TO used to generate a 16kByte binary needed for the combined image
 |  | ||||||
| # -> PAD_TO = CONFIG_SYS_TEXT_BASE + 0x4000
 |  | ||||||
| PAD_TO	= 0xE0017000 |  | ||||||
| 
 |  | ||||||
| PLATFORM_CPPFLAGS += -DCONFIG_440=1 |  | ||||||
| 
 |  | ||||||
| ifeq ($(debug),1) |  | ||||||
| PLATFORM_CPPFLAGS += -DDEBUG |  | ||||||
| endif |  | ||||||
| 
 |  | ||||||
| ifeq ($(dbcr),1) |  | ||||||
| PLATFORM_CPPFLAGS += -DCONFIG_SYS_INIT_DBCR=0x8cff0000 |  | ||||||
| endif |  | ||||||
|  | @ -1,50 +0,0 @@ | ||||||
| /* |  | ||||||
|  * (C) Copyright 2006-2010 |  | ||||||
|  * Stefan Roese, DENX Software Engineering, sr@denx.de. |  | ||||||
|  * |  | ||||||
|  * SPDX-License-Identifier:	GPL-2.0+ |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| OUTPUT_ARCH(powerpc:common) |  | ||||||
| SECTIONS |  | ||||||
| { |  | ||||||
|   .resetvec 0xE0013FFC : |  | ||||||
|   { |  | ||||||
|     KEEP(*(.resetvec)) |  | ||||||
|   } = 0xffff |  | ||||||
| 
 |  | ||||||
|   .text      : |  | ||||||
|   { |  | ||||||
|     start.o	(.text) |  | ||||||
|     init.o	(.text) |  | ||||||
|     nand_boot.o	(.text) |  | ||||||
|     sdram.o	(.text) |  | ||||||
|     ndfc.o	(.text) |  | ||||||
| 
 |  | ||||||
|     *(.text) |  | ||||||
|     *(.fixup) |  | ||||||
|   } |  | ||||||
|   _etext = .; |  | ||||||
| 
 |  | ||||||
|   .data    : |  | ||||||
|   { |  | ||||||
|     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) |  | ||||||
|     *(.data*) |  | ||||||
|     *(.sdata*) |  | ||||||
|     __got2_start = .; |  | ||||||
|     *(.got2) |  | ||||||
|     __got2_end = .; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   _edata  =  .; |  | ||||||
| 
 |  | ||||||
|   __bss_start = .; |  | ||||||
|   .bss (NOLOAD)       : |  | ||||||
|   { |  | ||||||
|    *(.sbss) |  | ||||||
|    *(.bss) |  | ||||||
|    . = ALIGN(4); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   __bss_end = . ; |  | ||||||
| } |  | ||||||
		Loading…
	
		Reference in New Issue