diff options
Diffstat (limited to 'include')
120 files changed, 4619 insertions, 1194 deletions
| diff --git a/include/common.h b/include/common.h index 409515f49..8ca67f64f 100644 --- a/include/common.h +++ b/include/common.h @@ -923,7 +923,7 @@ static inline void unmap_sysmem(const void *vaddr)  {  } -static inline phys_addr_t map_to_sysmem(void *ptr) +static inline phys_addr_t map_to_sysmem(const void *ptr)  {  	return (phys_addr_t)(uintptr_t)ptr;  } diff --git a/include/common_timing_params.h b/include/common_timing_params.h new file mode 100644 index 000000000..76338d4e6 --- /dev/null +++ b/include/common_timing_params.h @@ -0,0 +1,57 @@ +/* + * Copyright 2008 Freescale Semiconductor, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * Version 2 as published by the Free Software Foundation. + */ + +#ifndef COMMON_TIMING_PARAMS_H +#define COMMON_TIMING_PARAMS_H + +typedef struct { +	/* parameters to constrict */ + +	unsigned int tckmin_x_ps; +	unsigned int tckmax_ps; +	unsigned int tckmax_max_ps; +	unsigned int trcd_ps; +	unsigned int trp_ps; +	unsigned int tras_ps; + +	unsigned int twr_ps;	/* maximum = 63750 ps */ +	unsigned int twtr_ps;	/* maximum = 63750 ps */ +	unsigned int trfc_ps;	/* maximum = 255 ns + 256 ns + .75 ns +					   = 511750 ps */ + +	unsigned int trrd_ps;	/* maximum = 63750 ps */ +	unsigned int trc_ps;	/* maximum = 254 ns + .75 ns = 254750 ps */ + +	unsigned int refresh_rate_ps; +	unsigned int extended_op_srt; + +	unsigned int tis_ps;	/* byte 32, spd->ca_setup */ +	unsigned int tih_ps;	/* byte 33, spd->ca_hold */ +	unsigned int tds_ps;	/* byte 34, spd->data_setup */ +	unsigned int tdh_ps;	/* byte 35, spd->data_hold */ +	unsigned int trtp_ps;	/* byte 38, spd->trtp */ +	unsigned int tdqsq_max_ps;	/* byte 44, spd->tdqsq */ +	unsigned int tqhs_ps;	/* byte 45, spd->tqhs */ + +	unsigned int ndimms_present; +	unsigned int lowest_common_SPD_caslat; +	unsigned int highest_common_derated_caslat; +	unsigned int additive_latency; +	unsigned int all_dimms_burst_lengths_bitmask; +	unsigned int all_dimms_registered; +	unsigned int all_dimms_unbuffered; +	unsigned int all_dimms_ecc_capable; + +	unsigned long long total_mem; +	unsigned long long base_address; + +	/* DDR3 RDIMM */ +	unsigned char rcw[16];	/* Register Control Word 0-15 */ +} common_timing_params_t; + +#endif diff --git a/include/configs/ASH405.h b/include/configs/ASH405.h index 9460be3b5..2f5340723 100644 --- a/include/configs/ASH405.h +++ b/include/configs/ASH405.h @@ -143,6 +143,8 @@  #define CONFIG_SYS_NAND_SKIP_BAD_DOT_I	1	/* ".i" read skips bad blocks   */  #define CONFIG_SYS_NAND_QUIET		1 +#define CONFIG_SYS_NAND_MAX_OOBFREE	2 +#define CONFIG_SYS_NAND_MAX_ECCPOS	56  /*-----------------------------------------------------------------------   * PCI stuff diff --git a/include/configs/B4860QDS.h b/include/configs/B4860QDS.h index 268f66ec0..b2a5c19e0 100644 --- a/include/configs/B4860QDS.h +++ b/include/configs/B4860QDS.h @@ -193,7 +193,7 @@ unsigned long get_board_ddr_clk(void);  #define CONFIG_DDR_SPD  #define CONFIG_SYS_DDR_RAW_TIMING -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #define CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SYS_SPD_BUS_NUM	0 diff --git a/include/configs/BSC9131RDB.h b/include/configs/BSC9131RDB.h index 036f264c9..499d8c205 100644 --- a/include/configs/BSC9131RDB.h +++ b/include/configs/BSC9131RDB.h @@ -80,7 +80,7 @@  #define CONFIG_SYS_MEMTEST_END		0x01ffffff  /* DDR Setup */ -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #undef CONFIG_SYS_DDR_RAW_TIMING  #undef CONFIG_DDR_SPD  #define CONFIG_SYS_SPD_BUS_NUM		0 diff --git a/include/configs/BSC9132QDS.h b/include/configs/BSC9132QDS.h index 75889b357..a6601fee8 100644 --- a/include/configs/BSC9132QDS.h +++ b/include/configs/BSC9132QDS.h @@ -134,7 +134,7 @@  #define CONFIG_SYS_MEMTEST_END		0x01ffffff  /* DDR Setup */ -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #define CONFIG_SYS_SPD_BUS_NUM		0  #define SPD_EEPROM_ADDRESS1		0x54 /* I2C access */  #define SPD_EEPROM_ADDRESS2		0x56 /* I2C access */ diff --git a/include/configs/C29XPCIE.h b/include/configs/C29XPCIE.h index 08156c531..1cfb2c227 100644 --- a/include/configs/C29XPCIE.h +++ b/include/configs/C29XPCIE.h @@ -103,7 +103,7 @@  #define CONFIG_PANIC_HANG  /* DDR Setup */ -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #define CONFIG_DDR_SPD  #define CONFIG_SYS_SPD_BUS_NUM		0  #define SPD_EEPROM_ADDRESS		0x50 @@ -191,13 +191,14 @@  				| CSPR_MSEL_NAND \  				| CSPR_V)  #define CONFIG_SYS_NAND_AMASK	IFC_AMASK(64*1024) +#define CONFIG_SYS_NAND_OOBSIZE	0x00000280	/* 640b */  #define CONFIG_SYS_NAND_CSOR	(CSOR_NAND_ECC_ENC_EN	/* ECC on encode */ \  				| CSOR_NAND_ECC_DEC_EN	/* ECC on decode */ \  				| CSOR_NAND_ECC_MODE_4	/* 4-bit ECC */ \ -				| CSOR_NAND_RAL_2	/* RAL = 2 Bytes */ \ -				| CSOR_NAND_PGS_2K	/* Page Size = 2k */ \ -				| CSOR_NAND_SPRZ_64	/* Spare size = 64 */ \ -				| CSOR_NAND_PB(64))	/* 64 Pages Per Block */ +				| CSOR_NAND_RAL_3	/* RAL = 3 Bytes */ \ +				| CSOR_NAND_PGS_8K	/* Page Size = 8K */ \ +				| CSOR_NAND_SPRZ_CSOR_EXT /*oob in csor_ext*/\ +				| CSOR_NAND_PB(128))	/*128 Pages Per Block*/  #define CONFIG_SYS_NAND_FTIM0	(FTIM0_NAND_TCCST(0x01) | \  				FTIM0_NAND_TWP(0x0c)   | \  				FTIM0_NAND_TWCHT(0x08) | \ @@ -224,6 +225,7 @@  #define CONFIG_SYS_CSPR1		CONFIG_SYS_NAND_CSPR  #define CONFIG_SYS_AMASK1		CONFIG_SYS_NAND_AMASK  #define CONFIG_SYS_CSOR1		CONFIG_SYS_NAND_CSOR +#define CONFIG_SYS_CSOR1_EXT		CONFIG_SYS_NAND_OOBSIZE  #define CONFIG_SYS_CS1_FTIM0		CONFIG_SYS_NAND_FTIM0  #define CONFIG_SYS_CS1_FTIM1		CONFIG_SYS_NAND_FTIM1  #define CONFIG_SYS_CS1_FTIM2		CONFIG_SYS_NAND_FTIM2 diff --git a/include/configs/HWW1U1A.h b/include/configs/HWW1U1A.h index f3f213666..bbfee7d30 100644 --- a/include/configs/HWW1U1A.h +++ b/include/configs/HWW1U1A.h @@ -255,7 +255,7 @@  /* -------------------------------------------------------------------- */  /* FreeScale DDR2/3 SDRAM Controller */ -#define CONFIG_FSL_DDR2		/* Our SDRAM slot is DDR2		*/ +#define CONFIG_SYS_FSL_DDR2		/* Our SDRAM slot is DDR2		*/  #define CONFIG_DDR_ECC		/* Enable ECC by default		*/  #define CONFIG_DDR_SPD		/* Detect DDR config from SPD EEPROM	*/  #define CONFIG_SPD_EEPROM	/* ...why 2 config variables for this?	*/ diff --git a/include/configs/MPC8349EMDS.h b/include/configs/MPC8349EMDS.h index 3f742a2bb..a80a6966b 100644 --- a/include/configs/MPC8349EMDS.h +++ b/include/configs/MPC8349EMDS.h @@ -62,11 +62,11 @@  #define CONFIG_SPD_EEPROM		/* use SPD EEPROM for DDR setup*/  /* - * define CONFIG_FSL_DDR2 to use unified DDR driver + * define CONFIG_SYS_FSL_DDR2 to use unified DDR driver   * undefine it to use old spd_sdram.c   */ -#define CONFIG_FSL_DDR2 -#ifdef CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2 +#ifdef CONFIG_SYS_FSL_DDR2  #define CONFIG_SYS_SPD_BUS_NUM	0  #define SPD_EEPROM_ADDRESS1	0x52  #define SPD_EEPROM_ADDRESS2	0x51 diff --git a/include/configs/MPC8536DS.h b/include/configs/MPC8536DS.h index 8197f89e4..9ab1bc106 100644 --- a/include/configs/MPC8536DS.h +++ b/include/configs/MPC8536DS.h @@ -122,7 +122,7 @@  /* DDR Setup */  #define CONFIG_VERY_BIG_RAM -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #undef CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup */  #define CONFIG_DDR_SPD diff --git a/include/configs/MPC8540ADS.h b/include/configs/MPC8540ADS.h index 66893688e..046b14bdd 100644 --- a/include/configs/MPC8540ADS.h +++ b/include/configs/MPC8540ADS.h @@ -78,7 +78,7 @@  #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR  /* DDR Setup */ -#define CONFIG_FSL_DDR1 +#define CONFIG_SYS_FSL_DDR1  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup*/  #define CONFIG_DDR_SPD  #undef CONFIG_FSL_DDR_INTERACTIVE diff --git a/include/configs/MPC8541CDS.h b/include/configs/MPC8541CDS.h index e24c59745..eca3b537b 100644 --- a/include/configs/MPC8541CDS.h +++ b/include/configs/MPC8541CDS.h @@ -51,7 +51,7 @@ extern unsigned long get_clock_freq(void);  #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR  /* DDR Setup */ -#define CONFIG_FSL_DDR1 +#define CONFIG_SYS_FSL_DDR1  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup*/  #define CONFIG_DDR_SPD  #undef CONFIG_FSL_DDR_INTERACTIVE diff --git a/include/configs/MPC8544DS.h b/include/configs/MPC8544DS.h index 2e76df681..8132ec055 100644 --- a/include/configs/MPC8544DS.h +++ b/include/configs/MPC8544DS.h @@ -63,7 +63,7 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);  #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR  /* DDR Setup */ -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #undef CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup */  #define CONFIG_DDR_SPD diff --git a/include/configs/MPC8548CDS.h b/include/configs/MPC8548CDS.h index 9ff048af6..6acd54db8 100644 --- a/include/configs/MPC8548CDS.h +++ b/include/configs/MPC8548CDS.h @@ -75,7 +75,7 @@ extern unsigned long get_clock_freq(void);  #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR  /* DDR Setup */ -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #undef CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup*/  #define CONFIG_DDR_SPD diff --git a/include/configs/MPC8555CDS.h b/include/configs/MPC8555CDS.h index 7f0f927ea..5ffdd0162 100644 --- a/include/configs/MPC8555CDS.h +++ b/include/configs/MPC8555CDS.h @@ -51,7 +51,7 @@ extern unsigned long get_clock_freq(void);  #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR  /* DDR Setup */ -#define CONFIG_FSL_DDR1 +#define CONFIG_SYS_FSL_DDR1  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup*/  #define CONFIG_DDR_SPD  #undef CONFIG_FSL_DDR_INTERACTIVE diff --git a/include/configs/MPC8560ADS.h b/include/configs/MPC8560ADS.h index b7c4a6030..bb9ae2dcb 100644 --- a/include/configs/MPC8560ADS.h +++ b/include/configs/MPC8560ADS.h @@ -75,7 +75,7 @@  #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR  /* DDR Setup */ -#define CONFIG_FSL_DDR1 +#define CONFIG_SYS_FSL_DDR1  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup*/  #define CONFIG_DDR_SPD  #undef CONFIG_FSL_DDR_INTERACTIVE diff --git a/include/configs/MPC8568MDS.h b/include/configs/MPC8568MDS.h index c9a15395c..7406ac3be 100644 --- a/include/configs/MPC8568MDS.h +++ b/include/configs/MPC8568MDS.h @@ -60,7 +60,7 @@ extern unsigned long get_clock_freq(void);  #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR  /* DDR Setup */ -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #undef CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup*/  #define CONFIG_DDR_SPD diff --git a/include/configs/MPC8569MDS.h b/include/configs/MPC8569MDS.h index 341f6a89b..df5572b3a 100644 --- a/include/configs/MPC8569MDS.h +++ b/include/configs/MPC8569MDS.h @@ -98,7 +98,7 @@ extern unsigned long get_clock_freq(void);  #endif  /* DDR Setup */ -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #undef CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup*/  #define CONFIG_DDR_SPD diff --git a/include/configs/MPC8572DS.h b/include/configs/MPC8572DS.h index c7511449e..63480ecb0 100644 --- a/include/configs/MPC8572DS.h +++ b/include/configs/MPC8572DS.h @@ -106,7 +106,7 @@  /* DDR Setup */  #define CONFIG_VERY_BIG_RAM -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #undef CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup */  #define CONFIG_DDR_SPD @@ -322,6 +322,8 @@  #define CONFIG_CMD_NAND		1  #define CONFIG_NAND_FSL_ELBC	1  #define CONFIG_SYS_NAND_BLOCK_SIZE    (128 * 1024) +#define CONFIG_SYS_NAND_MAX_OOBFREE	5 +#define CONFIG_SYS_NAND_MAX_ECCPOS	56  /* NAND boot: 4K NAND loader config */  #define CONFIG_SYS_NAND_SPL_SIZE	0x1000 diff --git a/include/configs/MPC8610HPCD.h b/include/configs/MPC8610HPCD.h index 97f5c877e..41ebe31dd 100644 --- a/include/configs/MPC8610HPCD.h +++ b/include/configs/MPC8610HPCD.h @@ -92,7 +92,7 @@  #define CONFIG_SYS_CCSRBAR_PHYS		CONFIG_SYS_CCSRBAR_PHYS_LOW  /* DDR Setup */ -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #undef CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SPD_EEPROM		/* Use SPD for DDR */  #define CONFIG_DDR_SPD diff --git a/include/configs/MPC8641HPCN.h b/include/configs/MPC8641HPCN.h index 8ed505076..0e666bac0 100644 --- a/include/configs/MPC8641HPCN.h +++ b/include/configs/MPC8641HPCN.h @@ -108,7 +108,7 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);  /*   * DDR Setup   */ -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #undef CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup */  #define CONFIG_DDR_SPD diff --git a/include/configs/P1010RDB.h b/include/configs/P1010RDB.h index c1cfbd40b..eab386add 100644 --- a/include/configs/P1010RDB.h +++ b/include/configs/P1010RDB.h @@ -178,7 +178,7 @@  #define CONFIG_PANIC_HANG		/* do not reset board on panic */  /* DDR Setup */ -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #define CONFIG_SYS_DDR_RAW_TIMING  #define CONFIG_DDR_SPD  #define CONFIG_SYS_SPD_BUS_NUM		1 @@ -313,6 +313,13 @@ extern unsigned long get_sdram_size(void);  #define CONFIG_SYS_NAND_BASE_PHYS	CONFIG_SYS_NAND_BASE  #endif +#define CONFIG_MTD_DEVICE +#define CONFIG_MTD_PARTITION +#define CONFIG_CMD_MTDPARTS +#define MTDIDS_DEFAULT			"nand0=ff800000.flash" +#define MTDPARTS_DEFAULT		\ +	"mtdparts=ff800000.flash:2m(uboot-env),1m(dtb),5m(kernel),56m(fs),-(usr)" +  #define CONFIG_SYS_NAND_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_NAND_BASE_PHYS) \  				| CSPR_PORT_SIZE_8	\  				| CSPR_MSEL_NAND	\ diff --git a/include/configs/P1022DS.h b/include/configs/P1022DS.h index 1470526d0..262c3e5f1 100644 --- a/include/configs/P1022DS.h +++ b/include/configs/P1022DS.h @@ -177,7 +177,7 @@  /* DDR Setup */  #define CONFIG_DDR_SPD  #define CONFIG_VERY_BIG_RAM -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #ifdef CONFIG_DDR_ECC  #define CONFIG_ECC_INIT_VIA_DDRCONTROLLER diff --git a/include/configs/P1023RDB.h b/include/configs/P1023RDB.h index e49523e94..7de6814a0 100644 --- a/include/configs/P1023RDB.h +++ b/include/configs/P1023RDB.h @@ -74,7 +74,7 @@ extern unsigned long get_clock_freq(void);  #define CONFIG_CHIP_SELECTS_PER_CTRL	1  #define CONFIG_DDR_SPD -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #define CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SYS_SDRAM_SIZE		512u	/* DDR is 512M */  #define CONFIG_SYS_SPD_BUS_NUM          0 diff --git a/include/configs/P1_P2_RDB.h b/include/configs/P1_P2_RDB.h index 282f5c1a1..b592c1966 100644 --- a/include/configs/P1_P2_RDB.h +++ b/include/configs/P1_P2_RDB.h @@ -141,7 +141,7 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);  #endif  /* DDR Setup */ -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #undef CONFIG_FSL_DDR_INTERACTIVE  #undef CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup */ diff --git a/include/configs/P2020COME.h b/include/configs/P2020COME.h index 9cc219e5a..15d2a43cd 100644 --- a/include/configs/P2020COME.h +++ b/include/configs/P2020COME.h @@ -105,7 +105,7 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);  #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR  /* DDR Setup */ -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup */  #define CONFIG_DDR_SPD diff --git a/include/configs/P2020DS.h b/include/configs/P2020DS.h index 8a29eaa50..9d3d9b33e 100644 --- a/include/configs/P2020DS.h +++ b/include/configs/P2020DS.h @@ -109,9 +109,9 @@  /* DDR Setup */  #define CONFIG_VERY_BIG_RAM  #ifdef CONFIG_DDR2 -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #else -#define CONFIG_FSL_DDR3		1 +#define CONFIG_SYS_FSL_DDR3		1  #endif  /* ECC will be enabled based on perf_mode environment variable */ diff --git a/include/configs/P2041RDB.h b/include/configs/P2041RDB.h index 0df6f1a2d..b238574b5 100644 --- a/include/configs/P2041RDB.h +++ b/include/configs/P2041RDB.h @@ -175,7 +175,7 @@ unsigned long get_board_sys_clk(unsigned long dummy);  #define CONFIG_CHIP_SELECTS_PER_CTRL	(4 * CONFIG_DIMM_SLOTS_PER_CTLR)  #define CONFIG_DDR_SPD -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #define CONFIG_SYS_SPD_BUS_NUM	0  #define SPD_EEPROM_ADDRESS	0x52 diff --git a/include/configs/P4080DS.h b/include/configs/P4080DS.h index b0cd7d5c2..2f8900834 100644 --- a/include/configs/P4080DS.h +++ b/include/configs/P4080DS.h @@ -17,6 +17,12 @@  #define CONFIG_MMC  #define CONFIG_PCIE3 +#define CONFIG_CMD_SATA +#define CONFIG_SATA_SIL +#define CONFIG_SYS_SATA_MAX_DEVICE  2 +#define CONFIG_LIBATA +#define CONFIG_LBA48 +  #define CONFIG_SYS_SRIO  #define CONFIG_SRIO1			/* SRIO port 1 */  #define CONFIG_SRIO2			/* SRIO port 2 */ diff --git a/include/configs/PN62.h b/include/configs/PN62.h deleted file mode 100644 index 2a82f94b6..000000000 --- a/include/configs/PN62.h +++ /dev/null @@ -1,285 +0,0 @@ -/* - * (C) Copyright 2002 - * Wolfgang Grandegger, DENX Software Engineering, wg@denx.de. - * - * SPDX-License-Identifier:	GPL-2.0+ - */ - -/* ------------------------------------------------------------------------- */ - -/* - * board/config.h - configuration options, board specific - */ - -#ifndef __CONFIG_H -#define __CONFIG_H - -/* - * High Level Configuration Options - * (easy to change) - */ - -#define CONFIG_MPC824X		1 -#define CONFIG_MPC8240		1 -#define CONFIG_PN62		1 - -#define	CONFIG_SYS_TEXT_BASE	0xFFF00000 - -#define CONFIG_CONS_INDEX	1 - - -/* - * BOOTP options - */ -#define CONFIG_BOOTP_BOOTFILESIZE -#define CONFIG_BOOTP_BOOTPATH -#define CONFIG_BOOTP_GATEWAY -#define CONFIG_BOOTP_HOSTNAME - - -/* - * Command line configuration. - */ -#include <config_cmd_default.h> - -#define CONFIG_CMD_PCI -#define CONFIG_CMD_BSP - -#undef CONFIG_CMD_FLASH -#undef CONFIG_CMD_IMLS -#undef CONFIG_CMD_LOADS -#undef CONFIG_CMD_SAVEENV -#undef CONFIG_CMD_SOURCE - - -#define CONFIG_BAUDRATE		19200	/* console baudrate		*/ - -#define CONFIG_BOOTDELAY	1	/* autoboot after n seconds	*/ - -#define	CONFIG_CLOCKS_IN_MHZ	1	/* clocks passsed to Linux in MHz */ - -#define CONFIG_SERVERIP		10.0.0.201 -#define CONFIG_IPADDR		10.0.0.200 -#define CONFIG_ROOTPATH		"/opt/eldk/ppc_82xx" -#define CONFIG_NETMASK		255.255.255.0 -#undef CONFIG_BOOTARGS -#if 0 -/* Boot Linux with NFS root filesystem */ -#define CONFIG_BOOTCOMMAND \ -			"setenv verify y;" \ -			"setenv bootargs console=ttyS0,19200 mem=31M quiet " \ -			"root=/dev/nfs rw nfsroot=${serverip}:${rootpath} " \ -			"ip=${ipaddr}:${serverip}::${netmask}:pn62:eth0:off;" \ -			"loadp 100000; bootm" -			/* "tftpboot 100000 uImage; bootm" */ -#else -/* Boot Linux with RAMdisk based filesystem (initrd, BusyBox) */ -#define CONFIG_BOOTCOMMAND \ -			"setenv verify n;" \ -			"setenv bootargs console=ttyS0,19200 mem=31M quiet " \ -			"root=/dev/ram rw " \ -			"ip=${ipaddr}:${serverip}::${netmask}:pn62:eth0:off;" \ -			"loadp 200000; bootm" -#endif - -/* - * Miscellaneous configurable options - */ -#define CONFIG_SYS_LONGHELP		1		/* undef to save memory		*/ -#define CONFIG_SYS_CBSIZE		256		/* Console I/O Buffer Size	*/ -#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16)	/* Print Buffer Size	*/ -#define CONFIG_SYS_MAXARGS		16		/* max number of command args	*/ -#define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE	/* Boot Argument Buffer Size	*/ -#define CONFIG_SYS_LOAD_ADDR		0x00100000	/* default load address		*/ - -#define CONFIG_PRAM		1024		/* reserve 1 MB protected RAM	*/ - -#define CONFIG_MISC_INIT_R	1		/* call misc_init_r() on init	*/ - -#define CONFIG_HAS_ETH1		1		/* add support for eth1addr	*/ - -#define CONFIG_SHOW_BOOT_PROGRESS 1		/* Show boot progress on LEDs   */ - -/* - * PCI stuff - */ -#define CONFIG_PCI				/* include pci support		*/ -#define CONFIG_PCI_INDIRECT_BRIDGE	/* indirect PCI bridge support */ -#define CONFIG_PCI_PNP				/* we need Plug 'n Play		*/ -#if 0 -#define CONFIG_PCI_SCAN_SHOW			/* show PCI auto-scan at boot	*/ -#endif - -/* - * Networking stuff - */ - -#define CONFIG_PCNET				/* there are 2 AMD PCnet 79C973	*/ -#define CONFIG_PCNET_79C973 - -#define _IO_BASE		0xfe000000	/* points to PCI I/O space	*/ - - -/* - * Start addresses for the final memory configuration - * (Set up by the startup code) - * Please note that CONFIG_SYS_SDRAM_BASE _must_ start at 0 - */ -#define CONFIG_SYS_SDRAM_BASE		0x00000000 -#define CONFIG_SYS_MAX_RAM_SIZE	0x10000000 - -#define CONFIG_SYS_RESET_ADDRESS	0xfff00100 - -#undef	CONFIG_SYS_RAMBOOT -#define CONFIG_SYS_MONITOR_LEN		0x00030000 -#define CONFIG_SYS_MONITOR_BASE	CONFIG_SYS_TEXT_BASE - - -#define CONFIG_SYS_INIT_RAM_ADDR	0x40000000 -#define CONFIG_SYS_INIT_RAM_SIZE	0x1000 -#define CONFIG_SYS_GBL_DATA_OFFSET	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) - - -#define CONFIG_SYS_NO_FLASH		1		/* There is no FLASH memory	*/ - -#define CONFIG_ENV_IS_NOWHERE	1		/* Store ENV in memory only	*/ -#define CONFIG_ENV_OFFSET		0x00004000	/* Offset of Environment Sector */ -#define CONFIG_ENV_SIZE		0x00002000	/* Total Size of Environment Sector */ - -#define CONFIG_SYS_MALLOC_LEN		(512 << 10)	/* Reserve 512 kB for malloc()	*/ - -#define CONFIG_SYS_MEMTEST_START	0x00004000	/* memtest works on		*/ -#define CONFIG_SYS_MEMTEST_END		0x01f00000	/* 0 ... 32 MB in DRAM		*/ - -/* - * Serial port configuration - */ - -#define CONFIG_SYS_NS16550 -#define CONFIG_SYS_NS16550_SERIAL - -#define CONFIG_SYS_NS16550_REG_SIZE	1 - -#define CONFIG_SYS_NS16550_CLK		1843200 - -#define CONFIG_SYS_NS16550_COM1	0xff800008 -#define CONFIG_SYS_NS16550_COM2	0xff800000 - -/* - * Low Level Configuration Settings - * (address mappings, register initial values, etc.) - * You should know what you are doing if you make changes here. - */ - -#define CONFIG_SYS_CLK_FREQ  33333333	/* external frequency to pll */ -#define CONFIG_PLL_PCI_TO_MEM_MULTIPLIER  3 - -#define CONFIG_SYS_EUMB_ADDR		0xFCE00000 - -/* MCCR1 */ -#define CONFIG_SYS_ROMNAL		3	/* rom/flash next access time		*/ -#define CONFIG_SYS_ROMFAL		7	/* rom/flash access time		*/ - -/* MCCR2 */ -#define CONFIG_SYS_ASRISE		6	/* ASRISE in clocks			*/ -#define CONFIG_SYS_ASFALL		12	/* ASFALL in clocks			*/ -#define CONFIG_SYS_REFINT		5600	/* REFINT in clocks			*/ - -/* MCCR3 */ -#define CONFIG_SYS_BSTOPRE		0x3cf	/* Burst To Precharge			*/ -#define CONFIG_SYS_REFREC		2	/* Refresh to activate interval		*/ -#define CONFIG_SYS_RDLAT		3	/* data latency from read command	*/ - -/* MCCR4 */ -#define CONFIG_SYS_PRETOACT		1	/* Precharge to activate interval	*/ -#define CONFIG_SYS_ACTTOPRE		3	/* Activate to Precharge interval	*/ -#define CONFIG_SYS_ACTORW		2	/* Activate to R/W			*/ -#define CONFIG_SYS_SDMODE_CAS_LAT	2	/* SDMODE CAS latency			*/ -#define CONFIG_SYS_SDMODE_WRAP		0	/* SDMODE Wrap type			*/ -#define CONFIG_SYS_SDMODE_BURSTLEN	2	/* SDMODE Burst length 2=4, 3=8		*/ -#define CONFIG_SYS_REGISTERD_TYPE_BUFFER   1 - -/* Memory bank settings: - * - * only bits 20-29 are actually used from these vales to set the - * start/qend address the upper two bits will be 0, and the lower 20 - * bits will be set to 0x00000 for a start address, or 0xfffff for an - * end address - */ -#define CONFIG_SYS_BANK0_START		0x00000000 -#define CONFIG_SYS_BANK0_END		(CONFIG_SYS_MAX_RAM_SIZE - 1) -#define CONFIG_SYS_BANK0_ENABLE	1 -#define CONFIG_SYS_BANK1_START		0x00000000 -#define CONFIG_SYS_BANK1_END		0x00000000 -#define CONFIG_SYS_BANK1_ENABLE	0 -#define CONFIG_SYS_BANK2_START		0x00000000 -#define CONFIG_SYS_BANK2_END		0x00000000 -#define CONFIG_SYS_BANK2_ENABLE	0 -#define CONFIG_SYS_BANK3_START		0x00000000 -#define CONFIG_SYS_BANK3_END		0x00000000 -#define CONFIG_SYS_BANK3_ENABLE	0 -#define CONFIG_SYS_BANK4_START		0x00000000 -#define CONFIG_SYS_BANK4_END		0x00000000 -#define CONFIG_SYS_BANK4_ENABLE	0 -#define CONFIG_SYS_BANK5_START		0x00000000 -#define CONFIG_SYS_BANK5_END		0x00000000 -#define CONFIG_SYS_BANK5_ENABLE	0 -#define CONFIG_SYS_BANK6_START		0x00000000 -#define CONFIG_SYS_BANK6_END		0x00000000 -#define CONFIG_SYS_BANK6_ENABLE	0 -#define CONFIG_SYS_BANK7_START		0x00000000 -#define CONFIG_SYS_BANK7_END		0x00000000 -#define CONFIG_SYS_BANK7_ENABLE	0 - -/* - * Memory bank enable bitmask, specifying which of the banks defined above - * are actually present. MSB is for bank #7, LSB is for bank #0. - */ -#define CONFIG_SYS_BANK_ENABLE		0x01 - -#define CONFIG_SYS_ODCR		0xff	/* configures line driver impedances,	*/ -					/* see 8240 book for bit definitions	*/ -#define CONFIG_SYS_PGMAX		0x32	/* how long the 8240 retains the	*/ -					/* currently accessed page in memory	*/ -					/* see 8240 book for details		*/ - -/* SDRAM 0 - 256MB */ -#define CONFIG_SYS_IBAT0L	(CONFIG_SYS_SDRAM_BASE | BATL_PP_10 | BATL_MEMCOHERENCE) -#define CONFIG_SYS_IBAT0U	(CONFIG_SYS_SDRAM_BASE | BATU_BL_256M | BATU_VS | BATU_VP) - -#define CONFIG_SYS_IBAT1L	(CONFIG_SYS_INIT_RAM_ADDR | BATL_PP_10 | BATL_MEMCOHERENCE) -#define CONFIG_SYS_IBAT1U	(CONFIG_SYS_INIT_RAM_ADDR | BATU_BL_128K | BATU_VS | BATU_VP) - -/* PCI memory space */ -#define CONFIG_SYS_IBAT2L	(0x80000000 | BATL_PP_10 | BATL_CACHEINHIBIT) -#define CONFIG_SYS_IBAT2U	(0x80000000 | BATU_BL_256M | BATU_VS | BATU_VP) - -/* Config addrs, etc */ -#define CONFIG_SYS_IBAT3L	(0xF0000000 | BATL_PP_10 | BATL_CACHEINHIBIT) -#define CONFIG_SYS_IBAT3U	(0xF0000000 | BATU_BL_256M | BATU_VS | BATU_VP) - -#define CONFIG_SYS_DBAT0L	CONFIG_SYS_IBAT0L -#define CONFIG_SYS_DBAT0U	CONFIG_SYS_IBAT0U -#define CONFIG_SYS_DBAT1L	CONFIG_SYS_IBAT1L -#define CONFIG_SYS_DBAT1U	CONFIG_SYS_IBAT1U -#define CONFIG_SYS_DBAT2L	CONFIG_SYS_IBAT2L -#define CONFIG_SYS_DBAT2U	CONFIG_SYS_IBAT2U -#define CONFIG_SYS_DBAT3L	CONFIG_SYS_IBAT3L -#define CONFIG_SYS_DBAT3U	CONFIG_SYS_IBAT3U - -/* - * 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 CONFIG_SYS_BOOTMAPSZ		(8 << 20)	/* Initial Memory map for Linux */ - -/* - * Cache Configuration - */ -#define CONFIG_SYS_CACHELINE_SIZE	32	/* For MPC8240 CPU			*/ -#if defined(CONFIG_CMD_KGDB) -#  define CONFIG_SYS_CACHELINE_SHIFT	5	/* log base 2 of the above value */ -#endif - -#endif	/* __CONFIG_H */ diff --git a/include/configs/T1040QDS.h b/include/configs/T1040QDS.h index 2738242c5..43a577800 100644 --- a/include/configs/T1040QDS.h +++ b/include/configs/T1040QDS.h @@ -32,6 +32,8 @@  #ifdef CONFIG_RAMBOOT_PBL  #define CONFIG_RAMBOOT_TEXT_BASE	CONFIG_SYS_TEXT_BASE  #define CONFIG_RESET_VECTOR_ADDRESS	0xfffffffc +#define CONFIG_PBLPBI_CONFIG $(SRCTREE)/board/freescale/t1040qds/t1040_pbi.cfg +#define CONFIG_PBLRCW_CONFIG $(SRCTREE)/board/freescale/t1040qds/t1040_rcw.cfg  #endif  /* High Level Configuration Options */ @@ -168,7 +170,7 @@ unsigned long get_board_ddr_clk(void);  #define CONFIG_CHIP_SELECTS_PER_CTRL	(4 * CONFIG_DIMM_SLOTS_PER_CTLR)  #define CONFIG_DDR_SPD -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #define CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SYS_SPD_BUS_NUM	0 diff --git a/include/configs/T1040RDB.h b/include/configs/T1040RDB.h new file mode 100644 index 000000000..79312311d --- /dev/null +++ b/include/configs/T1040RDB.h @@ -0,0 +1,690 @@ +/* + * Copyright 2013 Freescale Semiconductor, Inc. + * + * 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 + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +/* + * T1040 RDB board configuration file + */ +#define CONFIG_T104xRDB +#define CONFIG_T1040RDB +#define CONFIG_PHYS_64BIT + +#ifdef CONFIG_RAMBOOT_PBL +#define CONFIG_RAMBOOT_TEXT_BASE	CONFIG_SYS_TEXT_BASE +#define CONFIG_RESET_VECTOR_ADDRESS	0xfffffffc +#endif + +/* High Level Configuration Options */ +#define CONFIG_BOOKE +#define CONFIG_E500			/* BOOKE e500 family */ +#define CONFIG_E500MC			/* BOOKE e500mc family */ +#define CONFIG_SYS_BOOK3E_HV		/* Category E.HV supported */ +#define CONFIG_MPC85xx			/* MPC85xx/PQ3 platform */ +#define CONFIG_MP			/* support multiple processors */ + +#ifndef CONFIG_SYS_TEXT_BASE +#define CONFIG_SYS_TEXT_BASE	0xeff80000 +#endif + +#ifndef CONFIG_RESET_VECTOR_ADDRESS +#define CONFIG_RESET_VECTOR_ADDRESS	0xeffffffc +#endif + +#define CONFIG_SYS_FSL_CPC		/* Corenet Platform Cache */ +#define CONFIG_SYS_NUM_CPC		CONFIG_NUM_DDR_CONTROLLERS +#define CONFIG_FSL_IFC			/* Enable IFC Support */ +#define CONFIG_PCI			/* Enable PCI/PCIE */ +#define CONFIG_PCI_INDIRECT_BRIDGE +#define CONFIG_PCIE1			/* PCIE controler 1 */ +#define CONFIG_PCIE2			/* PCIE controler 2 */ +#define CONFIG_PCIE3			/* PCIE controler 3 */ +#define CONFIG_PCIE4			/* PCIE controler 4 */ + +#define CONFIG_FSL_PCI_INIT		/* Use common FSL init code */ +#define CONFIG_SYS_PCI_64BIT		/* enable 64-bit PCI resources */ + +#define CONFIG_FSL_LAW			/* Use common FSL init code */ + +#define CONFIG_ENV_OVERWRITE + +#ifdef CONFIG_SYS_NO_FLASH +#define CONFIG_ENV_IS_NOWHERE +#else +#define CONFIG_FLASH_CFI_DRIVER +#define CONFIG_SYS_FLASH_CFI +#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE +#endif + +#ifndef CONFIG_SYS_NO_FLASH +#if defined(CONFIG_SPIFLASH) +#define CONFIG_SYS_EXTRA_ENV_RELOC +#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_ENV_SPI_BUS              0 +#define CONFIG_ENV_SPI_CS               0 +#define CONFIG_ENV_SPI_MAX_HZ           10000000 +#define CONFIG_ENV_SPI_MODE             0 +#define CONFIG_ENV_SIZE                 0x2000          /* 8KB */ +#define CONFIG_ENV_OFFSET               0x100000        /* 1MB */ +#define CONFIG_ENV_SECT_SIZE            0x10000 +#elif defined(CONFIG_SDCARD) +#define CONFIG_SYS_EXTRA_ENV_RELOC +#define CONFIG_ENV_IS_IN_MMC +#define CONFIG_SYS_MMC_ENV_DEV          0 +#define CONFIG_ENV_SIZE			0x2000 +#define CONFIG_ENV_OFFSET		(512 * 1105) +#elif defined(CONFIG_NAND) +#define CONFIG_SYS_EXTRA_ENV_RELOC +#define CONFIG_ENV_IS_IN_NAND +#define CONFIG_ENV_SIZE			CONFIG_SYS_NAND_BLOCK_SIZE +#define CONFIG_ENV_OFFSET		(5 * CONFIG_SYS_NAND_BLOCK_SIZE) +#else +#define CONFIG_ENV_IS_IN_FLASH +#define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SECT_SIZE) +#define CONFIG_ENV_SIZE		0x2000 +#define CONFIG_ENV_SECT_SIZE	0x20000 /* 128K (one sector) */ +#endif +#else /* CONFIG_SYS_NO_FLASH */ +#define CONFIG_ENV_SIZE                0x2000 +#define CONFIG_ENV_SECT_SIZE   0x20000 /* 128K (one sector) */ +#endif + +#define CONFIG_SYS_CLK_FREQ	100000000 +#define CONFIG_DDR_CLK_FREQ	66666666 + +/* + * These can be toggled for performance analysis, otherwise use default. + */ +#define CONFIG_SYS_CACHE_STASHING +#define CONFIG_BACKSIDE_L2_CACHE +#define CONFIG_SYS_INIT_L2CSR0		L2CSR0_L2E +#define CONFIG_BTB			/* toggle branch predition */ +#define CONFIG_DDR_ECC +#ifdef CONFIG_DDR_ECC +#define CONFIG_ECC_INIT_VIA_DDRCONTROLLER +#define CONFIG_MEM_INIT_VALUE		0xdeadbeef +#endif + +#define CONFIG_ENABLE_36BIT_PHYS + +#define CONFIG_ADDR_MAP +#define CONFIG_SYS_NUM_ADDR_MAP		64	/* number of TLB1 entries */ + +#define CONFIG_SYS_MEMTEST_START	0x00200000	/* memtest works on */ +#define CONFIG_SYS_MEMTEST_END		0x00400000 +#define CONFIG_SYS_ALT_MEMTEST +#define CONFIG_PANIC_HANG	/* do not reset board on panic */ + +/* + *  Config the L3 Cache as L3 SRAM + */ +#define CONFIG_SYS_INIT_L3_ADDR		0xFFFC0000 + +#define CONFIG_SYS_DCSRBAR		0xf0000000 +#define CONFIG_SYS_DCSRBAR_PHYS		0xf00000000ull + +/* + * DDR Setup + */ +#define CONFIG_VERY_BIG_RAM +#define CONFIG_SYS_DDR_SDRAM_BASE	0x00000000 +#define CONFIG_SYS_SDRAM_BASE		CONFIG_SYS_DDR_SDRAM_BASE + +/* CONFIG_NUM_DDR_CONTROLLERS is defined in include/asm/config_mpc85xx.h */ +#define CONFIG_DIMM_SLOTS_PER_CTLR	1 +#define CONFIG_CHIP_SELECTS_PER_CTRL	(4 * CONFIG_DIMM_SLOTS_PER_CTLR) + +#define CONFIG_DDR_SPD +#define CONFIG_SYS_DDR_RAW_TIMING +#define CONFIG_SYS_FSL_DDR3 + +#define CONFIG_SYS_SPD_BUS_NUM	0 +#define SPD_EEPROM_ADDRESS	0x51 + +#define CONFIG_SYS_SDRAM_SIZE	4096	/* for fixed parameter use */ + +/* + * IFC Definitions + */ +#define CONFIG_SYS_FLASH_BASE	0xe8000000 +#define CONFIG_SYS_FLASH_BASE_PHYS	(0xf00000000ull | CONFIG_SYS_FLASH_BASE) + +#define CONFIG_SYS_NOR_CSPR_EXT	(0xf) +#define CONFIG_SYS_NOR_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE) | \ +				CSPR_PORT_SIZE_16 | \ +				CSPR_MSEL_NOR | \ +				CSPR_V) +#define CONFIG_SYS_NOR_AMASK	IFC_AMASK(128*1024*1024) +/* NOR Flash Timing Params */ +#define CONFIG_SYS_NOR_CSOR	CSOR_NAND_TRHZ_80 +#define CONFIG_SYS_NOR_FTIM0	(FTIM0_NOR_TACSE(0x4) | \ +				FTIM0_NOR_TEADC(0x5) | \ +				FTIM0_NOR_TEAHC(0x5)) +#define CONFIG_SYS_NOR_FTIM1	(FTIM1_NOR_TACO(0x35) | \ +				FTIM1_NOR_TRAD_NOR(0x1A) |\ +				FTIM1_NOR_TSEQRAD_NOR(0x13)) +#define CONFIG_SYS_NOR_FTIM2	(FTIM2_NOR_TCS(0x4) | \ +				FTIM2_NOR_TCH(0x4) | \ +				FTIM2_NOR_TWPH(0x0E) | \ +				FTIM2_NOR_TWP(0x1c)) +#define CONFIG_SYS_NOR_FTIM3	0x0 + +#define CONFIG_SYS_FLASH_QUIET_TEST +#define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */ + +#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */ +#define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */ +#define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */ +#define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */ + +#define CONFIG_SYS_FLASH_EMPTY_INFO +#define CONFIG_SYS_FLASH_BANKS_LIST	{CONFIG_SYS_FLASH_BASE_PHYS} + +/* CPLD on IFC */ +#define CONFIG_SYS_CPLD_BASE	0xffdf0000 +#define CONFIG_SYS_CPLD_BASE_PHYS	(0xf00000000ull | CONFIG_SYS_CPLD_BASE) +#define CONFIG_SYS_CSPR2	(CSPR_PHYS_ADDR(CONFIG_SYS_CPLD_BASE_PHYS) \ +				| CSPR_PORT_SIZE_8 \ +				| CSPR_MSEL_GPCM \ +				| CSPR_V) +#define CONFIG_SYS_AMASK2	IFC_AMASK(64*1024) +#define CONFIG_SYS_CSOR2	0x0 +/* CPLD Timing parameters for IFC CS2 */ +#define CONFIG_SYS_CS2_FTIM0		(FTIM0_GPCM_TACSE(0x0e) | \ +					FTIM0_GPCM_TEADC(0x0e) | \ +					FTIM0_GPCM_TEAHC(0x0e)) +#define CONFIG_SYS_CS2_FTIM1		(FTIM1_GPCM_TACO(0x0e) | \ +					FTIM1_GPCM_TRAD(0x1f)) +#define CONFIG_SYS_CS2_FTIM2		(FTIM2_GPCM_TCS(0x0e) | \ +					FTIM2_GPCM_TCH(0x0) | \ +					FTIM2_GPCM_TWP(0x1f)) +#define CONFIG_SYS_CS2_FTIM3		0x0 + +/* NAND Flash on IFC */ +#define CONFIG_NAND_FSL_IFC +#define CONFIG_SYS_NAND_BASE		0xff800000 +#define CONFIG_SYS_NAND_BASE_PHYS	(0xf00000000ull | CONFIG_SYS_NAND_BASE) + +#define CONFIG_SYS_NAND_CSPR_EXT	(0xf) +#define CONFIG_SYS_NAND_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_NAND_BASE_PHYS) \ +				| CSPR_PORT_SIZE_8 /* Port Size = 8 bit */ \ +				| CSPR_MSEL_NAND	/* MSEL = NAND */ \ +				| CSPR_V) +#define CONFIG_SYS_NAND_AMASK	IFC_AMASK(64*1024) + +#define CONFIG_SYS_NAND_CSOR    (CSOR_NAND_ECC_ENC_EN   /* ECC on encode */ \ +				| CSOR_NAND_ECC_DEC_EN  /* ECC on decode */ \ +				| CSOR_NAND_ECC_MODE_4  /* 4-bit ECC */ \ +				| CSOR_NAND_RAL_3	/* RAL = 3Byes */ \ +				| CSOR_NAND_PGS_4K	/* Page Size = 4K */ \ +				| CSOR_NAND_SPRZ_224/* Spare size = 224 */ \ +				| CSOR_NAND_PB(64))	/*Pages Per Block = 64*/ + +#define CONFIG_SYS_NAND_ONFI_DETECTION + +/* ONFI NAND Flash mode0 Timing Params */ +#define CONFIG_SYS_NAND_FTIM0		(FTIM0_NAND_TCCST(0x07) | \ +					FTIM0_NAND_TWP(0x18)   | \ +					FTIM0_NAND_TWCHT(0x07) | \ +					FTIM0_NAND_TWH(0x0a)) +#define CONFIG_SYS_NAND_FTIM1		(FTIM1_NAND_TADLE(0x32) | \ +					FTIM1_NAND_TWBE(0x39)  | \ +					FTIM1_NAND_TRR(0x0e)   | \ +					FTIM1_NAND_TRP(0x18)) +#define CONFIG_SYS_NAND_FTIM2		(FTIM2_NAND_TRAD(0x0f) | \ +					FTIM2_NAND_TREH(0x0a) | \ +					FTIM2_NAND_TWHRE(0x1e)) +#define CONFIG_SYS_NAND_FTIM3		0x0 + +#define CONFIG_SYS_NAND_DDR_LAW		11 +#define CONFIG_SYS_NAND_BASE_LIST	{ CONFIG_SYS_NAND_BASE } +#define CONFIG_SYS_MAX_NAND_DEVICE	1 +#define CONFIG_MTD_NAND_VERIFY_WRITE +#define CONFIG_CMD_NAND + +#define CONFIG_SYS_NAND_BLOCK_SIZE	(512 * 1024) + +#if defined(CONFIG_NAND) +#define CONFIG_SYS_CSPR0_EXT		CONFIG_SYS_NAND_CSPR_EXT +#define CONFIG_SYS_CSPR0		CONFIG_SYS_NAND_CSPR +#define CONFIG_SYS_AMASK0		CONFIG_SYS_NAND_AMASK +#define CONFIG_SYS_CSOR0		CONFIG_SYS_NAND_CSOR +#define CONFIG_SYS_CS0_FTIM0		CONFIG_SYS_NAND_FTIM0 +#define CONFIG_SYS_CS0_FTIM1		CONFIG_SYS_NAND_FTIM1 +#define CONFIG_SYS_CS0_FTIM2		CONFIG_SYS_NAND_FTIM2 +#define CONFIG_SYS_CS0_FTIM3		CONFIG_SYS_NAND_FTIM3 +#define CONFIG_SYS_CSPR1_EXT		CONFIG_SYS_NOR_CSPR_EXT +#define CONFIG_SYS_CSPR1		CONFIG_SYS_NOR_CSPR +#define CONFIG_SYS_AMASK1		CONFIG_SYS_NOR_AMASK +#define CONFIG_SYS_CSOR1		CONFIG_SYS_NOR_CSOR +#define CONFIG_SYS_CS1_FTIM0		CONFIG_SYS_NOR_FTIM0 +#define CONFIG_SYS_CS1_FTIM1		CONFIG_SYS_NOR_FTIM1 +#define CONFIG_SYS_CS1_FTIM2		CONFIG_SYS_NOR_FTIM2 +#define CONFIG_SYS_CS1_FTIM3		CONFIG_SYS_NOR_FTIM3 +#else +#define CONFIG_SYS_CSPR0_EXT		CONFIG_SYS_NOR_CSPR_EXT +#define CONFIG_SYS_CSPR0		CONFIG_SYS_NOR_CSPR +#define CONFIG_SYS_AMASK0		CONFIG_SYS_NOR_AMASK +#define CONFIG_SYS_CSOR0		CONFIG_SYS_NOR_CSOR +#define CONFIG_SYS_CS0_FTIM0		CONFIG_SYS_NOR_FTIM0 +#define CONFIG_SYS_CS0_FTIM1		CONFIG_SYS_NOR_FTIM1 +#define CONFIG_SYS_CS0_FTIM2		CONFIG_SYS_NOR_FTIM2 +#define CONFIG_SYS_CS0_FTIM3		CONFIG_SYS_NOR_FTIM3 +#define CONFIG_SYS_CSPR1_EXT		CONFIG_SYS_NAND_CSPR_EXT +#define CONFIG_SYS_CSPR1		CONFIG_SYS_NAND_CSPR +#define CONFIG_SYS_AMASK1		CONFIG_SYS_NAND_AMASK +#define CONFIG_SYS_CSOR1		CONFIG_SYS_NAND_CSOR +#define CONFIG_SYS_CS1_FTIM0		CONFIG_SYS_NAND_FTIM0 +#define CONFIG_SYS_CS1_FTIM1		CONFIG_SYS_NAND_FTIM1 +#define CONFIG_SYS_CS1_FTIM2		CONFIG_SYS_NAND_FTIM2 +#define CONFIG_SYS_CS1_FTIM3		CONFIG_SYS_NAND_FTIM3 +#endif + +#define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_TEXT_BASE + +#if defined(CONFIG_RAMBOOT_PBL) +#define CONFIG_SYS_RAMBOOT +#endif + +#define CONFIG_BOARD_EARLY_INIT_R +#define CONFIG_MISC_INIT_R + +#define CONFIG_HWCONFIG + +/* define to use L1 as initial stack */ +#define CONFIG_L1_INIT_RAM +#define CONFIG_SYS_INIT_RAM_LOCK +#define CONFIG_SYS_INIT_RAM_ADDR	0xfdd00000	/* Initial L1 address */ +#define CONFIG_SYS_INIT_RAM_ADDR_PHYS_HIGH	0xf +#define CONFIG_SYS_INIT_RAM_ADDR_PHYS_LOW	0xfe0ec000 +/* The assembler doesn't like typecast */ +#define CONFIG_SYS_INIT_RAM_ADDR_PHYS \ +	((CONFIG_SYS_INIT_RAM_ADDR_PHYS_HIGH * 1ull << 32) | \ +	  CONFIG_SYS_INIT_RAM_ADDR_PHYS_LOW) +#define CONFIG_SYS_INIT_RAM_SIZE		0x00004000 + +#define CONFIG_SYS_GBL_DATA_OFFSET	(CONFIG_SYS_INIT_RAM_SIZE - \ +					GENERATED_GBL_DATA_SIZE) +#define CONFIG_SYS_INIT_SP_OFFSET	CONFIG_SYS_GBL_DATA_OFFSET + +#define CONFIG_SYS_MONITOR_LEN		(512 * 1024) +#define CONFIG_SYS_MALLOC_LEN		(4 * 1024 * 1024) + +/* Serial Port - controlled on board with jumper J8 + * open - index 2 + * shorted - index 1 + */ +#define CONFIG_CONS_INDEX	1 +#define CONFIG_SYS_NS16550 +#define CONFIG_SYS_NS16550_SERIAL +#define CONFIG_SYS_NS16550_REG_SIZE	1 +#define CONFIG_SYS_NS16550_CLK		(get_bus_freq(0)/2) + +#define CONFIG_SYS_BAUDRATE_TABLE	\ +	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200} + +#define CONFIG_SYS_NS16550_COM1	(CONFIG_SYS_CCSRBAR+0x11C500) +#define CONFIG_SYS_NS16550_COM2	(CONFIG_SYS_CCSRBAR+0x11C600) +#define CONFIG_SYS_NS16550_COM3	(CONFIG_SYS_CCSRBAR+0x11D500) +#define CONFIG_SYS_NS16550_COM4	(CONFIG_SYS_CCSRBAR+0x11D600) +#define CONFIG_SERIAL_MULTI		/* Enable both serial ports */ +#define CONFIG_SYS_CONSOLE_IS_IN_ENV	/* determine from environment */ + +/* Use the HUSH parser */ +#define CONFIG_SYS_HUSH_PARSER +#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " + +/* pass open firmware flat tree */ +#define CONFIG_OF_LIBFDT +#define CONFIG_OF_BOARD_SETUP +#define CONFIG_OF_STDOUT_VIA_ALIAS + +/* new uImage format support */ +#define CONFIG_FIT +#define CONFIG_FIT_VERBOSE	/* enable fit_format_{error,warning}() */ + +/* I2C */ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_FSL		/* Use FSL common I2C driver */ +#define CONFIG_SYS_FSL_I2C_SPEED	400000	/* I2C speed in Hz */ +#define CONFIG_SYS_FSL_I2C_SLAVE	0x7F +#define CONFIG_SYS_FSL_I2C2_SPEED	400000	/* I2C speed in Hz */ +#define CONFIG_SYS_FSL_I2C2_SLAVE	0x7F +#define CONFIG_SYS_FSL_I2C_OFFSET	0x118000 +#define CONFIG_SYS_FSL_I2C2_OFFSET	0x119000 + +/* I2C bus multiplexer */ +#define I2C_MUX_PCA_ADDR                0x70 +#define I2C_MUX_CH_DEFAULT      0x8 + + +/* + * eSPI - Enhanced SPI + */ +#define CONFIG_FSL_ESPI +#define CONFIG_SPI_FLASH +#define CONFIG_SPI_FLASH_STMICRO +#define CONFIG_CMD_SF +#define CONFIG_SF_DEFAULT_SPEED         10000000 +#define CONFIG_SF_DEFAULT_MODE          0 + +/* + * General PCI + * Memory space is mapped 1-1, but I/O space must start from 0. + */ + +#ifdef CONFIG_PCI +/* controller 1, direct to uli, tgtid 3, Base address 20000 */ +#ifdef CONFIG_PCIE1 +#define	CONFIG_SYS_PCIE1_MEM_VIRT	0x80000000 +#define	CONFIG_SYS_PCIE1_MEM_BUS	0xe0000000 +#define	CONFIG_SYS_PCIE1_MEM_PHYS	0xc00000000ull +#define CONFIG_SYS_PCIE1_MEM_SIZE	0x10000000	/* 256M */ +#define CONFIG_SYS_PCIE1_IO_VIRT	0xf8000000 +#define CONFIG_SYS_PCIE1_IO_BUS		0x00000000 +#define CONFIG_SYS_PCIE1_IO_PHYS	0xff8000000ull +#define CONFIG_SYS_PCIE1_IO_SIZE	0x00010000	/* 64k */ +#endif + +/* controller 2, Slot 2, tgtid 2, Base address 201000 */ +#ifdef CONFIG_PCIE2 +#define CONFIG_SYS_PCIE2_MEM_VIRT	0x90000000 +#define CONFIG_SYS_PCIE2_MEM_BUS	0xe0000000 +#define CONFIG_SYS_PCIE2_MEM_PHYS	0xc10000000ull +#define CONFIG_SYS_PCIE2_MEM_SIZE	0x10000000	/* 256M */ +#define CONFIG_SYS_PCIE2_IO_VIRT	0xf8010000 +#define CONFIG_SYS_PCIE2_IO_BUS		0x00000000 +#define CONFIG_SYS_PCIE2_IO_PHYS	0xff8010000ull +#define CONFIG_SYS_PCIE2_IO_SIZE	0x00010000	/* 64k */ +#endif + +/* controller 3, Slot 1, tgtid 1, Base address 202000 */ +#ifdef CONFIG_PCIE3 +#define CONFIG_SYS_PCIE3_MEM_VIRT	0xa0000000 +#define CONFIG_SYS_PCIE3_MEM_BUS	0xe0000000 +#define CONFIG_SYS_PCIE3_MEM_PHYS	0xc20000000ull +#define CONFIG_SYS_PCIE3_MEM_SIZE	0x10000000	/* 256M */ +#define CONFIG_SYS_PCIE3_IO_VIRT	0xf8020000 +#define CONFIG_SYS_PCIE3_IO_BUS		0x00000000 +#define CONFIG_SYS_PCIE3_IO_PHYS	0xff8020000ull +#define CONFIG_SYS_PCIE3_IO_SIZE	0x00010000	/* 64k */ +#endif + +/* controller 4, Base address 203000 */ +#ifdef CONFIG_PCIE4 +#define CONFIG_SYS_PCIE4_MEM_VIRT	0xb0000000 +#define CONFIG_SYS_PCIE4_MEM_BUS	0xe0000000 +#define CONFIG_SYS_PCIE4_MEM_PHYS	0xc30000000ull +#define CONFIG_SYS_PCIE4_MEM_SIZE	0x10000000	/* 256M */ +#define CONFIG_SYS_PCIE4_IO_VIRT	0xf8030000 +#define CONFIG_SYS_PCIE4_IO_BUS		0x00000000 +#define CONFIG_SYS_PCIE4_IO_PHYS	0xff8030000ull +#define CONFIG_SYS_PCIE4_IO_SIZE	0x00010000	/* 64k */ +#endif + +#define CONFIG_PCI_PNP			/* do pci plug-and-play */ +#define CONFIG_E1000 + +#define CONFIG_PCI_SCAN_SHOW		/* show pci devices on startup */ +#define CONFIG_DOS_PARTITION +#endif	/* CONFIG_PCI */ + +/* SATA */ +#define CONFIG_FSL_SATA_V2 +#ifdef CONFIG_FSL_SATA_V2 +#define CONFIG_LIBATA +#define CONFIG_FSL_SATA + +#define CONFIG_SYS_SATA_MAX_DEVICE	1 +#define CONFIG_SATA1 +#define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR +#define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA + +#define CONFIG_LBA48 +#define CONFIG_CMD_SATA +#define CONFIG_DOS_PARTITION +#define CONFIG_CMD_EXT2 +#endif + +/* +* USB +*/ +#define CONFIG_HAS_FSL_DR_USB + +#ifdef CONFIG_HAS_FSL_DR_USB +#define CONFIG_USB_EHCI + +#ifdef CONFIG_USB_EHCI +#define CONFIG_CMD_USB +#define CONFIG_USB_STORAGE +#define CONFIG_USB_EHCI_FSL +#define CONFIG_EHCI_HCD_INIT_AFTER_RESET +#define CONFIG_CMD_EXT2 +#endif +#endif + +#define CONFIG_MMC + +#ifdef CONFIG_MMC +#define CONFIG_FSL_ESDHC +#define CONFIG_SYS_FSL_ESDHC_ADDR       CONFIG_SYS_MPC85xx_ESDHC_ADDR +#define CONFIG_CMD_MMC +#define CONFIG_GENERIC_MMC +#define CONFIG_CMD_EXT2 +#define CONFIG_CMD_FAT +#define CONFIG_DOS_PARTITION +#endif + +/* Qman/Bman */ +#ifndef CONFIG_NOBQFMAN +#define CONFIG_SYS_DPAA_QBMAN		/* Support Q/Bman */ +#define CONFIG_SYS_BMAN_NUM_PORTALS	25 +#define CONFIG_SYS_BMAN_MEM_BASE	0xf4000000 +#define CONFIG_SYS_BMAN_MEM_PHYS	0xff4000000ull +#define CONFIG_SYS_BMAN_MEM_SIZE	0x02000000 +#define CONFIG_SYS_QMAN_NUM_PORTALS	25 +#define CONFIG_SYS_QMAN_MEM_BASE	0xf6000000 +#define CONFIG_SYS_QMAN_MEM_PHYS	0xff6000000ull +#define CONFIG_SYS_QMAN_MEM_SIZE	0x02000000 + +#define CONFIG_SYS_DPAA_FMAN +#define CONFIG_SYS_DPAA_PME + +/* Default address of microcode for the Linux Fman driver */ +#if defined(CONFIG_SPIFLASH) +/* + * env is stored at 0x100000, sector size is 0x10000, ucode is stored after + * env, so we got 0x110000. + */ +#define CONFIG_SYS_QE_FW_IN_SPIFLASH +#define CONFIG_SYS_QE_FMAN_FW_ADDR	0x110000 +#elif defined(CONFIG_SDCARD) +/* + * PBL SD boot image should stored at 0x1000(8 blocks), the size of the image is + * about 545KB (1089 blocks), Env is stored after the image, and the env size is + * 0x2000 (16 blocks), 8 + 1089 + 16 = 1113, enlarge it to 1130. + */ +#define CONFIG_SYS_QE_FMAN_FW_IN_MMC +#define CONFIG_SYS_QE_FMAN_FW_ADDR	(512 * 1130) +#elif defined(CONFIG_NAND) +#define CONFIG_SYS_QE_FMAN_FW_IN_NAND +#define CONFIG_SYS_QE_FMAN_FW_ADDR	(6 * CONFIG_SYS_NAND_BLOCK_SIZE) +#else +#define CONFIG_SYS_QE_FMAN_FW_IN_NOR +#define CONFIG_SYS_QE_FMAN_FW_ADDR		0xEFF40000 +#endif +#define CONFIG_SYS_QE_FMAN_FW_LENGTH	0x10000 +#define CONFIG_SYS_FDT_PAD		(0x3000 + CONFIG_SYS_QE_FMAN_FW_LENGTH) +#endif /* CONFIG_NOBQFMAN */ + +#ifdef CONFIG_SYS_DPAA_FMAN +#define CONFIG_FMAN_ENET +#define CONFIG_PHY_VITESSE +#define CONFIG_PHY_REALTEK +#endif + +#ifdef CONFIG_FMAN_ENET +#define CONFIG_SYS_FM1_DTSEC1_RISER_PHY_ADDR    0x1c +#define CONFIG_SYS_FM1_DTSEC2_RISER_PHY_ADDR    0x1d +#define CONFIG_SYS_FM1_DTSEC3_RISER_PHY_ADDR    0x1e +#define CONFIG_SYS_FM1_DTSEC4_RISER_PHY_ADDR    0x1f + +#define CONFIG_MII		/* MII PHY management */ +#define CONFIG_ETHPRIME		"FM1@DTSEC1" +#define CONFIG_PHY_GIGE		/* Include GbE speed/duplex detection */ +#endif + +/* + * Environment + */ +#define CONFIG_LOADS_ECHO		/* echo on for serial download */ +#define CONFIG_SYS_LOADS_BAUD_CHANGE	/* allow baudrate change */ + +/* + * Command line configuration. + */ +#include <config_cmd_default.h> + +#define CONFIG_CMD_DHCP +#define CONFIG_CMD_ELF +#define CONFIG_CMD_ERRATA +#define CONFIG_CMD_GREPENV +#define CONFIG_CMD_IRQ +#define CONFIG_CMD_I2C +#define CONFIG_CMD_MII +#define CONFIG_CMD_PING +#define CONFIG_CMD_REGINFO +#define CONFIG_CMD_SETEXPR + +#ifdef CONFIG_PCI +#define CONFIG_CMD_PCI +#define CONFIG_CMD_NET +#endif + +/* + * Miscellaneous configurable options + */ +#define CONFIG_SYS_LONGHELP			/* undef to save memory	*/ +#define CONFIG_CMDLINE_EDITING			/* Command-line editing */ +#define CONFIG_AUTO_COMPLETE			/* add autocompletion support */ +#define CONFIG_SYS_LOAD_ADDR	0x2000000	/* default load address */ +#define CONFIG_SYS_PROMPT	"=> "		/* Monitor Command Prompt */ +#ifdef CONFIG_CMD_KGDB +#define CONFIG_SYS_CBSIZE	1024		/* Console I/O Buffer Size */ +#else +#define CONFIG_SYS_CBSIZE	256		/* Console I/O Buffer Size */ +#endif +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) +#define CONFIG_SYS_MAXARGS	16		/* max number of command args */ +#define CONFIG_SYS_BARGSIZE	CONFIG_SYS_CBSIZE/* Boot Argument Buffer Size */ +#define CONFIG_SYS_HZ		1000		/* decrementer freq: 1ms ticks*/ + +/* + * For booting Linux, the board info and command line data + * have to be in the first 64 MB of memory, since this is + * the maximum mapped by the Linux kernel during initialization. + */ +#define CONFIG_SYS_BOOTMAPSZ	(64 << 20)	/* Initial map for Linux*/ +#define CONFIG_SYS_BOOTM_LEN	(64 << 20)	/* Increase max gunzip size */ + +#ifdef CONFIG_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 + */ +#define CONFIG_ROOTPATH		"/opt/nfsroot" +#define CONFIG_BOOTFILE		"uImage" +#define CONFIG_UBOOTPATH	"u-boot.bin"	/* U-Boot image on TFTP server*/ + +/* default location for tftp and bootm */ +#define CONFIG_LOADADDR		1000000 + +#define CONFIG_BOOTDELAY	10	/*-1 disables auto-boot*/ + +#define CONFIG_BAUDRATE	115200 + +#define __USB_PHY_TYPE	utmi + +#define	CONFIG_EXTRA_ENV_SETTINGS				\ +	"hwconfig=fsl_ddr:ctlr_intlv=cacheline,"		\ +	"bank_intlv=cs0_cs1;"					\ +	"usb1:dr_mode=host,phy_type=" __stringify(__USB_PHY_TYPE) "\0"\ +	"netdev=eth0\0"						\ +	"uboot=" __stringify(CONFIG_UBOOTPATH) "\0"		\ +	"ubootaddr=" __stringify(CONFIG_SYS_TEXT_BASE) "\0"	\ +	"tftpflash=tftpboot $loadaddr $uboot && "		\ +	"protect off $ubootaddr +$filesize && "			\ +	"erase $ubootaddr +$filesize && "			\ +	"cp.b $loadaddr $ubootaddr $filesize && "		\ +	"protect on $ubootaddr +$filesize && "			\ +	"cmp.b $loadaddr $ubootaddr $filesize\0"		\ +	"consoledev=ttyS0\0"					\ +	"ramdiskaddr=2000000\0"					\ +	"ramdiskfile=t1040rdb/ramdisk.uboot\0"			\ +	"fdtaddr=c00000\0"					\ +	"fdtfile=t1040rdb/t1040rdb.dtb\0"			\ +	"bdev=sda3\0"						\ +	"c=ffe\0" + +#define CONFIG_LINUX                       \ +	"setenv bootargs root=/dev/ram rw "            \ +	"console=$consoledev,$baudrate $othbootargs;"  \ +	"setenv ramdiskaddr 0x02000000;"               \ +	"setenv fdtaddr 0x00c00000;"		       \ +	"setenv loadaddr 0x1000000;"		       \ +	"bootm $loadaddr $ramdiskaddr $fdtaddr" + +#define CONFIG_HDBOOT					\ +	"setenv bootargs root=/dev/$bdev rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"tftp $loadaddr $bootfile;"			\ +	"tftp $fdtaddr $fdtfile;"			\ +	"bootm $loadaddr - $fdtaddr" + +#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;"		\ +	"tftp $fdtaddr $fdtfile;"		\ +	"bootm $loadaddr - $fdtaddr" + +#define CONFIG_RAMBOOTCOMMAND				\ +	"setenv bootargs root=/dev/ram rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"tftp $ramdiskaddr $ramdiskfile;"		\ +	"tftp $loadaddr $bootfile;"			\ +	"tftp $fdtaddr $fdtfile;"			\ +	"bootm $loadaddr $ramdiskaddr $fdtaddr" + +#define CONFIG_BOOTCOMMAND		CONFIG_LINUX + +#ifdef CONFIG_SECURE_BOOT +#include <asm/fsl_secure_boot.h> +#endif + +#endif	/* __CONFIG_H */ diff --git a/include/configs/T1042RDB_PI.h b/include/configs/T1042RDB_PI.h new file mode 100644 index 000000000..eff08e380 --- /dev/null +++ b/include/configs/T1042RDB_PI.h @@ -0,0 +1,694 @@ +/* + * Copyright 2013 Freescale Semiconductor, Inc. + * + * 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 + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +/* + * T1042RDB_PI board configuration file + */ +#define CONFIG_T104xRDB +#define CONFIG_T1042RDB_PI +#define CONFIG_PHYS_64BIT + +#ifdef CONFIG_RAMBOOT_PBL +#define CONFIG_RAMBOOT_TEXT_BASE	CONFIG_SYS_TEXT_BASE +#define CONFIG_RESET_VECTOR_ADDRESS	0xfffffffc +#endif + +/* High Level Configuration Options */ +#define CONFIG_BOOKE +#define CONFIG_E500			/* BOOKE e500 family */ +#define CONFIG_E500MC			/* BOOKE e500mc family */ +#define CONFIG_SYS_BOOK3E_HV		/* Category E.HV supported */ +#define CONFIG_MPC85xx			/* MPC85xx/PQ3 platform */ +#define CONFIG_MP			/* support multiple processors */ + +#ifndef CONFIG_SYS_TEXT_BASE +#define CONFIG_SYS_TEXT_BASE	0xeff80000 +#endif + +#ifndef CONFIG_RESET_VECTOR_ADDRESS +#define CONFIG_RESET_VECTOR_ADDRESS	0xeffffffc +#endif + +#define CONFIG_SYS_FSL_CPC		/* Corenet Platform Cache */ +#define CONFIG_SYS_NUM_CPC		CONFIG_NUM_DDR_CONTROLLERS +#define CONFIG_FSL_IFC			/* Enable IFC Support */ +#define CONFIG_PCI			/* Enable PCI/PCIE */ +#define CONFIG_PCI_INDIRECT_BRIDGE +#define CONFIG_PCIE1			/* PCIE controler 1 */ +#define CONFIG_PCIE2			/* PCIE controler 2 */ +#define CONFIG_PCIE3			/* PCIE controler 3 */ +#define CONFIG_PCIE4			/* PCIE controler 4 */ + +#define CONFIG_FSL_PCI_INIT		/* Use common FSL init code */ +#define CONFIG_SYS_PCI_64BIT		/* enable 64-bit PCI resources */ + +#define CONFIG_FSL_LAW			/* Use common FSL init code */ + +#define CONFIG_ENV_OVERWRITE + +#ifdef CONFIG_SYS_NO_FLASH +#define CONFIG_ENV_IS_NOWHERE +#else +#define CONFIG_FLASH_CFI_DRIVER +#define CONFIG_SYS_FLASH_CFI +#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE +#endif + +#ifndef CONFIG_SYS_NO_FLASH +#if defined(CONFIG_SPIFLASH) +#define CONFIG_SYS_EXTRA_ENV_RELOC +#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_ENV_SPI_BUS              0 +#define CONFIG_ENV_SPI_CS               0 +#define CONFIG_ENV_SPI_MAX_HZ           10000000 +#define CONFIG_ENV_SPI_MODE             0 +#define CONFIG_ENV_SIZE                 0x2000          /* 8KB */ +#define CONFIG_ENV_OFFSET               0x100000        /* 1MB */ +#define CONFIG_ENV_SECT_SIZE            0x10000 +#elif defined(CONFIG_SDCARD) +#define CONFIG_SYS_EXTRA_ENV_RELOC +#define CONFIG_ENV_IS_IN_MMC +#define CONFIG_SYS_MMC_ENV_DEV          0 +#define CONFIG_ENV_SIZE			0x2000 +#define CONFIG_ENV_OFFSET		(512 * 1105) +#elif defined(CONFIG_NAND) +#define CONFIG_SYS_EXTRA_ENV_RELOC +#define CONFIG_ENV_IS_IN_NAND +#define CONFIG_ENV_SIZE			CONFIG_SYS_NAND_BLOCK_SIZE +#define CONFIG_ENV_OFFSET		(5 * CONFIG_SYS_NAND_BLOCK_SIZE) +#else +#define CONFIG_ENV_IS_IN_FLASH +#define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SECT_SIZE) +#define CONFIG_ENV_SIZE		0x2000 +#define CONFIG_ENV_SECT_SIZE	0x20000 /* 128K (one sector) */ +#endif +#else /* CONFIG_SYS_NO_FLASH */ +#define CONFIG_ENV_SIZE                0x2000 +#define CONFIG_ENV_SECT_SIZE   0x20000 /* 128K (one sector) */ +#endif + +#define CONFIG_SYS_CLK_FREQ	100000000 +#define CONFIG_DDR_CLK_FREQ	66666666 + +/* + * These can be toggled for performance analysis, otherwise use default. + */ +#define CONFIG_SYS_CACHE_STASHING +#define CONFIG_BACKSIDE_L2_CACHE +#define CONFIG_SYS_INIT_L2CSR0		L2CSR0_L2E +#define CONFIG_BTB			/* toggle branch predition */ +#define CONFIG_DDR_ECC +#ifdef CONFIG_DDR_ECC +#define CONFIG_ECC_INIT_VIA_DDRCONTROLLER +#define CONFIG_MEM_INIT_VALUE		0xdeadbeef +#endif + +#define CONFIG_ENABLE_36BIT_PHYS + +#define CONFIG_ADDR_MAP +#define CONFIG_SYS_NUM_ADDR_MAP		64	/* number of TLB1 entries */ + +#define CONFIG_SYS_MEMTEST_START	0x00200000	/* memtest works on */ +#define CONFIG_SYS_MEMTEST_END		0x00400000 +#define CONFIG_SYS_ALT_MEMTEST +#define CONFIG_PANIC_HANG	/* do not reset board on panic */ + +/* + *  Config the L3 Cache as L3 SRAM + */ +#define CONFIG_SYS_INIT_L3_ADDR		0xFFFC0000 + +#define CONFIG_SYS_DCSRBAR		0xf0000000 +#define CONFIG_SYS_DCSRBAR_PHYS		0xf00000000ull + +/* + * DDR Setup + */ +#define CONFIG_VERY_BIG_RAM +#define CONFIG_SYS_DDR_SDRAM_BASE	0x00000000 +#define CONFIG_SYS_SDRAM_BASE		CONFIG_SYS_DDR_SDRAM_BASE + +/* CONFIG_NUM_DDR_CONTROLLERS is defined in include/asm/config_mpc85xx.h */ +#define CONFIG_DIMM_SLOTS_PER_CTLR	1 +#define CONFIG_CHIP_SELECTS_PER_CTRL	(4 * CONFIG_DIMM_SLOTS_PER_CTLR) + +#define CONFIG_DDR_SPD +#define CONFIG_SYS_DDR_RAW_TIMING +#define CONFIG_SYS_FSL_DDR3 + +#define CONFIG_SYS_SPD_BUS_NUM	0 +#define SPD_EEPROM_ADDRESS	0x51 + +#define CONFIG_SYS_SDRAM_SIZE	4096	/* for fixed parameter use */ + +/* + * IFC Definitions + */ +#define CONFIG_SYS_FLASH_BASE	0xe8000000 +#define CONFIG_SYS_FLASH_BASE_PHYS	(0xf00000000ull | CONFIG_SYS_FLASH_BASE) + +#define CONFIG_SYS_NOR_CSPR_EXT	(0xf) +#define CONFIG_SYS_NOR_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE) | \ +				CSPR_PORT_SIZE_16 | \ +				CSPR_MSEL_NOR | \ +				CSPR_V) +#define CONFIG_SYS_NOR_AMASK	IFC_AMASK(128*1024*1024) +/* NOR Flash Timing Params */ +#define CONFIG_SYS_NOR_CSOR	CSOR_NAND_TRHZ_80 +#define CONFIG_SYS_NOR_FTIM0	(FTIM0_NOR_TACSE(0x4) | \ +				FTIM0_NOR_TEADC(0x5) | \ +				FTIM0_NOR_TEAHC(0x5)) +#define CONFIG_SYS_NOR_FTIM1	(FTIM1_NOR_TACO(0x35) | \ +				FTIM1_NOR_TRAD_NOR(0x1A) |\ +				FTIM1_NOR_TSEQRAD_NOR(0x13)) +#define CONFIG_SYS_NOR_FTIM2	(FTIM2_NOR_TCS(0x4) | \ +				FTIM2_NOR_TCH(0x4) | \ +				FTIM2_NOR_TWPH(0x0E) | \ +				FTIM2_NOR_TWP(0x1c)) +#define CONFIG_SYS_NOR_FTIM3	0x0 + +#define CONFIG_SYS_FLASH_QUIET_TEST +#define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */ + +#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */ +#define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */ +#define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */ +#define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */ + +#define CONFIG_SYS_FLASH_EMPTY_INFO +#define CONFIG_SYS_FLASH_BANKS_LIST	{CONFIG_SYS_FLASH_BASE_PHYS} + +/* CPLD on IFC */ +#define CONFIG_SYS_CPLD_BASE	0xffdf0000 +#define CONFIG_SYS_CPLD_BASE_PHYS	(0xf00000000ull | CONFIG_SYS_CPLD_BASE) +#define CONFIG_SYS_CSPR2	(CSPR_PHYS_ADDR(CONFIG_SYS_CPLD_BASE_PHYS) \ +				| CSPR_PORT_SIZE_8 \ +				| CSPR_MSEL_GPCM \ +				| CSPR_V) +#define CONFIG_SYS_AMASK2	IFC_AMASK(64*1024) +#define CONFIG_SYS_CSOR2	0x0 +/* CPLD Timing parameters for IFC CS2 */ +#define CONFIG_SYS_CS2_FTIM0		(FTIM0_GPCM_TACSE(0x0e) | \ +					FTIM0_GPCM_TEADC(0x0e) | \ +					FTIM0_GPCM_TEAHC(0x0e)) +#define CONFIG_SYS_CS2_FTIM1		(FTIM1_GPCM_TACO(0x0e) | \ +					FTIM1_GPCM_TRAD(0x1f)) +#define CONFIG_SYS_CS2_FTIM2		(FTIM2_GPCM_TCS(0x0e) | \ +					FTIM2_GPCM_TCH(0x0) | \ +					FTIM2_GPCM_TWP(0x1f)) +#define CONFIG_SYS_CS2_FTIM3		0x0 + +/* NAND Flash on IFC */ +#define CONFIG_NAND_FSL_IFC +#define CONFIG_SYS_NAND_BASE		0xff800000 +#define CONFIG_SYS_NAND_BASE_PHYS	(0xf00000000ull | CONFIG_SYS_NAND_BASE) + +#define CONFIG_SYS_NAND_CSPR_EXT	(0xf) +#define CONFIG_SYS_NAND_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_NAND_BASE_PHYS) \ +				| CSPR_PORT_SIZE_8 /* Port Size = 8 bit */ \ +				| CSPR_MSEL_NAND	/* MSEL = NAND */ \ +				| CSPR_V) +#define CONFIG_SYS_NAND_AMASK	IFC_AMASK(64*1024) + +#define CONFIG_SYS_NAND_CSOR    (CSOR_NAND_ECC_ENC_EN   /* ECC on encode */ \ +				| CSOR_NAND_ECC_DEC_EN  /* ECC on decode */ \ +				| CSOR_NAND_ECC_MODE_4  /* 4-bit ECC */ \ +				| CSOR_NAND_RAL_3	/* RAL = 3Byes */ \ +				| CSOR_NAND_PGS_4K	/* Page Size = 4K */ \ +				| CSOR_NAND_SPRZ_224/* Spare size = 224 */ \ +				| CSOR_NAND_PB(64))	/*Pages Per Block = 64*/ + +#define CONFIG_SYS_NAND_ONFI_DETECTION + +/* ONFI NAND Flash mode0 Timing Params */ +#define CONFIG_SYS_NAND_FTIM0		(FTIM0_NAND_TCCST(0x07) | \ +					FTIM0_NAND_TWP(0x18)   | \ +					FTIM0_NAND_TWCHT(0x07) | \ +					FTIM0_NAND_TWH(0x0a)) +#define CONFIG_SYS_NAND_FTIM1		(FTIM1_NAND_TADLE(0x32) | \ +					FTIM1_NAND_TWBE(0x39)  | \ +					FTIM1_NAND_TRR(0x0e)   | \ +					FTIM1_NAND_TRP(0x18)) +#define CONFIG_SYS_NAND_FTIM2		(FTIM2_NAND_TRAD(0x0f) | \ +					FTIM2_NAND_TREH(0x0a) | \ +					FTIM2_NAND_TWHRE(0x1e)) +#define CONFIG_SYS_NAND_FTIM3		0x0 + +#define CONFIG_SYS_NAND_DDR_LAW		11 +#define CONFIG_SYS_NAND_BASE_LIST	{ CONFIG_SYS_NAND_BASE } +#define CONFIG_SYS_MAX_NAND_DEVICE	1 +#define CONFIG_MTD_NAND_VERIFY_WRITE +#define CONFIG_CMD_NAND + +#define CONFIG_SYS_NAND_BLOCK_SIZE	(512 * 1024) + +#if defined(CONFIG_NAND) +#define CONFIG_SYS_CSPR0_EXT		CONFIG_SYS_NAND_CSPR_EXT +#define CONFIG_SYS_CSPR0		CONFIG_SYS_NAND_CSPR +#define CONFIG_SYS_AMASK0		CONFIG_SYS_NAND_AMASK +#define CONFIG_SYS_CSOR0		CONFIG_SYS_NAND_CSOR +#define CONFIG_SYS_CS0_FTIM0		CONFIG_SYS_NAND_FTIM0 +#define CONFIG_SYS_CS0_FTIM1		CONFIG_SYS_NAND_FTIM1 +#define CONFIG_SYS_CS0_FTIM2		CONFIG_SYS_NAND_FTIM2 +#define CONFIG_SYS_CS0_FTIM3		CONFIG_SYS_NAND_FTIM3 +#define CONFIG_SYS_CSPR1_EXT		CONFIG_SYS_NOR_CSPR_EXT +#define CONFIG_SYS_CSPR1		CONFIG_SYS_NOR_CSPR +#define CONFIG_SYS_AMASK1		CONFIG_SYS_NOR_AMASK +#define CONFIG_SYS_CSOR1		CONFIG_SYS_NOR_CSOR +#define CONFIG_SYS_CS1_FTIM0		CONFIG_SYS_NOR_FTIM0 +#define CONFIG_SYS_CS1_FTIM1		CONFIG_SYS_NOR_FTIM1 +#define CONFIG_SYS_CS1_FTIM2		CONFIG_SYS_NOR_FTIM2 +#define CONFIG_SYS_CS1_FTIM3		CONFIG_SYS_NOR_FTIM3 +#else +#define CONFIG_SYS_CSPR0_EXT		CONFIG_SYS_NOR_CSPR_EXT +#define CONFIG_SYS_CSPR0		CONFIG_SYS_NOR_CSPR +#define CONFIG_SYS_AMASK0		CONFIG_SYS_NOR_AMASK +#define CONFIG_SYS_CSOR0		CONFIG_SYS_NOR_CSOR +#define CONFIG_SYS_CS0_FTIM0		CONFIG_SYS_NOR_FTIM0 +#define CONFIG_SYS_CS0_FTIM1		CONFIG_SYS_NOR_FTIM1 +#define CONFIG_SYS_CS0_FTIM2		CONFIG_SYS_NOR_FTIM2 +#define CONFIG_SYS_CS0_FTIM3		CONFIG_SYS_NOR_FTIM3 +#define CONFIG_SYS_CSPR1_EXT		CONFIG_SYS_NAND_CSPR_EXT +#define CONFIG_SYS_CSPR1		CONFIG_SYS_NAND_CSPR +#define CONFIG_SYS_AMASK1		CONFIG_SYS_NAND_AMASK +#define CONFIG_SYS_CSOR1		CONFIG_SYS_NAND_CSOR +#define CONFIG_SYS_CS1_FTIM0		CONFIG_SYS_NAND_FTIM0 +#define CONFIG_SYS_CS1_FTIM1		CONFIG_SYS_NAND_FTIM1 +#define CONFIG_SYS_CS1_FTIM2		CONFIG_SYS_NAND_FTIM2 +#define CONFIG_SYS_CS1_FTIM3		CONFIG_SYS_NAND_FTIM3 +#endif + +#define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_TEXT_BASE + +#if defined(CONFIG_RAMBOOT_PBL) +#define CONFIG_SYS_RAMBOOT +#endif + +#define CONFIG_BOARD_EARLY_INIT_R +#define CONFIG_MISC_INIT_R + +#define CONFIG_HWCONFIG + +/* define to use L1 as initial stack */ +#define CONFIG_L1_INIT_RAM +#define CONFIG_SYS_INIT_RAM_LOCK +#define CONFIG_SYS_INIT_RAM_ADDR	0xfdd00000	/* Initial L1 address */ +#define CONFIG_SYS_INIT_RAM_ADDR_PHYS_HIGH	0xf +#define CONFIG_SYS_INIT_RAM_ADDR_PHYS_LOW	0xfe0ec000 +/* The assembler doesn't like typecast */ +#define CONFIG_SYS_INIT_RAM_ADDR_PHYS \ +	((CONFIG_SYS_INIT_RAM_ADDR_PHYS_HIGH * 1ull << 32) | \ +	  CONFIG_SYS_INIT_RAM_ADDR_PHYS_LOW) +#define CONFIG_SYS_INIT_RAM_SIZE		0x00004000 + +#define CONFIG_SYS_GBL_DATA_OFFSET	(CONFIG_SYS_INIT_RAM_SIZE - \ +					GENERATED_GBL_DATA_SIZE) +#define CONFIG_SYS_INIT_SP_OFFSET	CONFIG_SYS_GBL_DATA_OFFSET + +#define CONFIG_SYS_MONITOR_LEN		(512 * 1024) +#define CONFIG_SYS_MALLOC_LEN		(4 * 1024 * 1024) + +/* Serial Port - controlled on board with jumper J8 + * open - index 2 + * shorted - index 1 + */ +#define CONFIG_CONS_INDEX	1 +#define CONFIG_SYS_NS16550 +#define CONFIG_SYS_NS16550_SERIAL +#define CONFIG_SYS_NS16550_REG_SIZE	1 +#define CONFIG_SYS_NS16550_CLK		(get_bus_freq(0)/2) + +#define CONFIG_SYS_BAUDRATE_TABLE	\ +	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200} + +#define CONFIG_SYS_NS16550_COM1	(CONFIG_SYS_CCSRBAR+0x11C500) +#define CONFIG_SYS_NS16550_COM2	(CONFIG_SYS_CCSRBAR+0x11C600) +#define CONFIG_SYS_NS16550_COM3	(CONFIG_SYS_CCSRBAR+0x11D500) +#define CONFIG_SYS_NS16550_COM4	(CONFIG_SYS_CCSRBAR+0x11D600) +#define CONFIG_SERIAL_MULTI		/* Enable both serial ports */ +#define CONFIG_SYS_CONSOLE_IS_IN_ENV	/* determine from environment */ + +/* Use the HUSH parser */ +#define CONFIG_SYS_HUSH_PARSER +#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " + +/* pass open firmware flat tree */ +#define CONFIG_OF_LIBFDT +#define CONFIG_OF_BOARD_SETUP +#define CONFIG_OF_STDOUT_VIA_ALIAS + +/* new uImage format support */ +#define CONFIG_FIT +#define CONFIG_FIT_VERBOSE	/* enable fit_format_{error,warning}() */ + +/* I2C */ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_FSL		/* Use FSL common I2C driver */ +#define CONFIG_SYS_FSL_I2C_SPEED	400000	/* I2C speed in Hz */ +#define CONFIG_SYS_FSL_I2C_SLAVE	0x7F +#define CONFIG_SYS_FSL_I2C2_SPEED	400000	/* I2C speed in Hz */ +#define CONFIG_SYS_FSL_I2C2_SLAVE	0x7F +#define CONFIG_SYS_FSL_I2C_OFFSET	0x118000 +#define CONFIG_SYS_FSL_I2C2_OFFSET	0x119000 + +/* I2C bus multiplexer */ +#define I2C_MUX_PCA_ADDR                0x70 + +/* + * RTC configuration + */ +#define RTC +#define CONFIG_RTC_DS1337               1 +#define CONFIG_SYS_I2C_RTC_ADDR         0x68 + +/*DVI encoder*/ +#define CONFIG_HDMI_ENCODER_I2C_ADDR  0x75 + +/* + * eSPI - Enhanced SPI + */ +#define CONFIG_FSL_ESPI +#define CONFIG_SPI_FLASH +#define CONFIG_SPI_FLASH_STMICRO +#define CONFIG_CMD_SF +#define CONFIG_SF_DEFAULT_SPEED         10000000 +#define CONFIG_SF_DEFAULT_MODE          0 + +/* + * General PCI + * Memory space is mapped 1-1, but I/O space must start from 0. + */ + +#ifdef CONFIG_PCI +/* controller 1, direct to uli, tgtid 3, Base address 20000 */ +#ifdef CONFIG_PCIE1 +#define	CONFIG_SYS_PCIE1_MEM_VIRT	0x80000000 +#define	CONFIG_SYS_PCIE1_MEM_BUS	0xe0000000 +#define	CONFIG_SYS_PCIE1_MEM_PHYS	0xc00000000ull +#define CONFIG_SYS_PCIE1_MEM_SIZE	0x10000000	/* 256M */ +#define CONFIG_SYS_PCIE1_IO_VIRT	0xf8000000 +#define CONFIG_SYS_PCIE1_IO_BUS		0x00000000 +#define CONFIG_SYS_PCIE1_IO_PHYS	0xff8000000ull +#define CONFIG_SYS_PCIE1_IO_SIZE	0x00010000	/* 64k */ +#endif + +/* controller 2, Slot 2, tgtid 2, Base address 201000 */ +#ifdef CONFIG_PCIE2 +#define CONFIG_SYS_PCIE2_MEM_VIRT	0x90000000 +#define CONFIG_SYS_PCIE2_MEM_BUS	0xe0000000 +#define CONFIG_SYS_PCIE2_MEM_PHYS	0xc10000000ull +#define CONFIG_SYS_PCIE2_MEM_SIZE	0x10000000	/* 256M */ +#define CONFIG_SYS_PCIE2_IO_VIRT	0xf8010000 +#define CONFIG_SYS_PCIE2_IO_BUS		0x00000000 +#define CONFIG_SYS_PCIE2_IO_PHYS	0xff8010000ull +#define CONFIG_SYS_PCIE2_IO_SIZE	0x00010000	/* 64k */ +#endif + +/* controller 3, Slot 1, tgtid 1, Base address 202000 */ +#ifdef CONFIG_PCIE3 +#define CONFIG_SYS_PCIE3_MEM_VIRT	0xa0000000 +#define CONFIG_SYS_PCIE3_MEM_BUS	0xe0000000 +#define CONFIG_SYS_PCIE3_MEM_PHYS	0xc20000000ull +#define CONFIG_SYS_PCIE3_MEM_SIZE	0x10000000	/* 256M */ +#define CONFIG_SYS_PCIE3_IO_VIRT	0xf8020000 +#define CONFIG_SYS_PCIE3_IO_BUS		0x00000000 +#define CONFIG_SYS_PCIE3_IO_PHYS	0xff8020000ull +#define CONFIG_SYS_PCIE3_IO_SIZE	0x00010000	/* 64k */ +#endif + +/* controller 4, Base address 203000 */ +#ifdef CONFIG_PCIE4 +#define CONFIG_SYS_PCIE4_MEM_VIRT	0xb0000000 +#define CONFIG_SYS_PCIE4_MEM_BUS	0xe0000000 +#define CONFIG_SYS_PCIE4_MEM_PHYS	0xc30000000ull +#define CONFIG_SYS_PCIE4_MEM_SIZE	0x10000000	/* 256M */ +#define CONFIG_SYS_PCIE4_IO_VIRT	0xf8030000 +#define CONFIG_SYS_PCIE4_IO_BUS		0x00000000 +#define CONFIG_SYS_PCIE4_IO_PHYS	0xff8030000ull +#define CONFIG_SYS_PCIE4_IO_SIZE	0x00010000	/* 64k */ +#endif + +#define CONFIG_PCI_PNP			/* do pci plug-and-play */ +#define CONFIG_E1000 + +#define CONFIG_PCI_SCAN_SHOW		/* show pci devices on startup */ +#define CONFIG_DOS_PARTITION +#endif	/* CONFIG_PCI */ + +/* SATA */ +#define CONFIG_FSL_SATA_V2 +#ifdef CONFIG_FSL_SATA_V2 +#define CONFIG_LIBATA +#define CONFIG_FSL_SATA + +#define CONFIG_SYS_SATA_MAX_DEVICE	1 +#define CONFIG_SATA1 +#define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR +#define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA + +#define CONFIG_LBA48 +#define CONFIG_CMD_SATA +#define CONFIG_DOS_PARTITION +#define CONFIG_CMD_EXT2 +#endif + +/* +* USB +*/ +#define CONFIG_HAS_FSL_DR_USB + +#ifdef CONFIG_HAS_FSL_DR_USB +#define CONFIG_USB_EHCI + +#ifdef CONFIG_USB_EHCI +#define CONFIG_CMD_USB +#define CONFIG_USB_STORAGE +#define CONFIG_USB_EHCI_FSL +#define CONFIG_EHCI_HCD_INIT_AFTER_RESET +#define CONFIG_CMD_EXT2 +#endif +#endif + +#define CONFIG_MMC + +#ifdef CONFIG_MMC +#define CONFIG_FSL_ESDHC +#define CONFIG_SYS_FSL_ESDHC_ADDR       CONFIG_SYS_MPC85xx_ESDHC_ADDR +#define CONFIG_CMD_MMC +#define CONFIG_GENERIC_MMC +#define CONFIG_CMD_EXT2 +#define CONFIG_CMD_FAT +#define CONFIG_DOS_PARTITION +#endif + +/* Qman/Bman */ +#ifndef CONFIG_NOBQFMAN +#define CONFIG_SYS_DPAA_QBMAN		/* Support Q/Bman */ +#define CONFIG_SYS_BMAN_NUM_PORTALS	25 +#define CONFIG_SYS_BMAN_MEM_BASE	0xf4000000 +#define CONFIG_SYS_BMAN_MEM_PHYS	0xff4000000ull +#define CONFIG_SYS_BMAN_MEM_SIZE	0x02000000 +#define CONFIG_SYS_QMAN_NUM_PORTALS	25 +#define CONFIG_SYS_QMAN_MEM_BASE	0xf6000000 +#define CONFIG_SYS_QMAN_MEM_PHYS	0xff6000000ull +#define CONFIG_SYS_QMAN_MEM_SIZE	0x02000000 + +#define CONFIG_SYS_DPAA_FMAN +#define CONFIG_SYS_DPAA_PME + +/* Default address of microcode for the Linux Fman driver */ +#if defined(CONFIG_SPIFLASH) +/* + * env is stored at 0x100000, sector size is 0x10000, ucode is stored after + * env, so we got 0x110000. + */ +#define CONFIG_SYS_QE_FW_IN_SPIFLASH +#define CONFIG_SYS_QE_FMAN_FW_ADDR	0x110000 +#elif defined(CONFIG_SDCARD) +/* + * PBL SD boot image should stored at 0x1000(8 blocks), the size of the image is + * about 545KB (1089 blocks), Env is stored after the image, and the env size is + * 0x2000 (16 blocks), 8 + 1089 + 16 = 1113, enlarge it to 1130. + */ +#define CONFIG_SYS_QE_FMAN_FW_IN_MMC +#define CONFIG_SYS_QE_FMAN_FW_ADDR	(512 * 1130) +#elif defined(CONFIG_NAND) +#define CONFIG_SYS_QE_FMAN_FW_IN_NAND +#define CONFIG_SYS_QE_FMAN_FW_ADDR	(6 * CONFIG_SYS_NAND_BLOCK_SIZE) +#else +#define CONFIG_SYS_QE_FMAN_FW_IN_NOR +#define CONFIG_SYS_QE_FMAN_FW_ADDR		0xEFF40000 +#endif +#define CONFIG_SYS_QE_FMAN_FW_LENGTH	0x10000 +#define CONFIG_SYS_FDT_PAD		(0x3000 + CONFIG_SYS_QE_FMAN_FW_LENGTH) +#endif /* CONFIG_NOBQFMAN */ + +#ifdef CONFIG_SYS_DPAA_FMAN +#define CONFIG_FMAN_ENET +#define CONFIG_PHY_VITESSE +#define CONFIG_PHY_REALTEK +#endif + +#ifdef CONFIG_FMAN_ENET +#define CONFIG_MII		/* MII PHY management */ +#define CONFIG_ETHPRIME		"FM1@DTSEC1" +#define CONFIG_PHY_GIGE		/* Include GbE speed/duplex detection */ +#endif + +/* + * Environment + */ +#define CONFIG_LOADS_ECHO		/* echo on for serial download */ +#define CONFIG_SYS_LOADS_BAUD_CHANGE	/* allow baudrate change */ + +/* + * Command line configuration. + */ +#include <config_cmd_default.h> + +#define CONFIG_CMD_DATE +#define CONFIG_CMD_DHCP +#define CONFIG_CMD_ELF +#define CONFIG_CMD_ERRATA +#define CONFIG_CMD_GREPENV +#define CONFIG_CMD_IRQ +#define CONFIG_CMD_I2C +#define CONFIG_CMD_MII +#define CONFIG_CMD_PING +#define CONFIG_CMD_REGINFO +#define CONFIG_CMD_SETEXPR + +#ifdef CONFIG_PCI +#define CONFIG_CMD_PCI +#define CONFIG_CMD_NET +#endif + +/* + * Miscellaneous configurable options + */ +#define CONFIG_SYS_LONGHELP			/* undef to save memory	*/ +#define CONFIG_CMDLINE_EDITING			/* Command-line editing */ +#define CONFIG_AUTO_COMPLETE			/* add autocompletion support */ +#define CONFIG_SYS_LOAD_ADDR	0x2000000	/* default load address */ +#define CONFIG_SYS_PROMPT	"=> "		/* Monitor Command Prompt */ +#ifdef CONFIG_CMD_KGDB +#define CONFIG_SYS_CBSIZE	1024		/* Console I/O Buffer Size */ +#else +#define CONFIG_SYS_CBSIZE	256		/* Console I/O Buffer Size */ +#endif +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) +#define CONFIG_SYS_MAXARGS	16		/* max number of command args */ +#define CONFIG_SYS_BARGSIZE	CONFIG_SYS_CBSIZE/* Boot Argument Buffer Size */ +#define CONFIG_SYS_HZ		1000		/* decrementer freq: 1ms ticks*/ + +/* + * For booting Linux, the board info and command line data + * have to be in the first 64 MB of memory, since this is + * the maximum mapped by the Linux kernel during initialization. + */ +#define CONFIG_SYS_BOOTMAPSZ	(64 << 20)	/* Initial map for Linux*/ +#define CONFIG_SYS_BOOTM_LEN	(64 << 20)	/* Increase max gunzip size */ + +#ifdef CONFIG_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 + */ +#define CONFIG_ROOTPATH		"/opt/nfsroot" +#define CONFIG_BOOTFILE		"uImage" +#define CONFIG_UBOOTPATH	"u-boot.bin"	/* U-Boot image on TFTP server*/ + +/* default location for tftp and bootm */ +#define CONFIG_LOADADDR		1000000 + +#define CONFIG_BOOTDELAY	10	/*-1 disables auto-boot*/ + +#define CONFIG_BAUDRATE	115200 + +#define __USB_PHY_TYPE	utmi + +#define	CONFIG_EXTRA_ENV_SETTINGS				\ +	"hwconfig=fsl_ddr:ctlr_intlv=cacheline,"		\ +	"bank_intlv=cs0_cs1;"					\ +	"usb1:dr_mode=host,phy_type=" __stringify(__USB_PHY_TYPE) "\0"\ +	"netdev=eth0\0"						\ +	"uboot=" __stringify(CONFIG_UBOOTPATH) "\0"		\ +	"ubootaddr=" __stringify(CONFIG_SYS_TEXT_BASE) "\0"	\ +	"tftpflash=tftpboot $loadaddr $uboot && "		\ +	"protect off $ubootaddr +$filesize && "			\ +	"erase $ubootaddr +$filesize && "			\ +	"cp.b $loadaddr $ubootaddr $filesize && "		\ +	"protect on $ubootaddr +$filesize && "			\ +	"cmp.b $loadaddr $ubootaddr $filesize\0"		\ +	"consoledev=ttyS0\0"					\ +	"ramdiskaddr=2000000\0"					\ +	"ramdiskfile=t1040rdb_pi/ramdisk.uboot\0"			\ +	"fdtaddr=c00000\0"					\ +	"fdtfile=t1040rdb_pi/t1040rdb_pi.dtb\0"				\ +	"bdev=sda3\0"						\ +	"c=ffe\0" + +#define CONFIG_LINUX                       \ +	"setenv bootargs root=/dev/ram rw "            \ +	"console=$consoledev,$baudrate $othbootargs;"  \ +	"setenv ramdiskaddr 0x02000000;"               \ +	"setenv fdtaddr 0x00c00000;"		       \ +	"setenv loadaddr 0x1000000;"		       \ +	"bootm $loadaddr $ramdiskaddr $fdtaddr" + +#define CONFIG_HDBOOT					\ +	"setenv bootargs root=/dev/$bdev rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"tftp $loadaddr $bootfile;"			\ +	"tftp $fdtaddr $fdtfile;"			\ +	"bootm $loadaddr - $fdtaddr" + +#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;"		\ +	"tftp $fdtaddr $fdtfile;"		\ +	"bootm $loadaddr - $fdtaddr" + +#define CONFIG_RAMBOOTCOMMAND				\ +	"setenv bootargs root=/dev/ram rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"tftp $ramdiskaddr $ramdiskfile;"		\ +	"tftp $loadaddr $bootfile;"			\ +	"tftp $fdtaddr $fdtfile;"			\ +	"bootm $loadaddr $ramdiskaddr $fdtaddr" + +#define CONFIG_BOOTCOMMAND		CONFIG_LINUX + +#ifdef CONFIG_SECURE_BOOT +#include <asm/fsl_secure_boot.h> +#endif + +#endif	/* __CONFIG_H */ diff --git a/include/configs/T2080QDS.h b/include/configs/T2080QDS.h new file mode 100644 index 000000000..ad0981697 --- /dev/null +++ b/include/configs/T2080QDS.h @@ -0,0 +1,805 @@ +/* + * Copyright 2011-2013 Freescale Semiconductor, Inc. + * + * SPDX-License-Identifier:     GPL-2.0+ + */ + +/* + * T2080 QDS board configuration file + */ + +#ifndef __T2080QDS_H +#define __T2080QDS_H + +#define CONFIG_T2080QDS +#define CONFIG_ICS307_REFCLK_HZ 25000000  /* ICS307 ref clk freq */ +#define CONFIG_MMC +#define CONFIG_SPI_FLASH +#define CONFIG_USB_EHCI +#define CONFIG_FSL_SATA_V2 +#define CONFIG_SYS_SRIO		/* Enable Serial RapidIO Support */ +#define CONFIG_SRIO1		/* SRIO port 1 */ +#define CONFIG_SRIO2		/* SRIO port 2 */ + +/* High Level Configuration Options */ +#define CONFIG_PHYS_64BIT +#define CONFIG_BOOKE +#define CONFIG_E500		/* BOOKE e500 family */ +#define CONFIG_E500MC		/* BOOKE e500mc family */ +#define CONFIG_SYS_BOOK3E_HV	/* Category E.HV supported */ +#define CONFIG_MPC85xx		/* MPC85xx/PQ3 platform */ +#define CONFIG_MP		/* support multiple processors */ +#define CONFIG_ENABLE_36BIT_PHYS + +#ifdef CONFIG_PHYS_64BIT +#define CONFIG_ADDR_MAP 1 +#define CONFIG_SYS_NUM_ADDR_MAP 64 /* number of TLB1 entries */ +#endif + +#define CONFIG_SYS_FSL_CPC	/* Corenet Platform Cache */ +#define CONFIG_SYS_NUM_CPC	CONFIG_NUM_DDR_CONTROLLERS +#define CONFIG_FSL_IFC		/* Enable IFC Support */ +#define CONFIG_FSL_LAW		/* Use common FSL init code */ +#define CONFIG_ENV_OVERWRITE + +#ifdef CONFIG_RAMBOOT_PBL +#define CONFIG_RAMBOOT_TEXT_BASE	CONFIG_SYS_TEXT_BASE +#define CONFIG_RESET_VECTOR_ADDRESS	0xfffffffc +#define CONFIG_PBLPBI_CONFIG $(SRCTREE)/board/freescale/t2080qds/t2080_pbi.cfg +#define CONFIG_PBLRCW_CONFIG $(SRCTREE)/board/freescale/t2080qds/t2080_rcw.cfg +#endif + +#define CONFIG_SRIO_PCIE_BOOT_MASTER +#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE +/* Set 1M boot space */ +#define CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR (CONFIG_SYS_TEXT_BASE & 0xfff00000) +#define CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR_PHYS \ +		(0x300000000ull | CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR) +#define CONFIG_RESET_VECTOR_ADDRESS 0xfffffffc +#define CONFIG_SYS_NO_FLASH +#endif + +#ifndef CONFIG_SYS_TEXT_BASE +#define CONFIG_SYS_TEXT_BASE	0xeff80000 +#endif + +#ifndef CONFIG_RESET_VECTOR_ADDRESS +#define CONFIG_RESET_VECTOR_ADDRESS	0xeffffffc +#endif + +/* + * These can be toggled for performance analysis, otherwise use default. + */ +#define CONFIG_SYS_CACHE_STASHING +#define CONFIG_BTB		/* toggle branch predition */ +#define CONFIG_DDR_ECC +#ifdef CONFIG_DDR_ECC +#define CONFIG_ECC_INIT_VIA_DDRCONTROLLER +#define CONFIG_MEM_INIT_VALUE		0xdeadbeef +#endif + +#ifdef CONFIG_SYS_NO_FLASH +#if !defined(CONFIG_SRIO_PCIE_BOOT_SLAVE) && !defined(CONFIG_RAMBOOT_PBL) +#define CONFIG_ENV_IS_NOWHERE +#endif +#else +#define CONFIG_FLASH_CFI_DRIVER +#define CONFIG_SYS_FLASH_CFI +#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE +#endif + +#if defined(CONFIG_SPIFLASH) +#define CONFIG_SYS_EXTRA_ENV_RELOC +#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_ENV_SPI_BUS	0 +#define CONFIG_ENV_SPI_CS	0 +#define CONFIG_ENV_SPI_MAX_HZ	10000000 +#define CONFIG_ENV_SPI_MODE	0 +#define CONFIG_ENV_SIZE		0x2000	   /* 8KB */ +#define CONFIG_ENV_OFFSET	0x100000   /* 1MB */ +#define CONFIG_ENV_SECT_SIZE	0x10000 +#elif defined(CONFIG_SDCARD) +#define CONFIG_SYS_EXTRA_ENV_RELOC +#define CONFIG_ENV_IS_IN_MMC +#define CONFIG_SYS_MMC_ENV_DEV	0 +#define CONFIG_ENV_SIZE		0x2000 +#define CONFIG_ENV_OFFSET	(512 * 1105) +#elif defined(CONFIG_NAND) +#define CONFIG_SYS_EXTRA_ENV_RELOC +#define CONFIG_ENV_IS_IN_NAND +#define CONFIG_ENV_SIZE		CONFIG_SYS_NAND_BLOCK_SIZE +#define CONFIG_ENV_OFFSET	(5 * CONFIG_SYS_NAND_BLOCK_SIZE) +#elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE) +#define CONFIG_ENV_IS_IN_REMOTE +#define CONFIG_ENV_ADDR		0xffe20000 +#define CONFIG_ENV_SIZE		0x2000 +#elif defined(CONFIG_ENV_IS_NOWHERE) +#define CONFIG_ENV_SIZE		0x2000 +#else +#define CONFIG_ENV_IS_IN_FLASH +#define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SECT_SIZE) +#define CONFIG_ENV_SIZE		0x2000 +#define CONFIG_ENV_SECT_SIZE	0x20000 /* 128K (one sector) */ +#endif + +#ifndef __ASSEMBLY__ +unsigned long get_board_sys_clk(void); +unsigned long get_board_ddr_clk(void); +#endif + +#define CONFIG_SYS_CLK_FREQ	get_board_sys_clk() +#define CONFIG_DDR_CLK_FREQ	get_board_ddr_clk() + +/* + * Config the L3 Cache as L3 SRAM + */ +#define CONFIG_SYS_INIT_L3_ADDR	 CONFIG_RAMBOOT_TEXT_BASE + +#define CONFIG_SYS_DCSRBAR	0xf0000000 +#define CONFIG_SYS_DCSRBAR_PHYS	0xf00000000ull + +/* EEPROM */ +#define CONFIG_ID_EEPROM +#define CONFIG_SYS_I2C_EEPROM_NXID +#define CONFIG_SYS_EEPROM_BUS_NUM	0 +#define CONFIG_SYS_I2C_EEPROM_ADDR	0x57 +#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN	1 + +/* + * DDR Setup + */ +#define CONFIG_VERY_BIG_RAM +#define CONFIG_SYS_DDR_SDRAM_BASE	0x00000000 +#define CONFIG_SYS_SDRAM_BASE		CONFIG_SYS_DDR_SDRAM_BASE +#define CONFIG_DIMM_SLOTS_PER_CTLR	1 +#define CONFIG_CHIP_SELECTS_PER_CTRL	(4 * CONFIG_DIMM_SLOTS_PER_CTLR) +#define CONFIG_DDR_SPD +#define CONFIG_SYS_FSL_DDR3 +#define CONFIG_FSL_DDR_INTERACTIVE +#define CONFIG_SYS_SPD_BUS_NUM	0 +#define CONFIG_SYS_SDRAM_SIZE	2048	/* for fixed parameter use */ +#define SPD_EEPROM_ADDRESS1	0x51 +#define SPD_EEPROM_ADDRESS2	0x52 +#define SPD_EEPROM_ADDRESS	SPD_EEPROM_ADDRESS1 +#define CTRL_INTLV_PREFERED	cacheline + +/* + * IFC Definitions + */ +#define CONFIG_SYS_FLASH_BASE		0xe0000000 +#define CONFIG_SYS_FLASH_BASE_PHYS	(0xf00000000ull | CONFIG_SYS_FLASH_BASE) +#define CONFIG_SYS_NOR0_CSPR_EXT	(0xf) +#define CONFIG_SYS_NOR0_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS \ +				+ 0x8000000) | \ +				CSPR_PORT_SIZE_16 | \ +				CSPR_MSEL_NOR | \ +				CSPR_V) +#define CONFIG_SYS_NOR1_CSPR_EXT	(0xf) +#define CONFIG_SYS_NOR1_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS) | \ +				CSPR_PORT_SIZE_16 | \ +				CSPR_MSEL_NOR | \ +				CSPR_V) +#define CONFIG_SYS_NOR_AMASK	IFC_AMASK(128*1024*1024) +/* NOR Flash Timing Params */ +#define CONFIG_SYS_NOR_CSOR	CSOR_NAND_TRHZ_80 + +#define CONFIG_SYS_NOR_FTIM0	(FTIM0_NOR_TACSE(0x4) | \ +				FTIM0_NOR_TEADC(0x5) | \ +				FTIM0_NOR_TEAHC(0x5)) +#define CONFIG_SYS_NOR_FTIM1	(FTIM1_NOR_TACO(0x35) | \ +				FTIM1_NOR_TRAD_NOR(0x1A) |\ +				FTIM1_NOR_TSEQRAD_NOR(0x13)) +#define CONFIG_SYS_NOR_FTIM2	(FTIM2_NOR_TCS(0x4) | \ +				FTIM2_NOR_TCH(0x4) | \ +				FTIM2_NOR_TWPH(0x0E) | \ +				FTIM2_NOR_TWP(0x1c)) +#define CONFIG_SYS_NOR_FTIM3	0x0 + +#define CONFIG_SYS_FLASH_QUIET_TEST +#define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */ + +#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */ +#define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */ +#define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */ +#define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */ + +#define CONFIG_SYS_FLASH_EMPTY_INFO +#define CONFIG_SYS_FLASH_BANKS_LIST	{CONFIG_SYS_FLASH_BASE_PHYS \ +					+ 0x8000000, CONFIG_SYS_FLASH_BASE_PHYS} + +#define CONFIG_FSL_QIXIS	/* use common QIXIS code */ +#define QIXIS_BASE			0xffdf0000 +#define QIXIS_LBMAP_SWITCH		6 +#define QIXIS_LBMAP_MASK		0x0f +#define QIXIS_LBMAP_SHIFT		0 +#define QIXIS_LBMAP_DFLTBANK		0x00 +#define QIXIS_LBMAP_ALTBANK		0x04 +#define QIXIS_RST_CTL_RESET		0x83 +#define QIXIS_RST_FORCE_MEM		0x1 +#define QIXIS_RCFG_CTL_RECONFIG_IDLE	0x20 +#define QIXIS_RCFG_CTL_RECONFIG_START	0x21 +#define QIXIS_RCFG_CTL_WATCHDOG_ENBLE	0x08 +#define QIXIS_BASE_PHYS		(0xf00000000ull | QIXIS_BASE) + +#define CONFIG_SYS_CSPR3_EXT	(0xf) +#define CONFIG_SYS_CSPR3	(CSPR_PHYS_ADDR(QIXIS_BASE_PHYS) \ +				| CSPR_PORT_SIZE_8 \ +				| CSPR_MSEL_GPCM \ +				| CSPR_V) +#define CONFIG_SYS_AMASK3	IFC_AMASK(4*1024) +#define CONFIG_SYS_CSOR3	0x0 +/* QIXIS Timing parameters for IFC CS3 */ +#define CONFIG_SYS_CS3_FTIM0		(FTIM0_GPCM_TACSE(0x0e) | \ +					FTIM0_GPCM_TEADC(0x0e) | \ +					FTIM0_GPCM_TEAHC(0x0e)) +#define CONFIG_SYS_CS3_FTIM1		(FTIM1_GPCM_TACO(0xff) | \ +					FTIM1_GPCM_TRAD(0x3f)) +#define CONFIG_SYS_CS3_FTIM2		(FTIM2_GPCM_TCS(0x0e) | \ +					FTIM2_GPCM_TCH(0x0) | \ +					FTIM2_GPCM_TWP(0x1f)) +#define CONFIG_SYS_CS3_FTIM3		0x0 + +/* NAND Flash on IFC */ +#define CONFIG_NAND_FSL_IFC +#define CONFIG_SYS_NAND_BASE		0xff800000 +#define CONFIG_SYS_NAND_BASE_PHYS	(0xf00000000ull | CONFIG_SYS_NAND_BASE) + +#define CONFIG_SYS_NAND_CSPR_EXT	(0xf) +#define CONFIG_SYS_NAND_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_NAND_BASE_PHYS) \ +				| CSPR_PORT_SIZE_8 /* Port Size = 8 bit */ \ +				| CSPR_MSEL_NAND	 /* MSEL = NAND */ \ +				| CSPR_V) +#define CONFIG_SYS_NAND_AMASK	IFC_AMASK(64*1024) + +#define CONFIG_SYS_NAND_CSOR	(CSOR_NAND_ECC_ENC_EN	/* ECC on encode */ \ +				| CSOR_NAND_ECC_DEC_EN	/* ECC on decode */ \ +				| CSOR_NAND_ECC_MODE_4	/* 4-bit ECC */	    \ +				| CSOR_NAND_RAL_3	/* RAL = 2Byes */   \ +				| CSOR_NAND_PGS_2K	/* Page Size = 2K */\ +				| CSOR_NAND_SPRZ_64	/* Spare size = 64 */\ +				| CSOR_NAND_PB(64))	/*Pages Per Block = 64*/ + +#define CONFIG_SYS_NAND_ONFI_DETECTION + +/* ONFI NAND Flash mode0 Timing Params */ +#define CONFIG_SYS_NAND_FTIM0		(FTIM0_NAND_TCCST(0x07) | \ +					FTIM0_NAND_TWP(0x18)    | \ +					FTIM0_NAND_TWCHT(0x07)  | \ +					FTIM0_NAND_TWH(0x0a)) +#define CONFIG_SYS_NAND_FTIM1		(FTIM1_NAND_TADLE(0x32) | \ +					FTIM1_NAND_TWBE(0x39)   | \ +					FTIM1_NAND_TRR(0x0e)    | \ +					FTIM1_NAND_TRP(0x18)) +#define CONFIG_SYS_NAND_FTIM2		(FTIM2_NAND_TRAD(0x0f)  | \ +					FTIM2_NAND_TREH(0x0a)   | \ +					FTIM2_NAND_TWHRE(0x1e)) +#define CONFIG_SYS_NAND_FTIM3		0x0 + +#define CONFIG_SYS_NAND_DDR_LAW		11 +#define CONFIG_SYS_NAND_BASE_LIST	{ CONFIG_SYS_NAND_BASE } +#define CONFIG_SYS_MAX_NAND_DEVICE	1 +#define CONFIG_MTD_NAND_VERIFY_WRITE +#define CONFIG_CMD_NAND +#define CONFIG_SYS_NAND_BLOCK_SIZE	(128 * 1024) + +#if defined(CONFIG_NAND) +#define CONFIG_SYS_CSPR0_EXT		CONFIG_SYS_NAND_CSPR_EXT +#define CONFIG_SYS_CSPR0		CONFIG_SYS_NAND_CSPR +#define CONFIG_SYS_AMASK0		CONFIG_SYS_NAND_AMASK +#define CONFIG_SYS_CSOR0		CONFIG_SYS_NAND_CSOR +#define CONFIG_SYS_CS0_FTIM0		CONFIG_SYS_NAND_FTIM0 +#define CONFIG_SYS_CS0_FTIM1		CONFIG_SYS_NAND_FTIM1 +#define CONFIG_SYS_CS0_FTIM2		CONFIG_SYS_NAND_FTIM2 +#define CONFIG_SYS_CS0_FTIM3		CONFIG_SYS_NAND_FTIM3 +#define CONFIG_SYS_CSPR2_EXT		CONFIG_SYS_NOR0_CSPR_EXT +#define CONFIG_SYS_CSPR2		CONFIG_SYS_NOR0_CSPR +#define CONFIG_SYS_AMASK2		CONFIG_SYS_NOR_AMASK +#define CONFIG_SYS_CSOR2		CONFIG_SYS_NOR_CSOR +#define CONFIG_SYS_CS2_FTIM0		CONFIG_SYS_NOR_FTIM0 +#define CONFIG_SYS_CS2_FTIM1		CONFIG_SYS_NOR_FTIM1 +#define CONFIG_SYS_CS2_FTIM2		CONFIG_SYS_NOR_FTIM2 +#define CONFIG_SYS_CS2_FTIM3		CONFIG_SYS_NOR_FTIM3 +#else +#define CONFIG_SYS_CSPR0_EXT		CONFIG_SYS_NOR0_CSPR_EXT +#define CONFIG_SYS_CSPR0		CONFIG_SYS_NOR0_CSPR +#define CONFIG_SYS_AMASK0		CONFIG_SYS_NOR_AMASK +#define CONFIG_SYS_CSOR0		CONFIG_SYS_NOR_CSOR +#define CONFIG_SYS_CS0_FTIM0		CONFIG_SYS_NOR_FTIM0 +#define CONFIG_SYS_CS0_FTIM1		CONFIG_SYS_NOR_FTIM1 +#define CONFIG_SYS_CS0_FTIM2		CONFIG_SYS_NOR_FTIM2 +#define CONFIG_SYS_CS0_FTIM3		CONFIG_SYS_NOR_FTIM3 +#define CONFIG_SYS_CSPR2_EXT		CONFIG_SYS_NAND_CSPR_EXT +#define CONFIG_SYS_CSPR2		CONFIG_SYS_NAND_CSPR +#define CONFIG_SYS_AMASK2		CONFIG_SYS_NAND_AMASK +#define CONFIG_SYS_CSOR2		CONFIG_SYS_NAND_CSOR +#define CONFIG_SYS_CS2_FTIM0		CONFIG_SYS_NAND_FTIM0 +#define CONFIG_SYS_CS2_FTIM1		CONFIG_SYS_NAND_FTIM1 +#define CONFIG_SYS_CS2_FTIM2		CONFIG_SYS_NAND_FTIM2 +#define CONFIG_SYS_CS2_FTIM3		CONFIG_SYS_NAND_FTIM3 +#endif +#define CONFIG_SYS_CSPR1_EXT		CONFIG_SYS_NOR1_CSPR_EXT +#define CONFIG_SYS_CSPR1		CONFIG_SYS_NOR1_CSPR +#define CONFIG_SYS_AMASK1		CONFIG_SYS_NOR_AMASK +#define CONFIG_SYS_CSOR1		CONFIG_SYS_NOR_CSOR +#define CONFIG_SYS_CS1_FTIM0		CONFIG_SYS_NOR_FTIM0 +#define CONFIG_SYS_CS1_FTIM1		CONFIG_SYS_NOR_FTIM1 +#define CONFIG_SYS_CS1_FTIM2		CONFIG_SYS_NOR_FTIM2 +#define CONFIG_SYS_CS1_FTIM3		CONFIG_SYS_NOR_FTIM3 + +#if defined(CONFIG_RAMBOOT_PBL) +#define CONFIG_SYS_RAMBOOT +#endif + +#define CONFIG_SYS_MONITOR_BASE	 CONFIG_SYS_TEXT_BASE +#define CONFIG_BOARD_EARLY_INIT_R	/* call board_early_init_r function */ +#define CONFIG_MISC_INIT_R +#define CONFIG_HWCONFIG + +/* define to use L1 as initial stack */ +#define CONFIG_L1_INIT_RAM +#define CONFIG_SYS_INIT_RAM_LOCK +#define CONFIG_SYS_INIT_RAM_ADDR	0xfdd00000 /* Initial L1 address */ +#define CONFIG_SYS_INIT_RAM_ADDR_PHYS_HIGH	0xf +#define CONFIG_SYS_INIT_RAM_ADDR_PHYS_LOW	0xfe0ec000 +/* The assembler doesn't like typecast */ +#define CONFIG_SYS_INIT_RAM_ADDR_PHYS \ +			((CONFIG_SYS_INIT_RAM_ADDR_PHYS_HIGH * 1ull << 32) | \ +			CONFIG_SYS_INIT_RAM_ADDR_PHYS_LOW) +#define CONFIG_SYS_INIT_RAM_SIZE	0x00004000 +#define CONFIG_SYS_GBL_DATA_OFFSET	(CONFIG_SYS_INIT_RAM_SIZE - \ +						GENERATED_GBL_DATA_SIZE) +#define CONFIG_SYS_INIT_SP_OFFSET	CONFIG_SYS_GBL_DATA_OFFSET +#define CONFIG_SYS_MONITOR_LEN		(512 * 1024) +#define CONFIG_SYS_MALLOC_LEN		(4 * 1024 * 1024) + +/* + * Serial Port + */ +#define CONFIG_CONS_INDEX		1 +#define CONFIG_SYS_NS16550 +#define CONFIG_SYS_NS16550_SERIAL +#define CONFIG_SYS_NS16550_REG_SIZE	1 +#define CONFIG_SYS_NS16550_CLK		(get_bus_freq(0)/2) +#define CONFIG_SYS_BAUDRATE_TABLE	\ +	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200} +#define CONFIG_SYS_NS16550_COM1 (CONFIG_SYS_CCSRBAR+0x11C500) +#define CONFIG_SYS_NS16550_COM2 (CONFIG_SYS_CCSRBAR+0x11C600) +#define CONFIG_SYS_NS16550_COM3 (CONFIG_SYS_CCSRBAR+0x11D500) +#define CONFIG_SYS_NS16550_COM4 (CONFIG_SYS_CCSRBAR+0x11D600) + +/* Use the HUSH parser */ +#define CONFIG_SYS_HUSH_PARSER +#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " + +/* pass open firmware flat tree */ +#define CONFIG_OF_LIBFDT +#define CONFIG_OF_BOARD_SETUP +#define CONFIG_OF_STDOUT_VIA_ALIAS + +/* new uImage format support */ +#define CONFIG_FIT +#define CONFIG_FIT_VERBOSE	/* enable fit_format_{error,warning}() */ + +/* + * I2C + */ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_FSL +#define CONFIG_SYS_FSL_I2C_SLAVE   0x7F +#define CONFIG_SYS_FSL_I2C2_SLAVE  0x7F +#define CONFIG_SYS_FSL_I2C3_SLAVE  0x7F +#define CONFIG_SYS_FSL_I2C4_SLAVE  0x7F +#define CONFIG_SYS_FSL_I2C_OFFSET  0x118000 +#define CONFIG_SYS_FSL_I2C2_OFFSET 0x118100 +#define CONFIG_SYS_FSL_I2C3_OFFSET 0x119000 +#define CONFIG_SYS_FSL_I2C4_OFFSET 0x119100 +#define CONFIG_SYS_FSL_I2C_SPEED   100000 +#define CONFIG_SYS_FSL_I2C2_SPEED  100000 +#define CONFIG_SYS_FSL_I2C3_SPEED  100000 +#define CONFIG_SYS_FSL_I2C4_SPEED  100000 +#define I2C_MUX_PCA_ADDR_PRI	0x77 /* I2C bus multiplexer,primary */ +#define I2C_MUX_PCA_ADDR_SEC1	0x75 /* I2C bus multiplexer,secondary 1 */ +#define I2C_MUX_PCA_ADDR_SEC2	0x76 /* I2C bus multiplexer,secondary 2 */ +#define I2C_MUX_CH_DEFAULT	0x8 + + +/* + * RapidIO + */ +#define CONFIG_SYS_SRIO1_MEM_VIRT	0xa0000000 +#define CONFIG_SYS_SRIO1_MEM_PHYS	0xc20000000ull +#define CONFIG_SYS_SRIO1_MEM_SIZE	0x10000000 /* 256M */ +#define CONFIG_SYS_SRIO2_MEM_VIRT	0xb0000000 +#define CONFIG_SYS_SRIO2_MEM_PHYS	0xc30000000ull +#define CONFIG_SYS_SRIO2_MEM_SIZE	0x10000000 /* 256M */ +/* + * for slave u-boot IMAGE instored in master memory space, + * PHYS must be aligned based on the SIZE + */ +#define CONFIG_SRIO_PCIE_BOOT_IMAGE_MEM_PHYS 0xfef080000ull +#define CONFIG_SRIO_PCIE_BOOT_IMAGE_MEM_BUS1 0xfff80000ull +#define CONFIG_SRIO_PCIE_BOOT_IMAGE_SIZE     0x80000 /* 512K */ +#define CONFIG_SRIO_PCIE_BOOT_IMAGE_MEM_BUS2 0x3fff80000ull +/* + * for slave UCODE and ENV instored in master memory space, + * PHYS must be aligned based on the SIZE + */ +#define CONFIG_SRIO_PCIE_BOOT_UCODE_ENV_MEM_PHYS 0xfef040000ull +#define CONFIG_SRIO_PCIE_BOOT_UCODE_ENV_MEM_BUS 0x3ffe00000ull +#define CONFIG_SRIO_PCIE_BOOT_UCODE_ENV_SIZE    0x40000	/* 256K */ + +/* slave core release by master*/ +#define CONFIG_SRIO_PCIE_BOOT_BRR_OFFSET 0xe00e4 +#define CONFIG_SRIO_PCIE_BOOT_RELEASE_MASK 0x00000001 /* release core 0 */ + +/* + * SRIO_PCIE_BOOT - SLAVE + */ +#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE +#define CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR 0xFFE00000 +#define CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR_PHYS \ +		(0x300000000ull | CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR) +#endif + +/* + * eSPI - Enhanced SPI + */ +#ifdef CONFIG_SPI_FLASH +#define CONFIG_FSL_ESPI +#define CONFIG_SPI_FLASH_SST +#define CONFIG_SPI_FLASH_STMICRO +#define CONFIG_SPI_FLASH_SPANSION +#define CONFIG_CMD_SF +#define CONFIG_SF_DEFAULT_SPEED	 10000000 +#define CONFIG_SF_DEFAULT_MODE	  0 +#endif + +/* + * General PCI + * Memory space is mapped 1-1, but I/O space must start from 0. + */ +#define CONFIG_PCI		/* Enable PCI/PCIE */ +#define CONFIG_PCIE1		/* PCIE controler 1 */ +#define CONFIG_PCIE2		/* PCIE controler 2 */ +#define CONFIG_PCIE3		/* PCIE controler 3 */ +#define CONFIG_PCIE4		/* PCIE controler 4 */ +#define CONFIG_FSL_PCI_INIT	/* Use common FSL init code */ +#define CONFIG_SYS_PCI_64BIT	/* enable 64-bit PCI resources */ +/* controller 1, direct to uli, tgtid 3, Base address 20000 */ +#define CONFIG_SYS_PCIE1_MEM_VIRT	0x80000000 +#define CONFIG_SYS_PCIE1_MEM_BUS	0xe0000000 +#define CONFIG_SYS_PCIE1_MEM_PHYS	0xc00000000ull +#define CONFIG_SYS_PCIE1_MEM_SIZE	0x20000000      /* 512M */ +#define CONFIG_SYS_PCIE1_IO_VIRT	0xf8000000 +#define CONFIG_SYS_PCIE1_IO_BUS		0x00000000 +#define CONFIG_SYS_PCIE1_IO_PHYS	0xff8000000ull +#define CONFIG_SYS_PCIE1_IO_SIZE	0x00010000	/* 64k */ + +/* controller 2, Slot 2, tgtid 2, Base address 201000 */ +#define CONFIG_SYS_PCIE2_MEM_VIRT	0xa0000000 +#define CONFIG_SYS_PCIE2_MEM_BUS	0xe0000000 +#define CONFIG_SYS_PCIE2_MEM_PHYS	0xc20000000ull +#define CONFIG_SYS_PCIE2_MEM_SIZE	0x10000000 /* 256M */ +#define CONFIG_SYS_PCIE2_IO_VIRT	0xf8010000 +#define CONFIG_SYS_PCIE2_IO_BUS		0x00000000 +#define CONFIG_SYS_PCIE2_IO_PHYS	0xff8010000ull +#define CONFIG_SYS_PCIE2_IO_SIZE	0x00010000	/* 64k */ + +/* controller 3, Slot 1, tgtid 1, Base address 202000 */ +#define CONFIG_SYS_PCIE3_MEM_VIRT	0xb0000000 +#define CONFIG_SYS_PCIE3_MEM_BUS	0xe0000000 +#define CONFIG_SYS_PCIE3_MEM_PHYS	0xc30000000ull +#define CONFIG_SYS_PCIE3_MEM_SIZE	0x10000000	/* 256M */ +#define CONFIG_SYS_PCIE3_IO_VIRT	0xf8020000 +#define CONFIG_SYS_PCIE3_IO_BUS		0x00000000 +#define CONFIG_SYS_PCIE3_IO_PHYS	0xff8020000ull +#define CONFIG_SYS_PCIE3_IO_SIZE	0x00010000	/* 64k */ + +/* controller 4, Base address 203000 */ +#define CONFIG_SYS_PCIE4_MEM_VIRT       0xc0000000 +#define CONFIG_SYS_PCIE4_MEM_BUS	0xe0000000 +#define CONFIG_SYS_PCIE4_MEM_PHYS	0xc40000000ull +#define CONFIG_SYS_PCIE4_MEM_SIZE	0x10000000	/* 256M */ +#define CONFIG_SYS_PCIE4_IO_BUS		0x00000000 +#define CONFIG_SYS_PCIE4_IO_PHYS	0xff8030000ull +#define CONFIG_SYS_PCIE4_IO_SIZE	0x00010000	/* 64k */ + +#ifdef CONFIG_PCI +#define CONFIG_PCI_INDIRECT_BRIDGE +#define CONFIG_FSL_PCIE_RESET           /* need PCIe reset errata LSZ ADD */ +#define CONFIG_NET_MULTI +#define CONFIG_E1000 +#define CONFIG_PCI_PNP		/* do pci plug-and-play */ +#define CONFIG_PCI_SCAN_SHOW	/* show pci devices on startup */ +#define CONFIG_DOS_PARTITION +#endif + +/* Qman/Bman */ +#ifndef CONFIG_NOBQFMAN +#define CONFIG_SYS_DPAA_QBMAN		/* Support Q/Bman */ +#define CONFIG_SYS_BMAN_NUM_PORTALS	18 +#define CONFIG_SYS_BMAN_MEM_BASE	0xf4000000 +#define CONFIG_SYS_BMAN_MEM_PHYS	0xff4000000ull +#define CONFIG_SYS_BMAN_MEM_SIZE	0x02000000 +#define CONFIG_SYS_QMAN_NUM_PORTALS	18 +#define CONFIG_SYS_QMAN_MEM_BASE	0xf6000000 +#define CONFIG_SYS_QMAN_MEM_PHYS	0xff6000000ull +#define CONFIG_SYS_QMAN_MEM_SIZE	0x02000000 + +#define CONFIG_SYS_DPAA_FMAN +#define CONFIG_SYS_DPAA_PME +#define CONFIG_SYS_PMAN +#define CONFIG_SYS_DPAA_DCE +#define CONFIG_SYS_DPAA_RMAN		/* RMan */ +#define CONFIG_SYS_INTERLAKEN + +/* Default address of microcode for the Linux Fman driver */ +#if defined(CONFIG_SPIFLASH) +/* + * env is stored at 0x100000, sector size is 0x10000, ucode is stored after + * env, so we got 0x110000. + */ +#define CONFIG_SYS_QE_FW_IN_SPIFLASH +#define CONFIG_SYS_QE_FMAN_FW_ADDR	0x110000 +#elif defined(CONFIG_SDCARD) +/* + * PBL SD boot image should stored at 0x1000(8 blocks), the size of the image is + * about 545KB (1089 blocks), Env is stored after the image, and the env size is + * 0x2000 (16 blocks), 8 + 1089 + 16 = 1113, enlarge it to 1130. + */ +#define CONFIG_SYS_QE_FMAN_FW_IN_MMC +#define CONFIG_SYS_QE_FMAN_FW_ADDR	(512 * 1130) +#elif defined(CONFIG_NAND) +#define CONFIG_SYS_QE_FMAN_FW_IN_NAND +#define CONFIG_SYS_QE_FMAN_FW_ADDR	(6 * CONFIG_SYS_NAND_BLOCK_SIZE) +#elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE) +/* + * Slave has no ucode locally, it can fetch this from remote. When implementing + * in two corenet boards, slave's ucode could be stored in master's memory + * space, the address can be mapped from slave TLB->slave LAW-> + * slave SRIO or PCIE outbound window->master inbound window-> + * master LAW->the ucode address in master's memory space. + */ +#define CONFIG_SYS_QE_FMAN_FW_IN_REMOTE +#define CONFIG_SYS_QE_FMAN_FW_ADDR	0xFFE00000 +#else +#define CONFIG_SYS_QE_FMAN_FW_IN_NOR +#define CONFIG_SYS_QE_FMAN_FW_ADDR	0xEFF40000 +#endif +#define CONFIG_SYS_QE_FMAN_FW_LENGTH	0x10000 +#define CONFIG_SYS_FDT_PAD		(0x3000 + CONFIG_SYS_QE_FMAN_FW_LENGTH) +#endif /* CONFIG_NOBQFMAN */ + +#ifdef CONFIG_SYS_DPAA_FMAN +#define CONFIG_FMAN_ENET +#define CONFIG_PHYLIB_10G +#define CONFIG_PHY_VITESSE +#define CONFIG_PHY_REALTEK +#define CONFIG_PHY_TERANETICS +#define RGMII_PHY1_ADDR	0x1 +#define RGMII_PHY2_ADDR	0x2 +#define FM1_10GEC1_PHY_ADDR	  0x3 +#define SGMII_CARD_PORT1_PHY_ADDR 0x1C +#define SGMII_CARD_PORT2_PHY_ADDR 0x1D +#define SGMII_CARD_PORT3_PHY_ADDR 0x1E +#define SGMII_CARD_PORT4_PHY_ADDR 0x1F +#endif + +#ifdef CONFIG_FMAN_ENET +#define CONFIG_MII		/* MII PHY management */ +#define CONFIG_ETHPRIME		"FM1@DTSEC3" +#define CONFIG_PHY_GIGE		/* Include GbE speed/duplex detection */ +#endif + +/* + * SATA + */ +#ifdef CONFIG_FSL_SATA_V2 +#define CONFIG_LIBATA +#define CONFIG_FSL_SATA +#define CONFIG_SYS_SATA_MAX_DEVICE	2 +#define CONFIG_SATA1 +#define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR +#define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA +#define CONFIG_SATA2 +#define CONFIG_SYS_SATA2		CONFIG_SYS_MPC85xx_SATA2_ADDR +#define CONFIG_SYS_SATA2_FLAGS		FLAGS_DMA +#define CONFIG_LBA48 +#define CONFIG_CMD_SATA +#define CONFIG_DOS_PARTITION +#define CONFIG_CMD_EXT2 +#endif + +/* + * USB + */ +#ifdef CONFIG_USB_EHCI +#define CONFIG_CMD_USB +#define CONFIG_USB_STORAGE +#define CONFIG_USB_EHCI_FSL +#define CONFIG_EHCI_HCD_INIT_AFTER_RESET +#define CONFIG_CMD_EXT2 +#define CONFIG_HAS_FSL_DR_USB +#endif + +/* + * SDHC + */ +#ifdef CONFIG_MMC +#define CONFIG_CMD_MMC +#define CONFIG_FSL_ESDHC +#define CONFIG_SYS_FSL_ESDHC_ADDR	CONFIG_SYS_MPC85xx_ESDHC_ADDR +#define CONFIG_SYS_FSL_ESDHC_BROKEN_TIMEOUT +#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33 +#define CONFIG_GENERIC_MMC +#define CONFIG_CMD_EXT2 +#define CONFIG_CMD_FAT +#define CONFIG_DOS_PARTITION +#endif + +/* + * Environment + */ +#define CONFIG_LOADS_ECHO	/* echo on for serial download */ +#define CONFIG_SYS_LOADS_BAUD_CHANGE	/* allow baudrate change */ + +/* + * Command line configuration. + */ +#include <config_cmd_default.h> + +#define CONFIG_CMD_DHCP +#define CONFIG_CMD_ELF +#define CONFIG_CMD_ERRATA +#define CONFIG_CMD_GREPENV +#define CONFIG_CMD_IRQ +#define CONFIG_CMD_I2C +#define CONFIG_CMD_MII +#define CONFIG_CMD_PING +#define CONFIG_CMD_SETEXPR +#define CONFIG_CMD_REGINFO +#define CONFIG_CMD_BDI + +#ifdef CONFIG_PCI +#define CONFIG_CMD_PCI +#define CONFIG_CMD_NET +#endif + +/* + * Miscellaneous configurable options + */ +#define CONFIG_SYS_LONGHELP		/* undef to save memory */ +#define CONFIG_CMDLINE_EDITING		/* Command-line editing */ +#define CONFIG_AUTO_COMPLETE		/* add autocompletion support */ +#define CONFIG_SYS_LOAD_ADDR	0x2000000 /* default load address */ +#define CONFIG_SYS_PROMPT	"=> "	  /* Monitor Command Prompt */ +#ifdef CONFIG_CMD_KGDB +#define CONFIG_SYS_CBSIZE	1024	  /* Console I/O Buffer Size */ +#else +#define CONFIG_SYS_CBSIZE	256	  /* Console I/O Buffer Size */ +#endif +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) +#define CONFIG_SYS_MAXARGS	16	/* max number of command args */ +#define CONFIG_SYS_BARGSIZE	CONFIG_SYS_CBSIZE/* Boot Argument Buffer Size */ +#define CONFIG_SYS_HZ		1000	/* decrementer freq: 1ms ticks*/ + +/* + * For booting Linux, the board info and command line data + * have to be in the first 64 MB of memory, since this is + * the maximum mapped by the Linux kernel during initialization. + */ +#define CONFIG_SYS_BOOTMAPSZ	(64 << 20)	/* Initial map for Linux*/ +#define CONFIG_SYS_BOOTM_LEN	(64 << 20)	/* Increase max gunzip size */ + +#ifdef CONFIG_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 + */ +#define CONFIG_ROOTPATH	 "/opt/nfsroot" +#define CONFIG_BOOTFILE	 "uImage" +#define CONFIG_UBOOTPATH "u-boot.bin"	/* U-Boot image on TFTP server */ + +/* default location for tftp and bootm */ +#define CONFIG_LOADADDR		1000000 +#define CONFIG_BAUDRATE		115200 +#define CONFIG_BOOTDELAY	10	/* -1 disables auto-boot */ +#define __USB_PHY_TYPE		utmi + +#define	CONFIG_EXTRA_ENV_SETTINGS				\ +	"hwconfig=fsl_ddr:"					\ +	"ctlr_intlv=" __stringify(CTRL_INTLV_PREFERED) ","	\ +	"bank_intlv=auto;"					\ +	"usb1:dr_mode=host,phy_type=" __stringify(__USB_PHY_TYPE) "\0"\ +	"netdev=eth0\0"						\ +	"uboot=" __stringify(CONFIG_UBOOTPATH) "\0"		\ +	"ubootaddr=" __stringify(CONFIG_SYS_TEXT_BASE) "\0"	\ +	"tftpflash=tftpboot $loadaddr $uboot && "		\ +	"protect off $ubootaddr +$filesize && "			\ +	"erase $ubootaddr +$filesize && "			\ +	"cp.b $loadaddr $ubootaddr $filesize && "		\ +	"protect on $ubootaddr +$filesize && "			\ +	"cmp.b $loadaddr $ubootaddr $filesize\0"		\ +	"consoledev=ttyS0\0"					\ +	"ramdiskaddr=2000000\0"					\ +	"ramdiskfile=t2080qds/ramdisk.uboot\0"			\ +	"fdtaddr=c00000\0"					\ +	"fdtfile=t2080qds/t2080qds.dtb\0"			\ +	"bdev=sda3\0"						\ +	"c=ffe\0" + +/* + * For emulation this causes u-boot to jump to the start of the + * proof point app code automatically + */ +#define CONFIG_PROOF_POINTS				\ +	"setenv bootargs root=/dev/$bdev rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"cpu 1 release 0x29000000 - - -;"		\ +	"cpu 2 release 0x29000000 - - -;"		\ +	"cpu 3 release 0x29000000 - - -;"		\ +	"cpu 4 release 0x29000000 - - -;"		\ +	"cpu 5 release 0x29000000 - - -;"		\ +	"cpu 6 release 0x29000000 - - -;"		\ +	"cpu 7 release 0x29000000 - - -;"		\ +	"go 0x29000000" + +#define CONFIG_HVBOOT				\ +	"setenv bootargs config-addr=0x60000000; "	\ +	"bootm 0x01000000 - 0x00f00000" + +#define CONFIG_ALU				\ +	"setenv bootargs root=/dev/$bdev rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"cpu 1 release 0x01000000 - - -;"		\ +	"cpu 2 release 0x01000000 - - -;"		\ +	"cpu 3 release 0x01000000 - - -;"		\ +	"cpu 4 release 0x01000000 - - -;"		\ +	"cpu 5 release 0x01000000 - - -;"		\ +	"cpu 6 release 0x01000000 - - -;"		\ +	"cpu 7 release 0x01000000 - - -;"		\ +	"go 0x01000000" + +#define CONFIG_LINUX				\ +	"setenv bootargs root=/dev/ram rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"setenv ramdiskaddr 0x02000000;"		\ +	"setenv fdtaddr 0x00c00000;"			\ +	"setenv loadaddr 0x1000000;"			\ +	"bootm $loadaddr $ramdiskaddr $fdtaddr" + +#define CONFIG_HDBOOT					\ +	"setenv bootargs root=/dev/$bdev rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"tftp $loadaddr $bootfile;"			\ +	"tftp $fdtaddr $fdtfile;"			\ +	"bootm $loadaddr - $fdtaddr" + +#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;"		\ +	"tftp $fdtaddr $fdtfile;"		\ +	"bootm $loadaddr - $fdtaddr" + +#define CONFIG_RAMBOOTCOMMAND				\ +	"setenv bootargs root=/dev/ram rw "		\ +	"console=$consoledev,$baudrate $othbootargs;"	\ +	"tftp $ramdiskaddr $ramdiskfile;"		\ +	"tftp $loadaddr $bootfile;"			\ +	"tftp $fdtaddr $fdtfile;"			\ +	"bootm $loadaddr $ramdiskaddr $fdtaddr" + +#define CONFIG_BOOTCOMMAND		CONFIG_LINUX + +#ifdef CONFIG_SECURE_BOOT +#include <asm/fsl_secure_boot.h> +#undef CONFIG_CMD_USB +#endif + +#endif	/* __T2080QDS_H */ diff --git a/include/configs/T4240QDS.h b/include/configs/T4240QDS.h index 3777ccb83..c96df54d9 100644 --- a/include/configs/T4240QDS.h +++ b/include/configs/T4240QDS.h @@ -229,6 +229,8 @@ unsigned long get_board_ddr_clk(void);  #define CONFIG_CMD_NAND  #define CONFIG_SYS_NAND_BLOCK_SIZE	(128 * 1024) +#define CONFIG_SYS_NAND_MAX_OOBFREE	2 +#define CONFIG_SYS_NAND_MAX_ECCPOS	256  #if defined(CONFIG_NAND)  #define CONFIG_SYS_CSPR0_EXT		CONFIG_SYS_NAND_CSPR_EXT diff --git a/include/configs/alpr.h b/include/configs/alpr.h index 2bf1986e3..61fdebac3 100644 --- a/include/configs/alpr.h +++ b/include/configs/alpr.h @@ -324,6 +324,8 @@  #define CONFIG_SYS_NAND_BASE_LIST	{ CONFIG_SYS_NAND_BASE + 0, CONFIG_SYS_NAND_BASE + 2,	\  				  CONFIG_SYS_NAND_BASE + 4, CONFIG_SYS_NAND_BASE + 6 }  #define CONFIG_SYS_NAND_QUIET_TEST	1	/* don't warn upon unknown NAND flash	*/ +#define CONFIG_SYS_NAND_MAX_OOBFREE	2 +#define CONFIG_SYS_NAND_MAX_ECCPOS	56  /*-----------------------------------------------------------------------   * External Bus Controller (EBC) Setup diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h index e8a6ca15b..8af4d6afb 100644 --- a/include/configs/am335x_evm.h +++ b/include/configs/am335x_evm.h @@ -182,7 +182,6 @@  #define CONFIG_SYS_NS16550_COM6		0x481aa000	/* UART5 */  #define CONFIG_BAUDRATE			115200 -/* I2C Configuration */  #define CONFIG_CMD_EEPROM  #define CONFIG_ENV_EEPROM_IS_ON_I2C  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x50	/* Main EEPROM */ @@ -224,6 +223,8 @@  #define CONFIG_SPL_LDSCRIPT		"$(CPUDIR)/am33xx/u-boot-spl.lds"  #ifdef CONFIG_NAND +#define CONFIG_NAND_OMAP_GPMC +#define CONFIG_NAND_OMAP_ELM  #define CONFIG_SYS_NAND_5_ADDR_CYCLE  #define CONFIG_SYS_NAND_PAGE_COUNT	(CONFIG_SYS_NAND_BLOCK_SIZE / \  					 CONFIG_SYS_NAND_PAGE_SIZE) @@ -241,7 +242,8 @@  #define CONFIG_SYS_NAND_ECCSIZE		512  #define CONFIG_SYS_NAND_ECCBYTES	14 - +#define CONFIG_SYS_NAND_ONFI_DETECTION +#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_BCH8_CODE_HW  #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE  #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x80000  #endif diff --git a/include/configs/am335x_igep0033.h b/include/configs/am335x_igep0033.h index 2c69d4e30..115d1b37c 100644 --- a/include/configs/am335x_igep0033.h +++ b/include/configs/am335x_igep0033.h @@ -187,6 +187,7 @@  /* NAND support */  #define CONFIG_NAND  #define CONFIG_NAND_OMAP_GPMC +#define CONFIG_NAND_OMAP_ELM  #define GPMC_NAND_ECC_LP_x16_LAYOUT	1  #define CONFIG_SYS_NAND_BASE		(0x08000000)	/* phys address CS0 */  #define CONFIG_SYS_MAX_NAND_DEVICE	1 @@ -263,6 +264,7 @@  #define CONFIG_SYS_NAND_ECCSIZE		512  #define CONFIG_SYS_NAND_ECCBYTES	14 +#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_BCH8_CODE_HW  #define	CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE diff --git a/include/configs/am3517_crane.h b/include/configs/am3517_crane.h index c5e67bf87..468fb43ea 100644 --- a/include/configs/am3517_crane.h +++ b/include/configs/am3517_crane.h @@ -142,10 +142,10 @@  #undef CONFIG_CMD_IMLS		/* List all found images	*/  #define CONFIG_SYS_NO_FLASH -#define CONFIG_HARD_I2C			1 -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_DRIVER_OMAP34XX_I2C	1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  #undef CONFIG_CMD_NET  #undef CONFIG_CMD_NFS @@ -340,6 +340,7 @@  						10, 11, 12, 13}  #define CONFIG_SYS_NAND_ECCSIZE		512  #define CONFIG_SYS_NAND_ECCBYTES	3 +#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_HAM1_CODE_HW  #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE  #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x80000 diff --git a/include/configs/am3517_evm.h b/include/configs/am3517_evm.h index 5e259f5c4..1fa477aac 100644 --- a/include/configs/am3517_evm.h +++ b/include/configs/am3517_evm.h @@ -136,10 +136,10 @@  #undef CONFIG_CMD_IMLS		/* List all found images	*/  #define CONFIG_SYS_NO_FLASH -#define CONFIG_HARD_I2C			1 -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_DRIVER_OMAP34XX_I2C	1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  /*   * Ethernet @@ -344,6 +344,7 @@  						10, 11, 12, 13}  #define CONFIG_SYS_NAND_ECCSIZE		512  #define CONFIG_SYS_NAND_ECCBYTES	3 +#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_HAM1_CODE_HW  #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE  #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x80000 diff --git a/include/configs/bct-brettl2.h b/include/configs/bct-brettl2.h index ce09c2e13..5b09b45b5 100644 --- a/include/configs/bct-brettl2.h +++ b/include/configs/bct-brettl2.h @@ -111,8 +111,8 @@   * it linked after the configuration sector.   */  # define LDS_BOARD_TEXT \ -	arch/blackfin/lib/libblackfin.o (.text*); \ -	arch/blackfin/cpu/libblackfin.o (.text*); \ +	arch/blackfin/lib/built-in.o (.text*); \ +	arch/blackfin/cpu/built-in.o (.text*); \  	. = DEFINED(env_offset) ? env_offset : .; \  	common/env_embedded.o (.text*);  #endif diff --git a/include/configs/bf533-stamp.h b/include/configs/bf533-stamp.h index 7144c6319..a22c86842 100644 --- a/include/configs/bf533-stamp.h +++ b/include/configs/bf533-stamp.h @@ -155,8 +155,8 @@   * it linked after the configuration sector.   */  # define LDS_BOARD_TEXT \ -	arch/blackfin/lib/libblackfin.o (.text*); \ -	arch/blackfin/cpu/libblackfin.o (.text*); \ +	arch/blackfin/lib/built-in.o (.text*); \ +	arch/blackfin/cpu/built-in.o (.text*); \  	. = DEFINED(env_offset) ? env_offset : .; \  	common/env_embedded.o (.text*);  #endif diff --git a/include/configs/bf537-pnav.h b/include/configs/bf537-pnav.h index 62bd3bf08..3aa3d50a8 100644 --- a/include/configs/bf537-pnav.h +++ b/include/configs/bf537-pnav.h @@ -111,8 +111,8 @@   * it linked after the configuration sector.   */  # define LDS_BOARD_TEXT \ -	arch/blackfin/lib/libblackfin.o (.text*); \ -	arch/blackfin/cpu/libblackfin.o (.text*); \ +	arch/blackfin/lib/built-in.o (.text*); \ +	arch/blackfin/cpu/built-in.o (.text*); \  	. = DEFINED(env_offset) ? env_offset : .; \  	common/env_embedded.o (.text*);  #endif diff --git a/include/configs/bf537-stamp.h b/include/configs/bf537-stamp.h index 25cebf880..02945bee7 100644 --- a/include/configs/bf537-stamp.h +++ b/include/configs/bf537-stamp.h @@ -118,8 +118,8 @@   * it linked after the configuration sector.   */  # define LDS_BOARD_TEXT \ -	arch/blackfin/lib/libblackfin.o (.text*); \ -	arch/blackfin/cpu/libblackfin.o (.text*); \ +	arch/blackfin/lib/built-in.o (.text*); \ +	arch/blackfin/cpu/built-in.o (.text*); \  	. = DEFINED(env_offset) ? env_offset : .; \  	common/env_embedded.o (.text*);  #endif diff --git a/include/configs/bf538f-ezkit.h b/include/configs/bf538f-ezkit.h index 77822e792..ffb0caf94 100644 --- a/include/configs/bf538f-ezkit.h +++ b/include/configs/bf538f-ezkit.h @@ -115,8 +115,8 @@   * it linked after the configuration sector.   */  # define LDS_BOARD_TEXT \ -	arch/blackfin/lib/libblackfin.o (.text*); \ -	arch/blackfin/cpu/libblackfin.o (.text*); \ +	arch/blackfin/lib/built-in.o (.text*); \ +	arch/blackfin/cpu/built-in.o (.text*); \  	. = DEFINED(env_offset) ? env_offset : .; \  	common/env_embedded.o (.text*);  #endif diff --git a/include/configs/cm-bf537e.h b/include/configs/cm-bf537e.h index 77f47d945..8f10eba46 100644 --- a/include/configs/cm-bf537e.h +++ b/include/configs/cm-bf537e.h @@ -112,8 +112,8 @@   * it linked after the configuration sector.   */  # define LDS_BOARD_TEXT \ -	arch/blackfin/lib/libblackfin.o (.text*); \ -	arch/blackfin/cpu/libblackfin.o (.text*); \ +	arch/blackfin/lib/built-in.o (.text*); \ +	arch/blackfin/cpu/built-in.o (.text*); \  	. = DEFINED(env_offset) ? env_offset : .; \  	common/env_embedded.o (.text*);  #endif diff --git a/include/configs/cm-bf537u.h b/include/configs/cm-bf537u.h index 55e61d674..a1c8e8a85 100644 --- a/include/configs/cm-bf537u.h +++ b/include/configs/cm-bf537u.h @@ -110,8 +110,8 @@   * it linked after the configuration sector.   */  # define LDS_BOARD_TEXT \ -	arch/blackfin/lib/libblackfin.o (.text*); \ -	arch/blackfin/cpu/libblackfin.o (.text*); \ +	arch/blackfin/lib/built-in.o (.text*); \ +	arch/blackfin/cpu/built-in.o (.text*); \  	. = DEFINED(env_offset) ? env_offset : .; \  	common/env_embedded.o (.text*);  #endif diff --git a/include/configs/cm_t35.h b/include/configs/cm_t35.h index a490fc3dc..e72187e30 100644 --- a/include/configs/cm_t35.h +++ b/include/configs/cm_t35.h @@ -141,10 +141,10 @@  #undef CONFIG_CMD_IMLS		/* List all found images	*/  #define CONFIG_SYS_NO_FLASH -#define CONFIG_HARD_I2C -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_DRIVER_OMAP34XX_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x50  #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN	1  #define CONFIG_I2C_MULTI_BUS @@ -326,5 +326,8 @@  #define CONFIG_SPLASH_SCREEN  #define CONFIG_CMD_BMP  #define CONFIG_BMP_16BPP +#define CONFIG_SCF0403_LCD + +#define CONFIG_OMAP3_SPI  #endif /* __CONFIG_H */ diff --git a/include/configs/controlcenterd.h b/include/configs/controlcenterd.h index 413f0867f..46d4f9865 100644 --- a/include/configs/controlcenterd.h +++ b/include/configs/controlcenterd.h @@ -138,7 +138,7 @@  #define CONFIG_SYS_SDRAM_SIZE 1024  #define CONFIG_VERY_BIG_RAM -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #define CONFIG_NUM_DDR_CONTROLLERS	1  #define CONFIG_DIMM_SLOTS_PER_CTLR	1  #define CONFIG_CHIP_SELECTS_PER_CTRL	(2 * CONFIG_DIMM_SLOTS_PER_CTLR) diff --git a/include/configs/corenet_ds.h b/include/configs/corenet_ds.h index 562caa584..665295c1a 100644 --- a/include/configs/corenet_ds.h +++ b/include/configs/corenet_ds.h @@ -173,7 +173,7 @@  #define CONFIG_CHIP_SELECTS_PER_CTRL	(4 * CONFIG_DIMM_SLOTS_PER_CTLR)  #define CONFIG_DDR_SPD -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #define CONFIG_SYS_SPD_BUS_NUM	1  #define SPD_EEPROM_ADDRESS1	0x51 diff --git a/include/configs/devkit8000.h b/include/configs/devkit8000.h index 8343891cb..4f43ba988 100644 --- a/include/configs/devkit8000.h +++ b/include/configs/devkit8000.h @@ -90,10 +90,10 @@  #define CONFIG_DOS_PARTITION		1  /* I2C */ -#define CONFIG_HARD_I2C			1 -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_DRIVER_OMAP34XX_I2C	1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  /* TWL4030 */  #define CONFIG_TWL4030_POWER		1 @@ -327,6 +327,7 @@  #define CONFIG_SYS_NAND_ECCSIZE		512  #define CONFIG_SYS_NAND_ECCBYTES	3 +#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_HAM1_CODE_HW  #define CONFIG_SYS_NAND_U_BOOT_START   CONFIG_SYS_TEXT_BASE diff --git a/include/configs/dig297.h b/include/configs/dig297.h index c19c4c754..5049afca7 100644 --- a/include/configs/dig297.h +++ b/include/configs/dig297.h @@ -123,10 +123,10 @@  #undef CONFIG_CMD_NFS		/* NFS support			*/  #define CONFIG_SYS_NO_FLASH -#define CONFIG_HARD_I2C -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_DRIVER_OMAP34XX_I2C	1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  /*   * TWL4030 diff --git a/include/configs/dnp5370.h b/include/configs/dnp5370.h index f2f41028e..d0e72e3e1 100644 --- a/include/configs/dnp5370.h +++ b/include/configs/dnp5370.h @@ -85,8 +85,8 @@  #define ENV_IS_EMBEDDED  #define LDS_BOARD_TEXT \ -	arch/blackfin/lib/libblackfin.o (.text*); \ -	arch/blackfin/cpu/libblackfin.o (.text*); \ +	arch/blackfin/lib/built-in.o (.text*); \ +	arch/blackfin/cpu/built-in.o (.text*); \  	. = DEFINED(env_offset) ? env_offset : .; \  	common/env_embedded.o (.text*); diff --git a/include/configs/ecovec.h b/include/configs/ecovec.h index 335e9cdff..3483cf1f5 100644 --- a/include/configs/ecovec.h +++ b/include/configs/ecovec.h @@ -58,18 +58,17 @@  /* I2C */  #define CONFIG_CMD_I2C -#define CONFIG_SH_I2C 1 -#define CONFIG_HARD_I2C		1 -#define CONFIG_I2C_MULTI_BUS	1 -#define CONFIG_SYS_MAX_I2C_BUS	2 -#define CONFIG_SYS_I2C_MODULE	1 -#define CONFIG_SYS_I2C_SPEED	100000 /* 100 kHz */ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SH  #define CONFIG_SYS_I2C_SLAVE	0x7F +#define CONFIG_SYS_I2C_SH_NUM_CONTROLLERS 2 +#define CONFIG_SYS_I2C_SH_BASE0	0xA4470000 +#define CONFIG_SYS_I2C_SH_SPEED0	100000 +#define CONFIG_SYS_I2C_SH_BASE1	0xA4750000 +#define CONFIG_SYS_I2C_SH_SPEED1	100000  #define CONFIG_SH_I2C_DATA_HIGH	4  #define CONFIG_SH_I2C_DATA_LOW 	5  #define CONFIG_SH_I2C_CLOCK  	41666666 -#define CONFIG_SH_I2C_BASE0		0xA4470000 -#define CONFIG_SH_I2C_BASE1		0xA4750000  /* Ether */  #define CONFIG_SH_ETHER 1 diff --git a/include/configs/highbank.h b/include/configs/highbank.h index b86eb430a..7dbee3cdb 100644 --- a/include/configs/highbank.h +++ b/include/configs/highbank.h @@ -8,7 +8,6 @@  #define __CONFIG_H  #define CONFIG_SYS_DCACHE_OFF -#define CONFIG_L2_OFF  #define CONFIG_SYS_THUMB_BUILD  #define CONFIG_SYS_NO_FLASH diff --git a/include/configs/ibf-dsp561.h b/include/configs/ibf-dsp561.h index 529175512..ac5ca9af3 100644 --- a/include/configs/ibf-dsp561.h +++ b/include/configs/ibf-dsp561.h @@ -95,8 +95,8 @@   * it linked after the configuration sector.   */  # define LDS_BOARD_TEXT \ -	arch/blackfin/lib/libblackfin.o (.text*); \ -	arch/blackfin/cpu/libblackfin.o (.text*); \ +	arch/blackfin/lib/built-in.o (.text*); \ +	arch/blackfin/cpu/built-in.o (.text*); \  	. = DEFINED(env_offset) ? env_offset : .; \  	common/env_embedded.o (.text*);  #endif diff --git a/include/configs/km/kmp204x-common.h b/include/configs/km/kmp204x-common.h index 2d5320b5c..7700b38c2 100644 --- a/include/configs/km/kmp204x-common.h +++ b/include/configs/km/kmp204x-common.h @@ -111,7 +111,7 @@ unsigned long get_board_sys_clk(unsigned long dummy);  #define CONFIG_CHIP_SELECTS_PER_CTRL	(4 * CONFIG_DIMM_SLOTS_PER_CTLR)  #define CONFIG_DDR_SPD -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #define CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SYS_SPD_BUS_NUM	0 diff --git a/include/configs/kzm9g.h b/include/configs/kzm9g.h index 1afd48793..f183279ba 100644 --- a/include/configs/kzm9g.h +++ b/include/configs/kzm9g.h @@ -22,7 +22,6 @@  #define CONFIG_DISPLAY_CPUINFO  #define CONFIG_DISPLAY_BOARDINFO  #define CONFIG_BOARD_EARLY_INIT_F -#define CONFIG_L2_OFF  #define CONFIG_OF_LIBFDT  #include <config_cmd_default.h> @@ -139,21 +138,22 @@  /* I2C */  #define CONFIG_CMD_I2C -#define CONFIG_SH_I2C 1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SH +#define CONFIG_SYS_I2C_SH_NUM_CONTROLLERS 5 +#define CONFIG_SYS_I2C_SH_BASE0	0xE6820000 +#define CONFIG_SYS_I2C_SH_SPEED0	100000 +#define CONFIG_SYS_I2C_SH_BASE1	0xE6822000 +#define CONFIG_SYS_I2C_SH_SPEED1	100000 +#define CONFIG_SYS_I2C_SH_BASE2	0xE6824000 +#define CONFIG_SYS_I2C_SH_SPEED2	100000 +#define CONFIG_SYS_I2C_SH_BASE3	0xE6826000 +#define CONFIG_SYS_I2C_SH_SPEED3	100000 +#define CONFIG_SYS_I2C_SH_BASE4	0xE6828000 +#define CONFIG_SYS_I2C_SH_SPEED4	100000  #define CONFIG_SH_I2C_8BIT -#define CONFIG_HARD_I2C -#define CONFIG_I2C_MULTI_BUS -#define CONFIG_SYS_MAX_I2C_BUS  (5) -#define CONFIG_SYS_I2C_MODULE -#define CONFIG_SYS_I2C_SPEED    (100000) /* 100 kHz */ -#define CONFIG_SYS_I2C_SLAVE    (0x7F) -#define CONFIG_SH_I2C_DATA_HIGH (4) -#define CONFIG_SH_I2C_DATA_LOW  (5) -#define CONFIG_SH_I2C_CLOCK     (104000000) /* 104 MHz */ -#define CONFIG_SH_I2C_BASE0     (0xE6820000) -#define CONFIG_SH_I2C_BASE1     (0xE6822000) -#define CONFIG_SH_I2C_BASE2     (0xE6824000) -#define CONFIG_SH_I2C_BASE3     (0xE6826000) -#define CONFIG_SH_I2C_BASE4     (0xE6828000) +#define CONFIG_SH_I2C_DATA_HIGH 4 +#define CONFIG_SH_I2C_DATA_LOW  5 +#define CONFIG_SH_I2C_CLOCK     104000000 /* 104 MHz */  #endif /* __KZM9G_H */ diff --git a/include/configs/qemu-malta.h b/include/configs/malta.h index 03514d165..cc574ed04 100644 --- a/include/configs/qemu-malta.h +++ b/include/configs/malta.h @@ -4,8 +4,8 @@   * SPDX-License-Identifier:	GPL-2.0   */ -#ifndef _QEMU_MALTA_CONFIG_H -#define _QEMU_MALTA_CONFIG_H +#ifndef _MALTA_CONFIG_H +#define _MALTA_CONFIG_H  #include <asm/addrspace.h>  #include <asm/malta.h> @@ -13,12 +13,21 @@  /*   * System configuration   */ -#define CONFIG_QEMU_MALTA +#define CONFIG_MALTA + +#define CONFIG_MEMSIZE_IN_BYTES  #define CONFIG_PCI  #define CONFIG_PCI_GT64120 +#define CONFIG_PCI_MSC01  #define CONFIG_PCI_PNP  #define CONFIG_PCNET +#define CONFIG_PCNET_79C973 +#define PCNET_HAS_PROM + +#define CONFIG_MISC_INIT_R +#define CONFIG_RTC_MC146818 +#define CONFIG_SYS_ISA_IO_BASE_ADDRESS	0  /*   * CPU Configuration @@ -26,17 +35,13 @@  #define CONFIG_SYS_MHZ			250	/* arbitrary value */  #define CONFIG_SYS_MIPS_TIMER_FREQ	(CONFIG_SYS_MHZ * 1000000) -#define CONFIG_SYS_DCACHE_SIZE		16384	/* arbitrary value */ -#define CONFIG_SYS_ICACHE_SIZE		16384	/* arbitrary value */ -#define CONFIG_SYS_CACHELINE_SIZE	32	/* arbitrary value */ -  #define CONFIG_SWAP_IO_SPACE  /*   * Memory map   */ -#define CONFIG_SYS_TEXT_BASE		0xbfc00000 /* Rom version */ -#define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_FLASH_BASE +#define CONFIG_SYS_TEXT_BASE		0xbe000000 /* Rom version */ +#define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_TEXT_BASE  #define CONFIG_SYS_SDRAM_BASE		0x80000000 /* Cached addr */  #define CONFIG_SYS_MEM_SIZE		(256 * 1024 * 1024) @@ -49,14 +54,15 @@  #define CONFIG_SYS_MALLOC_LEN		(128 * 1024)  #define CONFIG_SYS_BOOTPARAMS_LEN	(128 * 1024) +#define CONFIG_SYS_BOOTM_LEN		(64 * 1024 * 1024)  /*   * Console configuration   */  #if defined(CONFIG_SYS_LITTLE_ENDIAN) -#define CONFIG_SYS_PROMPT		"qemu-maltael # " +#define CONFIG_SYS_PROMPT		"maltael # "  #else -#define CONFIG_SYS_PROMPT		"qemu-malta # " +#define CONFIG_SYS_PROMPT		"malta # "  #endif  #define CONFIG_SYS_CBSIZE		256 @@ -75,17 +81,12 @@  #define CONFIG_SYS_NS16550  #define CONFIG_SYS_NS16550_SERIAL  #define CONFIG_SYS_NS16550_REG_SIZE	1 -#define CONFIG_SYS_NS16550_CLK		115200 -#define CONFIG_SYS_NS16550_COM1		CKSEG1ADDR(MALTA_UART_BASE) +#define CONFIG_SYS_NS16550_CLK		(115200 * 16) +#define CONFIG_SYS_NS16550_COM1		CKSEG1ADDR(MALTA_GT_UART0_BASE) +#define CONFIG_SYS_NS16550_COM2		CKSEG1ADDR(MALTA_MSC01_UART0_BASE)  #define CONFIG_CONS_INDEX		1  /* - * Environment - */ -#define CONFIG_ENV_IS_NOWHERE -#define CONFIG_ENV_SIZE			0x10000 - -/*   * Flash configuration   */  #define CONFIG_SYS_FLASH_BASE		(KSEG1 | MALTA_FLASH_BASE) @@ -96,6 +97,15 @@  #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE  /* + * Environment + */ +#define CONFIG_ENV_IS_IN_FLASH +#define CONFIG_ENV_SECT_SIZE		0x20000 +#define CONFIG_ENV_SIZE			CONFIG_ENV_SECT_SIZE +#define CONFIG_ENV_ADDR \ +	(CONFIG_SYS_FLASH_BASE + (4 << 20) - CONFIG_ENV_SIZE) + +/*   * Commands   */  #include <config_cmd_default.h> @@ -105,9 +115,11 @@  #undef CONFIG_CMD_LOADS  #undef CONFIG_CMD_NFS +#define CONFIG_CMD_DATE +#define CONFIG_CMD_DHCP  #define CONFIG_CMD_PCI  #define CONFIG_CMD_PING  #define CONFIG_SYS_LONGHELP		/* verbose help, undef to save memory */ -#endif /* _QEMU_MALTA_CONFIG_H */ +#endif /* _MALTA_CONFIG_H */ diff --git a/include/configs/mcx.h b/include/configs/mcx.h index 4619dfb3e..dcd29ce7c 100644 --- a/include/configs/mcx.h +++ b/include/configs/mcx.h @@ -137,10 +137,10 @@  #undef CONFIG_CMD_IMLS		/* List all found images	*/  #define CONFIG_SYS_NO_FLASH -#define CONFIG_HARD_I2C -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_DRIVER_OMAP34XX_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  /* RTC */  #define CONFIG_RTC_DS1337 @@ -353,7 +353,6 @@  #define CONFIG_SPL_FRAMEWORK  #define CONFIG_SPL_BOARD_INIT  #define CONFIG_SPL_NAND_SIMPLE -#define CONFIG_SPL_NAND_SOFTECC  #define CONFIG_SPL_LIBCOMMON_SUPPORT  #define CONFIG_SPL_LIBDISK_SUPPORT @@ -395,6 +394,7 @@  					 56, 57, 58, 59, 60, 61, 62, 63}  #define CONFIG_SYS_NAND_ECCSIZE		256  #define CONFIG_SYS_NAND_ECCBYTES	3 +#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_HAM1_CODE_SW  #define CONFIG_SYS_NAND_U_BOOT_START   CONFIG_SYS_TEXT_BASE diff --git a/include/configs/mpq101.h b/include/configs/mpq101.h index 6d0d392b7..ec09e15db 100644 --- a/include/configs/mpq101.h +++ b/include/configs/mpq101.h @@ -52,7 +52,7 @@  #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR  /* DDR Setup */ -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #define CONFIG_ECC_INIT_VIA_DDRCONTROLLER /* DDR controller or DMA? */ diff --git a/include/configs/mx51_efikamx.h b/include/configs/mx51_efikamx.h index 8a44ef5a7..0f2a4ef97 100644 --- a/include/configs/mx51_efikamx.h +++ b/include/configs/mx51_efikamx.h @@ -29,7 +29,6 @@  #define CONFIG_SYS_TEXT_BASE		0x97800000 -#define	CONFIG_L2_OFF  #define	CONFIG_SYS_ICACHE_OFF  #define	CONFIG_SYS_DCACHE_OFF diff --git a/include/configs/nokia_rx51.h b/include/configs/nokia_rx51.h index 4332779d2..e0c0fac8e 100644 --- a/include/configs/nokia_rx51.h +++ b/include/configs/nokia_rx51.h @@ -157,10 +157,10 @@  #undef CONFIG_CMD_SETGETDCR		/* DCR support on 4xx */  #define CONFIG_OMAP3_SPI -#define CONFIG_HARD_I2C -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_DRIVER_OMAP34XX_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  /*   * TWL4030 diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h index c662cc03d..3acb8543f 100644 --- a/include/configs/omap3_beagle.h +++ b/include/configs/omap3_beagle.h @@ -158,11 +158,10 @@  #undef CONFIG_CMD_IMLS		/* List all found images	*/  #define CONFIG_SYS_NO_FLASH -#define CONFIG_HARD_I2C			1 -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_I2C_MULTI_BUS		1 -#define CONFIG_DRIVER_OMAP34XX_I2C	1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  #define CONFIG_VIDEO_OMAP3	/* DSS Support			*/  /* @@ -429,6 +428,7 @@  						10, 11, 12, 13}  #define CONFIG_SYS_NAND_ECCSIZE		512  #define CONFIG_SYS_NAND_ECCBYTES	3 +#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_HAM1_CODE_HW  #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE  #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x80000 diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h index 3ace8bb6e..b7638fb8a 100644 --- a/include/configs/omap3_evm.h +++ b/include/configs/omap3_evm.h @@ -107,6 +107,7 @@  						10, 11, 12, 13}  #define CONFIG_SYS_NAND_ECCSIZE		512  #define CONFIG_SYS_NAND_ECCBYTES	3 +#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_HAM1_CODE_HW  #define CONFIG_SYS_NAND_U_BOOT_START   CONFIG_SYS_TEXT_BASE  #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x80000 diff --git a/include/configs/omap3_evm_common.h b/include/configs/omap3_evm_common.h index 3eae28884..43616e2b0 100644 --- a/include/configs/omap3_evm_common.h +++ b/include/configs/omap3_evm_common.h @@ -87,11 +87,10 @@  /*   * I2C   */ -#define CONFIG_HARD_I2C -#define CONFIG_DRIVER_OMAP34XX_I2C - -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  /*   * PISMO support diff --git a/include/configs/omap3_evm_quick_nand.h b/include/configs/omap3_evm_quick_nand.h index 9ecd70d55..4427e88b7 100644 --- a/include/configs/omap3_evm_quick_nand.h +++ b/include/configs/omap3_evm_quick_nand.h @@ -86,6 +86,7 @@  						10, 11, 12, 13}  #define CONFIG_SYS_NAND_ECCSIZE		512  #define CONFIG_SYS_NAND_ECCBYTES	3 +#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_HAM1_CODE_HW  #define CONFIG_SYS_NAND_U_BOOT_START   CONFIG_SYS_TEXT_BASE  #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x80000 diff --git a/include/configs/omap3_igep00x0.h b/include/configs/omap3_igep00x0.h index ac36ac695..71062a601 100644 --- a/include/configs/omap3_igep00x0.h +++ b/include/configs/omap3_igep00x0.h @@ -124,10 +124,10 @@  #undef CONFIG_CMD_IMLS		/* List all found images	*/  #define CONFIG_SYS_NO_FLASH -#define CONFIG_HARD_I2C			1 -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_DRIVER_OMAP34XX_I2C	1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_OMAP34XX +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1  /*   * TWL4030 @@ -362,6 +362,7 @@  						10, 11, 12, 13}  #define CONFIG_SYS_NAND_ECCSIZE		512  #define CONFIG_SYS_NAND_ECCBYTES	3 +#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_HAM1_CODE_HW  #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE  #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x80000  #endif diff --git a/include/configs/omap3_logic.h b/include/configs/omap3_logic.h index 0c096f429..bedd6f9cb 100644 --- a/include/configs/omap3_logic.h +++ b/include/configs/omap3_logic.h @@ -118,12 +118,10 @@  /*   * I2C   */ -#define CONFIG_HARD_I2C -#define CONFIG_DRIVER_OMAP34XX_I2C - -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_I2C_MULTI_BUS +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  /*   * TWL4030 diff --git a/include/configs/omap3_mvblx.h b/include/configs/omap3_mvblx.h index 45da2e00b..8d11010f8 100644 --- a/include/configs/omap3_mvblx.h +++ b/include/configs/omap3_mvblx.h @@ -128,11 +128,10 @@  #define CONFIG_CMD_PING  #define CONFIG_CMD_FPGA -#define CONFIG_HARD_I2C			1 -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		0 -#define CONFIG_DRIVER_OMAP34XX_I2C	1 -#define CONFIG_I2C_MULTI_BUS		1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  /*   * TWL4030 diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h index 46416946c..e0f026269 100644 --- a/include/configs/omap3_overo.h +++ b/include/configs/omap3_overo.h @@ -98,11 +98,10 @@  #define CONFIG_CMD_NET		/* bootp, tftpboot, rarpboot	*/  #define CONFIG_SYS_NO_FLASH -#define CONFIG_HARD_I2C -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_I2C_MULTI_BUS -#define CONFIG_DRIVER_OMAP34XX_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  /*   * TWL4030 @@ -325,6 +324,7 @@  						10, 11, 12, 13}  #define CONFIG_SYS_NAND_ECCSIZE		512  #define CONFIG_SYS_NAND_ECCBYTES	3 +#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_HAM1_CODE_HW  #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE  #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x80000 diff --git a/include/configs/omap3_pandora.h b/include/configs/omap3_pandora.h index 3cce0de48..eacdfaaa5 100644 --- a/include/configs/omap3_pandora.h +++ b/include/configs/omap3_pandora.h @@ -111,10 +111,10 @@  #undef CONFIG_CMD_NFS		/* NFS support			*/  #define CONFIG_SYS_NO_FLASH -#define CONFIG_HARD_I2C			1 -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_DRIVER_OMAP34XX_I2C	1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  /*   * TWL4030 diff --git a/include/configs/omap3_sdp3430.h b/include/configs/omap3_sdp3430.h index 697a3f386..6f1304dc9 100644 --- a/include/configs/omap3_sdp3430.h +++ b/include/configs/omap3_sdp3430.h @@ -114,10 +114,10 @@  /*   * I2C for power management setup   */ -#define CONFIG_HARD_I2C			1 -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_DRIVER_OMAP34XX_I2C	1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  /* OMITTED:  single 1 Gbit MT29F1G NAND flash */ diff --git a/include/configs/omap3_zoom1.h b/include/configs/omap3_zoom1.h index 8591f98a8..1dd53fa13 100644 --- a/include/configs/omap3_zoom1.h +++ b/include/configs/omap3_zoom1.h @@ -118,10 +118,10 @@  #undef CONFIG_CMD_NFS		/* NFS support			*/  #define CONFIG_SYS_NO_FLASH -#define CONFIG_HARD_I2C			1 -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_DRIVER_OMAP34XX_I2C	1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  /*   * TWL4030 diff --git a/include/configs/omap3_zoom2.h b/include/configs/omap3_zoom2.h index cb8c7ec6f..f74974081 100644 --- a/include/configs/omap3_zoom2.h +++ b/include/configs/omap3_zoom2.h @@ -138,10 +138,10 @@  #undef CONFIG_CMD_NFS			/* NFS support			*/  #define CONFIG_SYS_NO_FLASH -#define CONFIG_HARD_I2C			1 -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_DRIVER_OMAP34XX_I2C	1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  /*   * TWL4030 diff --git a/include/configs/origen.h b/include/configs/origen.h index bad34b3e7..f46b833b5 100644 --- a/include/configs/origen.h +++ b/include/configs/origen.h @@ -22,8 +22,6 @@  #define CONFIG_DISPLAY_BOARDINFO  #define CONFIG_BOARD_EARLY_INIT_F -/* Keep L2 Cache Disabled */ -#define CONFIG_L2_OFF			1  #define CONFIG_SYS_DCACHE_OFF		1  #define CONFIG_SYS_SDRAM_BASE		0x40000000 diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h index 91a678212..57ed01995 100644 --- a/include/configs/p1_p2_rdb_pc.h +++ b/include/configs/p1_p2_rdb_pc.h @@ -325,7 +325,7 @@  #endif  /* DDR Setup */ -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #define CONFIG_SYS_DDR_RAW_TIMING  #define CONFIG_DDR_SPD  #define CONFIG_SYS_SPD_BUS_NUM 1 diff --git a/include/configs/p1_twr.h b/include/configs/p1_twr.h index 76189e136..9837100e3 100644 --- a/include/configs/p1_twr.h +++ b/include/configs/p1_twr.h @@ -89,7 +89,7 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);  #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR  /* DDR Setup */ -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #define CONFIG_SYS_SDRAM_SIZE_LAW	LAW_SIZE_512M  #define CONFIG_CHIP_SELECTS_PER_CTRL	1 diff --git a/include/configs/pcm051.h b/include/configs/pcm051.h index 4970b13e9..6f41ee771 100644 --- a/include/configs/pcm051.h +++ b/include/configs/pcm051.h @@ -172,11 +172,10 @@  /* I2C Configuration */  #define CONFIG_I2C  #define CONFIG_CMD_I2C -#define CONFIG_HARD_I2C -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_I2C_MULTI_BUS -#define CONFIG_DRIVER_OMAP24XX_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP24XX  #define CONFIG_CMD_EEPROM  #define CONFIG_ENV_EEPROM_IS_ON_I2C  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x50	/* Main EEPROM */ diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h index 0884ad3a0..a4edc624b 100644 --- a/include/configs/sandbox.h +++ b/include/configs/sandbox.h @@ -75,7 +75,6 @@  #define CONFIG_SYS_LOAD_ADDR		0x00000000  #define CONFIG_SYS_MEMTEST_START	0x00100000  #define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_MEMTEST_START + 0x1000) -#define CONFIG_PHYS_64BIT  #define CONFIG_SYS_FDT_LOAD_ADDR	0x1000000  /* Size of our emulated memory */ diff --git a/include/configs/sbc8548.h b/include/configs/sbc8548.h index 6d970608f..bdb8eb529 100644 --- a/include/configs/sbc8548.h +++ b/include/configs/sbc8548.h @@ -102,7 +102,7 @@  #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR  /* DDR Setup */ -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #undef CONFIG_FSL_DDR_INTERACTIVE  #undef CONFIG_DDR_ECC			/* only for ECC DDR module */  /* diff --git a/include/configs/siemens-am33x-common.h b/include/configs/siemens-am33x-common.h index 7db0eb8cb..4569fd484 100644 --- a/include/configs/siemens-am33x-common.h +++ b/include/configs/siemens-am33x-common.h @@ -131,11 +131,10 @@  /* I2C Configuration */  #define CONFIG_I2C  #define CONFIG_CMD_I2C -#define CONFIG_HARD_I2C -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_I2C_MULTI_BUS -#define CONFIG_DRIVER_OMAP24XX_I2C - +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	OMAP_I2C_STANDARD +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP24XX  /* Defines for SPL */  #define CONFIG_SPL @@ -196,6 +195,7 @@  #define CONFIG_SYS_NAND_ECCSIZE		512  #define CONFIG_SYS_NAND_ECCBYTES	14 +#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_BCH8_CODE_HW  #define CONFIG_SYS_NAND_ECCSTEPS	4  #define	CONFIG_SYS_NAND_ECCTOTAL	(CONFIG_SYS_NAND_ECCBYTES * \ @@ -456,6 +456,7 @@  		"\0"  #define CONFIG_NAND_OMAP_GPMC +#define CONFIG_NAND_OMAP_ELM  #define GPMC_NAND_ECC_LP_x16_LAYOUT	1  #define CONFIG_SYS_NAND_BASE		(0x08000000)	/* physical address */  							/* to access nand at */ diff --git a/include/configs/smdkv310.h b/include/configs/smdkv310.h index e2e8efe58..1388f4998 100644 --- a/include/configs/smdkv310.h +++ b/include/configs/smdkv310.h @@ -25,9 +25,6 @@  /* Mach Type */  #define CONFIG_MACH_TYPE		MACH_TYPE_SMDKV310 -/* Keep L2 Cache Disabled */ -#define CONFIG_L2_OFF			1 -  #define CONFIG_SYS_SDRAM_BASE		0x40000000  #define CONFIG_SYS_TEXT_BASE		0x43E00000 diff --git a/include/configs/snowball.h b/include/configs/snowball.h index 00d6fa5e8..9a069f3cd 100644 --- a/include/configs/snowball.h +++ b/include/configs/snowball.h @@ -23,7 +23,6 @@   * (easy to change)   */  #define CONFIG_U8500 -#define CONFIG_L2_OFF  #define CONFIG_SYS_MEMTEST_START	0x00000000  #define CONFIG_SYS_MEMTEST_END	0x1FFFFFFF diff --git a/include/configs/socfpga_cyclone5.h b/include/configs/socfpga_cyclone5.h index 980636c93..608578ad2 100644 --- a/include/configs/socfpga_cyclone5.h +++ b/include/configs/socfpga_cyclone5.h @@ -16,7 +16,6 @@  #define CONFIG_SOCFPGA_VIRTUAL_TARGET  #define CONFIG_ARMV7 -#define CONFIG_L2_OFF  #define CONFIG_SYS_DCACHE_OFF  #undef CONFIG_USE_IRQ diff --git a/include/configs/socrates.h b/include/configs/socrates.h index b6fbe2370..0e6b86412 100644 --- a/include/configs/socrates.h +++ b/include/configs/socrates.h @@ -80,7 +80,7 @@  #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR  /* DDR Setup */ -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #undef CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup */  #define CONFIG_DDR_SPD diff --git a/include/configs/spieval.h b/include/configs/spieval.h deleted file mode 100644 index 07668de4d..000000000 --- a/include/configs/spieval.h +++ /dev/null @@ -1,494 +0,0 @@ -/* - * (C) Copyright 2003-2005 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * (C) Copyright 2004-2005 - * Martin Krause, TQ-Systems GmbH, martin.krause@tqs.de - * - * SPDX-License-Identifier:	GPL-2.0+ - */ - -#ifndef __CONFIG_H -#define __CONFIG_H - -/* - * High Level Configuration Options - * (easy to change) - */ - -#define CONFIG_MPC5xxx		1	/* This is an MPC5xxx CPU */ -#define CONFIG_MPC5200		1	/* (more precisely an MPC5200 CPU) */ -#define CONFIG_TQM5200		1	/* ... on TQM5200 module */ -#undef CONFIG_TQM5200_REV100		/*  define for revision 100 modules */ -#define CONFIG_STK52XX		1	/* ... on a STK52XX base board */ -#define CONFIG_STK52XX_REV100	1	/*  define for revision 100 baseboards */ - -#define CONFIG_SYS_MPC5XXX_CLKIN	33000000 /* ... running at 33.000000MHz */ - -#define CONFIG_HIGH_BATS	1	/* High BATs supported */ - -/* - * Serial console configuration - */ -#define CONFIG_PSC_CONSOLE	6	/* console is on PSC6 */ -#define CONFIG_BAUDRATE		115200	/* ... at 115200 bps */ -#define CONFIG_SYS_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200, 230400 } - -#ifdef CONFIG_STK52XX -#undef CONFIG_PS2KBD			/* AT-PS/2 Keyboard		*/ -#define CONFIG_PS2MULT			/* .. on PS/2 Multiplexer	*/ -#define CONFIG_PS2SERIAL	6	/* .. on PSC6			*/ -#define CONFIG_PS2MULT_DELAY	(CONFIG_SYS_HZ/2)	/* Initial delay	*/ -#define CONFIG_BOARD_EARLY_INIT_R -#endif /* CONFIG_STK52XX */ - -/* - * PCI Mapping: - * 0x40000000 - 0x4fffffff - PCI Memory - * 0x50000000 - 0x50ffffff - PCI IO Space - */ -#ifdef CONFIG_STK52XX -#define CONFIG_PCI		1 -#define CONFIG_PCI_PNP		1 -/* #define CONFIG_PCI_SCAN_SHOW	1 */ - -#define CONFIG_PCI_MEM_BUS	0x40000000 -#define CONFIG_PCI_MEM_PHYS	CONFIG_PCI_MEM_BUS -#define CONFIG_PCI_MEM_SIZE	0x10000000 - -#define CONFIG_PCI_IO_BUS	0x50000000 -#define CONFIG_PCI_IO_PHYS	CONFIG_PCI_IO_BUS -#define CONFIG_PCI_IO_SIZE	0x01000000 - -#define CONFIG_EEPRO100		1 -#define CONFIG_SYS_RX_ETH_BUFFER	8  /* use 8 rx buffer on eepro100  */ -#define CONFIG_NS8382X		1 -#endif	/* CONFIG_STK52XX */ - -/* - * Video console - */ -#if 1 -#define CONFIG_VIDEO -#define CONFIG_VIDEO_SM501 -#define CONFIG_VIDEO_SM501_32BPP -#define CONFIG_CFB_CONSOLE -#define CONFIG_VIDEO_LOGO -#define CONFIG_VGA_AS_SINGLE_DEVICE -#define CONFIG_CONSOLE_EXTRA_INFO -#define CONFIG_VIDEO_SW_CURSOR -#define CONFIG_SPLASH_SCREEN -#define CONFIG_SYS_CONSOLE_IS_IN_ENV -#endif - -/* Partitions */ -#define CONFIG_MAC_PARTITION -#define CONFIG_DOS_PARTITION -#define CONFIG_ISO_PARTITION - -/* USB */ -#ifdef CONFIG_STK52XX -#define CONFIG_USB_OHCI -#define CONFIG_USB_STORAGE -#endif - -/* POST support */ -#define CONFIG_POST		(CONFIG_SYS_POST_MEMORY   | \ -				 CONFIG_SYS_POST_CPU	   | \ -				 CONFIG_SYS_POST_I2C) - -#ifdef CONFIG_POST -/* preserve space for the post_word at end of on-chip SRAM */ -#define MPC5XXX_SRAM_POST_SIZE MPC5XXX_SRAM_SIZE-4 -#endif - - -/* - * BOOTP options - */ -#define CONFIG_BOOTP_BOOTFILESIZE -#define CONFIG_BOOTP_BOOTPATH -#define CONFIG_BOOTP_GATEWAY -#define CONFIG_BOOTP_HOSTNAME - - -/* - * Command line configuration. - */ -#include <config_cmd_default.h> - -#define CONFIG_CMD_ASKENV -#define CONFIG_CMD_DATE -#define CONFIG_CMD_DHCP -#define CONFIG_CMD_ECHO -#define CONFIG_CMD_EEPROM -#define CONFIG_CMD_I2C -#define CONFIG_CMD_MII -#define CONFIG_CMD_NFS -#define CONFIG_CMD_PING -#define CONFIG_CMD_REGINFO -#define CONFIG_CMD_SNTP - -#if defined(CONFIG_MINIFAP) || defined(CONFIG_STK52XX) -    #define CONFIG_CMD_IDE -    #define CONFIG_CMD_FAT -    #define CONFIG_CMD_EXT2 -#endif - -#ifdef CONFIG_STK52XX -    #define CONFIG_CMD_USB -    #define CONFIG_CMD_FAT -#endif - -#ifdef CONFIG_VIDEO -    #define CONFIG_CMD_BMP -#endif - -#ifdef CONFIG_PCI -    #define CONFIG_CMD_PCI -    #define CONFIG_PCIAUTO_SKIP_HOST_BRIDGE	1 -#endif - -#ifdef CONFIG_POST -#define CONFIG_CMD_DIAG -#endif - - -#define	CONFIG_TIMESTAMP		/* display image timestamps */ - -#if (CONFIG_SYS_TEXT_BASE == 0xFC000000)		/* Boot low */ -#   define CONFIG_SYS_LOWBOOT		1 -#endif - -/* - * Autobooting - */ -#define CONFIG_BOOTDELAY	5	/* autoboot after 5 seconds */ - -#define CONFIG_PREBOOT	"echo;" \ -	"echo Type \\\"run flash_nfs\\\" to mount root filesystem over NFS;" \ -	"echo" - -#undef	CONFIG_BOOTARGS - -#define CONFIG_EXTRA_ENV_SETTINGS					\ -	"netdev=eth0\0"							\ -	"rootpath=/opt/eldk/ppc_6xx\0"					\ -	"ramargs=setenv bootargs root=/dev/ram rw\0"			\ -	"nfsargs=setenv bootargs root=/dev/nfs rw "			\ -		"nfsroot=${serverip}:${rootpath}\0"			\ -	"addip=setenv bootargs ${bootargs} "				\ -		"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}"	\ -		":${hostname}:${netdev}:off panic=1\0"			\ -	"flash_self=run ramargs addip;"					\ -		"bootm ${kernel_addr} ${ramdisk_addr}\0"		\ -	"flash_nfs=run nfsargs addip;"					\ -		"bootm ${kernel_addr}\0"				\ -	"net_nfs=tftp 200000 ${bootfile};run nfsargs addip;bootm\0"	\ -	"bootfile=/tftpboot/tqm5200/uImage\0"				\ -	"load=tftp 200000 ${u-boot}\0"					\ -	"u-boot=/tftpboot/tqm5200/u-boot.bin\0"				\ -	"update=protect off FC000000 FC05FFFF;"				\ -		"erase FC000000 FC05FFFF;"				\ -		"cp.b 200000 FC000000 ${filesize};"			\ -		"protect on FC000000 FC05FFFF\0"			\ -	"" - -#define CONFIG_BOOTCOMMAND	"run net_nfs" - -/* - * IPB Bus clocking configuration. - */ -#define CONFIG_SYS_IPBCLK_EQUALS_XLBCLK		/* define for 133MHz speed */ - -#if defined(CONFIG_SYS_IPBCLK_EQUALS_XLBCLK) -/* - * PCI Bus clocking configuration - * - * Actually a PCI Clock of 66 MHz is only set (in cpu_init.c) if - * CONFIG_SYS_IPBCLK_EQUALS_XLBCLK is defined. This is because a PCI Clock - * of 66 MHz yet hasn't been tested with a IPB Bus Clock of 66 MHz. - */ -#define CONFIG_SYS_PCICLK_EQUALS_IPBCLK_DIV2	/* define for 66MHz speed */ -#endif - -/* - * I2C configuration - */ -#define CONFIG_HARD_I2C		1	/* I2C with hardware support */ -#ifdef CONFIG_TQM5200_REV100 -#define CONFIG_SYS_I2C_MODULE		1	/* Select I2C module #1 for rev. 100 board */ -#else -#define CONFIG_SYS_I2C_MODULE		2	/* Select I2C module #2 for all other revs */ -#endif - -/* - * I2C clock frequency - * - * Please notice, that the resulting clock frequency could differ from the - * configured value. This is because the I2C clock is derived from system - * clock over a frequency divider with only a few divider values. U-boot - * calculates the best approximation for CONFIG_SYS_I2C_SPEED. However the calculated - * approximation allways lies below the configured value, never above. - */ -#define CONFIG_SYS_I2C_SPEED		100000 /* 100 kHz */ -#define CONFIG_SYS_I2C_SLAVE		0x7F - -/* - * EEPROM configuration for onboard EEPROM M24C32 (M24C64 should work - * also). For other EEPROMs configuration should be verified. On Mini-FAP the - * EEPROM (24C64) is on the same I2C address (but on other I2C bus), so the - * same configuration could be used. - */ -#define CONFIG_SYS_I2C_EEPROM_ADDR		0x50	/* 1010000x */ -#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN		2 -#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS	5	/* =32 Bytes per write */ -#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS	20 - -/* - * HW-Monitor configuration on Mini-FAP - */ -#if defined (CONFIG_MINIFAP) -#define CONFIG_SYS_I2C_HWMON_ADDR		0x2C -#endif - -/* List of I2C addresses to be verified by POST */ -#if defined (CONFIG_MINIFAP) -#undef CONFIG_SYS_POST_I2C_ADDRS -#define CONFIG_SYS_POST_I2C_ADDRS	{CONFIG_SYS_I2C_EEPROM_ADDR,	\ -					 CONFIG_SYS_I2C_HWMON_ADDR,	\ -					 CONFIG_SYS_I2C_SLAVE} -#endif - -/* - * Flash configuration - */ -#define CONFIG_SYS_FLASH_BASE		CONFIG_SYS_TEXT_BASE /* 0xFC000000 */ - -/* use CFI flash driver if no module variant is spezified */ -#define CONFIG_SYS_FLASH_CFI		1	/* Flash is CFI conformant */ -#define CONFIG_FLASH_CFI_DRIVER	1	/* Use the common driver */ -#define CONFIG_SYS_FLASH_BANKS_LIST	{ CONFIG_SYS_BOOTCS_START } -#define CONFIG_SYS_FLASH_EMPTY_INFO -#define CONFIG_SYS_FLASH_SIZE		0x04000000 /* 64 MByte */ -#define CONFIG_SYS_MAX_FLASH_SECT	512	/* max num of sects on one chip */ -#undef CONFIG_SYS_FLASH_USE_BUFFER_WRITE	/* not supported yet for AMD */ - -#if !defined(CONFIG_SYS_LOWBOOT) -#define CONFIG_ENV_ADDR		(CONFIG_SYS_FLASH_BASE + 0x00760000 + 0x00800000) -#else	/* CONFIG_SYS_LOWBOOT */ -#define CONFIG_ENV_ADDR		(CONFIG_SYS_FLASH_BASE + 0x00060000) -#endif	/* CONFIG_SYS_LOWBOOT */ -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max num of flash banks -					   (= chip selects) */ -#define CONFIG_SYS_FLASH_ERASE_TOUT	240000	/* Flash Erase Timeout (in ms)	*/ -#define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (in ms)	*/ - - -/* - * Environment settings - */ -#define CONFIG_ENV_IS_IN_FLASH	1 -#define CONFIG_ENV_SIZE		0x10000 -#define CONFIG_ENV_SECT_SIZE	0x20000 -#define CONFIG_ENV_ADDR_REDUND	(CONFIG_ENV_ADDR + CONFIG_ENV_SECT_SIZE) -#define	CONFIG_ENV_SIZE_REDUND	(CONFIG_ENV_SIZE) - -/* - * Memory map - */ -#define CONFIG_SYS_MBAR		0xF0000000 -#define CONFIG_SYS_SDRAM_BASE		0x00000000 -#define CONFIG_SYS_DEFAULT_MBAR	0x80000000 - -/* Use ON-Chip SRAM until RAM will be available */ -#define CONFIG_SYS_INIT_RAM_ADDR	MPC5XXX_SRAM -#ifdef CONFIG_POST -/* preserve space for the post_word at end of on-chip SRAM */ -#define CONFIG_SYS_INIT_RAM_SIZE	MPC5XXX_SRAM_POST_SIZE -#else -#define CONFIG_SYS_INIT_RAM_SIZE	MPC5XXX_SRAM_SIZE -#endif - - -#define CONFIG_SYS_GBL_DATA_OFFSET	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) -#define CONFIG_SYS_INIT_SP_OFFSET	CONFIG_SYS_GBL_DATA_OFFSET - -#define CONFIG_SYS_MONITOR_BASE	CONFIG_SYS_TEXT_BASE -#if (CONFIG_SYS_MONITOR_BASE < CONFIG_SYS_FLASH_BASE) -#   define CONFIG_SYS_RAMBOOT		1 -#endif - -#define CONFIG_SYS_MONITOR_LEN		(384 << 10)	/* Reserve 384 kB for Monitor	*/ -#define CONFIG_SYS_MALLOC_LEN		(128 << 10)	/* Reserve 128 kB for malloc()	*/ -#define CONFIG_SYS_BOOTMAPSZ		(8 << 20)	/* Initial Memory map for Linux */ - -/* - * Ethernet configuration - */ -#define CONFIG_MPC5xxx_FEC	1 -/* - * Define CONFIG_FEC_10MBIT to force FEC at 10Mb - */ -/* #define CONFIG_FEC_10MBIT 1 */ -#define CONFIG_PHY_ADDR		0x00 - -/* - * GPIO configuration - * - * use pin gpio_wkup_6 as second SDRAM chip select (mem_cs1): - *	Bit 0 (mask: 0x80000000): 1 - * use ALT CAN position: Bits 2-3 (mask: 0x30000000): - *	00 -> No Alternatives, CAN1/2 on PSC2 according to PSC2 setting. - *	01 -> CAN1 on I2C1, CAN2 on Tmr0/1. - *	      Use for REV200 STK52XX boards. Do not use with REV100 modules - *	      (because, there I2C1 is used as I2C bus) - * use PSC1 as UART: Bits 28-31 (mask: 0x00000007): 0100 - * use PSC2 as CAN: Bits 25:27 (mask: 0x00000030) - *	000 -> All PSC2 pins are GIOPs - *	001 -> CAN1/2 on PSC2 pins - *	       Use for REV100 STK52xx boards - * use PSC6: - *   on STK52xx: - *	use as UART. Pins PSC6_0 to PSC6_3 are used. - *	Bits 9:11 (mask: 0x00700000): - *	   101 -> PSC6 : Extended POST test is not available - *   on MINI-FAP and TQM5200_IB: - *	use PSC6_0 to PSC6_3 as GPIO: Bits 9:11 (mask: 0x00700000): - *	   000 -> PSC6 could not be used as UART, CODEC or IrDA - *   GPIO on PSC6_3 is used in post_hotkeys_pressed() to enable extended POST - *   tests. - */ -#if defined (CONFIG_MINIFAP) -# define CONFIG_SYS_GPS_PORT_CONFIG	0x91000004 -#elif defined (CONFIG_STK52XX) -# if defined (CONFIG_STK52XX_REV100) -#  define CONFIG_SYS_GPS_PORT_CONFIG	0x81500014 -# else /* STK52xx REV200 and above */ -#  if defined (CONFIG_TQM5200_REV100) -#   error TQM5200 REV100 not supported on STK52XX REV200 or above -#  else/* TQM5200 REV200 and above */ -#   define CONFIG_SYS_GPS_PORT_CONFIG	0x91500004 -#  endif -# endif -#else  /* TMQ5200 Inbetriebnahme-Board */ -# define CONFIG_SYS_GPS_PORT_CONFIG	0x81000004 -#endif - -/* - * RTC configuration - */ -#define CONFIG_RTC_MPC5200	1	/* use internal MPC5200 RTC */ - -/* - * Miscellaneous configurable options - */ -#define CONFIG_SYS_LONGHELP			/* undef to save memory	    */ -#if defined(CONFIG_CMD_KGDB) -#define CONFIG_SYS_CBSIZE		1024	/* Console I/O Buffer Size  */ -#else -#define CONFIG_SYS_CBSIZE		256	/* Console I/O Buffer Size  */ -#endif -#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */ -#define CONFIG_SYS_MAXARGS		16	/* max number of command args	*/ -#define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE	/* Boot Argument Buffer Size	*/ - -/* Enable an alternate, more extensive memory test */ -#define CONFIG_SYS_ALT_MEMTEST - -#define CONFIG_SYS_MEMTEST_START	0x00100000	/* memtest works on */ -#define CONFIG_SYS_MEMTEST_END		0x00f00000	/* 1 ... 15 MB in DRAM	*/ - -#define CONFIG_SYS_LOAD_ADDR		0x100000	/* default load address */ - -#define CONFIG_SYS_CACHELINE_SIZE	32	/* For MPC5xxx CPUs */ -#if defined(CONFIG_CMD_KGDB) -#  define CONFIG_SYS_CACHELINE_SHIFT	5	/* log base 2 of the above value */ -#endif - -/* - * Enable loopw command. - */ -#define CONFIG_LOOPW - -/* - * Various low-level settings - */ -#define CONFIG_SYS_HID0_INIT		HID0_ICE | HID0_ICFI -#define CONFIG_SYS_HID0_FINAL		HID0_ICE - -#define CONFIG_SYS_BOOTCS_START	CONFIG_SYS_FLASH_BASE -#define CONFIG_SYS_BOOTCS_SIZE		CONFIG_SYS_FLASH_SIZE -#ifdef CONFIG_SYS_PCICLK_EQUALS_IPBCLK_DIV2 -#define CONFIG_SYS_BOOTCS_CFG		0x0008DF30 /* for pci_clk  = 66 MHz */ -#else -#define CONFIG_SYS_BOOTCS_CFG		0x0004DF30 /* for pci_clk = 33 MHz */ -#endif -#define CONFIG_SYS_CS0_START		CONFIG_SYS_FLASH_BASE -#define CONFIG_SYS_CS0_SIZE		CONFIG_SYS_FLASH_SIZE - -#define CONFIG_LAST_STAGE_INIT - -/* - * SRAM - Do not map below 2 GB in address space, because this area is used - * for SDRAM autosizing. - */ -#define CONFIG_SYS_CS2_START		0xE5000000 -#define CONFIG_SYS_CS2_SIZE		0x100000	/* 1 MByte */ -#define CONFIG_SYS_CS2_CFG		0x0004D930 - -/* - * Grafic controller - Do not map below 2 GB in address space, because this - * area is used for SDRAM autosizing. - */ -#define SM501_FB_BASE		0xE0000000 -#define CONFIG_SYS_CS1_START		(SM501_FB_BASE) -#define CONFIG_SYS_CS1_SIZE		0x4000000	/* 64 MByte */ -#define CONFIG_SYS_CS1_CFG		0x8F48FF70 -#define SM501_MMIO_BASE		CONFIG_SYS_CS1_START + 0x03E00000 - -#define CONFIG_SYS_CS_BURST		0x00000000 -#define CONFIG_SYS_CS_DEADCYCLE	0x33333311	/* 1 dead cycle for flash and SM501 */ - -#define CONFIG_SYS_RESET_ADDRESS	0xff000000 - -/*----------------------------------------------------------------------- - * USB stuff - *----------------------------------------------------------------------- - */ -#define CONFIG_USB_CLOCK	0x0001BBBB -#define CONFIG_USB_CONFIG	0x00001000 - -/*----------------------------------------------------------------------- - * IDE/ATA stuff Supports IDE harddisk - *----------------------------------------------------------------------- - */ - -#undef	CONFIG_IDE_8xx_PCCARD		/* Use IDE with PC Card Adapter */ - -#undef	CONFIG_IDE_8xx_DIRECT		/* Direct IDE	 not supported	*/ -#undef	CONFIG_IDE_LED			/* LED	 for ide not supported	*/ - -#define CONFIG_IDE_RESET		/* reset for ide supported	*/ -#define CONFIG_IDE_PREINIT - -#define CONFIG_SYS_IDE_MAXBUS		1	/* max. 1 IDE bus		*/ -#define CONFIG_SYS_IDE_MAXDEVICE	2	/* max. 2 drives per IDE bus	*/ - -#define CONFIG_SYS_ATA_IDE0_OFFSET	0x0000 - -#define CONFIG_SYS_ATA_BASE_ADDR	MPC5XXX_ATA - -/* Offset for data I/O			*/ -#define CONFIG_SYS_ATA_DATA_OFFSET	(0x0060) - -/* Offset for normal register accesses	*/ -#define CONFIG_SYS_ATA_REG_OFFSET	(CONFIG_SYS_ATA_DATA_OFFSET) - -/* Offset for alternate registers	*/ -#define CONFIG_SYS_ATA_ALT_OFFSET	(0x005C) - -/* Interval between registers						     */ -#define CONFIG_SYS_ATA_STRIDE		4 - -#endif /* __CONFIG_H */ diff --git a/include/configs/stxgp3.h b/include/configs/stxgp3.h index 9b3f0cc69..ee1f1f3ed 100644 --- a/include/configs/stxgp3.h +++ b/include/configs/stxgp3.h @@ -98,7 +98,7 @@  #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR  /* DDR Setup */ -#define CONFIG_FSL_DDR1 +#define CONFIG_SYS_FSL_DDR1  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup*/  #define CONFIG_DDR_SPD  #undef CONFIG_FSL_DDR_INTERACTIVE diff --git a/include/configs/stxssa.h b/include/configs/stxssa.h index 805814f4f..63dd76704 100644 --- a/include/configs/stxssa.h +++ b/include/configs/stxssa.h @@ -112,7 +112,7 @@  #define CONFIG_SYS_CCSRBAR_PHYS_LOW	CONFIG_SYS_CCSRBAR  /* DDR Setup */ -#define CONFIG_FSL_DDR1 +#define CONFIG_SYS_FSL_DDR1  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup*/  #define CONFIG_DDR_SPD  #undef CONFIG_FSL_DDR_INTERACTIVE diff --git a/include/configs/t4qds.h b/include/configs/t4qds.h index 3f54f1423..d9b0ed07d 100644 --- a/include/configs/t4qds.h +++ b/include/configs/t4qds.h @@ -87,7 +87,7 @@  #define CONFIG_FSL_DDR_FIRST_SLOT_QUAD_CAPABLE  #define CONFIG_DDR_SPD -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  /* diff --git a/include/configs/tam3517-common.h b/include/configs/tam3517-common.h index 683bc54a2..439fc47eb 100644 --- a/include/configs/tam3517-common.h +++ b/include/configs/tam3517-common.h @@ -117,14 +117,13 @@  #undef CONFIG_CMD_IMLS  #define CONFIG_SYS_NO_FLASH -#define CONFIG_HARD_I2C -#define CONFIG_SYS_I2C_SPEED		400000 -#define CONFIG_SYS_I2C_SLAVE		1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	400000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x50		/* base address */  #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN	1		/* bytes of address */  #define CONFIG_SYS_I2C_EEPROM_ADDR_OVERFLOW	0x07 -#define CONFIG_DRIVER_OMAP34XX_I2C -  /*   * Board NAND Info. @@ -225,7 +224,6 @@  #define CONFIG_SPL_BOARD_INIT  #define CONFIG_SPL_CONSOLE  #define CONFIG_SPL_NAND_SIMPLE -#define CONFIG_SPL_NAND_SOFTECC  #define CONFIG_SPL_NAND_WORKSPACE	0x8f07f000 /* below BSS */  #define CONFIG_SPL_LIBCOMMON_SUPPORT @@ -262,6 +260,7 @@  					 56, 57, 58, 59, 60, 61, 62, 63}  #define CONFIG_SYS_NAND_ECCSIZE		256  #define CONFIG_SYS_NAND_ECCBYTES	3 +#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_HAM1_CODE_SW  #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE @@ -369,7 +368,7 @@ struct tam3517_module_info {  #define TAM3517_READ_EEPROM(info, ret) \  do {								\ -	i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);	\ +	i2c_init(CONFIG_SYS_OMAP24_I2C_SPEED, CONFIG_SYS_OMAP24_I2C_SLAVE); \  	if (eeprom_read(CONFIG_SYS_I2C_EEPROM_ADDR, 0,		\  		(void *)info, sizeof(*info)))			\  		ret = 1;					\ diff --git a/include/configs/tcm-bf537.h b/include/configs/tcm-bf537.h index 2adb071dd..627836a7e 100644 --- a/include/configs/tcm-bf537.h +++ b/include/configs/tcm-bf537.h @@ -112,8 +112,8 @@   * it linked after the configuration sector.   */  # define LDS_BOARD_TEXT \ -	arch/blackfin/lib/libblackfin.o (.text*); \ -	arch/blackfin/cpu/libblackfin.o (.text*); \ +	arch/blackfin/lib/built-in.o (.text*); \ +	arch/blackfin/cpu/built-in.o (.text*); \  	. = DEFINED(env_offset) ? env_offset : .; \  	common/env_embedded.o (.text*);  #endif diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h index 84269ad26..99b60fcf6 100644 --- a/include/configs/ti_armv7_common.h +++ b/include/configs/ti_armv7_common.h @@ -59,12 +59,11 @@  /* I2C IP block */  #define CONFIG_I2C -#define CONFIG_HARD_I2C -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_I2C_MULTI_BUS -#define CONFIG_DRIVER_OMAP24XX_I2C  #define CONFIG_CMD_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP24XX  /* MMC/SD IP block */  #define CONFIG_MMC diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h index d57394e55..cc4001fcd 100644 --- a/include/configs/tricorder.h +++ b/include/configs/tricorder.h @@ -98,11 +98,11 @@  #define CONFIG_DOS_PARTITION  /* I2C */ -#define CONFIG_HARD_I2C -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		1 -#define CONFIG_DRIVER_OMAP34XX_I2C	1 -#define CONFIG_I2C_MULTI_BUS +#define CONFIG_SYS_I2C +#define CONFIG_SYS_OMAP24_I2C_SPEED	100000 +#define CONFIG_SYS_OMAP24_I2C_SLAVE	1 +#define CONFIG_SYS_I2C_OMAP34XX +   /* EEPROM */  #define CONFIG_SYS_I2C_MULTI_EEPROMS @@ -138,8 +138,9 @@  #define CONFIG_SYS_MAX_NAND_DEVICE	1		/* Max number of NAND */  							/* devices */ -#define CONFIG_NAND_OMAP_BCH8  #define CONFIG_BCH +#define CONFIG_SYS_NAND_MAX_OOBFREE	2 +#define CONFIG_SYS_NAND_MAX_ECCPOS	56  /* commands to include */  #include <config_cmd_default.h> @@ -374,6 +375,7 @@  #define CONFIG_SYS_NAND_ECCSIZE		512  #define CONFIG_SYS_NAND_ECCBYTES	13 +#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_BCH8_CODE_HW_DETECTION_SW  #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE diff --git a/include/configs/u8500_href.h b/include/configs/u8500_href.h index 45d33a689..629299d10 100644 --- a/include/configs/u8500_href.h +++ b/include/configs/u8500_href.h @@ -12,7 +12,6 @@   * (easy to change)   */  #define CONFIG_U8500 -#define CONFIG_L2_OFF  #define CONFIG_SYS_MEMTEST_START	0x00000000  #define CONFIG_SYS_MEMTEST_END	0x1FFFFFFF diff --git a/include/configs/xpedite517x.h b/include/configs/xpedite517x.h index 4738c2335..88d7f88cc 100644 --- a/include/configs/xpedite517x.h +++ b/include/configs/xpedite517x.h @@ -40,7 +40,7 @@  /*   * DDR config   */ -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup */  #define CONFIG_DDR_SPD  #define CONFIG_MEM_INIT_VALUE		0xdeadbeef diff --git a/include/configs/xpedite520x.h b/include/configs/xpedite520x.h index 33428803e..f39d6f910 100644 --- a/include/configs/xpedite520x.h +++ b/include/configs/xpedite520x.h @@ -39,7 +39,7 @@  /*   * DDR config   */ -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #undef CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup */  #define CONFIG_DDR_SPD diff --git a/include/configs/xpedite537x.h b/include/configs/xpedite537x.h index 9da845d9a..e1bdf90de 100644 --- a/include/configs/xpedite537x.h +++ b/include/configs/xpedite537x.h @@ -49,7 +49,7 @@  /*   * DDR config   */ -#define CONFIG_FSL_DDR2 +#define CONFIG_SYS_FSL_DDR2  #undef CONFIG_FSL_DDR_INTERACTIVE  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup */  #define CONFIG_DDR_SPD diff --git a/include/configs/xpedite550x.h b/include/configs/xpedite550x.h index 4137cc920..2328c7a62 100644 --- a/include/configs/xpedite550x.h +++ b/include/configs/xpedite550x.h @@ -49,7 +49,7 @@  /*   * DDR config   */ -#define CONFIG_FSL_DDR3 +#define CONFIG_SYS_FSL_DDR3  #define CONFIG_SPD_EEPROM		/* Use SPD EEPROM for DDR setup */  #define CONFIG_DDR_SPD  #define CONFIG_MEM_INIT_VALUE		0xdeadbeef diff --git a/include/configs/zynq.h b/include/configs/zynq.h index 4c6e6e8f6..82ec826f7 100644 --- a/include/configs/zynq.h +++ b/include/configs/zynq.h @@ -60,10 +60,10 @@  /* I2C */  #if defined(CONFIG_ZYNQ_I2C0) || defined(CONFIG_ZYNQ_I2C1)  # define CONFIG_CMD_I2C -# define CONFIG_ZYNQ_I2C -# define CONFIG_HARD_I2C -# define CONFIG_SYS_I2C_SPEED		100000 -# define CONFIG_SYS_I2C_SLAVE		1 +# define CONFIG_SYS_I2C +# define CONFIG_SYS_I2C_ZYNQ +# define CONFIG_SYS_I2C_ZYNQ_SPEED		100000 +# define CONFIG_SYS_I2C_ZYNQ_SLAVE		1  #endif  #if defined(CONFIG_ZYNQ_DCC) diff --git a/include/fm_eth.h b/include/fm_eth.h index 5a4fb70df..98edfcf4a 100644 --- a/include/fm_eth.h +++ b/include/fm_eth.h @@ -22,6 +22,8 @@ enum fm_port {  	FM1_DTSEC10,  	FM1_10GEC1,  	FM1_10GEC2, +	FM1_10GEC3, +	FM1_10GEC4,  	FM2_DTSEC1,  	FM2_DTSEC2,  	FM2_DTSEC3, @@ -85,6 +87,22 @@ enum fm_eth_type {  	.compat_offset	= CONFIG_SYS_FSL_FM##idx##_OFFSET +		\  				offsetof(struct ccsr_fman, memac[n-1+8]),\  } + +#if (CONFIG_SYS_NUM_FM1_10GEC >= 3) +#define FM_TGEC_INFO_INITIALIZER2(idx, n) \ +{									\ +	FM_ETH_INFO_INITIALIZER(idx, CONFIG_SYS_FM1_TGEC_MDIO_ADDR)	\ +	.index		= idx,						\ +	.num		= n - 1,					\ +	.type		= FM_ETH_10G_E,					\ +	.port		= FM##idx##_10GEC##n,				\ +	.rx_port_id	= RX_PORT_10G_BASE2 + n - 3,			\ +	.tx_port_id	= TX_PORT_10G_BASE2 + n - 3,			\ +	.compat_offset	= CONFIG_SYS_FSL_FM##idx##_OFFSET +		\ +				offsetof(struct ccsr_fman, memac[n-1-2]),\ +} +#endif +  #else  #define FM_DTSEC_INFO_INITIALIZER(idx, n) \  {									\ diff --git a/include/fsl_ddr.h b/include/fsl_ddr.h new file mode 100644 index 000000000..e03f9db5f --- /dev/null +++ b/include/fsl_ddr.h @@ -0,0 +1,105 @@ +/* + * Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * Version 2 as published by the Free Software Foundation. + */ + +#ifndef FSL_DDR_MAIN_H +#define FSL_DDR_MAIN_H + +#include <fsl_ddr_sdram.h> +#include <fsl_ddr_dimm_params.h> + +#include <common_timing_params.h> + +#if defined(CONFIG_DDR_SPD) || defined(CONFIG_SPD_EEPROM) +/* + * Bind the main DDR setup driver's generic names + * to this specific DDR technology. + */ +static __inline__ int +compute_dimm_parameters(const generic_spd_eeprom_t *spd, +			dimm_params_t *pdimm, +			unsigned int dimm_number) +{ +	return ddr_compute_dimm_parameters(spd, pdimm, dimm_number); +} +#endif + +/* + * Data Structures + * + * All data structures have to be on the stack + */ +#define CONFIG_SYS_NUM_DDR_CTLRS CONFIG_NUM_DDR_CONTROLLERS +#define CONFIG_SYS_DIMM_SLOTS_PER_CTLR CONFIG_DIMM_SLOTS_PER_CTLR + +typedef struct { +	generic_spd_eeprom_t +	   spd_installed_dimms[CONFIG_SYS_NUM_DDR_CTLRS][CONFIG_SYS_DIMM_SLOTS_PER_CTLR]; +	struct dimm_params_s +	   dimm_params[CONFIG_SYS_NUM_DDR_CTLRS][CONFIG_SYS_DIMM_SLOTS_PER_CTLR]; +	memctl_options_t memctl_opts[CONFIG_SYS_NUM_DDR_CTLRS]; +	common_timing_params_t common_timing_params[CONFIG_SYS_NUM_DDR_CTLRS]; +	fsl_ddr_cfg_regs_t fsl_ddr_config_reg[CONFIG_SYS_NUM_DDR_CTLRS]; +} fsl_ddr_info_t; + +/* Compute steps */ +#define STEP_GET_SPD                 (1 << 0) +#define STEP_COMPUTE_DIMM_PARMS      (1 << 1) +#define STEP_COMPUTE_COMMON_PARMS    (1 << 2) +#define STEP_GATHER_OPTS             (1 << 3) +#define STEP_ASSIGN_ADDRESSES        (1 << 4) +#define STEP_COMPUTE_REGS            (1 << 5) +#define STEP_PROGRAM_REGS            (1 << 6) +#define STEP_ALL                     0xFFF + +unsigned long long +fsl_ddr_compute(fsl_ddr_info_t *pinfo, unsigned int start_step, +				       unsigned int size_only); + +const char *step_to_string(unsigned int step); + +unsigned int compute_fsl_memctl_config_regs(const memctl_options_t *popts, +			       fsl_ddr_cfg_regs_t *ddr, +			       const common_timing_params_t *common_dimm, +			       const dimm_params_t *dimm_parameters, +			       unsigned int dbw_capacity_adjust, +			       unsigned int size_only); +unsigned int compute_lowest_common_dimm_parameters( +				const dimm_params_t *dimm_params, +				common_timing_params_t *outpdimm, +				unsigned int number_of_dimms); +unsigned int populate_memctl_options(int all_dimms_registered, +				memctl_options_t *popts, +				dimm_params_t *pdimm, +				unsigned int ctrl_num); +void check_interleaving_options(fsl_ddr_info_t *pinfo); + +unsigned int mclk_to_picos(unsigned int mclk); +unsigned int get_memory_clk_period_ps(void); +unsigned int picos_to_mclk(unsigned int picos); +void fsl_ddr_set_lawbar( +		const common_timing_params_t *memctl_common_params, +		unsigned int memctl_interleaved, +		unsigned int ctrl_num); + +int fsl_ddr_interactive_env_var_exists(void); +unsigned long long fsl_ddr_interactive(fsl_ddr_info_t *pinfo, int var_is_set); +void fsl_ddr_get_spd(generic_spd_eeprom_t *ctrl_dimms_spd, +			   unsigned int ctrl_num); + +int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); +unsigned int check_fsl_memctl_config_regs(const fsl_ddr_cfg_regs_t *ddr); + +/* processor specific function */ +void fsl_ddr_set_memctl_regs(const fsl_ddr_cfg_regs_t *regs, +				   unsigned int ctrl_num, int step); + +/* board specific function */ +int fsl_ddr_get_dimm_params(dimm_params_t *pdimm, +			unsigned int controller_number, +			unsigned int dimm_number); +#endif diff --git a/include/fsl_ddr_dimm_params.h b/include/fsl_ddr_dimm_params.h new file mode 100644 index 000000000..99a72bc6e --- /dev/null +++ b/include/fsl_ddr_dimm_params.h @@ -0,0 +1,101 @@ +/* + * Copyright 2008 Freescale Semiconductor, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * Version 2 as published by the Free Software Foundation. + */ + +#ifndef DDR2_DIMM_PARAMS_H +#define DDR2_DIMM_PARAMS_H + +#define EDC_DATA_PARITY	1 +#define EDC_ECC		2 +#define EDC_AC_PARITY	4 + +/* Parameters for a DDR2 dimm computed from the SPD */ +typedef struct dimm_params_s { + +	/* DIMM organization parameters */ +	char mpart[19];		/* guaranteed null terminated */ + +	unsigned int n_ranks; +	unsigned long long rank_density; +	unsigned long long capacity; +	unsigned int data_width; +	unsigned int primary_sdram_width; +	unsigned int ec_sdram_width; +	unsigned int registered_dimm; +	unsigned int device_width;	/* x4, x8, x16 components */ + +	/* SDRAM device parameters */ +	unsigned int n_row_addr; +	unsigned int n_col_addr; +	unsigned int edc_config;	/* 0 = none, 1 = parity, 2 = ECC */ +	unsigned int n_banks_per_sdram_device; +	unsigned int burst_lengths_bitmask;	/* BL=4 bit 2, BL=8 = bit 3 */ +	unsigned int row_density; + +	/* used in computing base address of DIMMs */ +	unsigned long long base_address; +	/* mirrored DIMMs */ +	unsigned int mirrored_dimm;	/* only for ddr3 */ + +	/* DIMM timing parameters */ + +	unsigned int mtb_ps;	/* medium timebase ps, only for ddr3 */ +	unsigned int ftb_10th_ps; /* fine timebase, in 1/10 ps, only for ddr3 */ +	unsigned int taa_ps;	/* minimum CAS latency time, only for ddr3 */ +	unsigned int tfaw_ps;	/* four active window delay, only for ddr3 */ + +	/* +	 * SDRAM clock periods +	 * The range for these are 1000-10000 so a short should be sufficient +	 */ +	unsigned int tckmin_x_ps; +	unsigned int tckmin_x_minus_1_ps; +	unsigned int tckmin_x_minus_2_ps; +	unsigned int tckmax_ps; + +	/* SPD-defined CAS latencies */ +	unsigned int caslat_x; +	unsigned int caslat_x_minus_1; +	unsigned int caslat_x_minus_2; + +	unsigned int caslat_lowest_derated;	/* Derated CAS latency */ + +	/* basic timing parameters */ +	unsigned int trcd_ps; +	unsigned int trp_ps; +	unsigned int tras_ps; + +	unsigned int twr_ps;	/* maximum = 63750 ps */ +	unsigned int twtr_ps;	/* maximum = 63750 ps */ +	unsigned int trfc_ps;   /* max = 255 ns + 256 ns + .75 ns +				       = 511750 ps */ + +	unsigned int trrd_ps;	/* maximum = 63750 ps */ +	unsigned int trc_ps;	/* maximum = 254 ns + .75 ns = 254750 ps */ + +	unsigned int refresh_rate_ps; +	unsigned int extended_op_srt; + +	/* DDR3 doesn't need these as below */ +	unsigned int tis_ps;	/* byte 32, spd->ca_setup */ +	unsigned int tih_ps;	/* byte 33, spd->ca_hold */ +	unsigned int tds_ps;	/* byte 34, spd->data_setup */ +	unsigned int tdh_ps;	/* byte 35, spd->data_hold */ +	unsigned int trtp_ps;	/* byte 38, spd->trtp */ +	unsigned int tdqsq_max_ps;	/* byte 44, spd->tdqsq */ +	unsigned int tqhs_ps;	/* byte 45, spd->tqhs */ + +	/* DDR3 RDIMM */ +	unsigned char rcw[16];	/* Register Control Word 0-15 */ +} dimm_params_t; + +extern unsigned int ddr_compute_dimm_parameters( +					 const generic_spd_eeprom_t *spd, +					 dimm_params_t *pdimm, +					 unsigned int dimm_number); + +#endif diff --git a/include/fsl_ddr_sdram.h b/include/fsl_ddr_sdram.h new file mode 100644 index 000000000..16cccc770 --- /dev/null +++ b/include/fsl_ddr_sdram.h @@ -0,0 +1,377 @@ +/* + * Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * Version 2 as published by the Free Software Foundation. + */ + +#ifndef FSL_DDR_MEMCTL_H +#define FSL_DDR_MEMCTL_H + +/* + * Pick a basic DDR Technology. + */ +#include <ddr_spd.h> + +#define SDRAM_TYPE_DDR1    2 +#define SDRAM_TYPE_DDR2    3 +#define SDRAM_TYPE_LPDDR1  6 +#define SDRAM_TYPE_DDR3    7 + +#define DDR_BL4		4	/* burst length 4 */ +#define DDR_BC4		DDR_BL4	/* burst chop for ddr3 */ +#define DDR_OTF		6	/* on-the-fly BC4 and BL8 */ +#define DDR_BL8		8	/* burst length 8 */ + +#define DDR3_RTT_OFF		0 +#define DDR3_RTT_60_OHM		1 /* RTT_Nom = RZQ/4 */ +#define DDR3_RTT_120_OHM	2 /* RTT_Nom = RZQ/2 */ +#define DDR3_RTT_40_OHM		3 /* RTT_Nom = RZQ/6 */ +#define DDR3_RTT_20_OHM		4 /* RTT_Nom = RZQ/12 */ +#define DDR3_RTT_30_OHM		5 /* RTT_Nom = RZQ/8 */ + +#define DDR2_RTT_OFF		0 +#define DDR2_RTT_75_OHM		1 +#define DDR2_RTT_150_OHM	2 +#define DDR2_RTT_50_OHM		3 + +#if defined(CONFIG_SYS_FSL_DDR1) +#define FSL_DDR_MIN_TCKE_PULSE_WIDTH_DDR	(1) +typedef ddr1_spd_eeprom_t generic_spd_eeprom_t; +#ifndef CONFIG_FSL_SDRAM_TYPE +#define CONFIG_FSL_SDRAM_TYPE	SDRAM_TYPE_DDR1 +#endif +#elif defined(CONFIG_SYS_FSL_DDR2) +#define FSL_DDR_MIN_TCKE_PULSE_WIDTH_DDR	(3) +typedef ddr2_spd_eeprom_t generic_spd_eeprom_t; +#ifndef CONFIG_FSL_SDRAM_TYPE +#define CONFIG_FSL_SDRAM_TYPE	SDRAM_TYPE_DDR2 +#endif +#elif defined(CONFIG_SYS_FSL_DDR3) +#define FSL_DDR_MIN_TCKE_PULSE_WIDTH_DDR	(3)	/* FIXME */ +typedef ddr3_spd_eeprom_t generic_spd_eeprom_t; +#ifndef CONFIG_FSL_SDRAM_TYPE +#define CONFIG_FSL_SDRAM_TYPE	SDRAM_TYPE_DDR3 +#endif +#endif	/* #if defined(CONFIG_SYS_FSL_DDR1) */ + +#define FSL_DDR_ODT_NEVER		0x0 +#define FSL_DDR_ODT_CS			0x1 +#define FSL_DDR_ODT_ALL_OTHER_CS	0x2 +#define FSL_DDR_ODT_OTHER_DIMM		0x3 +#define FSL_DDR_ODT_ALL			0x4 +#define FSL_DDR_ODT_SAME_DIMM		0x5 +#define FSL_DDR_ODT_CS_AND_OTHER_DIMM	0x6 +#define FSL_DDR_ODT_OTHER_CS_ONSAMEDIMM	0x7 + +/* define bank(chip select) interleaving mode */ +#define FSL_DDR_CS0_CS1			0x40 +#define FSL_DDR_CS2_CS3			0x20 +#define FSL_DDR_CS0_CS1_AND_CS2_CS3	(FSL_DDR_CS0_CS1 | FSL_DDR_CS2_CS3) +#define FSL_DDR_CS0_CS1_CS2_CS3		(FSL_DDR_CS0_CS1_AND_CS2_CS3 | 0x04) + +/* define memory controller interleaving mode */ +#define FSL_DDR_CACHE_LINE_INTERLEAVING	0x0 +#define FSL_DDR_PAGE_INTERLEAVING	0x1 +#define FSL_DDR_BANK_INTERLEAVING	0x2 +#define FSL_DDR_SUPERBANK_INTERLEAVING	0x3 +#define FSL_DDR_3WAY_1KB_INTERLEAVING	0xA +#define FSL_DDR_3WAY_4KB_INTERLEAVING	0xC +#define FSL_DDR_3WAY_8KB_INTERLEAVING	0xD +/* placeholder for 4-way interleaving */ +#define FSL_DDR_4WAY_1KB_INTERLEAVING	0x1A +#define FSL_DDR_4WAY_4KB_INTERLEAVING	0x1C +#define FSL_DDR_4WAY_8KB_INTERLEAVING	0x1D + +#define SDRAM_CS_CONFIG_EN		0x80000000 + +/* DDR_SDRAM_CFG - DDR SDRAM Control Configuration + */ +#define SDRAM_CFG_MEM_EN		0x80000000 +#define SDRAM_CFG_SREN			0x40000000 +#define SDRAM_CFG_ECC_EN		0x20000000 +#define SDRAM_CFG_RD_EN			0x10000000 +#define SDRAM_CFG_SDRAM_TYPE_DDR1	0x02000000 +#define SDRAM_CFG_SDRAM_TYPE_DDR2	0x03000000 +#define SDRAM_CFG_SDRAM_TYPE_MASK	0x07000000 +#define SDRAM_CFG_SDRAM_TYPE_SHIFT	24 +#define SDRAM_CFG_DYN_PWR		0x00200000 +#define SDRAM_CFG_DBW_MASK		0x00180000 +#define SDRAM_CFG_DBW_SHIFT		19 +#define SDRAM_CFG_32_BE			0x00080000 +#define SDRAM_CFG_16_BE			0x00100000 +#define SDRAM_CFG_8_BE			0x00040000 +#define SDRAM_CFG_NCAP			0x00020000 +#define SDRAM_CFG_2T_EN			0x00008000 +#define SDRAM_CFG_BI			0x00000001 + +#define SDRAM_CFG2_D_INIT		0x00000010 +#define SDRAM_CFG2_ODT_CFG_MASK		0x00600000 +#define SDRAM_CFG2_ODT_NEVER		0 +#define SDRAM_CFG2_ODT_ONLY_WRITE	1 +#define SDRAM_CFG2_ODT_ONLY_READ	2 +#define SDRAM_CFG2_ODT_ALWAYS		3 + +#define TIMING_CFG_2_CPO_MASK	0x0F800000 + +#if defined(CONFIG_P4080) +#define RD_TO_PRE_MASK		0xf +#define RD_TO_PRE_SHIFT		13 +#define WR_DATA_DELAY_MASK	0xf +#define WR_DATA_DELAY_SHIFT	9 +#else +#define RD_TO_PRE_MASK		0x7 +#define RD_TO_PRE_SHIFT		13 +#define WR_DATA_DELAY_MASK	0x7 +#define WR_DATA_DELAY_SHIFT	10 +#endif + +/* DDR_MD_CNTL */ +#define MD_CNTL_MD_EN		0x80000000 +#define MD_CNTL_CS_SEL_CS0	0x00000000 +#define MD_CNTL_CS_SEL_CS1	0x10000000 +#define MD_CNTL_CS_SEL_CS2	0x20000000 +#define MD_CNTL_CS_SEL_CS3	0x30000000 +#define MD_CNTL_CS_SEL_CS0_CS1	0x40000000 +#define MD_CNTL_CS_SEL_CS2_CS3	0x50000000 +#define MD_CNTL_MD_SEL_MR	0x00000000 +#define MD_CNTL_MD_SEL_EMR	0x01000000 +#define MD_CNTL_MD_SEL_EMR2	0x02000000 +#define MD_CNTL_MD_SEL_EMR3	0x03000000 +#define MD_CNTL_SET_REF		0x00800000 +#define MD_CNTL_SET_PRE		0x00400000 +#define MD_CNTL_CKE_CNTL_LOW	0x00100000 +#define MD_CNTL_CKE_CNTL_HIGH	0x00200000 +#define MD_CNTL_WRCW		0x00080000 +#define MD_CNTL_MD_VALUE(x)	(x & 0x0000FFFF) + +/* DDR_CDR1 */ +#define DDR_CDR1_DHC_EN	0x80000000 +#define DDR_CDR1_ODT_SHIFT	17 +#define DDR_CDR1_ODT_MASK	0x6 +#define DDR_CDR2_ODT_MASK	0x1 +#define DDR_CDR1_ODT(x) ((x & DDR_CDR1_ODT_MASK) << DDR_CDR1_ODT_SHIFT) +#define DDR_CDR2_ODT(x) (x & DDR_CDR2_ODT_MASK) + +#if (defined(CONFIG_SYS_FSL_DDR_VER) && \ +	(CONFIG_SYS_FSL_DDR_VER >= FSL_DDR_VER_4_7)) +#define DDR_CDR_ODT_OFF		0x0 +#define DDR_CDR_ODT_120ohm	0x1 +#define DDR_CDR_ODT_180ohm	0x2 +#define DDR_CDR_ODT_75ohm	0x3 +#define DDR_CDR_ODT_110ohm	0x4 +#define DDR_CDR_ODT_60hm	0x5 +#define DDR_CDR_ODT_70ohm	0x6 +#define DDR_CDR_ODT_47ohm	0x7 +#else +#define DDR_CDR_ODT_75ohm	0x0 +#define DDR_CDR_ODT_55ohm	0x1 +#define DDR_CDR_ODT_60ohm	0x2 +#define DDR_CDR_ODT_50ohm	0x3 +#define DDR_CDR_ODT_150ohm	0x4 +#define DDR_CDR_ODT_43ohm	0x5 +#define DDR_CDR_ODT_120ohm	0x6 +#endif + +/* Record of register values computed */ +typedef struct fsl_ddr_cfg_regs_s { +	struct { +		unsigned int bnds; +		unsigned int config; +		unsigned int config_2; +	} cs[CONFIG_CHIP_SELECTS_PER_CTRL]; +	unsigned int timing_cfg_3; +	unsigned int timing_cfg_0; +	unsigned int timing_cfg_1; +	unsigned int timing_cfg_2; +	unsigned int ddr_sdram_cfg; +	unsigned int ddr_sdram_cfg_2; +	unsigned int ddr_sdram_mode; +	unsigned int ddr_sdram_mode_2; +	unsigned int ddr_sdram_mode_3; +	unsigned int ddr_sdram_mode_4; +	unsigned int ddr_sdram_mode_5; +	unsigned int ddr_sdram_mode_6; +	unsigned int ddr_sdram_mode_7; +	unsigned int ddr_sdram_mode_8; +	unsigned int ddr_sdram_md_cntl; +	unsigned int ddr_sdram_interval; +	unsigned int ddr_data_init; +	unsigned int ddr_sdram_clk_cntl; +	unsigned int ddr_init_addr; +	unsigned int ddr_init_ext_addr; +	unsigned int timing_cfg_4; +	unsigned int timing_cfg_5; +	unsigned int ddr_zq_cntl; +	unsigned int ddr_wrlvl_cntl; +	unsigned int ddr_wrlvl_cntl_2; +	unsigned int ddr_wrlvl_cntl_3; +	unsigned int ddr_sr_cntr; +	unsigned int ddr_sdram_rcw_1; +	unsigned int ddr_sdram_rcw_2; +	unsigned int ddr_eor; +	unsigned int ddr_cdr1; +	unsigned int ddr_cdr2; +	unsigned int err_disable; +	unsigned int err_int_en; +	unsigned int debug[32]; +} fsl_ddr_cfg_regs_t; + +typedef struct memctl_options_partial_s { +	unsigned int all_dimms_ecc_capable; +	unsigned int all_dimms_tckmax_ps; +	unsigned int all_dimms_burst_lengths_bitmask; +	unsigned int all_dimms_registered; +	unsigned int all_dimms_unbuffered; +	/*	unsigned int lowest_common_SPD_caslat; */ +	unsigned int all_dimms_minimum_trcd_ps; +} memctl_options_partial_t; + +#define DDR_DATA_BUS_WIDTH_64 0 +#define DDR_DATA_BUS_WIDTH_32 1 +#define DDR_DATA_BUS_WIDTH_16 2 +/* + * Generalized parameters for memory controller configuration, + * might be a little specific to the FSL memory controller + */ +typedef struct memctl_options_s { +	/* +	 * Memory organization parameters +	 * +	 * if DIMM is present in the system +	 * where DIMMs are with respect to chip select +	 * where chip selects are with respect to memory boundaries +	 */ +	unsigned int registered_dimm_en;    /* use registered DIMM support */ + +	/* Options local to a Chip Select */ +	struct cs_local_opts_s { +		unsigned int auto_precharge; +		unsigned int odt_rd_cfg; +		unsigned int odt_wr_cfg; +		unsigned int odt_rtt_norm; +		unsigned int odt_rtt_wr; +	} cs_local_opts[CONFIG_CHIP_SELECTS_PER_CTRL]; + +	/* Special configurations for chip select */ +	unsigned int memctl_interleaving; +	unsigned int memctl_interleaving_mode; +	unsigned int ba_intlv_ctl; +	unsigned int addr_hash; + +	/* Operational mode parameters */ +	unsigned int ecc_mode;	 /* Use ECC? */ +	/* Initialize ECC using memory controller? */ +	unsigned int ecc_init_using_memctl; +	unsigned int dqs_config;	/* Use DQS? maybe only with DDR2? */ +	/* SREN - self-refresh during sleep */ +	unsigned int self_refresh_in_sleep; +	unsigned int dynamic_power;	/* DYN_PWR */ +	/* memory data width to use (16-bit, 32-bit, 64-bit) */ +	unsigned int data_bus_width; +	unsigned int burst_length;	/* BL4, OTF and BL8 */ +	/* On-The-Fly Burst Chop enable */ +	unsigned int otf_burst_chop_en; +	/* mirrior DIMMs for DDR3 */ +	unsigned int mirrored_dimm; +	unsigned int quad_rank_present; +	unsigned int ap_en;	/* address parity enable for RDIMM */ +	unsigned int x4_en;	/* enable x4 devices */ + +	/* Global Timing Parameters */ +	unsigned int cas_latency_override; +	unsigned int cas_latency_override_value; +	unsigned int use_derated_caslat; +	unsigned int additive_latency_override; +	unsigned int additive_latency_override_value; + +	unsigned int clk_adjust;		/* */ +	unsigned int cpo_override; +	unsigned int write_data_delay;		/* DQS adjust */ + +	unsigned int wrlvl_override; +	unsigned int wrlvl_sample;		/* Write leveling */ +	unsigned int wrlvl_start; +	unsigned int wrlvl_ctl_2; +	unsigned int wrlvl_ctl_3; + +	unsigned int half_strength_driver_enable; +	unsigned int twot_en; +	unsigned int threet_en; +	unsigned int bstopre; +	unsigned int tcke_clock_pulse_width_ps;	/* tCKE */ +	unsigned int tfaw_window_four_activates_ps;	/* tFAW --  FOUR_ACT */ + +	/* Rtt impedance */ +	unsigned int rtt_override;		/* rtt_override enable */ +	unsigned int rtt_override_value;	/* that is Rtt_Nom for DDR3 */ +	unsigned int rtt_wr_override_value;	/* this is Rtt_WR for DDR3 */ + +	/* Automatic self refresh */ +	unsigned int auto_self_refresh_en; +	unsigned int sr_it; +	/* ZQ calibration */ +	unsigned int zq_en; +	/* Write leveling */ +	unsigned int wrlvl_en; +	/* RCW override for RDIMM */ +	unsigned int rcw_override; +	unsigned int rcw_1; +	unsigned int rcw_2; +	/* control register 1 */ +	unsigned int ddr_cdr1; +	unsigned int ddr_cdr2; + +	unsigned int trwt_override; +	unsigned int trwt;			/* read-to-write turnaround */ +} memctl_options_t; + +extern phys_size_t fsl_ddr_sdram(void); +extern phys_size_t fsl_ddr_sdram_size(void); +extern int fsl_use_spd(void); +extern void fsl_ddr_set_memctl_regs(const fsl_ddr_cfg_regs_t *regs, +					unsigned int ctrl_num, int step); +u32 fsl_ddr_get_intl3r(void); + +static void __board_assert_mem_reset(void) +{ +} + +static void __board_deassert_mem_reset(void) +{ +} + +void board_assert_mem_reset(void) +	__attribute__((weak, alias("__board_assert_mem_reset"))); + +void board_deassert_mem_reset(void) +	__attribute__((weak, alias("__board_deassert_mem_reset"))); + +static int __board_need_mem_reset(void) +{ +	return 0; +} + +int board_need_mem_reset(void) +	__attribute__((weak, alias("__board_need_mem_reset"))); + +/* + * The 85xx boards have a common prototype for fixed_sdram so put the + * declaration here. + */ +#ifdef CONFIG_MPC85xx +extern phys_size_t fixed_sdram(void); +#endif + +#if defined(CONFIG_DDR_ECC) +extern void ddr_enable_ecc(unsigned int dram_size); +#endif + + +typedef struct fixed_ddr_parm{ +	int min_freq; +	int max_freq; +	fsl_ddr_cfg_regs_t *ddr_settings; +} fixed_ddr_parm_t; +#endif diff --git a/include/fsl_ifc.h b/include/fsl_ifc.h new file mode 100644 index 000000000..be6c10715 --- /dev/null +++ b/include/fsl_ifc.h @@ -0,0 +1,988 @@ +/* + * Copyright 2010-2011 Freescale Semiconductor, Inc. + * Author: Dipen Dudhat <dipen.dudhat@freescale.com> + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef __FSL_IFC_H +#define __FSL_IFC_H + +#ifdef CONFIG_FSL_IFC +#include <config.h> +#include <common.h> + +/* + * CSPR - Chip Select Property Register + */ +#define CSPR_BA				0xFFFF0000 +#define CSPR_BA_SHIFT			16 +#define CSPR_PORT_SIZE			0x00000180 +#define CSPR_PORT_SIZE_SHIFT		7 +/* Port Size 8 bit */ +#define CSPR_PORT_SIZE_8		0x00000080 +/* Port Size 16 bit */ +#define CSPR_PORT_SIZE_16		0x00000100 +/* Port Size 32 bit */ +#define CSPR_PORT_SIZE_32		0x00000180 +/* Write Protect */ +#define CSPR_WP				0x00000040 +#define CSPR_WP_SHIFT			6 +/* Machine Select */ +#define CSPR_MSEL			0x00000006 +#define CSPR_MSEL_SHIFT			1 +/* NOR */ +#define CSPR_MSEL_NOR			0x00000000 +/* NAND */ +#define CSPR_MSEL_NAND			0x00000002 +/* GPCM */ +#define CSPR_MSEL_GPCM			0x00000004 +/* Bank Valid */ +#define CSPR_V				0x00000001 +#define CSPR_V_SHIFT			0 + +/* Convert an address into the right format for the CSPR Registers */ +#define CSPR_PHYS_ADDR(x)		(((uint64_t)x) & 0xffff0000) + +/* + * Address Mask Register + */ +#define IFC_AMASK_MASK			0xFFFF0000 +#define IFC_AMASK_SHIFT			16 +#define IFC_AMASK(n)			(IFC_AMASK_MASK << \ +					(__ilog2(n) - IFC_AMASK_SHIFT)) + +/* + * Chip Select Option Register IFC_NAND Machine + */ +/* Enable ECC Encoder */ +#define CSOR_NAND_ECC_ENC_EN		0x80000000 +#define CSOR_NAND_ECC_MODE_MASK		0x30000000 +/* 4 bit correction per 520 Byte sector */ +#define CSOR_NAND_ECC_MODE_4		0x00000000 +/* 8 bit correction per 528 Byte sector */ +#define CSOR_NAND_ECC_MODE_8		0x10000000 +/* Enable ECC Decoder */ +#define CSOR_NAND_ECC_DEC_EN		0x04000000 +/* Row Address Length */ +#define CSOR_NAND_RAL_MASK		0x01800000 +#define CSOR_NAND_RAL_SHIFT		20 +#define CSOR_NAND_RAL_1			0x00000000 +#define CSOR_NAND_RAL_2			0x00800000 +#define CSOR_NAND_RAL_3			0x01000000 +#define CSOR_NAND_RAL_4			0x01800000 +/* Page Size 512b, 2k, 4k */ +#define CSOR_NAND_PGS_MASK		0x00180000 +#define CSOR_NAND_PGS_SHIFT		16 +#define CSOR_NAND_PGS_512		0x00000000 +#define CSOR_NAND_PGS_2K		0x00080000 +#define CSOR_NAND_PGS_4K		0x00100000 +#define CSOR_NAND_PGS_8K		0x00180000 +/* Spare region Size */ +#define CSOR_NAND_SPRZ_MASK		0x0000E000 +#define CSOR_NAND_SPRZ_SHIFT		13 +#define CSOR_NAND_SPRZ_16		0x00000000 +#define CSOR_NAND_SPRZ_64		0x00002000 +#define CSOR_NAND_SPRZ_128		0x00004000 +#define CSOR_NAND_SPRZ_210		0x00006000 +#define CSOR_NAND_SPRZ_218		0x00008000 +#define CSOR_NAND_SPRZ_224		0x0000A000 +#define CSOR_NAND_SPRZ_CSOR_EXT	0x0000C000 +/* Pages Per Block */ +#define CSOR_NAND_PB_MASK		0x00000700 +#define CSOR_NAND_PB_SHIFT		8 +#define CSOR_NAND_PB(n)		((__ilog2(n) - 5) << CSOR_NAND_PB_SHIFT) +/* Time for Read Enable High to Output High Impedance */ +#define CSOR_NAND_TRHZ_MASK		0x0000001C +#define CSOR_NAND_TRHZ_SHIFT		2 +#define CSOR_NAND_TRHZ_20		0x00000000 +#define CSOR_NAND_TRHZ_40		0x00000004 +#define CSOR_NAND_TRHZ_60		0x00000008 +#define CSOR_NAND_TRHZ_80		0x0000000C +#define CSOR_NAND_TRHZ_100		0x00000010 +/* Buffer control disable */ +#define CSOR_NAND_BCTLD			0x00000001 + +/* + * Chip Select Option Register - NOR Flash Mode + */ +/* Enable Address shift Mode */ +#define CSOR_NOR_ADM_SHFT_MODE_EN	0x80000000 +/* Page Read Enable from NOR device */ +#define CSOR_NOR_PGRD_EN		0x10000000 +/* AVD Toggle Enable during Burst Program */ +#define CSOR_NOR_AVD_TGL_PGM_EN		0x01000000 +/* Address Data Multiplexing Shift */ +#define CSOR_NOR_ADM_MASK		0x0003E000 +#define CSOR_NOR_ADM_SHIFT_SHIFT	13 +#define CSOR_NOR_ADM_SHIFT(n)	((n) << CSOR_NOR_ADM_SHIFT_SHIFT) +/* Type of the NOR device hooked */ +#define CSOR_NOR_NOR_MODE_AYSNC_NOR	0x00000000 +#define CSOR_NOR_NOR_MODE_AVD_NOR	0x00000020 +/* Time for Read Enable High to Output High Impedance */ +#define CSOR_NOR_TRHZ_MASK		0x0000001C +#define CSOR_NOR_TRHZ_SHIFT		2 +#define CSOR_NOR_TRHZ_20		0x00000000 +#define CSOR_NOR_TRHZ_40		0x00000004 +#define CSOR_NOR_TRHZ_60		0x00000008 +#define CSOR_NOR_TRHZ_80		0x0000000C +#define CSOR_NOR_TRHZ_100		0x00000010 +/* Buffer control disable */ +#define CSOR_NOR_BCTLD			0x00000001 + +/* + * Chip Select Option Register - GPCM Mode + */ +/* GPCM Mode - Normal */ +#define CSOR_GPCM_GPMODE_NORMAL		0x00000000 +/* GPCM Mode - GenericASIC */ +#define CSOR_GPCM_GPMODE_ASIC		0x80000000 +/* Parity Mode odd/even */ +#define CSOR_GPCM_PARITY_EVEN		0x40000000 +/* Parity Checking enable/disable */ +#define CSOR_GPCM_PAR_EN		0x20000000 +/* GPCM Timeout Count */ +#define CSOR_GPCM_GPTO_MASK		0x0F000000 +#define CSOR_GPCM_GPTO_SHIFT		24 +#define CSOR_GPCM_GPTO(n)	((__ilog2(n) - 8) << CSOR_GPCM_GPTO_SHIFT) +/* GPCM External Access Termination mode for read access */ +#define CSOR_GPCM_RGETA_EXT		0x00080000 +/* GPCM External Access Termination mode for write access */ +#define CSOR_GPCM_WGETA_EXT		0x00040000 +/* Address Data Multiplexing Shift */ +#define CSOR_GPCM_ADM_MASK		0x0003E000 +#define CSOR_GPCM_ADM_SHIFT_SHIFT	13 +#define CSOR_GPCM_ADM_SHIFT(n)	((n) << CSOR_GPCM_ADM_SHIFT_SHIFT) +/* Generic ASIC Parity error indication delay */ +#define CSOR_GPCM_GAPERRD_MASK		0x00000180 +#define CSOR_GPCM_GAPERRD_SHIFT		7 +#define CSOR_GPCM_GAPERRD(n)	(((n) - 1) << CSOR_GPCM_GAPERRD_SHIFT) +/* Time for Read Enable High to Output High Impedance */ +#define CSOR_GPCM_TRHZ_MASK		0x0000001C +#define CSOR_GPCM_TRHZ_20		0x00000000 +#define CSOR_GPCM_TRHZ_40		0x00000004 +#define CSOR_GPCM_TRHZ_60		0x00000008 +#define CSOR_GPCM_TRHZ_80		0x0000000C +#define CSOR_GPCM_TRHZ_100		0x00000010 +/* Buffer control disable */ +#define CSOR_GPCM_BCTLD			0x00000001 + +/* + * Flash Timing Registers (FTIM0 - FTIM2_CSn) + */ +/* + * FTIM0 - NAND Flash Mode + */ +#define FTIM0_NAND			0x7EFF3F3F +#define FTIM0_NAND_TCCST_SHIFT	25 +#define FTIM0_NAND_TCCST(n)	((n) << FTIM0_NAND_TCCST_SHIFT) +#define FTIM0_NAND_TWP_SHIFT	16 +#define FTIM0_NAND_TWP(n)	((n) << FTIM0_NAND_TWP_SHIFT) +#define FTIM0_NAND_TWCHT_SHIFT	8 +#define FTIM0_NAND_TWCHT(n)	((n) << FTIM0_NAND_TWCHT_SHIFT) +#define FTIM0_NAND_TWH_SHIFT	0 +#define FTIM0_NAND_TWH(n)	((n) << FTIM0_NAND_TWH_SHIFT) +/* + * FTIM1 - NAND Flash Mode + */ +#define FTIM1_NAND			0xFFFF3FFF +#define FTIM1_NAND_TADLE_SHIFT	24 +#define FTIM1_NAND_TADLE(n)	((n) << FTIM1_NAND_TADLE_SHIFT) +#define FTIM1_NAND_TWBE_SHIFT	16 +#define FTIM1_NAND_TWBE(n)	((n) << FTIM1_NAND_TWBE_SHIFT) +#define FTIM1_NAND_TRR_SHIFT	8 +#define FTIM1_NAND_TRR(n)	((n) << FTIM1_NAND_TRR_SHIFT) +#define FTIM1_NAND_TRP_SHIFT	0 +#define FTIM1_NAND_TRP(n)	((n) << FTIM1_NAND_TRP_SHIFT) +/* + * FTIM2 - NAND Flash Mode + */ +#define FTIM2_NAND			0x1FE1F8FF +#define FTIM2_NAND_TRAD_SHIFT	21 +#define FTIM2_NAND_TRAD(n)	((n) << FTIM2_NAND_TRAD_SHIFT) +#define FTIM2_NAND_TREH_SHIFT	11 +#define FTIM2_NAND_TREH(n)	((n) << FTIM2_NAND_TREH_SHIFT) +#define FTIM2_NAND_TWHRE_SHIFT	0 +#define FTIM2_NAND_TWHRE(n)	((n) << FTIM2_NAND_TWHRE_SHIFT) +/* + * FTIM3 - NAND Flash Mode + */ +#define FTIM3_NAND			0xFF000000 +#define FTIM3_NAND_TWW_SHIFT	24 +#define FTIM3_NAND_TWW(n)	((n) << FTIM3_NAND_TWW_SHIFT) + +/* + * FTIM0 - NOR Flash Mode + */ +#define FTIM0_NOR			0xF03F3F3F +#define FTIM0_NOR_TACSE_SHIFT	28 +#define FTIM0_NOR_TACSE(n)	((n) << FTIM0_NOR_TACSE_SHIFT) +#define FTIM0_NOR_TEADC_SHIFT	16 +#define FTIM0_NOR_TEADC(n)	((n) << FTIM0_NOR_TEADC_SHIFT) +#define FTIM0_NOR_TAVDS_SHIFT	8 +#define FTIM0_NOR_TAVDS(n)	((n) << FTIM0_NOR_TAVDS_SHIFT) +#define FTIM0_NOR_TEAHC_SHIFT	0 +#define FTIM0_NOR_TEAHC(n)	((n) << FTIM0_NOR_TEAHC_SHIFT) +/* + * FTIM1 - NOR Flash Mode + */ +#define FTIM1_NOR			0xFF003F3F +#define FTIM1_NOR_TACO_SHIFT	24 +#define FTIM1_NOR_TACO(n)	((n) << FTIM1_NOR_TACO_SHIFT) +#define FTIM1_NOR_TRAD_NOR_SHIFT	8 +#define FTIM1_NOR_TRAD_NOR(n)	((n) << FTIM1_NOR_TRAD_NOR_SHIFT) +#define FTIM1_NOR_TSEQRAD_NOR_SHIFT	0 +#define FTIM1_NOR_TSEQRAD_NOR(n)	((n) << FTIM1_NOR_TSEQRAD_NOR_SHIFT) +/* + * FTIM2 - NOR Flash Mode + */ +#define FTIM2_NOR			0x0F3CFCFF +#define FTIM2_NOR_TCS_SHIFT		24 +#define FTIM2_NOR_TCS(n)	((n) << FTIM2_NOR_TCS_SHIFT) +#define FTIM2_NOR_TCH_SHIFT		18 +#define FTIM2_NOR_TCH(n)	((n) << FTIM2_NOR_TCH_SHIFT) +#define FTIM2_NOR_TWPH_SHIFT	10 +#define FTIM2_NOR_TWPH(n)	((n) << FTIM2_NOR_TWPH_SHIFT) +#define FTIM2_NOR_TWP_SHIFT		0 +#define FTIM2_NOR_TWP(n)	((n) << FTIM2_NOR_TWP_SHIFT) + +/* + * FTIM0 - Normal GPCM Mode + */ +#define FTIM0_GPCM			0xF03F3F3F +#define FTIM0_GPCM_TACSE_SHIFT	28 +#define FTIM0_GPCM_TACSE(n)	((n) << FTIM0_GPCM_TACSE_SHIFT) +#define FTIM0_GPCM_TEADC_SHIFT	16 +#define FTIM0_GPCM_TEADC(n)	((n) << FTIM0_GPCM_TEADC_SHIFT) +#define FTIM0_GPCM_TAVDS_SHIFT	8 +#define FTIM0_GPCM_TAVDS(n)	((n) << FTIM0_GPCM_TAVDS_SHIFT) +#define FTIM0_GPCM_TEAHC_SHIFT	0 +#define FTIM0_GPCM_TEAHC(n)	((n) << FTIM0_GPCM_TEAHC_SHIFT) +/* + * FTIM1 - Normal GPCM Mode + */ +#define FTIM1_GPCM			0xFF003F00 +#define FTIM1_GPCM_TACO_SHIFT	24 +#define FTIM1_GPCM_TACO(n)	((n) << FTIM1_GPCM_TACO_SHIFT) +#define FTIM1_GPCM_TRAD_SHIFT	8 +#define FTIM1_GPCM_TRAD(n)	((n) << FTIM1_GPCM_TRAD_SHIFT) +/* + * FTIM2 - Normal GPCM Mode + */ +#define FTIM2_GPCM			0x0F3C00FF +#define FTIM2_GPCM_TCS_SHIFT	24 +#define FTIM2_GPCM_TCS(n)	((n) << FTIM2_GPCM_TCS_SHIFT) +#define FTIM2_GPCM_TCH_SHIFT	18 +#define FTIM2_GPCM_TCH(n)	((n) << FTIM2_GPCM_TCH_SHIFT) +#define FTIM2_GPCM_TWP_SHIFT	0 +#define FTIM2_GPCM_TWP(n)	((n) << FTIM2_GPCM_TWP_SHIFT) + +/* + * Ready Busy Status Register (RB_STAT) + */ +/* CSn is READY */ +#define IFC_RB_STAT_READY_CS0		0x80000000 +#define IFC_RB_STAT_READY_CS1		0x40000000 +#define IFC_RB_STAT_READY_CS2		0x20000000 +#define IFC_RB_STAT_READY_CS3		0x10000000 + +/* + * General Control Register (GCR) + */ +#define IFC_GCR_MASK			0x8000F800 +/* reset all IFC hardware */ +#define IFC_GCR_SOFT_RST_ALL		0x80000000 +/* Turnaroud Time of external buffer */ +#define IFC_GCR_TBCTL_TRN_TIME		0x0000F800 +#define IFC_GCR_TBCTL_TRN_TIME_SHIFT	11 + +/* + * Common Event and Error Status Register (CM_EVTER_STAT) + */ +/* Chip select error */ +#define IFC_CM_EVTER_STAT_CSER		0x80000000 + +/* + * Common Event and Error Enable Register (CM_EVTER_EN) + */ +/* Chip select error checking enable */ +#define IFC_CM_EVTER_EN_CSEREN		0x80000000 + +/* + * Common Event and Error Interrupt Enable Register (CM_EVTER_INTR_EN) + */ +/* Chip select error interrupt enable */ +#define IFC_CM_EVTER_INTR_EN_CSERIREN	0x80000000 + +/* + * Common Transfer Error Attribute Register-0 (CM_ERATTR0) + */ +/* transaction type of error Read/Write */ +#define IFC_CM_ERATTR0_ERTYP_READ	0x80000000 +#define IFC_CM_ERATTR0_ERAID		0x0FF00000 +#define IFC_CM_ERATTR0_ESRCID		0x0000FF00 + +/* + * Clock Control Register (CCR) + */ +#define IFC_CCR_MASK			0x0F0F8800 +/* Clock division ratio */ +#define IFC_CCR_CLK_DIV_MASK		0x0F000000 +#define IFC_CCR_CLK_DIV_SHIFT		24 +#define IFC_CCR_CLK_DIV(n)		((n-1) << IFC_CCR_CLK_DIV_SHIFT) +/* IFC Clock Delay */ +#define IFC_CCR_CLK_DLY_MASK		0x000F0000 +#define IFC_CCR_CLK_DLY_SHIFT		16 +#define IFC_CCR_CLK_DLY(n)		((n) << IFC_CCR_CLK_DLY_SHIFT) +/* Invert IFC clock before sending out */ +#define IFC_CCR_INV_CLK_EN		0x00008000 +/* Fedback IFC Clock */ +#define IFC_CCR_FB_IFC_CLK_SEL		0x00000800 + +/* + * Clock Status Register (CSR) + */ +/* Clk is stable */ +#define IFC_CSR_CLK_STAT_STABLE		0x80000000 + +/* + * IFC_NAND Machine Specific Registers + */ +/* + * NAND Configuration Register (NCFGR) + */ +/* Auto Boot Mode */ +#define IFC_NAND_NCFGR_BOOT		0x80000000 +/* Addressing Mode-ROW0+n/COL0 */ +#define IFC_NAND_NCFGR_ADDR_MODE_RC0	0x00000000 +/* Addressing Mode-ROW0+n/COL0+n */ +#define IFC_NAND_NCFGR_ADDR_MODE_RC1	0x00400000 +/* Number of loop iterations of FIR sequences for multi page operations */ +#define IFC_NAND_NCFGR_NUM_LOOP_MASK	0x0000F000 +#define IFC_NAND_NCFGR_NUM_LOOP_SHIFT	12 +#define IFC_NAND_NCFGR_NUM_LOOP(n)	((n) << IFC_NAND_NCFGR_NUM_LOOP_SHIFT) +/* Number of wait cycles */ +#define IFC_NAND_NCFGR_NUM_WAIT_MASK	0x000000FF +#define IFC_NAND_NCFGR_NUM_WAIT_SHIFT	0 + +/* + * NAND Flash Command Registers (NAND_FCR0/NAND_FCR1) + */ +/* General purpose FCM flash command bytes CMD0-CMD7 */ +#define IFC_NAND_FCR0_CMD0		0xFF000000 +#define IFC_NAND_FCR0_CMD0_SHIFT	24 +#define IFC_NAND_FCR0_CMD1		0x00FF0000 +#define IFC_NAND_FCR0_CMD1_SHIFT	16 +#define IFC_NAND_FCR0_CMD2		0x0000FF00 +#define IFC_NAND_FCR0_CMD2_SHIFT	8 +#define IFC_NAND_FCR0_CMD3		0x000000FF +#define IFC_NAND_FCR0_CMD3_SHIFT	0 +#define IFC_NAND_FCR1_CMD4		0xFF000000 +#define IFC_NAND_FCR1_CMD4_SHIFT	24 +#define IFC_NAND_FCR1_CMD5		0x00FF0000 +#define IFC_NAND_FCR1_CMD5_SHIFT	16 +#define IFC_NAND_FCR1_CMD6		0x0000FF00 +#define IFC_NAND_FCR1_CMD6_SHIFT	8 +#define IFC_NAND_FCR1_CMD7		0x000000FF +#define IFC_NAND_FCR1_CMD7_SHIFT	0 + +/* + * Flash ROW and COL Address Register (ROWn, COLn) + */ +/* Main/spare region locator */ +#define IFC_NAND_COL_MS			0x80000000 +/* Column Address */ +#define IFC_NAND_COL_CA_MASK		0x00000FFF + +/* + * NAND Flash Byte Count Register (NAND_BC) + */ +/* Byte Count for read/Write */ +#define IFC_NAND_BC			0x000001FF + +/* + * NAND Flash Instruction Registers (NAND_FIR0/NAND_FIR1/NAND_FIR2) + */ +/* NAND Machine specific opcodes OP0-OP14*/ +#define IFC_NAND_FIR0_OP0		0xFC000000 +#define IFC_NAND_FIR0_OP0_SHIFT		26 +#define IFC_NAND_FIR0_OP1		0x03F00000 +#define IFC_NAND_FIR0_OP1_SHIFT		20 +#define IFC_NAND_FIR0_OP2		0x000FC000 +#define IFC_NAND_FIR0_OP2_SHIFT		14 +#define IFC_NAND_FIR0_OP3		0x00003F00 +#define IFC_NAND_FIR0_OP3_SHIFT		8 +#define IFC_NAND_FIR0_OP4		0x000000FC +#define IFC_NAND_FIR0_OP4_SHIFT		2 +#define IFC_NAND_FIR1_OP5		0xFC000000 +#define IFC_NAND_FIR1_OP5_SHIFT		26 +#define IFC_NAND_FIR1_OP6		0x03F00000 +#define IFC_NAND_FIR1_OP6_SHIFT		20 +#define IFC_NAND_FIR1_OP7		0x000FC000 +#define IFC_NAND_FIR1_OP7_SHIFT		14 +#define IFC_NAND_FIR1_OP8		0x00003F00 +#define IFC_NAND_FIR1_OP8_SHIFT		8 +#define IFC_NAND_FIR1_OP9		0x000000FC +#define IFC_NAND_FIR1_OP9_SHIFT		2 +#define IFC_NAND_FIR2_OP10		0xFC000000 +#define IFC_NAND_FIR2_OP10_SHIFT	26 +#define IFC_NAND_FIR2_OP11		0x03F00000 +#define IFC_NAND_FIR2_OP11_SHIFT	20 +#define IFC_NAND_FIR2_OP12		0x000FC000 +#define IFC_NAND_FIR2_OP12_SHIFT	14 +#define IFC_NAND_FIR2_OP13		0x00003F00 +#define IFC_NAND_FIR2_OP13_SHIFT	8 +#define IFC_NAND_FIR2_OP14		0x000000FC +#define IFC_NAND_FIR2_OP14_SHIFT	2 + +/* + * Instruction opcodes to be programmed + * in FIR registers- 6bits + */ +enum ifc_nand_fir_opcodes { +	IFC_FIR_OP_NOP, +	IFC_FIR_OP_CA0, +	IFC_FIR_OP_CA1, +	IFC_FIR_OP_CA2, +	IFC_FIR_OP_CA3, +	IFC_FIR_OP_RA0, +	IFC_FIR_OP_RA1, +	IFC_FIR_OP_RA2, +	IFC_FIR_OP_RA3, +	IFC_FIR_OP_CMD0, +	IFC_FIR_OP_CMD1, +	IFC_FIR_OP_CMD2, +	IFC_FIR_OP_CMD3, +	IFC_FIR_OP_CMD4, +	IFC_FIR_OP_CMD5, +	IFC_FIR_OP_CMD6, +	IFC_FIR_OP_CMD7, +	IFC_FIR_OP_CW0, +	IFC_FIR_OP_CW1, +	IFC_FIR_OP_CW2, +	IFC_FIR_OP_CW3, +	IFC_FIR_OP_CW4, +	IFC_FIR_OP_CW5, +	IFC_FIR_OP_CW6, +	IFC_FIR_OP_CW7, +	IFC_FIR_OP_WBCD, +	IFC_FIR_OP_RBCD, +	IFC_FIR_OP_BTRD, +	IFC_FIR_OP_RDSTAT, +	IFC_FIR_OP_NWAIT, +	IFC_FIR_OP_WFR, +	IFC_FIR_OP_SBRD, +	IFC_FIR_OP_UA, +	IFC_FIR_OP_RB, +}; + +/* + * NAND Chip Select Register (NAND_CSEL) + */ +#define IFC_NAND_CSEL			0x0C000000 +#define IFC_NAND_CSEL_SHIFT		26 +#define IFC_NAND_CSEL_CS0		0x00000000 +#define IFC_NAND_CSEL_CS1		0x04000000 +#define IFC_NAND_CSEL_CS2		0x08000000 +#define IFC_NAND_CSEL_CS3		0x0C000000 + +/* + * NAND Operation Sequence Start (NANDSEQ_STRT) + */ +/* NAND Flash Operation Start */ +#define IFC_NAND_SEQ_STRT_FIR_STRT	0x80000000 +/* Automatic Erase */ +#define IFC_NAND_SEQ_STRT_AUTO_ERS	0x00800000 +/* Automatic Program */ +#define IFC_NAND_SEQ_STRT_AUTO_PGM	0x00100000 +/* Automatic Copyback */ +#define IFC_NAND_SEQ_STRT_AUTO_CPB	0x00020000 +/* Automatic Read Operation */ +#define IFC_NAND_SEQ_STRT_AUTO_RD	0x00004000 +/* Automatic Status Read */ +#define IFC_NAND_SEQ_STRT_AUTO_STAT_RD	0x00000800 + +/* + * NAND Event and Error Status Register (NAND_EVTER_STAT) + */ +/* Operation Complete */ +#define IFC_NAND_EVTER_STAT_OPC		0x80000000 +/* Flash Timeout Error */ +#define IFC_NAND_EVTER_STAT_FTOER	0x08000000 +/* Write Protect Error */ +#define IFC_NAND_EVTER_STAT_WPER	0x04000000 +/* ECC Error */ +#define IFC_NAND_EVTER_STAT_ECCER	0x02000000 +/* RCW Load Done */ +#define IFC_NAND_EVTER_STAT_RCW_DN	0x00008000 +/* Boot Loadr Done */ +#define IFC_NAND_EVTER_STAT_BOOT_DN	0x00004000 +/* Bad Block Indicator search select */ +#define IFC_NAND_EVTER_STAT_BBI_SRCH_SE	0x00000800 + +/* + * NAND Flash Page Read Completion Event Status Register + * (PGRDCMPL_EVT_STAT) + */ +#define PGRDCMPL_EVT_STAT_MASK		0xFFFF0000 +/* Small Page 0-15 Done */ +#define PGRDCMPL_EVT_STAT_SECTION_SP(n)	(1 << (31 - (n))) +/* Large Page(2K) 0-3 Done */ +#define PGRDCMPL_EVT_STAT_LP_2K(n)	(0xF << (28 - (n)*4)) +/* Large Page(4K) 0-1 Done */ +#define PGRDCMPL_EVT_STAT_LP_4K(n)	(0xFF << (24 - (n)*8)) + +/* + * NAND Event and Error Enable Register (NAND_EVTER_EN) + */ +/* Operation complete event enable */ +#define IFC_NAND_EVTER_EN_OPC_EN	0x80000000 +/* Page read complete event enable */ +#define IFC_NAND_EVTER_EN_PGRDCMPL_EN	0x20000000 +/* Flash Timeout error enable */ +#define IFC_NAND_EVTER_EN_FTOER_EN	0x08000000 +/* Write Protect error enable */ +#define IFC_NAND_EVTER_EN_WPER_EN	0x04000000 +/* ECC error logging enable */ +#define IFC_NAND_EVTER_EN_ECCER_EN	0x02000000 + +/* + * NAND Event and Error Interrupt Enable Register (NAND_EVTER_INTR_EN) + */ +/* Enable interrupt for operation complete */ +#define IFC_NAND_EVTER_INTR_OPCIR_EN		0x80000000 +/* Enable interrupt for Page read complete */ +#define IFC_NAND_EVTER_INTR_PGRDCMPLIR_EN	0x20000000 +/* Enable interrupt for Flash timeout error */ +#define IFC_NAND_EVTER_INTR_FTOERIR_EN		0x08000000 +/* Enable interrupt for Write protect error */ +#define IFC_NAND_EVTER_INTR_WPERIR_EN		0x04000000 +/* Enable interrupt for ECC error*/ +#define IFC_NAND_EVTER_INTR_ECCERIR_EN		0x02000000 + +/* + * NAND Transfer Error Attribute Register-0 (NAND_ERATTR0) + */ +#define IFC_NAND_ERATTR0_MASK		0x0C080000 +/* Error on CS0-3 for NAND */ +#define IFC_NAND_ERATTR0_ERCS_CS0	0x00000000 +#define IFC_NAND_ERATTR0_ERCS_CS1	0x04000000 +#define IFC_NAND_ERATTR0_ERCS_CS2	0x08000000 +#define IFC_NAND_ERATTR0_ERCS_CS3	0x0C000000 +/* Transaction type of error Read/Write */ +#define IFC_NAND_ERATTR0_ERTTYPE_READ	0x00080000 + +/* + * NAND Flash Status Register (NAND_FSR) + */ +/* First byte of data read from read status op */ +#define IFC_NAND_NFSR_RS0		0xFF000000 +/* Second byte of data read from read status op */ +#define IFC_NAND_NFSR_RS1		0x00FF0000 + +/* + * ECC Error Status Registers (ECCSTAT0-ECCSTAT3) + */ +/* Number of ECC errors on sector n (n = 0-15) */ +#define IFC_NAND_ECCSTAT0_ERRCNT_SECTOR0_MASK	0x0F000000 +#define IFC_NAND_ECCSTAT0_ERRCNT_SECTOR0_SHIFT	24 +#define IFC_NAND_ECCSTAT0_ERRCNT_SECTOR1_MASK	0x000F0000 +#define IFC_NAND_ECCSTAT0_ERRCNT_SECTOR1_SHIFT	16 +#define IFC_NAND_ECCSTAT0_ERRCNT_SECTOR2_MASK	0x00000F00 +#define IFC_NAND_ECCSTAT0_ERRCNT_SECTOR2_SHIFT	8 +#define IFC_NAND_ECCSTAT0_ERRCNT_SECTOR3_MASK	0x0000000F +#define IFC_NAND_ECCSTAT0_ERRCNT_SECTOR3_SHIFT	0 +#define IFC_NAND_ECCSTAT1_ERRCNT_SECTOR4_MASK	0x0F000000 +#define IFC_NAND_ECCSTAT1_ERRCNT_SECTOR4_SHIFT	24 +#define IFC_NAND_ECCSTAT1_ERRCNT_SECTOR5_MASK	0x000F0000 +#define IFC_NAND_ECCSTAT1_ERRCNT_SECTOR5_SHIFT	16 +#define IFC_NAND_ECCSTAT1_ERRCNT_SECTOR6_MASK	0x00000F00 +#define IFC_NAND_ECCSTAT1_ERRCNT_SECTOR6_SHIFT	8 +#define IFC_NAND_ECCSTAT1_ERRCNT_SECTOR7_MASK	0x0000000F +#define IFC_NAND_ECCSTAT1_ERRCNT_SECTOR7_SHIFT	0 +#define IFC_NAND_ECCSTAT2_ERRCNT_SECTOR8_MASK	0x0F000000 +#define IFC_NAND_ECCSTAT2_ERRCNT_SECTOR8_SHIFT	24 +#define IFC_NAND_ECCSTAT2_ERRCNT_SECTOR9_MASK	0x000F0000 +#define IFC_NAND_ECCSTAT2_ERRCNT_SECTOR9_SHIFT	16 +#define IFC_NAND_ECCSTAT2_ERRCNT_SECTOR10_MASK	0x00000F00 +#define IFC_NAND_ECCSTAT2_ERRCNT_SECTOR10_SHIFT	8 +#define IFC_NAND_ECCSTAT2_ERRCNT_SECTOR11_MASK	0x0000000F +#define IFC_NAND_ECCSTAT2_ERRCNT_SECTOR11_SHIFT	0 +#define IFC_NAND_ECCSTAT3_ERRCNT_SECTOR12_MASK	0x0F000000 +#define IFC_NAND_ECCSTAT3_ERRCNT_SECTOR12_SHIFT	24 +#define IFC_NAND_ECCSTAT3_ERRCNT_SECTOR13_MASK	0x000F0000 +#define IFC_NAND_ECCSTAT3_ERRCNT_SECTOR13_SHIFT	16 +#define IFC_NAND_ECCSTAT3_ERRCNT_SECTOR14_MASK	0x00000F00 +#define IFC_NAND_ECCSTAT3_ERRCNT_SECTOR14_SHIFT	8 +#define IFC_NAND_ECCSTAT3_ERRCNT_SECTOR15_MASK	0x0000000F +#define IFC_NAND_ECCSTAT3_ERRCNT_SECTOR15_SHIFT	0 + +/* + * NAND Control Register (NANDCR) + */ +#define IFC_NAND_NCR_FTOCNT_MASK	0x1E000000 +#define IFC_NAND_NCR_FTOCNT_SHIFT	25 +#define IFC_NAND_NCR_FTOCNT(n)	((_ilog2(n) - 8)  << IFC_NAND_NCR_FTOCNT_SHIFT) + +/* + * NAND_AUTOBOOT_TRGR + */ +/* Trigger RCW load */ +#define IFC_NAND_AUTOBOOT_TRGR_RCW_LD	0x80000000 +/* Trigget Auto Boot */ +#define IFC_NAND_AUTOBOOT_TRGR_BOOT_LD	0x20000000 + +/* + * NAND_MDR + */ +/* 1st read data byte when opcode SBRD */ +#define IFC_NAND_MDR_RDATA0		0xFF000000 +/* 2nd read data byte when opcode SBRD */ +#define IFC_NAND_MDR_RDATA1		0x00FF0000 + +/* + * NOR Machine Specific Registers + */ +/* + * NOR Event and Error Status Register (NOR_EVTER_STAT) + */ +/* NOR Command Sequence Operation Complete */ +#define IFC_NOR_EVTER_STAT_OPC_NOR	0x80000000 +/* Write Protect Error */ +#define IFC_NOR_EVTER_STAT_WPER		0x04000000 +/* Command Sequence Timeout Error */ +#define IFC_NOR_EVTER_STAT_STOER	0x01000000 + +/* + * NOR Event and Error Enable Register (NOR_EVTER_EN) + */ +/* NOR Command Seq complete event enable */ +#define IFC_NOR_EVTER_EN_OPCEN_NOR	0x80000000 +/* Write Protect Error Checking Enable */ +#define IFC_NOR_EVTER_EN_WPEREN		0x04000000 +/* Timeout Error Enable */ +#define IFC_NOR_EVTER_EN_STOEREN	0x01000000 + +/* + * NOR Event and Error Interrupt Enable Register (NOR_EVTER_INTR_EN) + */ +/* Enable interrupt for OPC complete */ +#define IFC_NOR_EVTER_INTR_OPCEN_NOR	0x80000000 +/* Enable interrupt for write protect error */ +#define IFC_NOR_EVTER_INTR_WPEREN	0x04000000 +/* Enable interrupt for timeout error */ +#define IFC_NOR_EVTER_INTR_STOEREN	0x01000000 + +/* + * NOR Transfer Error Attribute Register-0 (NOR_ERATTR0) + */ +/* Source ID for error transaction */ +#define IFC_NOR_ERATTR0_ERSRCID		0xFF000000 +/* AXI ID for error transation */ +#define IFC_NOR_ERATTR0_ERAID		0x000FF000 +/* Chip select corresponds to NOR error */ +#define IFC_NOR_ERATTR0_ERCS_CS0	0x00000000 +#define IFC_NOR_ERATTR0_ERCS_CS1	0x00000010 +#define IFC_NOR_ERATTR0_ERCS_CS2	0x00000020 +#define IFC_NOR_ERATTR0_ERCS_CS3	0x00000030 +/* Type of transaction read/write */ +#define IFC_NOR_ERATTR0_ERTYPE_READ	0x00000001 + +/* + * NOR Transfer Error Attribute Register-2 (NOR_ERATTR2) + */ +#define IFC_NOR_ERATTR2_ER_NUM_PHASE_EXP	0x000F0000 +#define IFC_NOR_ERATTR2_ER_NUM_PHASE_PER	0x00000F00 + +/* + * NOR Control Register (NORCR) + */ +#define IFC_NORCR_MASK			0x0F0F0000 +/* No. of Address/Data Phase */ +#define IFC_NORCR_NUM_PHASE_MASK	0x0F000000 +#define IFC_NORCR_NUM_PHASE_SHIFT	24 +#define IFC_NORCR_NUM_PHASE(n)	((n-1) << IFC_NORCR_NUM_PHASE_SHIFT) +/* Sequence Timeout Count */ +#define IFC_NORCR_STOCNT_MASK		0x000F0000 +#define IFC_NORCR_STOCNT_SHIFT		16 +#define IFC_NORCR_STOCNT(n)	((__ilog2(n) - 8) << IFC_NORCR_STOCNT_SHIFT) + +/* + * GPCM Machine specific registers + */ +/* + * GPCM Event and Error Status Register (GPCM_EVTER_STAT) + */ +/* Timeout error */ +#define IFC_GPCM_EVTER_STAT_TOER	0x04000000 +/* Parity error */ +#define IFC_GPCM_EVTER_STAT_PER		0x01000000 + +/* + * GPCM Event and Error Enable Register (GPCM_EVTER_EN) + */ +/* Timeout error enable */ +#define IFC_GPCM_EVTER_EN_TOER_EN	0x04000000 +/* Parity error enable */ +#define IFC_GPCM_EVTER_EN_PER_EN	0x01000000 + +/* + * GPCM Event and Error Interrupt Enable Register (GPCM_EVTER_INTR_EN) + */ +/* Enable Interrupt for timeout error */ +#define IFC_GPCM_EEIER_TOERIR_EN	0x04000000 +/* Enable Interrupt for Parity error */ +#define IFC_GPCM_EEIER_PERIR_EN		0x01000000 + +/* + * GPCM Transfer Error Attribute Register-0 (GPCM_ERATTR0) + */ +/* Source ID for error transaction */ +#define IFC_GPCM_ERATTR0_ERSRCID	0xFF000000 +/* AXI ID for error transaction */ +#define IFC_GPCM_ERATTR0_ERAID		0x000FF000 +/* Chip select corresponds to GPCM error */ +#define IFC_GPCM_ERATTR0_ERCS_CS0	0x00000000 +#define IFC_GPCM_ERATTR0_ERCS_CS1	0x00000040 +#define IFC_GPCM_ERATTR0_ERCS_CS2	0x00000080 +#define IFC_GPCM_ERATTR0_ERCS_CS3	0x000000C0 +/* Type of transaction read/Write */ +#define IFC_GPCM_ERATTR0_ERTYPE_READ	0x00000001 + +/* + * GPCM Transfer Error Attribute Register-2 (GPCM_ERATTR2) + */ +/* On which beat of address/data parity error is observed */ +#define IFC_GPCM_ERATTR2_PERR_BEAT		0x00000C00 +/* Parity Error on byte */ +#define IFC_GPCM_ERATTR2_PERR_BYTE		0x000000F0 +/* Parity Error reported in addr or data phase */ +#define IFC_GPCM_ERATTR2_PERR_DATA_PHASE	0x00000001 + +/* + * GPCM Status Register (GPCM_STAT) + */ +#define IFC_GPCM_STAT_BSY		0x80000000  /* GPCM is busy */ + + +#ifndef __ASSEMBLY__ +#include <asm/io.h> + +extern void print_ifc_regs(void); +extern void init_early_memctl_regs(void); + +#define IFC_BASE_ADDR ((struct fsl_ifc *)CONFIG_SYS_IFC_ADDR) + +#define get_ifc_cspr_ext(i) (in_be32(&(IFC_BASE_ADDR)->cspr_cs[i].cspr_ext)) +#define get_ifc_cspr(i) (in_be32(&(IFC_BASE_ADDR)->cspr_cs[i].cspr)) +#define get_ifc_csor_ext(i) (in_be32(&(IFC_BASE_ADDR)->csor_cs[i].csor_ext)) +#define get_ifc_csor(i) (in_be32(&(IFC_BASE_ADDR)->csor_cs[i].csor)) +#define get_ifc_amask(i) (in_be32(&(IFC_BASE_ADDR)->amask_cs[i].amask)) +#define get_ifc_ftim(i, j) (in_be32(&(IFC_BASE_ADDR)->ftim_cs[i].ftim[j])) + +#define set_ifc_cspr_ext(i, v) (out_be32(&(IFC_BASE_ADDR)->cspr_cs[i].cspr_ext, v)) +#define set_ifc_cspr(i, v) (out_be32(&(IFC_BASE_ADDR)->cspr_cs[i].cspr, v)) +#define set_ifc_csor_ext(i, v) (out_be32(&(IFC_BASE_ADDR)->csor_cs[i].csor_ext, v)) +#define set_ifc_csor(i, v) (out_be32(&(IFC_BASE_ADDR)->csor_cs[i].csor, v)) +#define set_ifc_amask(i, v) (out_be32(&(IFC_BASE_ADDR)->amask_cs[i].amask, v)) +#define set_ifc_ftim(i, j, v) \ +			(out_be32(&(IFC_BASE_ADDR)->ftim_cs[i].ftim[j], v)) + +enum ifc_chip_sel { +	IFC_CS0, +	IFC_CS1, +	IFC_CS2, +	IFC_CS3, +	IFC_CS4, +	IFC_CS5, +	IFC_CS6, +	IFC_CS7, +}; + +enum ifc_ftims { +	IFC_FTIM0, +	IFC_FTIM1, +	IFC_FTIM2, +	IFC_FTIM3, +}; + +/* + * IFC Controller NAND Machine registers + */ +struct fsl_ifc_nand { +	u32 ncfgr; +	u32 res1[0x4]; +	u32 nand_fcr0; +	u32 nand_fcr1; +	u32 res2[0x8]; +	u32 row0; +	u32 res3; +	u32 col0; +	u32 res4; +	u32 row1; +	u32 res5; +	u32 col1; +	u32 res6; +	u32 row2; +	u32 res7; +	u32 col2; +	u32 res8; +	u32 row3; +	u32 res9; +	u32 col3; +	u32 res10[0x24]; +	u32 nand_fbcr; +	u32 res11; +	u32 nand_fir0; +	u32 nand_fir1; +	u32 nand_fir2; +	u32 res12[0x10]; +	u32 nand_csel; +	u32 res13; +	u32 nandseq_strt; +	u32 res14; +	u32 nand_evter_stat; +	u32 res15; +	u32 pgrdcmpl_evt_stat; +	u32 res16[0x2]; +	u32 nand_evter_en; +	u32 res17[0x2]; +	u32 nand_evter_intr_en; +	u32 res18[0x2]; +	u32 nand_erattr0; +	u32 nand_erattr1; +	u32 res19[0x10]; +	u32 nand_fsr; +	u32 res20; +	u32 nand_eccstat[4]; +	u32 res21[0x20]; +	u32 nanndcr; +	u32 res22[0x2]; +	u32 nand_autoboot_trgr; +	u32 res23; +	u32 nand_mdr; +	u32 res24[0x5C]; +}; + +/* + * IFC controller NOR Machine registers + */ +struct fsl_ifc_nor { +	u32 nor_evter_stat; +	u32 res1[0x2]; +	u32 nor_evter_en; +	u32 res2[0x2]; +	u32 nor_evter_intr_en; +	u32 res3[0x2]; +	u32 nor_erattr0; +	u32 nor_erattr1; +	u32 nor_erattr2; +	u32 res4[0x4]; +	u32 norcr; +	u32 res5[0xEF]; +}; + +/* + * IFC controller GPCM Machine registers + */ +struct fsl_ifc_gpcm { +	u32 gpcm_evter_stat; +	u32 res1[0x2]; +	u32 gpcm_evter_en; +	u32 res2[0x2]; +	u32 gpcm_evter_intr_en; +	u32 res3[0x2]; +	u32 gpcm_erattr0; +	u32 gpcm_erattr1; +	u32 gpcm_erattr2; +	u32 gpcm_stat; +	u32 res4[0x1F3]; +}; + +#ifdef CONFIG_SYS_FSL_IFC_BANK_COUNT +#if (CONFIG_SYS_FSL_IFC_BANK_COUNT <= 8) +#define IFC_CSPR_REG_LEN	148 +#define IFC_AMASK_REG_LEN	144 +#define IFC_CSOR_REG_LEN	144 +#define IFC_FTIM_REG_LEN	576 + +#define IFC_CSPR_USED_LEN	sizeof(struct fsl_ifc_cspr) * \ +					CONFIG_SYS_FSL_IFC_BANK_COUNT +#define IFC_AMASK_USED_LEN	sizeof(struct fsl_ifc_amask) * \ +					CONFIG_SYS_FSL_IFC_BANK_COUNT +#define IFC_CSOR_USED_LEN	sizeof(struct fsl_ifc_csor) * \ +					CONFIG_SYS_FSL_IFC_BANK_COUNT +#define IFC_FTIM_USED_LEN	sizeof(struct fsl_ifc_ftim) * \ +					CONFIG_SYS_FSL_IFC_BANK_COUNT +#else +#error IFC BANK count not vaild +#endif +#else +#error IFC BANK count not defined +#endif + +struct fsl_ifc_cspr { +	u32 cspr_ext; +	u32 cspr; +	u32 res; +}; + +struct fsl_ifc_amask { +	u32 amask; +	u32 res[0x2]; +}; + +struct fsl_ifc_csor { +	u32 csor; +	u32 csor_ext; +	u32 res; +}; + +struct fsl_ifc_ftim { +	u32 ftim[4]; +	u32 res[0x8]; +}; + +/* + * IFC Controller Registers + */ +struct fsl_ifc { +	u32 ifc_rev; +	u32 res1[0x2]; +	struct fsl_ifc_cspr cspr_cs[CONFIG_SYS_FSL_IFC_BANK_COUNT]; +	u8 res2[IFC_CSPR_REG_LEN - IFC_CSPR_USED_LEN]; +	struct fsl_ifc_amask amask_cs[CONFIG_SYS_FSL_IFC_BANK_COUNT]; +	u8 res3[IFC_AMASK_REG_LEN - IFC_AMASK_USED_LEN]; +	struct fsl_ifc_csor csor_cs[CONFIG_SYS_FSL_IFC_BANK_COUNT]; +	u8 res4[IFC_CSOR_REG_LEN - IFC_CSOR_USED_LEN]; +	struct fsl_ifc_ftim ftim_cs[CONFIG_SYS_FSL_IFC_BANK_COUNT]; +	u8 res5[IFC_FTIM_REG_LEN - IFC_FTIM_USED_LEN]; +	u32 rb_stat; +	u32 res6[0x2]; +	u32 ifc_gcr; +	u32 res7[0x2]; +	u32 cm_evter_stat; +	u32 res8[0x2]; +	u32 cm_evter_en; +	u32 res9[0x2]; +	u32 cm_evter_intr_en; +	u32 res10[0x2]; +	u32 cm_erattr0; +	u32 cm_erattr1; +	u32 res11[0x2]; +	u32 ifc_ccr; +	u32 ifc_csr; +	u32 res12[0x2EB]; +	struct fsl_ifc_nand ifc_nand; +	struct fsl_ifc_nor ifc_nor; +	struct fsl_ifc_gpcm ifc_gpcm; +}; + +#ifdef CONFIG_SYS_FSL_ERRATUM_IFC_A002769 +#undef CSPR_MSEL_NOR +#define CSPR_MSEL_NOR	CSPR_MSEL_GPCM +#endif +#endif /* CONFIG_FSL_IFC */ + +#endif /* __ASSEMBLY__ */ +#endif /* __FSL_IFC_H */ diff --git a/include/fsl_immap.h b/include/fsl_immap.h new file mode 100644 index 000000000..00902cae0 --- /dev/null +++ b/include/fsl_immap.h @@ -0,0 +1,112 @@ +/* + * Common internal memory map for some Freescale SoCs + * + * Copyright 2013 Freescale Semiconductor, Inc. + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef __FSL_IMMAP_H +#define __FSL_IMMAP_H +/* + * DDR memory controller registers + * This structure works for mpc83xx (DDR2 and DDR3), mpc85xx, mpc86xx. + */ +struct ccsr_ddr { +	u32	cs0_bnds;		/* Chip Select 0 Memory Bounds */ +	u8	res_04[4]; +	u32	cs1_bnds;		/* Chip Select 1 Memory Bounds */ +	u8	res_0c[4]; +	u32	cs2_bnds;		/* Chip Select 2 Memory Bounds */ +	u8	res_14[4]; +	u32	cs3_bnds;		/* Chip Select 3 Memory Bounds */ +	u8	res_1c[100]; +	u32	cs0_config;		/* Chip Select Configuration */ +	u32	cs1_config;		/* Chip Select Configuration */ +	u32	cs2_config;		/* Chip Select Configuration */ +	u32	cs3_config;		/* Chip Select Configuration */ +	u8	res_90[48]; +	u32	cs0_config_2;		/* Chip Select Configuration 2 */ +	u32	cs1_config_2;		/* Chip Select Configuration 2 */ +	u32	cs2_config_2;		/* Chip Select Configuration 2 */ +	u32	cs3_config_2;		/* Chip Select Configuration 2 */ +	u8	res_d0[48]; +	u32	timing_cfg_3;		/* SDRAM Timing Configuration 3 */ +	u32	timing_cfg_0;		/* SDRAM Timing Configuration 0 */ +	u32	timing_cfg_1;		/* SDRAM Timing Configuration 1 */ +	u32	timing_cfg_2;		/* SDRAM Timing Configuration 2 */ +	u32	sdram_cfg;		/* SDRAM Control Configuration */ +	u32	sdram_cfg_2;		/* SDRAM Control Configuration 2 */ +	u32	sdram_mode;		/* SDRAM Mode Configuration */ +	u32	sdram_mode_2;		/* SDRAM Mode Configuration 2 */ +	u32	sdram_md_cntl;		/* SDRAM Mode Control */ +	u32	sdram_interval;		/* SDRAM Interval Configuration */ +	u32	sdram_data_init;	/* SDRAM Data initialization */ +	u8	res_12c[4]; +	u32	sdram_clk_cntl;		/* SDRAM Clock Control */ +	u8	res_134[20]; +	u32	init_addr;		/* training init addr */ +	u32	init_ext_addr;		/* training init extended addr */ +	u8	res_150[16]; +	u32	timing_cfg_4;		/* SDRAM Timing Configuration 4 */ +	u32	timing_cfg_5;		/* SDRAM Timing Configuration 5 */ +	u8	reg_168[8]; +	u32	ddr_zq_cntl;		/* ZQ calibration control*/ +	u32	ddr_wrlvl_cntl;		/* write leveling control*/ +	u8	reg_178[4]; +	u32	ddr_sr_cntr;		/* self refresh counter */ +	u32	ddr_sdram_rcw_1;	/* Control Words 1 */ +	u32	ddr_sdram_rcw_2;	/* Control Words 2 */ +	u8	reg_188[8]; +	u32	ddr_wrlvl_cntl_2;	/* write leveling control 2 */ +	u32	ddr_wrlvl_cntl_3;	/* write leveling control 3 */ +	u8	res_198[104]; +	u32	sdram_mode_3;		/* SDRAM Mode Configuration 3 */ +	u32	sdram_mode_4;		/* SDRAM Mode Configuration 4 */ +	u32	sdram_mode_5;		/* SDRAM Mode Configuration 5 */ +	u32	sdram_mode_6;		/* SDRAM Mode Configuration 6 */ +	u32	sdram_mode_7;		/* SDRAM Mode Configuration 7 */ +	u32	sdram_mode_8;		/* SDRAM Mode Configuration 8 */ +	u8	res_218[0x908]; +	u32	ddr_dsr1;		/* Debug Status 1 */ +	u32	ddr_dsr2;		/* Debug Status 2 */ +	u32	ddr_cdr1;		/* Control Driver 1 */ +	u32	ddr_cdr2;		/* Control Driver 2 */ +	u8	res_b30[200]; +	u32	ip_rev1;		/* IP Block Revision 1 */ +	u32	ip_rev2;		/* IP Block Revision 2 */ +	u32	eor;			/* Enhanced Optimization Register */ +	u8	res_c04[252]; +	u32	mtcr;			/* Memory Test Control Register */ +	u8	res_d04[28]; +	u32	mtp1;			/* Memory Test Pattern 1 */ +	u32	mtp2;			/* Memory Test Pattern 2 */ +	u32	mtp3;			/* Memory Test Pattern 3 */ +	u32	mtp4;			/* Memory Test Pattern 4 */ +	u32	mtp5;			/* Memory Test Pattern 5 */ +	u32	mtp6;			/* Memory Test Pattern 6 */ +	u32	mtp7;			/* Memory Test Pattern 7 */ +	u32	mtp8;			/* Memory Test Pattern 8 */ +	u32	mtp9;			/* Memory Test Pattern 9 */ +	u32	mtp10;			/* Memory Test Pattern 10 */ +	u8	res_d48[184]; +	u32	data_err_inject_hi;	/* Data Path Err Injection Mask High */ +	u32	data_err_inject_lo;	/* Data Path Err Injection Mask Low */ +	u32	ecc_err_inject;		/* Data Path Err Injection Mask ECC */ +	u8	res_e0c[20]; +	u32	capture_data_hi;	/* Data Path Read Capture High */ +	u32	capture_data_lo;	/* Data Path Read Capture Low */ +	u32	capture_ecc;		/* Data Path Read Capture ECC */ +	u8	res_e2c[20]; +	u32	err_detect;		/* Error Detect */ +	u32	err_disable;		/* Error Disable */ +	u32	err_int_en; +	u32	capture_attributes;	/* Error Attrs Capture */ +	u32	capture_address;	/* Error Addr Capture */ +	u32	capture_ext_address;	/* Error Extended Addr Capture */ +	u32	err_sbe;		/* Single-Bit ECC Error Management */ +	u8	res_e5c[164]; +	u32	debug[32];		/* debug_1 to debug_32 */ +	u8	res_f80[128]; +}; +#endif /* __FSL_IMMAP_H */ diff --git a/include/fsl_mdio.h b/include/fsl_mdio.h index 9c0b76277..b58713d89 100644 --- a/include/fsl_mdio.h +++ b/include/fsl_mdio.h @@ -1,5 +1,5 @@  /* - * Copyright 2009-2012 Freescale Semiconductor, Inc. + * Copyright 2009-2012, 2013 Freescale Semiconductor, Inc.   *	Jun-jie Zhang <b18070@freescale.com>   *	Mingkai Hu <Mingkai.hu@freescale.com>   * @@ -31,9 +31,9 @@  #define MIIMIND_BUSY		0x00000001  #define MIIMIND_NOTVALID	0x00000004 -void tsec_local_mdio_write(struct tsec_mii_mng *phyregs, int port_addr, +void tsec_local_mdio_write(struct tsec_mii_mng __iomem *phyregs, int port_addr,  		int dev_addr, int reg, int value); -int tsec_local_mdio_read(struct tsec_mii_mng *phyregs, int port_addr, +int tsec_local_mdio_read(struct tsec_mii_mng __iomem *phyregs, int port_addr,  		int dev_addr, int regnum);  int tsec_phy_read(struct mii_dev *bus, int addr, int dev_addr, int regnum);  int tsec_phy_write(struct mii_dev *bus, int addr, int dev_addr, int regnum, @@ -44,7 +44,7 @@ int memac_mdio_read(struct mii_dev *bus, int port_addr, int dev_addr,  		int regnum);  struct fsl_pq_mdio_info { -	struct tsec_mii_mng *regs; +	struct tsec_mii_mng __iomem *regs;  	char *name;  };  int fsl_pq_mdio_init(bd_t *bis, struct fsl_pq_mdio_info *info); diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index 6f44abdc1..a65b68155 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h @@ -96,6 +96,29 @@ struct mtd_oob_ops {  	uint8_t		*oobbuf;  }; +#ifdef CONFIG_SYS_NAND_MAX_OOBFREE +#define MTD_MAX_OOBFREE_ENTRIES_LARGE	CONFIG_SYS_NAND_MAX_OOBFREE +#else +#define MTD_MAX_OOBFREE_ENTRIES_LARGE	32 +#endif + +#ifdef CONFIG_SYS_NAND_MAX_ECCPOS +#define MTD_MAX_ECCPOS_ENTRIES_LARGE	CONFIG_SYS_NAND_MAX_ECCPOS +#else +#define MTD_MAX_ECCPOS_ENTRIES_LARGE	640 +#endif + +/* + * ECC layout control structure. Exported to userspace for + * diagnosis and to allow creation of raw images + */ +struct nand_ecclayout { +	uint32_t eccbytes; +	uint32_t eccpos[MTD_MAX_ECCPOS_ENTRIES_LARGE]; +	uint32_t oobavail; +	struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES_LARGE]; +}; +  struct mtd_info {  	u_char type;  	u_int32_t flags; diff --git a/include/micrel.h b/include/micrel.h index e1c62d83c..04c9ecf3b 100644 --- a/include/micrel.h +++ b/include/micrel.h @@ -15,6 +15,11 @@  #define MII_KSZ9031_MOD_DATA_POST_INC_RW	0x8000  #define MII_KSZ9031_MOD_DATA_POST_INC_W		0xC000 +#define MII_KSZ9031_EXT_RGMII_CTRL_SIG_SKEW	0x4 +#define MII_KSZ9031_EXT_RGMII_RX_DATA_SKEW	0x5 +#define MII_KSZ9031_EXT_RGMII_TX_DATA_SKEW	0x6 +#define MII_KSZ9031_EXT_RGMII_CLOCK_SKEW	0x8 +  struct phy_device;  int ksz9021_phy_extended_write(struct phy_device *phydev, int regnum, u16 val);  int ksz9021_phy_extended_read(struct phy_device *phydev, int regnum); diff --git a/include/msc01.h b/include/msc01.h new file mode 100644 index 000000000..37cf963f1 --- /dev/null +++ b/include/msc01.h @@ -0,0 +1,135 @@ +/* + * Copyright (C) 2013 Imagination Technologies + * Author: Paul Burton <paul.burton@imgtec.com> + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef __MSC01_H__ +#define __MSC01_H__ + +/* + * Bus Interface Unit + */ + +#define MSC01_BIU_IP1BAS1L_OFS		0x0208 +#define MSC01_BIU_IP1MSK1L_OFS		0x0218 +#define MSC01_BIU_IP1BAS2L_OFS		0x0248 +#define MSC01_BIU_IP1MSK2L_OFS		0x0258 +#define MSC01_BIU_IP2BAS1L_OFS		0x0288 +#define MSC01_BIU_IP2MSK1L_OFS		0x0298 +#define MSC01_BIU_IP2BAS2L_OFS		0x02c8 +#define MSC01_BIU_IP2MSK2L_OFS		0x02d8 +#define MSC01_BIU_IP3BAS1L_OFS		0x0308 +#define MSC01_BIU_IP3MSK1L_OFS		0x0318 +#define MSC01_BIU_IP3BAS2L_OFS		0x0348 +#define MSC01_BIU_IP3MSK2L_OFS		0x0358 +#define MSC01_BIU_MCBAS1L_OFS		0x0388 +#define MSC01_BIU_MCMSK1L_OFS		0x0398 +#define MSC01_BIU_MCBAS2L_OFS		0x03c8 +#define MSC01_BIU_MCMSK2L_OFS		0x03d8 + +/* + * PCI Bridge + */ + +#define MSC01_PCI_SC2PMBASL_OFS		0x0208 +#define MSC01_PCI_SC2PMMSKL_OFS		0x0218 +#define MSC01_PCI_SC2PMMAPL_OFS		0x0228 +#define MSC01_PCI_SC2PIOBASL_OFS	0x0248 +#define MSC01_PCI_SC2PIOMSKL_OFS	0x0258 +#define MSC01_PCI_SC2PIOMAPL_OFS	0x0268 +#define MSC01_PCI_P2SCMSKL_OFS		0x0308 +#define MSC01_PCI_P2SCMAPL_OFS		0x0318 +#define MSC01_PCI_INTSTAT_OFS		0x0608 +#define MSC01_PCI_CFGADDR_OFS		0x0610 +#define MSC01_PCI_CFGDATA_OFS		0x0618 +#define MSC01_PCI_HEAD0_OFS		0x2000 +#define MSC01_PCI_HEAD1_OFS		0x2008 +#define MSC01_PCI_HEAD2_OFS		0x2010 +#define MSC01_PCI_HEAD3_OFS		0x2018 +#define MSC01_PCI_HEAD4_OFS		0x2020 +#define MSC01_PCI_HEAD5_OFS		0x2028 +#define MSC01_PCI_HEAD6_OFS		0x2030 +#define MSC01_PCI_HEAD7_OFS		0x2038 +#define MSC01_PCI_HEAD8_OFS		0x2040 +#define MSC01_PCI_HEAD9_OFS		0x2048 +#define MSC01_PCI_HEAD10_OFS		0x2050 +#define MSC01_PCI_HEAD11_OFS		0x2058 +#define MSC01_PCI_HEAD12_OFS		0x2060 +#define MSC01_PCI_HEAD13_OFS		0x2068 +#define MSC01_PCI_HEAD14_OFS		0x2070 +#define MSC01_PCI_HEAD15_OFS		0x2078 +#define MSC01_PCI_BAR0_OFS		0x2220 +#define MSC01_PCI_CFG_OFS		0x2380 +#define MSC01_PCI_SWAP_OFS		0x2388 + +#define MSC01_PCI_SC2PMMSKL_MSK_MSK	0xff000000 +#define MSC01_PCI_SC2PIOMSKL_MSK_MSK	0xff000000 + +#define MSC01_PCI_INTSTAT_TA_SHF	6 +#define MSC01_PCI_INTSTAT_TA_MSK	(0x1 << MSC01_PCI_INTSTAT_TA_SHF) +#define MSC01_PCI_INTSTAT_MA_SHF	7 +#define MSC01_PCI_INTSTAT_MA_MSK	(0x1 << MSC01_PCI_INTSTAT_MA_SHF) + +#define MSC01_PCI_CFGADDR_BNUM_SHF	16 +#define MSC01_PCI_CFGADDR_BNUM_MSK	(0xff << MSC01_PCI_CFGADDR_BNUM_SHF) +#define MSC01_PCI_CFGADDR_DNUM_SHF	11 +#define MSC01_PCI_CFGADDR_DNUM_MSK	(0x1f << MSC01_PCI_CFGADDR_DNUM_SHF) +#define MSC01_PCI_CFGADDR_FNUM_SHF	8 +#define MSC01_PCI_CFGADDR_FNUM_MSK	(0x3 << MSC01_PCI_CFGADDR_FNUM_SHF) +#define MSC01_PCI_CFGADDR_RNUM_SHF	2 +#define MSC01_PCI_CFGADDR_RNUM_MSK	(0x3f << MSC01_PCI_CFGADDR_RNUM_SHF) + +#define MSC01_PCI_HEAD0_VENDORID_SHF	0 +#define MSC01_PCI_HEAD0_DEVICEID_SHF	16 + +#define MSC01_PCI_HEAD2_REV_SHF		0 +#define MSC01_PCI_HEAD2_CLASS_SHF	16 + +#define MSC01_PCI_CFG_EN_SHF		15 +#define MSC01_PCI_CFG_EN_MSK		(0x1 << MSC01_PCI_CFG_EN_SHF) +#define MSC01_PCI_CFG_G_SHF		16 +#define MSC01_PCI_CFG_G_MSK		(0x1 << MSC01_PCI_CFG_G_SHF) +#define MSC01_PCI_CFG_RA_SHF		17 +#define MSC01_PCI_CFG_RA_MSK		(0x1 << MSC01_PCI_CFG_RA_SHF) + +#define MSC01_PCI_SWAP_BAR0_BSWAP_SHF	0 +#define MSC01_PCI_SWAP_IO_BSWAP_SHF	18 + +/* + * Peripheral Bus Controller + */ + +#define MSC01_PBC_CLKCFG_OFS		0x0100 +#define MSC01_PBC_CS0CFG_OFS		0x0400 +#define MSC01_PBC_CS0TIM_OFS		0x0500 +#define MSC01_PBC_CS0RW_OFS		0x0600 + +#define MSC01_PBC_CLKCFG_SHF		0 +#define MSC01_PBC_CLKCFG_MSK		(0x1f << MSC01_PBC_CLKCFG_SHF) + +#define MSC01_PBC_CS0CFG_WS_SHF		0 +#define MSC01_PBC_CS0CFG_WS_MSK		(0x1f << MSC01_PBC_CS0CFG_WS_SHF) +#define MSC01_PBC_CS0CFG_WSIDLE_SHF	8 +#define MSC01_PBC_CS0CFG_WSIDLE_MSK	(0x1f << MSC01_PBC_CS0CFG_WSIDLE_SHF) +#define MSC01_PBC_CS0CFG_DTYP_SHF	16 +#define MSC01_PBC_CS0CFG_DTYP_MSK	(0x3 << MSC01_PBC_CS0CFG_DTYP_SHF) +#define MSC01_PBC_CS0CFG_ADM_SHF	20 +#define MSC01_PBC_CS0CFG_ADM_MSK	(0x1 << MSC01_PBC_CS0CFG_ADM_SHF) + +#define MSC01_PBC_CS0TIM_CAT_SHF	0 +#define MSC01_PBC_CS0TIM_CAT_MSK	(0x1f << MSC01_PBC_CS0TIM_CAT_SHF) +#define MSC01_PBC_CS0TIM_CDT_SHF	8 +#define MSC01_PBC_CS0TIM_CDT_MSK	(0x1f << MSC01_PBC_CS0TIM_CDT_SHF) + +#define MSC01_PBC_CS0RW_WAT_SHF		0 +#define MSC01_PBC_CS0RW_WAT_MSK		(0x1f << MSC01_PBC_CS0RW_WAT_SHF) +#define MSC01_PBC_CS0RW_WDT_SHF		8 +#define MSC01_PBC_CS0RW_WDT_MSK		(0x1f << MSC01_PBC_CS0RW_WDT_SHF) +#define MSC01_PBC_CS0RW_RAT_SHF		16 +#define MSC01_PBC_CS0RW_RAT_MSK		(0x1f << MSC01_PBC_CS0RW_RAT_SHF) +#define MSC01_PBC_CS0RW_RDT_SHF		24 +#define MSC01_PBC_CS0RW_RDT_MSK		(0x1f << MSC01_PBC_CS0RW_RDT_SHF) + +#endif /* __MSC01_H__ */ diff --git a/include/mtd/mtd-abi.h b/include/mtd/mtd-abi.h index d51c1abd1..ac3c29876 100644 --- a/include/mtd/mtd-abi.h +++ b/include/mtd/mtd-abi.h @@ -155,18 +155,6 @@ struct nand_oobfree {  	uint32_t length;  }; -#define MTD_MAX_OOBFREE_ENTRIES	8 -/* - * ECC layout control structure. Exported to userspace for - * diagnosis and to allow creation of raw images - */ -struct nand_ecclayout { -	uint32_t eccbytes; -	uint32_t eccpos[128]; -	uint32_t oobavail; -	struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES]; -}; -  /**   * struct mtd_ecc_stats - error correction stats   * diff --git a/include/net.h b/include/net.h index 5aedc17aa..0802fad87 100644 --- a/include/net.h +++ b/include/net.h @@ -89,7 +89,7 @@ struct eth_device {  	int  (*recv) (struct eth_device *);  	void (*halt) (struct eth_device *);  #ifdef CONFIG_MCAST_TFTP -	int (*mcast) (struct eth_device *, u32 ip, u8 set); +	int (*mcast) (struct eth_device *, const u8 *enetaddr, u8 set);  #endif  	int  (*write_hwaddr) (struct eth_device *);  	struct eth_device *next; diff --git a/include/os.h b/include/os.h index 8665f70ed..950433daa 100644 --- a/include/os.h +++ b/include/os.h @@ -11,6 +11,8 @@  #ifndef __OS_H__  #define __OS_H__ +#include <linux/types.h> +  struct sandbox_state;  /** @@ -116,7 +118,7 @@ void os_usleep(unsigned long usec);   *   * \return A monotonic increasing time scaled in nano seconds   */ -u64 os_get_nsec(void); +uint64_t os_get_nsec(void);  /**   * Parse arguments and update sandbox state. diff --git a/include/pci.h b/include/pci.h index d46247966..461f17c05 100644 --- a/include/pci.h +++ b/include/pci.h @@ -417,6 +417,8 @@  #include <pci_ids.h> +#ifndef __ASSEMBLY__ +  #ifdef CONFIG_SYS_PCI_64BIT  typedef u64 pci_addr_t;  typedef u64 pci_size_t; @@ -667,4 +669,6 @@ extern void pci_mpc824x_init (struct pci_controller *hose);  #ifdef CONFIG_MPC85xx  extern void pci_mpc85xx_init (struct pci_controller *hose);  #endif -#endif	/* _PCI_H */ + +#endif /* __ASSEMBLY__ */ +#endif /* _PCI_H */ diff --git a/include/pci_ids.h b/include/pci_ids.h index 2c6dfd404..6bab67744 100644 --- a/include/pci_ids.h +++ b/include/pci_ids.h @@ -2170,6 +2170,9 @@  #define PCI_DEVICE_ID_ENE_720		0x1421  #define PCI_DEVICE_ID_ENE_722		0x1422 +#define PCI_VENDOR_ID_MIPS		0x153f +#define PCI_DEVICE_ID_MIPS_MSC01	0x0001 +  #define PCI_SUBVENDOR_ID_PERLE          0x155f  #define PCI_SUBDEVICE_ID_PCI_RAS4       0xf001  #define PCI_SUBDEVICE_ID_PCI_RAS8       0xf010 diff --git a/include/pci_msc01.h b/include/pci_msc01.h new file mode 100644 index 000000000..54945a7a8 --- /dev/null +++ b/include/pci_msc01.h @@ -0,0 +1,17 @@ +/* + * Copyright (C) 2013 Imagination Technologies + * Author: Paul Burton <paul.burton@imgtec.com> + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef __PCI_MSC01_H__ +#define __PCI_MSC01_H__ + +extern void msc01_pci_init(void *base, unsigned long sys_bus, +			   unsigned long sys_phys, unsigned long sys_size, +			   unsigned long mem_bus, unsigned long mem_phys, +			   unsigned long mem_size, unsigned long io_bus, +			   unsigned long io_phys, unsigned long io_size); + +#endif /* __PCI_MSC01_H__ */ diff --git a/include/phy.h b/include/phy.h index f0f522a9c..1f22fa180 100644 --- a/include/phy.h +++ b/include/phy.h @@ -125,6 +125,9 @@ struct phy_driver {  	/* Called when bringing down the controller */  	int (*shutdown)(struct phy_device *phydev); +	int (*readext)(struct phy_device *phydev, int addr, int devad, int reg); +	int (*writeext)(struct phy_device *phydev, int addr, int devad, int reg, +			u16 val);  	struct list_head list;  }; @@ -160,6 +163,14 @@ struct phy_device {  	u32 flags;  }; +struct fixed_link { +	int phy_id; +	int duplex; +	int link_speed; +	int pause; +	int asym_pause; +}; +  static inline int phy_read(struct phy_device *phydev, int devad, int regnum)  {  	struct mii_dev *bus = phydev->bus; diff --git a/include/scf0403_lcd.h b/include/scf0403_lcd.h new file mode 100644 index 000000000..d71896bbd --- /dev/null +++ b/include/scf0403_lcd.h @@ -0,0 +1,11 @@ +/* + * Copyright (c) 2013, Compulab Inc. + * + * SPDX-License-Identifier:	GPL-2.0+ + */ +#ifndef SCF0403_LCD_H_ +#define SCF0403_LCD_H_ + +int scf0403_init(int reset_gpio); + +#endif diff --git a/include/spi.h b/include/spi.h index ad9248bee..e2563c99f 100644 --- a/include/spi.h +++ b/include/spi.h @@ -29,10 +29,13 @@  #define SPI_XFER_END		0x02	/* Deassert CS after transfer */  #define SPI_XFER_MMAP		0x08	/* Memory Mapped start */  #define SPI_XFER_MMAP_END	0x10	/* Memory Mapped End */ +#define SPI_XFER_ONCE		(SPI_XFER_BEGIN | SPI_XFER_END)  /* Header byte that marks the start of the message */  #define SPI_PREAMBLE_END_BYTE	0xec +#define SPI_DEFAULT_WORDLEN 8 +  /**   * struct spi_slave - Representation of a SPI slave   * @@ -40,6 +43,7 @@   *   * @bus:		ID of the bus that the slave is attached to.   * @cs:			ID of the chip select connected to the slave. + * @wordlen:		Size of SPI word in number of bits   * @max_write_size:	If non-zero, the maximum number of bytes which can   *			be written at once, excluding command bytes.   * @memory_map:		Address of read-only SPI flash access. @@ -47,6 +51,7 @@  struct spi_slave {  	unsigned int bus;  	unsigned int cs; +	unsigned int wordlen;  	unsigned int max_write_size;  	void *memory_map;  }; @@ -153,6 +158,18 @@ int spi_claim_bus(struct spi_slave *slave);  void spi_release_bus(struct spi_slave *slave);  /** + * Set the word length for SPI transactions + * + * Set the word length (number of bits per word) for SPI transactions. + * + * @slave:	The SPI slave + * @wordlen:	The number of bits in a word + * + * Returns: 0 on success, -1 on failure. + */ +int spi_set_wordlen(struct spi_slave *slave, unsigned int wordlen); + +/**   * SPI transfer   *   * This writes "bitlen" bits out the SPI MOSI port and simultaneously clocks diff --git a/include/tsec.h b/include/tsec.h index f0f3d4d59..1046426c5 100644 --- a/include/tsec.h +++ b/include/tsec.h @@ -7,7 +7,7 @@   *  terms of the GNU Public License, Version 2, incorporated   *  herein by reference.   * - * Copyright 2004, 2007, 2009, 2011  Freescale Semiconductor, Inc. + * Copyright 2004, 2007, 2009, 2011, 2013 Freescale Semiconductor, Inc.   * (C) Copyright 2003, Motorola, Inc.   * maintained by Xianghua Xiao (x.xiao@motorola.com)   * author Andy Fleming @@ -27,13 +27,26 @@  #define CONFIG_SYS_MDIO_BASE_ADDR (MDIO_BASE_ADDR + 0x520) +#define TSEC_GET_REGS(num, offset) \ +	(struct tsec __iomem *)\ +	(TSEC_BASE_ADDR + (((num) - 1) * (offset))) + +#define TSEC_GET_REGS_BASE(num) \ +	TSEC_GET_REGS((num), TSEC_SIZE) + +#define TSEC_GET_MDIO_REGS(num, offset) \ +	(struct tsec_mii_mng __iomem *)\ +	(CONFIG_SYS_MDIO_BASE_ADDR  + ((num) - 1) * (offset)) + +#define TSEC_GET_MDIO_REGS_BASE(num) \ +	TSEC_GET_MDIO_REGS((num), TSEC_MDIO_OFFSET) +  #define DEFAULT_MII_NAME "FSL_MDIO"  #define STD_TSEC_INFO(num) \  {			\ -	.regs = (tsec_t *)(TSEC_BASE_ADDR + ((num - 1) * TSEC_SIZE)), \ -	.miiregs_sgmii = (struct tsec_mii_mng *)(CONFIG_SYS_MDIO_BASE_ADDR \ -					 + (num - 1) * TSEC_MDIO_OFFSET), \ +	.regs = TSEC_GET_REGS_BASE(num), \ +	.miiregs_sgmii = TSEC_GET_MDIO_REGS_BASE(num), \  	.devname = CONFIG_TSEC##num##_NAME, \  	.phyaddr = TSEC##num##_PHY_ADDR, \  	.flags = TSEC##num##_FLAGS, \ @@ -42,9 +55,8 @@  #define SET_STD_TSEC_INFO(x, num) \  {			\ -	x.regs = (tsec_t *)(TSEC_BASE_ADDR + ((num - 1) * TSEC_SIZE)); \ -	x.miiregs_sgmii = (struct tsec_mii_mng *)(CONFIG_SYS_MDIO_BASE_ADDR \ -					  + (num - 1) * TSEC_MDIO_OFFSET); \ +	x.regs = TSEC_GET_REGS_BASE(num); \ +	x.miiregs_sgmii = TSEC_GET_MDIO_REGS_BASE(num); \  	x.devname = CONFIG_TSEC##num##_NAME; \  	x.phyaddr = TSEC##num##_PHY_ADDR; \  	x.flags = TSEC##num##_FLAGS;\ @@ -186,195 +198,190 @@  #define RXBD_TRUNCATED		0x0001  #define RXBD_STATS		0x003f -typedef struct txbd8 -{ -	ushort	     status;	     /* Status Fields */ -	ushort	     length;	     /* Buffer length */ -	uint	     bufPtr;	     /* Buffer Pointer */ -} txbd8_t; +struct txbd8 { +	uint16_t     status;	     /* Status Fields */ +	uint16_t     length;	     /* Buffer length */ +	uint32_t     bufptr;	     /* Buffer Pointer */ +}; -typedef struct rxbd8 -{ -	ushort	     status;	     /* Status Fields */ -	ushort	     length;	     /* Buffer Length */ -	uint	     bufPtr;	     /* Buffer Pointer */ -} rxbd8_t; +struct rxbd8 { +	uint16_t     status;	     /* Status Fields */ +	uint16_t     length;	     /* Buffer Length */ +	uint32_t     bufptr;	     /* Buffer Pointer */ +}; -typedef struct rmon_mib -{ +struct tsec_rmon_mib {  	/* Transmit and Receive Counters */ -	uint	tr64;		/* Transmit and Receive 64-byte Frame Counter */ -	uint	tr127;		/* Transmit and Receive 65-127 byte Frame Counter */ -	uint	tr255;		/* Transmit and Receive 128-255 byte Frame Counter */ -	uint	tr511;		/* Transmit and Receive 256-511 byte Frame Counter */ -	uint	tr1k;		/* Transmit and Receive 512-1023 byte Frame Counter */ -	uint	trmax;		/* Transmit and Receive 1024-1518 byte Frame Counter */ -	uint	trmgv;		/* Transmit and Receive 1519-1522 byte Good VLAN Frame */ +	u32	tr64;		/* Tx/Rx 64-byte Frame Counter */ +	u32	tr127;		/* Tx/Rx 65-127 byte Frame Counter */ +	u32	tr255;		/* Tx/Rx 128-255 byte Frame Counter */ +	u32	tr511;		/* Tx/Rx 256-511 byte Frame Counter */ +	u32	tr1k;		/* Tx/Rx 512-1023 byte Frame Counter */ +	u32	trmax;		/* Tx/Rx 1024-1518 byte Frame Counter */ +	u32	trmgv;		/* Tx/Rx 1519-1522 byte Good VLAN Frame */  	/* Receive Counters */ -	uint	rbyt;		/* Receive Byte Counter */ -	uint	rpkt;		/* Receive Packet Counter */ -	uint	rfcs;		/* Receive FCS Error Counter */ -	uint	rmca;		/* Receive Multicast Packet (Counter) */ -	uint	rbca;		/* Receive Broadcast Packet */ -	uint	rxcf;		/* Receive Control Frame Packet */ -	uint	rxpf;		/* Receive Pause Frame Packet */ -	uint	rxuo;		/* Receive Unknown OP Code */ -	uint	raln;		/* Receive Alignment Error */ -	uint	rflr;		/* Receive Frame Length Error */ -	uint	rcde;		/* Receive Code Error */ -	uint	rcse;		/* Receive Carrier Sense Error */ -	uint	rund;		/* Receive Undersize Packet */ -	uint	rovr;		/* Receive Oversize Packet */ -	uint	rfrg;		/* Receive Fragments */ -	uint	rjbr;		/* Receive Jabber */ -	uint	rdrp;		/* Receive Drop */ +	u32	rbyt;		/* Receive Byte Counter */ +	u32	rpkt;		/* Receive Packet Counter */ +	u32	rfcs;		/* Receive FCS Error Counter */ +	u32	rmca;		/* Receive Multicast Packet (Counter) */ +	u32	rbca;		/* Receive Broadcast Packet */ +	u32	rxcf;		/* Receive Control Frame Packet */ +	u32	rxpf;		/* Receive Pause Frame Packet */ +	u32	rxuo;		/* Receive Unknown OP Code */ +	u32	raln;		/* Receive Alignment Error */ +	u32	rflr;		/* Receive Frame Length Error */ +	u32	rcde;		/* Receive Code Error */ +	u32	rcse;		/* Receive Carrier Sense Error */ +	u32	rund;		/* Receive Undersize Packet */ +	u32	rovr;		/* Receive Oversize Packet */ +	u32	rfrg;		/* Receive Fragments */ +	u32	rjbr;		/* Receive Jabber */ +	u32	rdrp;		/* Receive Drop */  	/* Transmit Counters */ -	uint	tbyt;		/* Transmit Byte Counter */ -	uint	tpkt;		/* Transmit Packet */ -	uint	tmca;		/* Transmit Multicast Packet */ -	uint	tbca;		/* Transmit Broadcast Packet */ -	uint	txpf;		/* Transmit Pause Control Frame */ -	uint	tdfr;		/* Transmit Deferral Packet */ -	uint	tedf;		/* Transmit Excessive Deferral Packet */ -	uint	tscl;		/* Transmit Single Collision Packet */ +	u32	tbyt;		/* Transmit Byte Counter */ +	u32	tpkt;		/* Transmit Packet */ +	u32	tmca;		/* Transmit Multicast Packet */ +	u32	tbca;		/* Transmit Broadcast Packet */ +	u32	txpf;		/* Transmit Pause Control Frame */ +	u32	tdfr;		/* Transmit Deferral Packet */ +	u32	tedf;		/* Transmit Excessive Deferral Packet */ +	u32	tscl;		/* Transmit Single Collision Packet */  	/* (0x2_n700) */ -	uint	tmcl;		/* Transmit Multiple Collision Packet */ -	uint	tlcl;		/* Transmit Late Collision Packet */ -	uint	txcl;		/* Transmit Excessive Collision Packet */ -	uint	tncl;		/* Transmit Total Collision */ +	u32	tmcl;		/* Transmit Multiple Collision Packet */ +	u32	tlcl;		/* Transmit Late Collision Packet */ +	u32	txcl;		/* Transmit Excessive Collision Packet */ +	u32	tncl;		/* Transmit Total Collision */ -	uint	res2; +	u32	res2; -	uint	tdrp;		/* Transmit Drop Frame */ -	uint	tjbr;		/* Transmit Jabber Frame */ -	uint	tfcs;		/* Transmit FCS Error */ -	uint	txcf;		/* Transmit Control Frame */ -	uint	tovr;		/* Transmit Oversize Frame */ -	uint	tund;		/* Transmit Undersize Frame */ -	uint	tfrg;		/* Transmit Fragments Frame */ +	u32	tdrp;		/* Transmit Drop Frame */ +	u32	tjbr;		/* Transmit Jabber Frame */ +	u32	tfcs;		/* Transmit FCS Error */ +	u32	txcf;		/* Transmit Control Frame */ +	u32	tovr;		/* Transmit Oversize Frame */ +	u32	tund;		/* Transmit Undersize Frame */ +	u32	tfrg;		/* Transmit Fragments Frame */  	/* General Registers */ -	uint	car1;		/* Carry Register One */ -	uint	car2;		/* Carry Register Two */ -	uint	cam1;		/* Carry Register One Mask */ -	uint	cam2;		/* Carry Register Two Mask */ -} rmon_mib_t; +	u32	car1;		/* Carry Register One */ +	u32	car2;		/* Carry Register Two */ +	u32	cam1;		/* Carry Register One Mask */ +	u32	cam2;		/* Carry Register Two Mask */ +}; -typedef struct tsec_hash_regs -{ -	uint	iaddr0;		/* Individual Address Register 0 */ -	uint	iaddr1;		/* Individual Address Register 1 */ -	uint	iaddr2;		/* Individual Address Register 2 */ -	uint	iaddr3;		/* Individual Address Register 3 */ -	uint	iaddr4;		/* Individual Address Register 4 */ -	uint	iaddr5;		/* Individual Address Register 5 */ -	uint	iaddr6;		/* Individual Address Register 6 */ -	uint	iaddr7;		/* Individual Address Register 7 */ -	uint	res1[24]; -	uint	gaddr0;		/* Group Address Register 0 */ -	uint	gaddr1;		/* Group Address Register 1 */ -	uint	gaddr2;		/* Group Address Register 2 */ -	uint	gaddr3;		/* Group Address Register 3 */ -	uint	gaddr4;		/* Group Address Register 4 */ -	uint	gaddr5;		/* Group Address Register 5 */ -	uint	gaddr6;		/* Group Address Register 6 */ -	uint	gaddr7;		/* Group Address Register 7 */ -	uint	res2[24]; -} tsec_hash_t; +struct tsec_hash_regs { +	u32	iaddr0;		/* Individual Address Register 0 */ +	u32	iaddr1;		/* Individual Address Register 1 */ +	u32	iaddr2;		/* Individual Address Register 2 */ +	u32	iaddr3;		/* Individual Address Register 3 */ +	u32	iaddr4;		/* Individual Address Register 4 */ +	u32	iaddr5;		/* Individual Address Register 5 */ +	u32	iaddr6;		/* Individual Address Register 6 */ +	u32	iaddr7;		/* Individual Address Register 7 */ +	u32	res1[24]; +	u32	gaddr0;		/* Group Address Register 0 */ +	u32	gaddr1;		/* Group Address Register 1 */ +	u32	gaddr2;		/* Group Address Register 2 */ +	u32	gaddr3;		/* Group Address Register 3 */ +	u32	gaddr4;		/* Group Address Register 4 */ +	u32	gaddr5;		/* Group Address Register 5 */ +	u32	gaddr6;		/* Group Address Register 6 */ +	u32	gaddr7;		/* Group Address Register 7 */ +	u32	res2[24]; +}; -typedef struct tsec -{ +struct tsec {  	/* General Control and Status Registers (0x2_n000) */ -	uint	res000[4]; +	u32	res000[4]; -	uint	ievent;		/* Interrupt Event */ -	uint	imask;		/* Interrupt Mask */ -	uint	edis;		/* Error Disabled */ -	uint	res01c; -	uint	ecntrl;		/* Ethernet Control */ -	uint	minflr;		/* Minimum Frame Length */ -	uint	ptv;		/* Pause Time Value */ -	uint	dmactrl;	/* DMA Control */ -	uint	tbipa;		/* TBI PHY Address */ +	u32	ievent;		/* Interrupt Event */ +	u32	imask;		/* Interrupt Mask */ +	u32	edis;		/* Error Disabled */ +	u32	res01c; +	u32	ecntrl;		/* Ethernet Control */ +	u32	minflr;		/* Minimum Frame Length */ +	u32	ptv;		/* Pause Time Value */ +	u32	dmactrl;	/* DMA Control */ +	u32	tbipa;		/* TBI PHY Address */ -	uint	res034[3]; -	uint	res040[48]; +	u32	res034[3]; +	u32	res040[48];  	/* Transmit Control and Status Registers (0x2_n100) */ -	uint	tctrl;		/* Transmit Control */ -	uint	tstat;		/* Transmit Status */ -	uint	res108; -	uint	tbdlen;		/* Tx BD Data Length */ -	uint	res110[5]; -	uint	ctbptr;		/* Current TxBD Pointer */ -	uint	res128[23]; -	uint	tbptr;		/* TxBD Pointer */ -	uint	res188[30]; +	u32	tctrl;		/* Transmit Control */ +	u32	tstat;		/* Transmit Status */ +	u32	res108; +	u32	tbdlen;		/* Tx BD Data Length */ +	u32	res110[5]; +	u32	ctbptr;		/* Current TxBD Pointer */ +	u32	res128[23]; +	u32	tbptr;		/* TxBD Pointer */ +	u32	res188[30];  	/* (0x2_n200) */ -	uint	res200; -	uint	tbase;		/* TxBD Base Address */ -	uint	res208[42]; -	uint	ostbd;		/* Out of Sequence TxBD */ -	uint	ostbdp;		/* Out of Sequence Tx Data Buffer Pointer */ -	uint	res2b8[18]; +	u32	res200; +	u32	tbase;		/* TxBD Base Address */ +	u32	res208[42]; +	u32	ostbd;		/* Out of Sequence TxBD */ +	u32	ostbdp;		/* Out of Sequence Tx Data Buffer Pointer */ +	u32	res2b8[18];  	/* Receive Control and Status Registers (0x2_n300) */ -	uint	rctrl;		/* Receive Control */ -	uint	rstat;		/* Receive Status */ -	uint	res308; -	uint	rbdlen;		/* RxBD Data Length */ -	uint	res310[4]; -	uint	res320; -	uint	crbptr;	/* Current Receive Buffer Pointer */ -	uint	res328[6]; -	uint	mrblr;	/* Maximum Receive Buffer Length */ -	uint	res344[16]; -	uint	rbptr;	/* RxBD Pointer */ -	uint	res388[30]; +	u32	rctrl;		/* Receive Control */ +	u32	rstat;		/* Receive Status */ +	u32	res308; +	u32	rbdlen;		/* RxBD Data Length */ +	u32	res310[4]; +	u32	res320; +	u32	crbptr;	/* Current Receive Buffer Pointer */ +	u32	res328[6]; +	u32	mrblr;	/* Maximum Receive Buffer Length */ +	u32	res344[16]; +	u32	rbptr;	/* RxBD Pointer */ +	u32	res388[30];  	/* (0x2_n400) */ -	uint	res400; -	uint	rbase;	/* RxBD Base Address */ -	uint	res408[62]; +	u32	res400; +	u32	rbase;	/* RxBD Base Address */ +	u32	res408[62];  	/* MAC Registers (0x2_n500) */ -	uint	maccfg1;	/* MAC Configuration #1 */ -	uint	maccfg2;	/* MAC Configuration #2 */ -	uint	ipgifg;		/* Inter Packet Gap/Inter Frame Gap */ -	uint	hafdup;		/* Half-duplex */ -	uint	maxfrm;		/* Maximum Frame */ -	uint	res514; -	uint	res518; +	u32	maccfg1;	/* MAC Configuration #1 */ +	u32	maccfg2;	/* MAC Configuration #2 */ +	u32	ipgifg;		/* Inter Packet Gap/Inter Frame Gap */ +	u32	hafdup;		/* Half-duplex */ +	u32	maxfrm;		/* Maximum Frame */ +	u32	res514; +	u32	res518; -	uint	res51c; +	u32	res51c; -	uint	resmdio[6]; +	u32	resmdio[6]; -	uint	res538; +	u32	res538; -	uint	ifstat;		/* Interface Status */ -	uint	macstnaddr1;	/* Station Address, part 1 */ -	uint	macstnaddr2;	/* Station Address, part 2 */ -	uint	res548[46]; +	u32	ifstat;		/* Interface Status */ +	u32	macstnaddr1;	/* Station Address, part 1 */ +	u32	macstnaddr2;	/* Station Address, part 2 */ +	u32	res548[46];  	/* (0x2_n600) */ -	uint	res600[32]; +	u32	res600[32];  	/* RMON MIB Registers (0x2_n680-0x2_n73c) */ -	rmon_mib_t	rmon; -	uint	res740[48]; +	struct tsec_rmon_mib	rmon; +	u32	res740[48];  	/* Hash Function Registers (0x2_n800) */ -	tsec_hash_t	hash; +	struct tsec_hash_regs	hash; -	uint	res900[128]; +	u32	res900[128];  	/* Pattern Registers (0x2_nb00) */ -	uint	resb00[62]; -	uint	attr;	   /* Default Attribute Register */ -	uint	attreli;	   /* Default Attribute Extract Length and Index */ +	u32	resb00[62]; +	u32	attr; /* Default Attribute Register */ +	u32	attreli; /* Default Attribute Extract Length and Index */  	/* TSEC Future Expansion Space (0x2_nc00-0x2_nffc) */ -	uint	resc00[256]; -} tsec_t; +	u32	resc00[256]; +};  #define TSEC_GIGABIT (1 << 0) @@ -383,8 +390,8 @@ typedef struct tsec  #define TSEC_SGMII	(1 << 2)	/* MAC-PHY interface uses SGMII */  struct tsec_private { -	tsec_t *regs; -	struct tsec_mii_mng *phyregs_sgmii; +	struct tsec __iomem *regs; +	struct tsec_mii_mng __iomem *phyregs_sgmii;  	struct phy_device *phydev;  	phy_interface_t interface;  	struct mii_dev *bus; @@ -394,8 +401,8 @@ struct tsec_private {  };  struct tsec_info_struct { -	tsec_t *regs; -	struct tsec_mii_mng *miiregs_sgmii; +	struct tsec __iomem *regs; +	struct tsec_mii_mng __iomem *miiregs_sgmii;  	char *devname;  	char *mii_devname;  	phy_interface_t interface; |