diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/configs/CPU87.h | 683 | ||||
| -rw-r--r-- | include/configs/PM854.h | 430 | ||||
| -rw-r--r-- | include/linux/mtd/nand.h | 2 | ||||
| -rw-r--r-- | include/linux/mtd/nand_ids.h | 38 | 
4 files changed, 1135 insertions, 18 deletions
| diff --git a/include/configs/CPU87.h b/include/configs/CPU87.h new file mode 100644 index 000000000..6b1225844 --- /dev/null +++ b/include/configs/CPU87.h @@ -0,0 +1,683 @@ +/* + * (C) Copyright 2001-2005 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +/* + * board/config.h - configuration options, board specific + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +/* + * High Level Configuration Options + * (easy to change) + */ + +#define CONFIG_MPC8260		1	/* This is an MPC8260 CPU		*/ +#define CONFIG_CPU87		1	/* ...on a CPU87 board	*/ +#define CONFIG_PCI + +/* + * select serial console configuration + * + * if either CONFIG_CONS_ON_SMC or CONFIG_CONS_ON_SCC is selected, then + * CONFIG_CONS_INDEX must be set to the channel number (1-2 for SMC, 1-4 + * for SCC). + * + * if CONFIG_CONS_NONE is defined, then the serial console routines must + * defined elsewhere (for example, on the cogent platform, there are serial + * ports on the motherboard which are used for the serial console - see + * cogent/cma101/serial.[ch]). + */ +#undef	CONFIG_CONS_ON_SMC		/* define if console on SMC */ +#define CONFIG_CONS_ON_SCC		/* define if console on SCC */ +#undef	CONFIG_CONS_NONE		/* define if console on something else*/ +#define CONFIG_CONS_INDEX	1	/* which serial channel for console */ + +#if defined(CONFIG_CONS_NONE) || defined(CONFIG_CONS_USE_EXTC) +#define CONFIG_BAUDRATE		230400 +#else +#define CONFIG_BAUDRATE		9600 +#endif + +/* + * select ethernet configuration + * + * if either CONFIG_ETHER_ON_SCC or CONFIG_ETHER_ON_FCC is selected, then + * CONFIG_ETHER_INDEX must be set to the channel number (1-4 for SCC, 1-3 + * for FCC) + * + * if CONFIG_ETHER_NONE is defined, then either the ethernet routines must be + * defined elsewhere (as for the console), or CFG_CMD_NET must be removed + * from CONFIG_COMMANDS to remove support for networking. + * + */ +#undef	CONFIG_ETHER_ON_SCC		/* define if ether on SCC	*/ +#define CONFIG_ETHER_ON_FCC		/* define if ether on FCC	*/ +#undef	CONFIG_ETHER_NONE		/* define if ether on something else */ +#define CONFIG_ETHER_INDEX	1	/* which SCC/FCC channel for ethernet */ + +#define	CONFIG_HAS_ETH1		1 +#define	CONFIG_HAS_ETH2		1 + +#if defined(CONFIG_ETHER_ON_FCC) && (CONFIG_ETHER_INDEX == 1) + +/* + * - Rx-CLK is CLK11 + * - Tx-CLK is CLK12 + * - RAM for BD/Buffers is on the 60x Bus (see 28-13) + * - Enable Full Duplex in FSMR + */ +# define CFG_CMXFCR_MASK	(CMXFCR_FC1|CMXFCR_RF1CS_MSK|CMXFCR_TF1CS_MSK) +# define CFG_CMXFCR_VALUE	(CMXFCR_RF1CS_CLK11|CMXFCR_TF1CS_CLK12) +# define CFG_CPMFCR_RAMTYPE	0 +# define CFG_FCC_PSMR		(FCC_PSMR_FDE|FCC_PSMR_LPB) + +#elif defined(CONFIG_ETHER_ON_FCC) && (CONFIG_ETHER_INDEX == 2) + +/* + * - Rx-CLK is CLK13 + * - Tx-CLK is CLK14 + * - RAM for BD/Buffers is on the 60x Bus (see 28-13) + * - Enable Full Duplex in FSMR + */ +# define CFG_CMXFCR_MASK	(CMXFCR_FC2|CMXFCR_RF2CS_MSK|CMXFCR_TF2CS_MSK) +# define CFG_CMXFCR_VALUE	(CMXFCR_RF2CS_CLK13|CMXFCR_TF2CS_CLK14) +# define CFG_CPMFCR_RAMTYPE	0 +# define CFG_FCC_PSMR		(FCC_PSMR_FDE|FCC_PSMR_LPB) + +#endif /* CONFIG_ETHER_ON_FCC, CONFIG_ETHER_INDEX */ + +/* system clock rate (CLKIN) - equal to the 60x and local bus speed */ +#define CONFIG_8260_CLKIN	100000000	/* in Hz */ + +#define CONFIG_BOOTDELAY	5	/* autoboot after 5 seconds	*/ + +#undef	CONFIG_CLOCKS_IN_MHZ		 + +#define CONFIG_PREBOOT								\ +	"echo; "								\ +	"echo Type \"run flash_nfs\" to mount root filesystem over NFS; "	\ +	"echo" + +#undef	CONFIG_BOOTARGS +#define CONFIG_BOOTCOMMAND							\ +	"bootp; "								\ +	"setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(rootpath) "	\ +	"ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off; "	\ +	"bootm" + +/*----------------------------------------------------------------------- + * I2C/EEPROM/RTC configuration + */ +#define CONFIG_SOFT_I2C			/* Software I2C support enabled */ + +# define CFG_I2C_SPEED		50000 +# define CFG_I2C_SLAVE		0xFE +/* + * Software (bit-bang) I2C driver configuration + */ +#define I2C_PORT	3		/* Port A=0, B=1, C=2, D=3 */ +#define I2C_ACTIVE	(iop->pdir |=  0x00010000) +#define I2C_TRISTATE	(iop->pdir &= ~0x00010000) +#define I2C_READ	((iop->pdat & 0x00010000) != 0) +#define I2C_SDA(bit)	if(bit) iop->pdat |=  0x00010000; \ +			else	iop->pdat &= ~0x00010000 +#define I2C_SCL(bit)	if(bit) iop->pdat |=  0x00020000; \ +			else	iop->pdat &= ~0x00020000 +#define I2C_DELAY	udelay(5)	/* 1/4 I2C clock duration */ + +#define CONFIG_RTC_PCF8563 +#define CFG_I2C_RTC_ADDR	0x51 + +#undef	CONFIG_WATCHDOG			/* watchdog disabled		*/ + +/*----------------------------------------------------------------------- + * Disk-On-Chip configuration + */ + +#define CFG_MAX_DOC_DEVICE	1	/* Max number of DOC devices	*/ + +#define CFG_DOC_SUPPORT_2000 +#define CFG_DOC_SUPPORT_MILLENNIUM + +/*----------------------------------------------------------------------- + * Miscellaneous configuration options + */ + +#define CONFIG_LOADS_ECHO	1	/* echo on for serial download	*/ +#undef	CFG_LOADS_BAUD_CHANGE		/* don't allow baudrate change	*/ + +#define CONFIG_BOOTP_MASK	(CONFIG_BOOTP_DEFAULT|CONFIG_BOOTP_BOOTFILESIZE) + +#ifdef CONFIG_PCI +#define CONFIG_COMMANDS		(CONFIG_CMD_DFL | \ +				 CFG_CMD_BEDBUG | \ +				 CFG_CMD_DATE	| \ +				 CFG_CMD_DOC	| \ +				 CFG_CMD_EEPROM | \ +				 CFG_CMD_I2C	| \ +				 CFG_CMD_PCI) +#else	/* ! PCI */ +#define CONFIG_COMMANDS		(CONFIG_CMD_DFL | \ +				 CFG_CMD_BEDBUG | \ +				 CFG_CMD_DATE	| \ +				 CFG_CMD_DOC	| \ +				 CFG_CMD_EEPROM | \ +				 CFG_CMD_I2C	) +#endif	/* CONFIG_PCI */ + +/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ +#include <cmd_confdefs.h> + +/* + * Miscellaneous configurable options + */ +#define CFG_LONGHELP			/* undef to save memory		*/ +#define CFG_PROMPT	"=> "		/* Monitor Command Prompt	*/ +#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#define CFG_CBSIZE	1024		/* Console I/O Buffer Size	*/ +#else +#define CFG_CBSIZE	256		/* Console I/O Buffer Size	*/ +#endif +#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ +#define CFG_MAXARGS	16		/* max number of command args	*/ +#define CFG_BARGSIZE	CFG_CBSIZE	/* Boot Argument Buffer Size	*/ + +#define CFG_MEMTEST_START	0x0400000	/* memtest works on	*/ +#define CFG_MEMTEST_END 0x0C00000	/* 4 ... 12 MB in DRAM	*/ + +#define CFG_LOAD_ADDR	0x100000	/* default load address */ + +#define CFG_HZ		1000		/* decrementer freq: 1 ms ticks */ + +#define CFG_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200 } + +#define CFG_RESET_ADDRESS 0xFFF00100	/* "bad" address		*/ + +#define CONFIG_LOOPW + +/* + * For booting Linux, the board info and command line data + * have to be in the first 8 MB of memory, since this is + * the maximum mapped by the Linux kernel during initialization. + */ +#define CFG_BOOTMAPSZ		(8 << 20) /* Initial Memory map for Linux */ + +/*----------------------------------------------------------------------- + * Flash configuration + */ + +#define CFG_BOOTROM_BASE	0xFF800000 +#define CFG_BOOTROM_SIZE	0x00080000 +#define CFG_FLASH_BASE		0xFF000000 +#define CFG_FLASH_SIZE		0x00800000 + +/*----------------------------------------------------------------------- + * FLASH organization + */ +#define CFG_MAX_FLASH_BANKS	2	/* max num of memory banks	*/ +#define CFG_MAX_FLASH_SECT	135	/* max num of sects on one chip */ + +#define CFG_FLASH_ERASE_TOUT	240000	/* Flash Erase Timeout (in ms)	*/ +#define CFG_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (in ms)	*/ + +/*----------------------------------------------------------------------- + * Other areas to be mapped + */ + +/* CS3: Dual ported SRAM */ +#define CFG_DPSRAM_BASE		0x40000000 +#define CFG_DPSRAM_SIZE		0x00100000 + +/* CS4: DiskOnChip */ +#define CFG_DOC_BASE		0xF4000000 +#define CFG_DOC_SIZE		0x00100000 + +/* CS5: FDC37C78 controller */ +#define CFG_FDC37C78_BASE	0xF1000000 +#define CFG_FDC37C78_SIZE	0x00100000 + +/* CS6: Board configuration registers */ +#define CFG_BCRS_BASE		0xF2000000 +#define CFG_BCRS_SIZE		0x00010000 + +/* CS7: VME Extended Access Range */ +#define CFG_VMEEAR_BASE		0x60000000 +#define CFG_VMEEAR_SIZE		0x01000000 + +/* CS8: VME Standard Access Range */ +#define CFG_VMESAR_BASE		0xFE000000 +#define CFG_VMESAR_SIZE		0x01000000 + +/* CS9: VME Short I/O Access Range */ +#define CFG_VMESIOAR_BASE	0xFD000000 +#define CFG_VMESIOAR_SIZE	0x01000000 + +/*----------------------------------------------------------------------- + * Hard Reset Configuration Words + * + * if you change bits in the HRCW, you must also change the CFG_* + * defines for the various registers affected by the HRCW e.g. changing + * HRCW_DPPCxx requires you to also change CFG_SIUMCR. + */ +#if defined(CONFIG_BOOT_ROM) +#define CFG_HRCW_MASTER		(HRCW_CIP | HRCW_ISB100 | HRCW_BMS | \ +				 HRCW_BPS01 | HRCW_CS10PC01) +#else +#define CFG_HRCW_MASTER		(HRCW_CIP | HRCW_ISB100 | HRCW_BMS | HRCW_CS10PC01) +#endif + +/* no slaves so just fill with zeros */ +#define CFG_HRCW_SLAVE1		0 +#define CFG_HRCW_SLAVE2		0 +#define CFG_HRCW_SLAVE3		0 +#define CFG_HRCW_SLAVE4		0 +#define CFG_HRCW_SLAVE5		0 +#define CFG_HRCW_SLAVE6		0 +#define CFG_HRCW_SLAVE7		0 + +/*----------------------------------------------------------------------- + * Internal Memory Mapped Register + */ +#define CFG_IMMR		0xF0000000 + +/*----------------------------------------------------------------------- + * Definitions for initial stack pointer and data area (in DPRAM) + */ +#define CFG_INIT_RAM_ADDR	CFG_IMMR +#define CFG_INIT_RAM_END	0x4000	/* End of used area in DPRAM	*/ +#define CFG_GBL_DATA_SIZE	128 /* size in bytes reserved for initial data*/ +#define CFG_GBL_DATA_OFFSET	(CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE) +#define CFG_INIT_SP_OFFSET	CFG_GBL_DATA_OFFSET + +/*----------------------------------------------------------------------- + * Start addresses for the final memory configuration + * (Set up by the startup code) + * Please note that CFG_SDRAM_BASE _must_ start at 0 + * + * 60x SDRAM is mapped at CFG_SDRAM_BASE. + */ +#define CFG_SDRAM_BASE		0x00000000 +#define CFG_SDRAM_MAX_SIZE	0x08000000	/* max. 128 MB		*/ +#define CFG_MONITOR_BASE	TEXT_BASE +#define CFG_MONITOR_LEN		(256 << 10)	/* Reserve 256 kB for Monitor */ +#define CFG_MALLOC_LEN		(128 << 10)	/* Reserve 128 kB for malloc()*/ + +#if (CFG_MONITOR_BASE < CFG_FLASH_BASE) +# define CFG_RAMBOOT +#endif + +#ifdef	CONFIG_PCI +#define CONFIG_PCI_PNP +#define CONFIG_EEPRO100 +#define CFG_RX_ETH_BUFFER	8		/* use 8 rx buffer on eepro100	*/ +#endif + +#if 0 +/* environment is in Flash */ +#define CFG_ENV_IS_IN_FLASH	1 +#ifdef CONFIG_BOOT_ROM +# define CFG_ENV_ADDR		(CFG_FLASH_BASE+0x70000) +# define CFG_ENV_SIZE		0x10000 +# define CFG_ENV_SECT_SIZE	0x10000 +#endif +#else +/* environment is in EEPROM */ +#define CFG_ENV_IS_IN_EEPROM	1 +#define CFG_I2C_EEPROM_ADDR	0x58	/* EEPROM X24C16		*/ +#define CFG_I2C_EEPROM_ADDR_LEN 1 +/* mask of address bits that overflow into the "EEPROM chip address"	*/ +#define CFG_I2C_EEPROM_ADDR_OVERFLOW	0x07 +#define CFG_EEPROM_PAGE_WRITE_BITS	4 +#define CFG_EEPROM_PAGE_WRITE_DELAY_MS	10	/* and takes up to 10 msec */ +#define CFG_ENV_OFFSET		512 +#define CFG_ENV_SIZE		(2048 - 512) +#endif + +/* + * Internal Definitions + * + * Boot Flags + */ +#define BOOTFLAG_COLD		0x01	/* Normal Power-On: Boot from FLASH*/ +#define BOOTFLAG_WARM		0x02	/* Software reboot		   */ + + +/*----------------------------------------------------------------------- + * Cache Configuration + */ +#define CFG_CACHELINE_SIZE	32	/* For MPC8260 CPU		*/ +#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +# define CFG_CACHELINE_SHIFT	5	/* log base 2 of the above value */ +#endif + +/*----------------------------------------------------------------------- + * HIDx - Hardware Implementation-dependent Registers			 2-11 + *----------------------------------------------------------------------- + * HID0 also contains cache control - initially enable both caches and + * invalidate contents, then the final state leaves only the instruction + * cache enabled. Note that Power-On and Hard reset invalidate the caches, + * but Soft reset does not. + * + * HID1 has only read-only information - nothing to set. + */ +#define CFG_HID0_INIT	(HID0_ICE|HID0_DCE|HID0_ICFI|\ +			 HID0_DCI|HID0_IFEM|HID0_ABE) +#define CFG_HID0_FINAL	(HID0_IFEM|HID0_ABE) +#define CFG_HID2	0 + +/*----------------------------------------------------------------------- + * RMR - Reset Mode Register					 5-5 + *----------------------------------------------------------------------- + * turn on Checkstop Reset Enable + */ +#define CFG_RMR		RMR_CSRE + +/*----------------------------------------------------------------------- + * BCR - Bus Configuration					 4-25 + *----------------------------------------------------------------------- + */ +#define BCR_APD01	0x10000000 +#define CFG_BCR		(BCR_APD01|BCR_ETM|BCR_LETM)	/* 8260 mode */ + +/*----------------------------------------------------------------------- + * SIUMCR - SIU Module Configuration				 4-31 + *----------------------------------------------------------------------- + */ +#define CFG_SIUMCR	(SIUMCR_BBD|SIUMCR_DPPC00|SIUMCR_APPC10|\ +			 SIUMCR_CS10PC01|SIUMCR_BCTLC10) + +/*----------------------------------------------------------------------- + * SYPCR - System Protection Control				 4-35 + * SYPCR can only be written once after reset! + *----------------------------------------------------------------------- + * Watchdog & Bus Monitor Timer max, 60x Bus Monitor enable + */ +#if defined(CONFIG_WATCHDOG) +#define CFG_SYPCR	(SYPCR_SWTC|SYPCR_BMT|SYPCR_PBME|SYPCR_LBME|\ +			 SYPCR_SWRI|SYPCR_SWP|SYPCR_SWE) +#else +#define CFG_SYPCR	(SYPCR_SWTC|SYPCR_BMT|SYPCR_PBME|SYPCR_LBME|\ +			 SYPCR_SWRI|SYPCR_SWP) +#endif /* CONFIG_WATCHDOG */ + +/*----------------------------------------------------------------------- + * TMCNTSC - Time Counter Status and Control			 4-40 + *----------------------------------------------------------------------- + * Clear once per Second and Alarm Interrupt Status, Set 32KHz timersclk, + * and enable Time Counter + */ +#define CFG_TMCNTSC	(TMCNTSC_SEC|TMCNTSC_ALR|TMCNTSC_TCF|TMCNTSC_TCE) + +/*----------------------------------------------------------------------- + * PISCR - Periodic Interrupt Status and Control		 4-42 + *----------------------------------------------------------------------- + * Clear Periodic Interrupt Status, Set 32KHz timersclk, and enable + * Periodic timer + */ +#define CFG_PISCR	(PISCR_PS|PISCR_PTF|PISCR_PTE) + +/*----------------------------------------------------------------------- + * SCCR - System Clock Control					 9-8 + *----------------------------------------------------------------------- + * Ensure DFBRG is Divide by 16 + */ +#define CFG_SCCR	SCCR_DFBRG01 + +/*----------------------------------------------------------------------- + * RCCR - RISC Controller Configuration				13-7 + *----------------------------------------------------------------------- + */ +#define CFG_RCCR	0 + +#define CFG_MIN_AM_MASK 0xC0000000 + +/* + * we use the same values for 32 MB and 128 MB SDRAM + * refresh rate = 7.68 uS (100 MHz Bus Clock) + */ + +/*----------------------------------------------------------------------- + * MPTPR - Memory Refresh Timer Prescaler Register		10-18 + *----------------------------------------------------------------------- + */ +#define CFG_MPTPR	0x2000 + +/*----------------------------------------------------------------------- + * PSRT - Refresh Timer Register				10-16 + *----------------------------------------------------------------------- + */ +#define CFG_PSRT	0x16 + +/*----------------------------------------------------------------------- + * PSRT - SDRAM Mode Register					10-10 + *----------------------------------------------------------------------- + */ + +	/* SDRAM initialization values for 8-column chips +	 */ +#define CFG_OR2_8COL	(CFG_MIN_AM_MASK		|\ +			 ORxS_BPD_4			|\ +			 ORxS_ROWST_PBI0_A9		|\ +			 ORxS_NUMR_12) + +#define CFG_PSDMR_8COL	(PSDMR_SDAM_A13_IS_A5		|\ +			 PSDMR_BSMA_A14_A16		|\ +			 PSDMR_SDA10_PBI0_A10		|\ +			 PSDMR_RFRC_7_CLK		|\ +			 PSDMR_PRETOACT_2W		|\ +			 PSDMR_ACTTORW_2W		|\ +			 PSDMR_LDOTOPRE_1C		|\ +			 PSDMR_WRC_1C			|\ +			 PSDMR_CL_2) + +	/* SDRAM initialization values for 9-column chips +	 */ +#define CFG_OR2_9COL	(CFG_MIN_AM_MASK		|\ +			 ORxS_BPD_4			|\ +			 ORxS_ROWST_PBI0_A7		|\ +			 ORxS_NUMR_13) + +#define CFG_PSDMR_9COL	(PSDMR_SDAM_A14_IS_A5		|\ +			 PSDMR_BSMA_A13_A15		|\ +			 PSDMR_SDA10_PBI0_A9		|\ +			 PSDMR_RFRC_7_CLK		|\ +			 PSDMR_PRETOACT_2W		|\ +			 PSDMR_ACTTORW_2W		|\ +			 PSDMR_LDOTOPRE_1C		|\ +			 PSDMR_WRC_1C			|\ +			 PSDMR_CL_2) + +/* + * Init Memory Controller: + * + * Bank Bus	Machine PortSz	Device + * ---- ---	------- ------	------ + *  0	60x	GPCM	8  bit	Boot ROM + *  1	60x	GPCM	64 bit	FLASH + *  2	60x	SDRAM	64 bit	SDRAM + * + */ + +#define CFG_MRS_OFFS	0x00000000 + +#ifdef CONFIG_BOOT_ROM +/* Bank 0 - Boot ROM + */ +#define CFG_BR0_PRELIM	((CFG_BOOTROM_BASE & BRx_BA_MSK)|\ +			 BRx_PS_8			|\ +			 BRx_MS_GPCM_P			|\ +			 BRx_V) + +#define CFG_OR0_PRELIM	(P2SZ_TO_AM(CFG_BOOTROM_SIZE)	|\ +			 ORxG_CSNT			|\ +			 ORxG_ACS_DIV1			|\ +			 ORxG_SCY_5_CLK			|\ +			 ORxU_EHTR_8IDLE) + +/* Bank 1 - FLASH + */ +#define CFG_BR1_PRELIM	((CFG_FLASH_BASE & BRx_BA_MSK)	|\ +			 BRx_PS_64			|\ +			 BRx_MS_GPCM_P			|\ +			 BRx_V) + +#define CFG_OR1_PRELIM	(P2SZ_TO_AM(CFG_FLASH_SIZE)	|\ +			 ORxG_CSNT			|\ +			 ORxG_ACS_DIV1			|\ +			 ORxG_SCY_5_CLK			|\ +			 ORxU_EHTR_8IDLE) + +#else /* CONFIG_BOOT_ROM */ +/* Bank 0 - FLASH + */ +#define CFG_BR0_PRELIM	((CFG_FLASH_BASE & BRx_BA_MSK)	|\ +			 BRx_PS_64			|\ +			 BRx_MS_GPCM_P			|\ +			 BRx_V) + +#define CFG_OR0_PRELIM	(P2SZ_TO_AM(CFG_FLASH_SIZE)	|\ +			 ORxG_CSNT			|\ +			 ORxG_ACS_DIV1			|\ +			 ORxG_SCY_5_CLK			|\ +			 ORxU_EHTR_8IDLE) + +/* Bank 1 - Boot ROM + */ +#define CFG_BR1_PRELIM	((CFG_BOOTROM_BASE & BRx_BA_MSK)|\ +			 BRx_PS_8			|\ +			 BRx_MS_GPCM_P			|\ +			 BRx_V) + +#define CFG_OR1_PRELIM	(P2SZ_TO_AM(CFG_BOOTROM_SIZE)	|\ +			 ORxG_CSNT			|\ +			 ORxG_ACS_DIV1			|\ +			 ORxG_SCY_5_CLK			|\ +			 ORxU_EHTR_8IDLE) + +#endif /* CONFIG_BOOT_ROM */ + + +/* Bank 2 - 60x bus SDRAM + */ +#ifndef CFG_RAMBOOT +#define CFG_BR2_PRELIM	((CFG_SDRAM_BASE & BRx_BA_MSK)	|\ +			 BRx_PS_64			|\ +			 BRx_MS_SDRAM_P			|\ +			 BRx_V) + +#define CFG_OR2_PRELIM	 CFG_OR2_9COL + +#define CFG_PSDMR	 CFG_PSDMR_9COL +#endif /* CFG_RAMBOOT */ + +/* Bank 3 - Dual Ported SRAM + */ +#define CFG_BR3_PRELIM	((CFG_DPSRAM_BASE & BRx_BA_MSK) |\ +			 BRx_PS_16			|\ +			 BRx_MS_GPCM_P			|\ +			 BRx_V) + +#define CFG_OR3_PRELIM	(P2SZ_TO_AM(CFG_DPSRAM_SIZE)	|\ +			 ORxG_CSNT			|\ +			 ORxG_ACS_DIV1			|\ +			 ORxG_SCY_7_CLK			|\ +			 ORxG_SETA) + +/* Bank 4 - DiskOnChip + */ +#define CFG_BR4_PRELIM	((CFG_DOC_BASE & BRx_BA_MSK)	|\ +			 BRx_PS_8			|\ +			 BRx_MS_GPCM_P			|\ +			 BRx_V) + +#define CFG_OR4_PRELIM	(P2SZ_TO_AM(CFG_DOC_SIZE)	|\ +			 ORxG_CSNT			|\ +			 ORxG_ACS_DIV2			|\ +			 ORxG_SCY_9_CLK			|\ +			 ORxU_EHTR_8IDLE) + +/* Bank 5 - FDC37C78 controller + */ +#define CFG_BR5_PRELIM	((CFG_FDC37C78_BASE & BRx_BA_MSK) |\ +			 BRx_PS_8			  |\ +			 BRx_MS_GPCM_P			  |\ +			 BRx_V) + +#define CFG_OR5_PRELIM	(P2SZ_TO_AM(CFG_FDC37C78_SIZE)	  |\ +			 ORxG_ACS_DIV2			  |\ +			 ORxG_SCY_10_CLK		  |\ +			 ORxU_EHTR_8IDLE) + +/* Bank 6 - Board control registers + */ +#define CFG_BR6_PRELIM	((CFG_BCRS_BASE & BRx_BA_MSK)	|\ +			 BRx_PS_8			|\ +			 BRx_MS_GPCM_P			|\ +			 BRx_V) + +#define CFG_OR6_PRELIM	(P2SZ_TO_AM(CFG_BCRS_SIZE)	|\ +			 ORxG_CSNT			|\ +			 ORxG_SCY_7_CLK) + +/* Bank 7 - VME Extended Access Range + */ +#define CFG_BR7_PRELIM	((CFG_VMEEAR_BASE & BRx_BA_MSK) |\ +			 BRx_PS_32			|\ +			 BRx_MS_GPCM_P			|\ +			 BRx_V) + +#define CFG_OR7_PRELIM	(P2SZ_TO_AM(CFG_VMEEAR_SIZE)	|\ +			 ORxG_CSNT			|\ +			 ORxG_ACS_DIV1			|\ +			 ORxG_SCY_7_CLK			|\ +			 ORxG_SETA) + +/* Bank 8 - VME Standard Access Range + */ +#define CFG_BR8_PRELIM	((CFG_VMESAR_BASE & BRx_BA_MSK) |\ +			 BRx_PS_16			|\ +			 BRx_MS_GPCM_P			|\ +			 BRx_V) + +#define CFG_OR8_PRELIM	(P2SZ_TO_AM(CFG_VMESAR_SIZE)	|\ +			 ORxG_CSNT			|\ +			 ORxG_ACS_DIV1			|\ +			 ORxG_SCY_7_CLK			|\ +			 ORxG_SETA) + +/* Bank 9 - VME Short I/O Access Range + */ +#define CFG_BR9_PRELIM	((CFG_VMESIOAR_BASE & BRx_BA_MSK) |\ +			 BRx_PS_16			  |\ +			 BRx_MS_GPCM_P			  |\ +			 BRx_V) + +#define CFG_OR9_PRELIM	(P2SZ_TO_AM(CFG_VMESIOAR_SIZE)	  |\ +			 ORxG_CSNT			  |\ +			 ORxG_ACS_DIV1			  |\ +			 ORxG_SCY_7_CLK			  |\ +			 ORxG_SETA) + +#endif	/* __CONFIG_H */ diff --git a/include/configs/PM854.h b/include/configs/PM854.h new file mode 100644 index 000000000..bf7eb8e97 --- /dev/null +++ b/include/configs/PM854.h @@ -0,0 +1,430 @@ +/* + * Copyright 2004 Freescale Semiconductor. + * (C) Copyright 2002,2003 Motorola,Inc. + * Xianghua Xiao <X.Xiao@motorola.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +/* + * pm854 board configuration file + * + * Please refer to doc/README.mpc85xx for more info. + * + * Make sure you change the MAC address and other network params first, + * search for CONFIG_ETHADDR, CONFIG_SERVERIP, etc in this file. + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +/* High Level Configuration Options */ +#define CONFIG_BOOKE		1	/* BOOKE */ +#define CONFIG_E500		1	/* BOOKE e500 family */ +#define CONFIG_MPC85xx		1	/* MPC8540/MPC8560 */ +#define CONFIG_MPC8540		1	/* MPC8540 specific */ +#define CONFIG_PM854		1	/* PM854 board specific */ + +#define CONFIG_PCI +#define CONFIG_TSEC_ENET		/* tsec ethernet support */ +#define CONFIG_ENV_OVERWRITE +#undef	CONFIG_SPD_EEPROM		/* do not use SPD EEPROM for DDR setup*/ +#define CONFIG_DDR_ECC			/* only for ECC DDR module */ +#define CONFIG_DDR_DLL			/* possible DLL fix needed */ +#define CONFIG_DDR_2T_TIMING		/* Sets the 2T timing bit */ + + +/* + * sysclk for MPC85xx + * + * Two valid values are: + *    33000000 + *    66000000 + * + * Most PCI cards are still 33Mhz, so in the presence of PCI, 33MHz + * is likely the desired value here, so that is now the default. + * The board, however, can run at 66MHz.  In any event, this value + * must match the settings of some switches.  Details can be found + * in the README.mpc85xxads. + */ + +#ifndef CONFIG_SYS_CLK_FREQ +#define CONFIG_SYS_CLK_FREQ	66000000 +#endif + + +/* + * These can be toggled for performance analysis, otherwise use default. + */ +#define CONFIG_L2_CACHE			/* toggle L2 cache */ +#define CONFIG_BTB			/* toggle branch predition */ +#define CONFIG_ADDR_STREAMING		/* toggle addr streaming */ + +#define CONFIG_BOARD_EARLY_INIT_F	1	/* Call board_pre_init */ + +#undef	CFG_DRAM_TEST			/* memory test, takes time */ +#define CFG_MEMTEST_START	0x00200000	/* memtest region */ +#define CFG_MEMTEST_END		0x00400000 + + +/* + * Base addresses -- Note these are effective addresses where the + * actual resources get mapped (not physical addresses) + */ +#define CFG_CCSRBAR_DEFAULT	0xff700000	/* CCSRBAR Default */ +#define CFG_CCSRBAR		0xe0000000	/* relocated CCSRBAR */ +#define CFG_IMMR		CFG_CCSRBAR	/* PQII uses CFG_IMMR */ + + +/* + * DDR Setup + */ +#define CFG_DDR_SDRAM_BASE	0x00000000	/* DDR is system memory*/ +#define CFG_SDRAM_BASE		CFG_DDR_SDRAM_BASE + +#if defined(CONFIG_SPD_EEPROM) +    /* +     * Determine DDR configuration from I2C interface. +     */ +    #define SPD_EEPROM_ADDRESS	0x51		/* DDR DIMM */ + +#else +    /* +     * Manually set up DDR parameters +     */ +    #define CFG_SDRAM_SIZE	256		/* DDR is 256 MB */ +    #define CFG_DDR_CS0_BNDS	0x0000000f	/* 0-256MB */ +    #define CFG_DDR_CS0_CONFIG	0x80000102 +    #define CFG_DDR_TIMING_1	0x47444321 +    #define CFG_DDR_TIMING_2	0x00000800	/* P9-45,may need tuning */ +    #define CFG_DDR_CONTROL	0xc2008000	/* unbuffered,no DYN_PWR */ +    #define CFG_DDR_MODE	0x00000062	/* DLL,normal,seq,4/2.5 */ +    #define CFG_DDR_INTERVAL	0x045b0100	/* autocharge,no open page */ +#endif + + +/* + * SDRAM on the Local Bus + */ +#define CFG_LBC_SDRAM_BASE	0xf0000000	/* Localbus SDRAM */ +#define CFG_LBC_SDRAM_SIZE	0		/* LBC SDRAM is 0 MB */ + +#define CFG_FLASH_BASE		0xfe000000	/* start of 32 MB FLASH */ +#define CFG_BR0_PRELIM		0xfe001801	/* port size 32bit */ + +#define CFG_OR0_PRELIM		0xfe006f67	/* 32 MB Flash */ +#define CFG_MAX_FLASH_BANKS	1		/* number of banks */ +#define CFG_MAX_FLASH_SECT	128		/* sectors per device */ +#undef	CFG_FLASH_CHECKSUM +#define CFG_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */ +#define CFG_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */ + +#define CFG_MONITOR_BASE	TEXT_BASE	/* start of monitor */ + + +#if (CFG_MONITOR_BASE < CFG_FLASH_BASE) +#define CFG_RAMBOOT +#else +#undef	CFG_RAMBOOT +#endif + + +#undef CONFIG_CLOCKS_IN_MHZ + + +/* + * Local Bus Definitions + */ +  +#define CFG_LBC_LCRR		0x00030004    /* LB clock ratio reg */ +#define CFG_LBC_LBCR		0x00000000    /* LB config reg */ +#define CFG_LBC_LSRT		0x20000000    /* LB sdram refresh timer */ +#define CFG_LBC_MRTPR		0x20000000    /* LB refresh timer prescal*/ +  + +#define CONFIG_L1_INIT_RAM +#define CFG_INIT_RAM_LOCK	1 +#define CFG_INIT_RAM_ADDR	0xe4010000	/* Initial RAM address */ +#define CFG_INIT_RAM_END	0x4000		/* End of used area in RAM */ + +#define CFG_GBL_DATA_SIZE	128		/* num bytes initial data */ +#define CFG_GBL_DATA_OFFSET	(CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE) +#define CFG_INIT_SP_OFFSET	CFG_GBL_DATA_OFFSET + +#define CFG_MONITOR_LEN		(512 * 1024)	/* Reserve 512 kB for Mon */ +#define CFG_MALLOC_LEN		(128 * 1024)	/* Reserved for malloc */ + +/* Serial Port */ +#define CONFIG_CONS_INDEX     1 +#undef	CONFIG_SERIAL_SOFTWARE_FIFO +#define CFG_NS16550 +#define CFG_NS16550_SERIAL +#define CFG_NS16550_REG_SIZE	1 +#define CFG_NS16550_CLK		get_bus_freq(0) + +#define CFG_BAUDRATE_TABLE  \ +	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400,115200} + +#define CFG_NS16550_COM1	(CFG_CCSRBAR+0x4500) +#define CFG_NS16550_COM2	(CFG_CCSRBAR+0x4600) + +/* Use the HUSH parser */ +#define CFG_HUSH_PARSER +#ifdef	CFG_HUSH_PARSER +#define CFG_PROMPT_HUSH_PS2 "> " +#endif + +/* I2C */ +#define	 CONFIG_HARD_I2C		/* I2C with hardware support*/ +#undef	CONFIG_SOFT_I2C			/* I2C bit-banged */ +#define CFG_I2C_SPEED		400000	/* I2C speed and slave address */ +#define CFG_I2C_SLAVE		0x7F +#define CFG_I2C_NOPROBES	{0x69}	/* Don't probe these addrs */ + +/* + * EEPROM configuration + */ +#define CFG_I2C_EEPROM_ADDR		0x58 +#define CFG_I2C_EEPROM_ADDR_LEN		1 +#define CFG_EEPROM_PAGE_WRITE_BITS	4 +#define CFG_EEPROM_PAGE_WRITE_DELAY_MS	10 + +/* + * RTC configuration + */ +#define CONFIG_RTC_PCF8563 +#define CFG_I2C_RTC_ADDR		0x51 + +/* RapidIO MMU */ +#define CFG_RIO_MEM_BASE	0xc0000000	/* base address */ +#define CFG_RIO_MEM_PHYS	CFG_RIO_MEM_BASE +#define CFG_RIO_MEM_SIZE	0x20000000	/* 128M */ + +/* + * General PCI + * Addresses are mapped 1-1. + */ +#define CFG_PCI1_MEM_BASE	0x80000000 +#define CFG_PCI1_MEM_PHYS	CFG_PCI1_MEM_BASE +#define CFG_PCI1_MEM_SIZE	0x20000000	/* 512M */ +#define CFG_PCI1_IO_BASE	0xe2000000 +#define CFG_PCI1_IO_PHYS	CFG_PCI1_IO_BASE +#define CFG_PCI1_IO_SIZE	0x1000000	/* 16M */ + +#if defined(CONFIG_PCI) + +#define CONFIG_NET_MULTI +#define CONFIG_PCI_PNP			/* do pci plug-and-play */ + +#undef CONFIG_EEPRO100 +#undef CONFIG_TULIP + +#if !defined(CONFIG_PCI_PNP) +    #define PCI_ENET0_IOADDR	0xe0000000 +    #define PCI_ENET0_MEMADDR	0xe0000000 +    #define PCI_IDSEL_NUMBER	0x0c	/* slot0->3(IDSEL)=12->15 */ +#endif + +#undef CONFIG_PCI_SCAN_SHOW		/* show pci devices on startup */ +#define CFG_PCI_SUBSYS_VENDORID 0x1057	/* Motorola */ + +#endif	/* CONFIG_PCI */ + + +#if defined(CONFIG_TSEC_ENET) + +#ifndef CONFIG_NET_MULTI +#define CONFIG_NET_MULTI	1 +#endif + +#define CONFIG_MII		1	/* MII PHY management */ +#define CONFIG_MPC85XX_TSEC1	1 +#define CONFIG_MPC85XX_TSEC2	1 +#define TSEC1_PHY_ADDR		2 +#define TSEC2_PHY_ADDR		3 +#define TSEC1_PHYIDX		0 +#define TSEC2_PHYIDX		0 + +#define CONFIG_MPC85XX_FEC	1 +#define FEC_PHY_ADDR		1 +#define FEC_PHYIDX		0 + +#define CONFIG_ETHPRIME		"MOTO ENET0" + +#define	CONFIG_HAS_ETH1		1 +#define	CONFIG_HAS_ETH2		1 + +#endif	/* CONFIG_TSEC_ENET */ + + +/* + * Environment + */ +#ifndef CFG_RAMBOOT +  #define CFG_ENV_IS_IN_FLASH	1 +  #define CFG_ENV_ADDR		(CFG_MONITOR_BASE - 0x80000) +  #define CFG_ENV_SECT_SIZE	0x40000 /* 256K(one sector) for env */ +  #define CFG_ENV_SIZE		0x2000 +#else +  #define CFG_NO_FLASH		1	/* Flash is not usable now */ +  #define CFG_ENV_IS_NOWHERE	1	/* Store ENV in memory only */ +  #define CFG_ENV_ADDR		(CFG_MONITOR_BASE - 0x1000) +  #define CFG_ENV_SIZE		0x2000 +#endif + +#define CONFIG_LOADS_ECHO	1	/* echo on for serial download */ +#define CFG_LOADS_BAUD_CHANGE	1	/* allow baudrate change */ + +#if defined(CFG_RAMBOOT) +  #if defined(CONFIG_PCI) +    #define  CONFIG_COMMANDS	((CONFIG_CMD_DFL	\ +				 | CFG_CMD_PING		\ +				 | CFG_CMD_PCI		\ +				 | CFG_CMD_I2C)		\ +				&			\ +				 ~(CFG_CMD_ENV		\ +				  | CFG_CMD_LOADS)) +  #else +    #define  CONFIG_COMMANDS	((CONFIG_CMD_DFL	\ +				 | CFG_CMD_PING		\ +				 | CFG_CMD_I2C)		\ +				&			\ +				 ~(CFG_CMD_ENV		\ +				  | CFG_CMD_LOADS)) +  #endif +#else +  #if defined(CONFIG_PCI) +    #define  CONFIG_COMMANDS	(CONFIG_CMD_DFL		\ +				| CFG_CMD_EEPROM	\ +				| CFG_CMD_DATE		\ +				| CFG_CMD_PCI		\ +				| CFG_CMD_PING		\ +				| CFG_CMD_I2C) +  #else +    #define  CONFIG_COMMANDS	(CONFIG_CMD_DFL		\ +				| CFG_CMD_EEPROM	\ +				| CFG_CMD_DATE		\ +				| CFG_CMD_PING		\ +				| CFG_CMD_I2C) +  #endif +#endif + +#include <cmd_confdefs.h> + +#undef CONFIG_WATCHDOG			/* watchdog disabled */ + +/* + * Miscellaneous configurable options + */ +#define CFG_LONGHELP			/* undef to save memory */ +#define CFG_LOAD_ADDR	0x2000000	/* default load address */ +#define CFG_PROMPT	"=> "		/* Monitor Command Prompt */ + +#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +    #define CFG_CBSIZE	1024		/* Console I/O Buffer Size */ +#else +    #define CFG_CBSIZE	256		/* Console I/O Buffer Size */ +#endif + +#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ +#define CFG_MAXARGS	16		/* max number of command args */ +#define CFG_BARGSIZE	CFG_CBSIZE	/* Boot Argument Buffer Size */ +#define CFG_HZ		1000		/* decrementer freq: 1ms ticks */ +#define CONFIG_LOOPW + +/* + * For booting Linux, the board info and command line data + * have to be in the first 8 MB of memory, since this is + * the maximum mapped by the Linux kernel during initialization. + */ +#define CFG_BOOTMAPSZ	(8 << 20)	/* Initial Memory map for Linux*/ + +/* Cache Configuration */ +#define CFG_DCACHE_SIZE		32768 +#define CFG_CACHELINE_SIZE	32 +#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#define CFG_CACHELINE_SHIFT	5	/*log base 2 of the above value*/ +#endif + +/* + * Internal Definitions + * + * Boot Flags + */ +#define BOOTFLAG_COLD	0x01		/* Normal Power-On: Boot from FLASH */ +#define BOOTFLAG_WARM	0x02		/* Software reboot */ + +#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#define CONFIG_KGDB_BAUDRATE	230400	/* speed to run kgdb serial port */ +#define CONFIG_KGDB_SER_INDEX	2	/* which serial port to use */ +#endif + + +/* + * Environment Configuration + */ + +/* The mac addresses for all ethernet interface */ +#if defined(CONFIG_TSEC_ENET) +#define CONFIG_ETHADDR	 00:40:42:01:00:00 +#define CONFIG_ETH1ADDR	 00:40:42:01:00:01 +#define CONFIG_ETH2ADDR	 00:40:42:01:00:02 +#endif + +#define CONFIG_IPADDR	 192.168.0.103 + +#define CONFIG_HOSTNAME		PM854 +#define CONFIG_ROOTPATH		/opt/eldk30/ppc_82xx +#define CONFIG_BOOTFILE		uImage + +#define CONFIG_SERVERIP	 192.168.0.54 +#define CONFIG_GATEWAYIP 192.168.0.1 +#define CONFIG_NETMASK	 255.255.255.0 + +#define CONFIG_LOADADDR	 200000 /* default location for tftp and bootm */ + +#define CONFIG_BOOTDELAY 5	/* -1 disables auto-boot */ +#undef	CONFIG_BOOTARGS		/* the boot command will set bootargs */ + +#define CONFIG_BAUDRATE 9600 + +#define CONFIG_EXTRA_ENV_SETTINGS					\ +   "netdev=eth0\0"							\ +   "consoledev=ttyS0\0"							\ +   "ramdiskaddr=400000\0"						\ +   "ramdiskfile=uRamdisk\0" + +#define CONFIG_NFSBOOTCOMMAND						\ +   "setenv bootargs root=/dev/nfs rw "					\ +      "nfsroot=$serverip:$rootpath "					\ +      "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \ +      "console=$consoledev,$baudrate $othbootargs;"			\ +   "tftp $loadaddr $bootfile;"						\ +   "bootm $loadaddr" + +#define CONFIG_RAMBOOTCOMMAND \ +   "setenv bootargs root=/dev/ram rw "					\ +      "console=$consoledev,$baudrate $othbootargs;"			\ +   "tftp $ramdiskaddr $ramdiskfile;"					\ +   "tftp $loadaddr $bootfile;"						\ +   "bootm $loadaddr $ramdiskaddr" + +#define CONFIG_BOOTCOMMAND  CONFIG_NFSBOOTCOMMAND + +#endif	/* __CONFIG_H */ diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index af2033c5b..523690495 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h @@ -122,6 +122,7 @@ struct nand_chip {  	uint oobblock;  /* Size of OOB blocks (e.g. 512) */  	uint oobsize;   /* Amount of OOB data per block (e.g. 16) */  	uint eccsize; +	int bus16;  };  /* @@ -165,6 +166,7 @@ struct nand_flash_dev {  	char page256;  	char pageadrlen;  	unsigned long erasesize; +	int bus16;  };  /* diff --git a/include/linux/mtd/nand_ids.h b/include/linux/mtd/nand_ids.h index a73bff080..a3d0363a2 100644 --- a/include/linux/mtd/nand_ids.h +++ b/include/linux/mtd/nand_ids.h @@ -29,24 +29,26 @@  #define __LINUX_MTD_NAND_IDS_H  static struct nand_flash_dev nand_flash_ids[] = { -	{"Toshiba TC5816BDC",     NAND_MFR_TOSHIBA, 0x64, 21, 1, 2, 0x1000}, -	{"Toshiba TC5832DC",      NAND_MFR_TOSHIBA, 0x6b, 22, 0, 2, 0x2000}, -	{"Toshiba TH58V128DC",    NAND_MFR_TOSHIBA, 0x73, 24, 0, 2, 0x4000}, -	{"Toshiba TC58256FT/DC",  NAND_MFR_TOSHIBA, 0x75, 25, 0, 2, 0x4000}, -	{"Toshiba TH58512FT",     NAND_MFR_TOSHIBA, 0x76, 26, 0, 3, 0x4000}, -	{"Toshiba TC58V32DC",     NAND_MFR_TOSHIBA, 0xe5, 22, 0, 2, 0x2000}, -	{"Toshiba TC58V64AFT/DC", NAND_MFR_TOSHIBA, 0xe6, 23, 0, 2, 0x2000}, -	{"Toshiba TC58V16BDC",    NAND_MFR_TOSHIBA, 0xea, 21, 1, 2, 0x1000}, -	{"Toshiba TH58100FT",     NAND_MFR_TOSHIBA, 0x79, 27, 0, 3, 0x4000}, -	{"Samsung KM29N16000",    NAND_MFR_SAMSUNG, 0x64, 21, 1, 2, 0x1000}, -	{"Samsung unknown 4Mb",   NAND_MFR_SAMSUNG, 0x6b, 22, 0, 2, 0x2000}, -	{"Samsung KM29U128T",     NAND_MFR_SAMSUNG, 0x73, 24, 0, 2, 0x4000}, -	{"Samsung KM29U256T",     NAND_MFR_SAMSUNG, 0x75, 25, 0, 2, 0x4000}, -	{"Samsung unknown 64Mb",  NAND_MFR_SAMSUNG, 0x76, 26, 0, 3, 0x4000}, -	{"Samsung KM29W32000",    NAND_MFR_SAMSUNG, 0xe3, 22, 0, 2, 0x2000}, -	{"Samsung unknown 4Mb",   NAND_MFR_SAMSUNG, 0xe5, 22, 0, 2, 0x2000}, -	{"Samsung KM29U64000",    NAND_MFR_SAMSUNG, 0xe6, 23, 0, 2, 0x2000}, -	{"Samsung KM29W16000",    NAND_MFR_SAMSUNG, 0xea, 21, 1, 2, 0x1000}, +	{"Toshiba TC5816BDC",     NAND_MFR_TOSHIBA, 0x64, 21, 1, 2, 0x1000, 0}, +	{"Toshiba TC5832DC",      NAND_MFR_TOSHIBA, 0x6b, 22, 0, 2, 0x2000, 0}, +	{"Toshiba TH58V128DC",    NAND_MFR_TOSHIBA, 0x73, 24, 0, 2, 0x4000, 0}, +	{"Toshiba TC58256FT/DC",  NAND_MFR_TOSHIBA, 0x75, 25, 0, 2, 0x4000, 0}, +	{"Toshiba TH58512FT",     NAND_MFR_TOSHIBA, 0x76, 26, 0, 3, 0x4000, 0}, +	{"Toshiba TC58V32DC",     NAND_MFR_TOSHIBA, 0xe5, 22, 0, 2, 0x2000, 0}, +	{"Toshiba TC58V64AFT/DC", NAND_MFR_TOSHIBA, 0xe6, 23, 0, 2, 0x2000, 0}, +	{"Toshiba TC58V16BDC",    NAND_MFR_TOSHIBA, 0xea, 21, 1, 2, 0x1000, 0}, +	{"Toshiba TH58100FT",     NAND_MFR_TOSHIBA, 0x79, 27, 0, 3, 0x4000, 0}, +	{"Samsung KM29N16000",    NAND_MFR_SAMSUNG, 0x64, 21, 1, 2, 0x1000, 0}, +	{"Samsung unknown 4Mb",   NAND_MFR_SAMSUNG, 0x6b, 22, 0, 2, 0x2000, 0}, +	{"Samsung KM29U128T",     NAND_MFR_SAMSUNG, 0x73, 24, 0, 2, 0x4000, 0}, +	{"Samsung KM29U256T",     NAND_MFR_SAMSUNG, 0x75, 25, 0, 2, 0x4000, 0}, +	{"Samsung unknown 64Mb",  NAND_MFR_SAMSUNG, 0x76, 26, 0, 3, 0x4000, 0}, +	{"Samsung KM29W32000",    NAND_MFR_SAMSUNG, 0xe3, 22, 0, 2, 0x2000, 0}, +	{"Samsung unknown 4Mb",   NAND_MFR_SAMSUNG, 0xe5, 22, 0, 2, 0x2000, 0}, +	{"Samsung KM29U64000",    NAND_MFR_SAMSUNG, 0xe6, 23, 0, 2, 0x2000, 0}, +	{"Samsung KM29W16000",    NAND_MFR_SAMSUNG, 0xea, 21, 1, 2, 0x1000, 0}, +	{"Samsung K9F5616Q0C",    NAND_MFR_SAMSUNG, 0x45, 25, 0, 2, 0x4000, 1}, +	{"Samsung K9K1216Q0C",    NAND_MFR_SAMSUNG, 0x46, 26, 0, 3, 0x4000, 1},  	{NULL,}  }; |