diff options
| author | Stefan Roese <sr@denx.de> | 2007-05-24 09:50:17 +0200 | 
|---|---|---|
| committer | Stefan Roese <sr@denx.de> | 2007-05-24 09:50:17 +0200 | 
| commit | 7d075ee1d8cfcab9dd5b356816f17d013498cc62 (patch) | |
| tree | 2092dcd7ad5b633e95bbcc047212cc6ba1975cc0 | |
| parent | d756894722c888d09a9fa1df8323753772d3dcce (diff) | |
| parent | 5d4a179013d59a76446462e1eb0a969fba63eb81 (diff) | |
| download | olio-uboot-2014.01-7d075ee1d8cfcab9dd5b356816f17d013498cc62.tar.xz olio-uboot-2014.01-7d075ee1d8cfcab9dd5b356816f17d013498cc62.zip | |
Merge with /home/stefan/git/u-boot/acadia-nand
| -rw-r--r-- | board/amcc/acadia/acadia.c | 9 | ||||
| -rw-r--r-- | cpu/ppc4xx/ndfc.c | 8 | ||||
| -rw-r--r-- | include/configs/acadia.h | 27 | ||||
| -rw-r--r-- | include/ppc405.h | 8 | 
4 files changed, 25 insertions, 27 deletions
| diff --git a/board/amcc/acadia/acadia.c b/board/amcc/acadia/acadia.c index baf598c67..3b63c8a74 100644 --- a/board/amcc/acadia/acadia.c +++ b/board/amcc/acadia/acadia.c @@ -62,6 +62,10 @@ int board_early_init_f(void)  	acadia_gpio_init(); +	/* Configure 405EZ for NAND usage */ +	mtsdr(sdrnand0, 0x80c00000); +	mtsdr(sdrultra0, 0x8d110000); +  	/* USB Host core needs this bit set */  	mfsdr(sdrultra1, reg);  	mtsdr(sdrultra1, reg | SDR_ULTRA1_LEDNENABLE); @@ -91,8 +95,11 @@ int misc_init_f(void)  int checkboard(void)  {  	char *s = getenv("serial#"); +	u8 rev; + +	rev = in8(CFG_CPLD_BASE + 0); +	printf("Board: Acadia - AMCC PPC405EZ Evaluation Board, Rev. %X", rev); -	printf("Board: Acadia - AMCC PPC405EZ Evaluation Board");  	if (s != NULL) {  		puts(", serial# ");  		puts(s); diff --git a/cpu/ppc4xx/ndfc.c b/cpu/ppc4xx/ndfc.c index b198ff46c..08dfc3295 100644 --- a/cpu/ppc4xx/ndfc.c +++ b/cpu/ppc4xx/ndfc.c @@ -33,12 +33,13 @@  #if (CONFIG_COMMANDS & CFG_CMD_NAND) && !defined(CFG_NAND_LEGACY) && \  	(defined(CONFIG_440EP) || defined(CONFIG_440GR) ||	     \ -	 defined(CONFIG_440EPX) || defined(CONFIG_440GRX)) +	 defined(CONFIG_440EPX) || defined(CONFIG_440GRX) ||	     \ +	 defined(CONFIG_405EZ))  #include <nand.h>  #include <linux/mtd/ndfc.h>  #include <asm/processor.h> -#include <ppc440.h> +#include <ppc4xx.h>  static u8 hwctl = 0; @@ -176,8 +177,7 @@ int board_nand_init(struct nand_chip *nand)  	/*  	 * Setup EBC (CS0 only right now)  	 */ -	mtdcr(ebccfga, xbcfg); -	mtdcr(ebccfgd, 0xb8400000); +	mtebc(EBC0_CFG, 0xb8400000);  	mtebc(pb0cr, CFG_EBC_PB0CR);  	mtebc(pb0ap, CFG_EBC_PB0AP); diff --git a/include/configs/acadia.h b/include/configs/acadia.h index 35b6a519e..c72d9339e 100644 --- a/include/configs/acadia.h +++ b/include/configs/acadia.h @@ -34,7 +34,9 @@  #define CONFIG_ACADIA		1		/* Board is Acadia	*/  #define CONFIG_4xx		1		/* ... PPC4xx family	*/  #define CONFIG_405EZ		1		/* Specifc 405EZ support*/ -#define CONFIG_SYS_CLK_FREQ	66666666	/* external freq to pll	*/ +/* Detect Acadia PLL input clock automatically via CPLD bit		*/ +#define CONFIG_SYS_CLK_FREQ    ((in8(CFG_CPLD_BASE + 0) == 0x0c) ? \ +				66666666 : 33333000)  #define CONFIG_BOARD_EARLY_INIT_F 1		/* Call board_early_init_f */  #define CONFIG_MISC_INIT_F	1		/* Call misc_init_f	*/ @@ -224,16 +226,6 @@  #define CONFIG_USB_OHCI  #define CONFIG_USB_STORAGE -#if 0 /* test-only */ -#define TEST_ONLY_NAND -#endif - -#ifdef TEST_ONLY_NAND -#define CMD_NAND		CFG_CMD_NAND -#else -#define CMD_NAND		0 -#endif -  /* Partitions */  #define CONFIG_MAC_PARTITION  #define CONFIG_DOS_PARTITION @@ -252,7 +244,7 @@  			       CFG_CMD_I2C	|	\  			       CFG_CMD_IRQ	|	\  			       CFG_CMD_MII	|	\ -			       CMD_NAND		|	\ +			       CFG_CMD_NAND	|	\  			       CFG_CMD_NET	|	\  			       CFG_CMD_NFS	|	\  			       CFG_CMD_PCI	|	\ @@ -300,7 +292,6 @@   */  #define CFG_BOOTMAPSZ		(8 << 20)	/* Initial Memory map for Linux */ -#ifdef TEST_ONLY_NAND  /*-----------------------------------------------------------------------   * NAND FLASH   *----------------------------------------------------------------------*/ @@ -308,7 +299,6 @@  #define NAND_MAX_CHIPS		1  #define CFG_NAND_BASE		(CFG_NAND_ADDR + CFG_NAND_CS)  #define CFG_NAND_SELECT_DEVICE  1	/* nand driver supports mutipl. chips	*/ -#endif  /*-----------------------------------------------------------------------   * Cache Configuration @@ -322,7 +312,7 @@  /*-----------------------------------------------------------------------   * External Bus Controller (EBC) Setup   *----------------------------------------------------------------------*/ -#define CFG_NAND_CS		0		/* NAND chip connected to CSx	*/ +#define CFG_NAND_CS		3		/* NAND chip connected to CSx	*/  /* Memory Bank 0 (Flash) initialization						*/  #define CFG_EBC_PB0AP		0x03337200 @@ -358,7 +348,8 @@  /*-----------------------------------------------------------------------   * Definitions for GPIO_0 setup (PPC405EZ specific)   * - * GPIO0[0-3]	- External Bus Controller CS_4 - CS_7 Outputs + * GPIO0[0-2]	- External Bus Controller CS_4 - CS_6 Outputs + * GPIO0[3]	- NAND FLASH Controller CE3 (NFCE3) Output   * GPIO0[4]	- External Bus Controller Hold Input   * GPIO0[5]	- External Bus Controller Priority Input   * GPIO0[6]	- External Bus Controller HLDA Output @@ -376,10 +367,10 @@   */  #define CFG_GPIO0_TCR		0xC0000000  #define CFG_GPIO0_OSRL		0x50000000 -#define CFG_GPIO0_OSRH		0x00000055 +#define CFG_GPIO0_OSRH		0x02000055  #define CFG_GPIO0_ISR1L		0x00000000  #define CFG_GPIO0_ISR1H		0x00000055 -#define CFG_GPIO0_TSRL		0x00000000 +#define CFG_GPIO0_TSRL		0x02000000  #define CFG_GPIO0_TSRH		0x00000055  /*----------------------------------------------------------------------- diff --git a/include/ppc405.h b/include/ppc405.h index a2503a93d..fffae4dd1 100644 --- a/include/ppc405.h +++ b/include/ppc405.h @@ -547,8 +547,8 @@  #define sdrcfga (SDR_DCR_BASE+0x0)	/* ADDR */  #define sdrcfgd (SDR_DCR_BASE+0x1)	/* Data */ -#define mtsdr(reg, data) mtdcr(sdrcfga,reg);mtdcr(sdrcfgd,data) -#define mfsdr(reg, data) mtdcr(sdrcfga,reg);data = mfdcr(sdrcfgd) +#define mtsdr(reg, data)	do { mtdcr(sdrcfga,reg);mtdcr(sdrcfgd,data); } while (0) +#define mfsdr(reg, data)	do { mtdcr(sdrcfga,reg);data = mfdcr(sdrcfgd); } while (0)  #define sdrnand0	0x4000  #define sdrultra0	0x4040 @@ -593,8 +593,8 @@  /*   * Macro for accessing the indirect CPR register   */ -#define mtcpr(reg, data)  mtdcr(cprcfga,reg);mtdcr(cprcfgd,data) -#define mfcpr(reg, data)  mtdcr(cprcfga,reg);data = mfdcr(cprcfgd) +#define mtcpr(reg, data)	do { mtdcr(cprcfga,reg);mtdcr(cprcfgd,data); } while (0) +#define mfcpr(reg, data)	do { mtdcr(cprcfga,reg);data = mfdcr(cprcfgd); } while (0)  #define CPR_CLKUPD_ENPLLCH_EN  0x40000000     /* Enable CPR PLL Changes */  #define CPR_CLKUPD_ENDVCH_EN   0x20000000     /* Enable CPR Sys. Div. Changes */ |