diff options
Diffstat (limited to 'include')
49 files changed, 1620 insertions, 453 deletions
| diff --git a/include/configs/B4860QDS.h b/include/configs/B4860QDS.h index 2f0bc6b06..992aea7f5 100644 --- a/include/configs/B4860QDS.h +++ b/include/configs/B4860QDS.h @@ -16,6 +16,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/b4860qds/b4_pbi.cfg +#define CONFIG_PBLRCW_CONFIG $(SRCTREE)/board/freescale/b4860qds/b4_rcw.cfg  #endif  #ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE @@ -841,8 +843,6 @@ unsigned long get_board_ddr_clk(void);  #define CONFIG_BOOTCOMMAND		CONFIG_LINUX -#ifdef CONFIG_SECURE_BOOT  #include <asm/fsl_secure_boot.h> -#endif  #endif	/* __CONFIG_H */ diff --git a/include/configs/BSC9131RDB.h b/include/configs/BSC9131RDB.h index 948394edd..1d06c509b 100644 --- a/include/configs/BSC9131RDB.h +++ b/include/configs/BSC9131RDB.h @@ -181,18 +181,18 @@ extern unsigned long get_sdram_size(void);  				| CSOR_NAND_PB(64))	/*Pages Per Block = 64*/  /* NAND Flash Timing Params */ -#define CONFIG_SYS_NAND_FTIM0		(FTIM0_NAND_TCCST(0x08)  \ -					| FTIM0_NAND_TWP(0x06)   \ -					| FTIM0_NAND_TWCHT(0x03) \ +#define CONFIG_SYS_NAND_FTIM0		(FTIM0_NAND_TCCST(0x03)  \ +					| FTIM0_NAND_TWP(0x05)   \ +					| FTIM0_NAND_TWCHT(0x02) \  					| FTIM0_NAND_TWH(0x04)) -#define CONFIG_SYS_NAND_FTIM1		(FTIM1_NAND_TADLE(0x18) \ -					| FTIM1_NAND_TWBE(0x23) \ -					| FTIM1_NAND_TRR(0x08)  \ +#define CONFIG_SYS_NAND_FTIM1		(FTIM1_NAND_TADLE(0x1C) \ +					| FTIM1_NAND_TWBE(0x1E) \ +					| FTIM1_NAND_TRR(0x07)  \  					| FTIM1_NAND_TRP(0x05))  #define CONFIG_SYS_NAND_FTIM2		(FTIM2_NAND_TRAD(0x08)  \  					| FTIM2_NAND_TREH(0x04) \ -					| FTIM2_NAND_TWHRE(0x3f)) -#define CONFIG_SYS_NAND_FTIM3		FTIM3_NAND_TWW(0x22) +					| FTIM2_NAND_TWHRE(0x11)) +#define CONFIG_SYS_NAND_FTIM3		FTIM3_NAND_TWW(0x04)  #define CONFIG_SYS_NAND_BASE_LIST	{ CONFIG_SYS_NAND_BASE }  #define CONFIG_SYS_MAX_NAND_DEVICE	1 diff --git a/include/configs/C29XPCIE.h b/include/configs/C29XPCIE.h index 83779eff8..cce2288da 100644 --- a/include/configs/C29XPCIE.h +++ b/include/configs/C29XPCIE.h @@ -154,14 +154,16 @@  				CSPR_V)  #define CONFIG_SYS_NOR_AMASK	IFC_AMASK(64*1024*1024)  #define CONFIG_SYS_NOR_CSOR	CSOR_NOR_ADM_SHIFT(4) +  #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(0x1e) | \ -				FTIM1_NOR_TRAD_NOR(0x0f) | \ -				FTIM1_NOR_TSEQRAD_NOR(0x0f)) +#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 diff --git a/include/configs/P1010RDB.h b/include/configs/P1010RDB.h index ba3f7c282..c6b9acac3 100644 --- a/include/configs/P1010RDB.h +++ b/include/configs/P1010RDB.h @@ -120,7 +120,11 @@  #endif  /* controller 2, Slot 2, tgtid 2, Base address 9000 */ +#if defined(CONFIG_P1010RDB_PA)  #define CONFIG_SYS_PCIE2_NAME		"PCIe Slot" +#elif defined(CONFIG_P1010RDB_PB) +#define CONFIG_SYS_PCIE2_NAME		"mini PCIe Slot" +#endif  #define CONFIG_SYS_PCIE2_MEM_VIRT	0xa0000000  #ifdef CONFIG_PHYS_64BIT  #define CONFIG_SYS_PCIE2_MEM_BUS	0xc0000000 @@ -152,10 +156,7 @@  #define CONFIG_DDR_CLK_FREQ	66666666 /* DDRCLK on P1010 RDB */  #define CONFIG_SYS_CLK_FREQ	66666666 /* SYSCLK for P1010 RDB */ -#ifndef CONFIG_SDCARD  #define CONFIG_MISC_INIT_R -#endif -  #define CONFIG_HWCONFIG  /*   * These can be toggled for performance analysis, otherwise use default. @@ -203,25 +204,24 @@ extern unsigned long get_sdram_size(void);  #define CONFIG_SYS_DDR_INIT_ADDR	0x00000000  #define CONFIG_SYS_DDR_INIT_EXT_ADDR	0x00000000  #define CONFIG_SYS_DDR_MODE_CONTROL	0x00000000 -  #define CONFIG_SYS_DDR_ZQ_CONTROL	0x89080600  #define CONFIG_SYS_DDR_SR_CNTR		0x00000000  #define CONFIG_SYS_DDR_RCW_1		0x00000000  #define CONFIG_SYS_DDR_RCW_2		0x00000000 -#define CONFIG_SYS_DDR_CONTROL		0x470C0000	/* Type = DDR3  */ -#define CONFIG_SYS_DDR_CONTROL_2	0x04401010 +#define CONFIG_SYS_DDR_CONTROL		0xc70c0008      /* Type = DDR3  */ +#define CONFIG_SYS_DDR_CONTROL_2	0x24401000  #define CONFIG_SYS_DDR_TIMING_4		0x00000001  #define CONFIG_SYS_DDR_TIMING_5		0x03402400 -#define CONFIG_SYS_DDR_TIMING_3_800	0x00020000 -#define CONFIG_SYS_DDR_TIMING_0_800	0x00330004 -#define CONFIG_SYS_DDR_TIMING_1_800	0x6f6B4644 +#define CONFIG_SYS_DDR_TIMING_3_800	0x00030000 +#define CONFIG_SYS_DDR_TIMING_0_800	0x00110104 +#define CONFIG_SYS_DDR_TIMING_1_800	0x6f6b8644  #define CONFIG_SYS_DDR_TIMING_2_800	0x0FA888CF  #define CONFIG_SYS_DDR_CLK_CTRL_800	0x03000000 -#define CONFIG_SYS_DDR_MODE_1_800	0x40461520 -#define CONFIG_SYS_DDR_MODE_2_800	0x8000c000 +#define CONFIG_SYS_DDR_MODE_1_800	0x00441420 +#define CONFIG_SYS_DDR_MODE_2_800	0x00000000  #define CONFIG_SYS_DDR_INTERVAL_800	0x0C300100 -#define CONFIG_SYS_DDR_WRLVL_CONTROL_800	0x8655A608 +#define CONFIG_SYS_DDR_WRLVL_CONTROL_800 0x8675f608  /* settings for DDR3 at 667MT/s */  #define CONFIG_SYS_DDR_TIMING_3_667		0x00010000 @@ -256,10 +256,6 @@ extern unsigned long get_sdram_size(void);   * 0xffe0_0000	0xffef_ffff	CCSR			1M non-cacheable   */ -/* In case of SD card boot, IFC interface is not available because of muxing */ -#ifdef CONFIG_SDCARD -#define CONFIG_SYS_NO_FLASH -#else  /*   * IFC Definitions   */ @@ -322,6 +318,8 @@ extern unsigned long get_sdram_size(void);  				| CSPR_MSEL_NAND	\  				| CSPR_V)  #define CONFIG_SYS_NAND_AMASK	IFC_AMASK(64*1024) + +#if defined(CONFIG_P1010RDB_PA)  #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 */ \ @@ -329,13 +327,26 @@ extern unsigned long get_sdram_size(void);  				| CSOR_NAND_PGS_512	/* Page Size = 512b */ \  				| CSOR_NAND_SPRZ_16	/* Spare size = 16 */ \  				| CSOR_NAND_PB(32))	/* 32 Pages Per Block */ +#define CONFIG_SYS_NAND_BLOCK_SIZE	(16 * 1024) + +#elif defined(CONFIG_P1010RDB_PB) +#define CONFIG_SYS_NAND_ONFI_DETECTION +#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(128))  /*Pages Per Block = 128 */ +#define CONFIG_SYS_NAND_BLOCK_SIZE     (512 * 1024) +#endif  #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	(16 * 1024) +#if defined(CONFIG_P1010RDB_PA)  /* NAND Flash Timing Params */  #define CONFIG_SYS_NAND_FTIM0		FTIM0_NAND_TCCST(0x01) | \  					FTIM0_NAND_TWP(0x0C)   | \ @@ -350,6 +361,23 @@ extern unsigned long get_sdram_size(void);  					FTIM2_NAND_TWHRE(0x0f)  #define CONFIG_SYS_NAND_FTIM3		FTIM3_NAND_TWW(0x04) +#elif defined(CONFIG_P1010RDB_PB) +/* support MT29F16G08ABABAWP 4k-pagesize 2G-bytes NAND */ +/* 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 +#endif +  #define CONFIG_SYS_NAND_DDR_LAW		11  /* Set up IFC registers for boot location NOR/NAND */ @@ -410,7 +438,6 @@ extern unsigned long get_sdram_size(void);  					FTIM2_GPCM_TCH(0x0) | \  					FTIM2_GPCM_TWP(0x1f))  #define CONFIG_SYS_CS3_FTIM3		0x0 -#endif	/* CONFIG_SDCARD */  #if defined(CONFIG_RAMBOOT_SDCARD) || defined(CONFIG_RAMBOOT_SPIFLASH)  #define CONFIG_SYS_RAMBOOT @@ -482,9 +509,21 @@ extern unsigned long get_sdram_size(void);  #define CONFIG_SYS_FSL_I2C2_SPEED	400000  #define CONFIG_SYS_FSL_I2C2_SLAVE	0x7F  #define CONFIG_SYS_FSL_I2C2_OFFSET	0x3100 +#define I2C_PCA9557_ADDR1		0x18 +#define I2C_PCA9557_ADDR2		0x19 +#define I2C_PCA9557_BUS_NUM		0  /* I2C EEPROM */ -#undef CONFIG_ID_EEPROM +#if defined(CONFIG_P1010RDB_PB) +#define CONFIG_ID_EEPROM +#ifdef CONFIG_ID_EEPROM +#define CONFIG_SYS_I2C_EEPROM_NXID +#endif +#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN	1 +#define CONFIG_SYS_I2C_EEPROM_ADDR	0x57 +#define CONFIG_SYS_EEPROM_BUS_NUM	0 +#define MAX_NUM_PORTS			9 /* for 128Bytes EEPROM */ +#endif  /* enable read and write access to EEPROM */  #define CONFIG_CMD_EEPROM  #define CONFIG_SYS_I2C_MULTI_EEPROMS @@ -567,12 +606,7 @@ extern unsigned long get_sdram_size(void);  #define CONFIG_LBA48  #endif /* #ifdef CONFIG_FSL_SATA  */ -/*  SD interface will only be available in case of SD boot */ -#ifdef CONFIG_SDCARD  #define CONFIG_MMC -#define CONFIG_DEF_HWCONFIG		esdhc -#endif -  #ifdef CONFIG_MMC  #define CONFIG_CMD_MMC  #define CONFIG_DOS_PARTITION @@ -613,9 +647,14 @@ extern unsigned long get_sdram_size(void);  #define CONFIG_ENV_SIZE		0x2000  #elif defined(CONFIG_NAND)  #define CONFIG_ENV_IS_IN_NAND +#if defined(CONFIG_P1010RDB_PA)  #define CONFIG_ENV_SIZE		CONFIG_SYS_NAND_BLOCK_SIZE +#define CONFIG_ENV_RANGE	(3 * CONFIG_ENV_SIZE) /* 3*16=48K for env */ +#elif defined(CONFIG_P1010RDB_PB) +#define CONFIG_ENV_SIZE		(16 * 1024) +#define CONFIG_ENV_RANGE	(32 * CONFIG_ENV_SIZE) /* new block size 512K */ +#endif  #define CONFIG_ENV_OFFSET	((512 * 1024) + CONFIG_SYS_NAND_BLOCK_SIZE) -#define CONFIG_ENV_RANGE	(3 * CONFIG_ENV_SIZE)  #elif defined(CONFIG_SYS_RAMBOOT)  #define CONFIG_ENV_IS_NOWHERE		/* Store ENV in memory only */  #define CONFIG_ENV_ADDR			(CONFIG_SYS_MONITOR_BASE - 0x1000) @@ -708,7 +747,6 @@ extern unsigned long get_sdram_size(void);  #define CONFIG_HAS_ETH2  #endif -#define CONFIG_HOSTNAME		P1010RDB  #define CONFIG_ROOTPATH		"/opt/nfsroot"  #define CONFIG_BOOTFILE		"uImage"  #define CONFIG_UBOOTPATH	u-boot.bin/* U-Boot image on TFTP server */ @@ -747,7 +785,31 @@ extern unsigned long get_sdram_size(void);  	"ext2load usb 0:4 $loadaddr $bootfile;"		\  	"ext2load usb 0:4 $fdtaddr $fdtfile;"	\  	"ext2load usb 0:4 $ramdiskaddr $ramdiskfile;"	\ -	"bootm $loadaddr $ramdiskaddr $fdtaddr\0"		\ +	"bootm $loadaddr $ramdiskaddr $fdtaddr\0"	\ +	CONFIG_BOOTMODE + +#if defined(CONFIG_P1010RDB_PA) +#define CONFIG_BOOTMODE \ +	"boot_bank0=i2c dev 0; i2c mw 18 1 f1; i2c mw 18 3 f0;" \ +	"mw.b ffb00011 0; mw.b ffb00009 0; reset\0" \ +	"boot_bank1=i2c dev 0; i2c mw 18 1 f1; i2c mw 18 3 f0;" \ +	"mw.b ffb00011 0; mw.b ffb00009 1; reset\0" \ +	"boot_nand=i2c dev 0; i2c mw 18 1 f9; i2c mw 18 3 f0;" \ +	"mw.b ffb00011 0; mw.b ffb00017 1; reset\0" + +#elif defined(CONFIG_P1010RDB_PB) +#define CONFIG_BOOTMODE \ +	"boot_bank0=i2c dev 0; i2c mw 18 1 fe; i2c mw 18 3 0;" \ +	"i2c mw 19 1 2; i2c mw 19 3 e1; reset\0" \ +	"boot_bank1=i2c dev 0; i2c mw 18 1 fe; i2c mw 18 3 0;" \ +	"i2c mw 19 1 12; i2c mw 19 3 e1; reset\0" \ +	"boot_nand=i2c dev 0; i2c mw 18 1 fc; i2c mw 18 3 0;" \ +	"i2c mw 19 1 8; i2c mw 19 3 f7; reset\0" \ +	"boot_spi=i2c dev 0; i2c mw 18 1 fa; i2c mw 18 3 0;" \ +	"i2c mw 19 1 0; i2c mw 19 3 f7; reset\0" \ +	"boot_sd=i2c dev 0; i2c mw 18 1 f8; i2c mw 18 3 0;" \ +	"i2c mw 19 1 4; i2c mw 19 3 f3; reset\0" +#endif  #define CONFIG_RAMBOOTCOMMAND		\  	"setenv bootargs root=/dev/ram rw "	\ @@ -759,8 +821,6 @@ extern unsigned long get_sdram_size(void);  #define CONFIG_BOOTCOMMAND CONFIG_RAMBOOTCOMMAND -#ifdef CONFIG_SECURE_BOOT  #include <asm/fsl_secure_boot.h> -#endif  #endif	/* __CONFIG_H */ diff --git a/include/configs/P2041RDB.h b/include/configs/P2041RDB.h index 862614b5c..2c4159b33 100644 --- a/include/configs/P2041RDB.h +++ b/include/configs/P2041RDB.h @@ -746,8 +746,6 @@ unsigned long get_board_sys_clk(unsigned long dummy);  #define CONFIG_BOOTCOMMAND		CONFIG_HDBOOT -#ifdef CONFIG_SECURE_BOOT  #include <asm/fsl_secure_boot.h> -#endif  #endif	/* __CONFIG_H */ diff --git a/include/configs/T1040QDS.h b/include/configs/T1040QDS.h new file mode 100644 index 000000000..2738242c5 --- /dev/null +++ b/include/configs/T1040QDS.h @@ -0,0 +1,761 @@ +/* + * 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 QDS board configuration file + */ +#define CONFIG_T1040QDS +#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 + +#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() /* sysclk for MPC85xx */ +#define CONFIG_DDR_CLK_FREQ	get_board_ddr_clk() + +/* + * 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 + +/* 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 +#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 +#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5 + +/* + * 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_FSL_DDR3 +#define CONFIG_FSL_DDR_INTERACTIVE + +#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	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_BASE_PHYS		(0xf00000000ull | QIXIS_BASE) +#define QIXIS_LBMAP_SWITCH		0x06 +#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		0x31 +#define QIXIS_RCFG_CTL_RECONFIG_IDLE	0x20 +#define QIXIS_RCFG_CTL_RECONFIG_START	0x21 +#define QIXIS_RCFG_CTL_WATCHDOG_ENBLE	0x08 + +#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 + +#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_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_CSPR1_EXT		CONFIG_SYS_NOR0_CSPR_EXT +#define CONFIG_SYS_CSPR1		CONFIG_SYS_NOR0_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 +#define CONFIG_SYS_CSPR2_EXT		CONFIG_SYS_NOR1_CSPR_EXT +#define CONFIG_SYS_CSPR2		CONFIG_SYS_NOR1_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_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 +#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_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 + +#define I2C_MUX_PCA_ADDR		0x77 +#define I2C_MUX_PCA_ADDR_PRI		0x77 /* Primary Mux*/ + + +/* I2C bus multiplexer */ +#define I2C_MUX_CH_DEFAULT      0x8 + +/* + * RTC configuration + */ +#define RTC +#define CONFIG_RTC_DS3231               1 +#define CONFIG_SYS_I2C_RTC_ADDR         0x68 + +/* + * eSPI - Enhanced SPI + */ +#define CONFIG_FSL_ESPI +#define CONFIG_SPI_FLASH +#define CONFIG_SPI_FLASH_STMICRO +#define CONFIG_SPI_FLASH_SST +#define CONFIG_SPI_FLASH_EON +#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	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 +*/ +#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_PHYLIB_10G +#define CONFIG_PHY_VITESSE +#define CONFIG_PHY_REALTEK +#define CONFIG_PHY_TERANETICS +#define SGMII_CARD_PORT1_PHY_ADDR 0x1C +#define SGMII_CARD_PORT2_PHY_ADDR 0x10 +#define SGMII_CARD_PORT3_PHY_ADDR 0x1E +#define SGMII_CARD_PORT4_PHY_ADDR 0x11 +#endif + +#ifdef CONFIG_FMAN_ENET +#define CONFIG_SYS_FM1_DTSEC5_PHY_ADDR	0x10 +#define CONFIG_SYS_FM1_DTSEC6_PHY_ADDR	0x11 +#define CONFIG_SYS_FM1_10GEC1_PHY_ADDR	4 + +#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_DATE +#define CONFIG_CMD_DHCP +#define CONFIG_CMD_EEPROM +#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=t1040qds/ramdisk.uboot\0"			\ +	"fdtaddr=c00000\0"					\ +	"fdtfile=t1040qds/t1040qds.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/T4240QDS.h b/include/configs/T4240QDS.h index 92a30ab09..590799cf5 100644 --- a/include/configs/T4240QDS.h +++ b/include/configs/T4240QDS.h @@ -553,8 +553,6 @@ unsigned long get_board_ddr_clk(void);  #define CONFIG_BOOTCOMMAND		CONFIG_LINUX -#ifdef CONFIG_SECURE_BOOT  #include <asm/fsl_secure_boot.h> -#endif  #endif	/* __CONFIG_H */ diff --git a/include/configs/am43xx_evm.h b/include/configs/am43xx_evm.h index 5c802a154..64c48117b 100644 --- a/include/configs/am43xx_evm.h +++ b/include/configs/am43xx_evm.h @@ -24,6 +24,7 @@  #define CONFIG_SYS_HUSH_PARSER		/* use "hush" command parser */  #define CONFIG_SYS_PROMPT		"U-Boot# "  #define CONFIG_SYS_NO_FLASH +#define CONFIG_SYS_CACHELINE_SIZE 32  #define CONFIG_OF_LIBFDT  #define CONFIG_CMD_BOOTZ @@ -132,4 +133,14 @@  /* Unsupported features */  #undef CONFIG_USE_IRQ +#define CONFIG_CMD_USB +#define CONFIG_USB_HOST +#define CONFIG_USB_XHCI +#define CONFIG_USB_XHCI_OMAP +#define CONFIG_USB_STORAGE +#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2 + +#define CONFIG_OMAP_USB_PHY +#define CONFIG_AM437X_USB2PHY2_HOST +  #endif	/* __CONFIG_AM43XX_EVM_H */ diff --git a/include/configs/apf27.h b/include/configs/apf27.h index e7e258fa6..1193013ea 100644 --- a/include/configs/apf27.h +++ b/include/configs/apf27.h @@ -321,11 +321,12 @@   */  #ifdef CONFIG_CMD_I2C -#define CONFIG_HARD_I2C -#define CONFIG_I2C_MXC -#define CONFIG_SYS_I2C_BASE		IMX_I2C1_BASE -#define CONFIG_SYS_I2C_SPEED		100000	/* 100 kHz */ -#define CONFIG_SYS_I2C_SLAVE		0x7F +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC +#define CONFIG_SYS_MXC_I2C1_SPEED	100000	/* 100 kHz */ +#define CONFIG_SYS_MXC_I2C1_SLAVE	0x7F +#define CONFIG_SYS_MXC_I2C2_SPEED	100000	/* 100 kHz */ +#define CONFIG_SYS_MXC_I2C2_SLAVE	0x7F  #define CONFIG_SYS_I2C_NOPROBES		{ }  #ifdef CONFIG_CMD_EEPROM diff --git a/include/configs/corenet_ds.h b/include/configs/corenet_ds.h index c3fb80c8d..34b3aace7 100644 --- a/include/configs/corenet_ds.h +++ b/include/configs/corenet_ds.h @@ -700,8 +700,8 @@  #define	CONFIG_EXTRA_ENV_SETTINGS				\  	"hwconfig=fsl_ddr:ctlr_intlv=cacheline,"		\  	"bank_intlv=cs0_cs1;"					\ -	"usb2:dr_mode=peripheral,phy_type=" __stringify(__USB_PHY_TYPE) ";"\ -	"usb1:dr_mode=host,phy_type=" __stringify(__USB_PHY_TYPE) "\0"\ +	"usb1:dr_mode=host,phy_type=" __stringify(__USB_PHY_TYPE) ";"\ +	"usb2:dr_mode=peripheral,phy_type=" __stringify(__USB_PHY_TYPE) "\0"\  	"netdev=eth0\0"						\  	"uboot=" __stringify(CONFIG_UBOOTPATH) "\0"		\  	"ubootaddr=" __stringify(CONFIG_SYS_TEXT_BASE) "\0"	\ @@ -745,8 +745,6 @@  #define CONFIG_BOOTCOMMAND		CONFIG_HDBOOT -#ifdef CONFIG_SECURE_BOOT  #include <asm/fsl_secure_boot.h> -#endif  #endif	/* __CONFIG_H */ diff --git a/include/configs/dra7xx_evm.h b/include/configs/dra7xx_evm.h index 3a4c06bc8..a9f39f24e 100644 --- a/include/configs/dra7xx_evm.h +++ b/include/configs/dra7xx_evm.h @@ -67,4 +67,15 @@  #define CONFIG_SPL_SPI_CS              0  #define CONFIG_SYS_SPI_U_BOOT_OFFS     0x20000 +/* USB xHCI HOST */ +#define CONFIG_CMD_USB +#define CONFIG_USB_HOST +#define CONFIG_USB_XHCI +#define CONFIG_USB_XHCI_OMAP +#define CONFIG_USB_STORAGE +#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2 + +#define CONFIG_OMAP_USB_PHY +#define CONFIG_OMAP_USB2PHY2_HOST +  #endif /* __CONFIG_DRA7XX_EVM_H */ diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h index 8c21909d6..8c07d8f75 100644 --- a/include/configs/exynos5250-dt.h +++ b/include/configs/exynos5250-dt.h @@ -37,6 +37,8 @@  /* Keep L2 Cache Disabled */  #define CONFIG_SYS_DCACHE_OFF +#define CONFIG_SYS_CACHELINE_SIZE	64 +  /* Enable ACE acceleration for SHA1 and SHA256 */  #define CONFIG_EXYNOS_ACE_SHA  #define CONFIG_SHA_HW_ACCEL @@ -132,8 +134,9 @@  /* USB */  #define CONFIG_CMD_USB -#define CONFIG_USB_EHCI -#define CONFIG_USB_EHCI_EXYNOS +#define CONFIG_USB_XHCI +#define CONFIG_USB_XHCI_EXYNOS +#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS	2  #define CONFIG_USB_STORAGE  /* USB boot mode */ diff --git a/include/configs/flea3.h b/include/configs/flea3.h index 655df6796..1781089ec 100644 --- a/include/configs/flea3.h +++ b/include/configs/flea3.h @@ -50,11 +50,10 @@  /*   * Hardware drivers   */ -#define CONFIG_HARD_I2C -#define CONFIG_I2C_MXC -#define CONFIG_SYS_I2C_BASE		I2C3_BASE_ADDR -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		0xfe +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC +#define CONFIG_SYS_SPD_BUS_NUM		2 /* I2C3 */ +#define CONFIG_SYS_MXC_I2C3_SLAVE	0xfe  #define CONFIG_MXC_SPI  #define CONFIG_MXC_GPIO diff --git a/include/configs/imx31_phycore.h b/include/configs/imx31_phycore.h index 1e2b12cb2..6b99d1bd3 100644 --- a/include/configs/imx31_phycore.h +++ b/include/configs/imx31_phycore.h @@ -35,11 +35,10 @@   * Hardware drivers   */ -#define CONFIG_HARD_I2C -#define CONFIG_I2C_MXC -#define CONFIG_SYS_I2C_BASE		I2C2_BASE_ADDR +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC +#define CONFIG_SYS_SPD_BUS_NUM		1 /* I2C2 */  #define CONFIG_SYS_I2C_CLK_OFFSET	I2C2_CLK_OFFSET -#define CONFIG_SYS_I2C_SPEED		100000  #define CONFIG_MXC_UART  #define CONFIG_MXC_UART_BASE		UART1_BASE diff --git a/include/configs/m53evk.h b/include/configs/m53evk.h index 024d3a5aa..d7ca66b99 100644 --- a/include/configs/m53evk.h +++ b/include/configs/m53evk.h @@ -161,10 +161,9 @@   * I2C   */  #ifdef CONFIG_CMD_I2C -#define CONFIG_HARD_I2C -#define CONFIG_I2C_MXC -#define CONFIG_SYS_I2C_BASE		I2C2_BASE_ADDR -#define CONFIG_SYS_I2C_SPEED		100000 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC +#define CONFIG_SYS_SPD_BUS_NUM		1 /* I2C2 */  #endif  /* diff --git a/include/configs/mx25pdk.h b/include/configs/mx25pdk.h index 543c4159e..256b3c1be 100644 --- a/include/configs/mx25pdk.h +++ b/include/configs/mx25pdk.h @@ -111,10 +111,9 @@  /* I2C Configs */  #define CONFIG_CMD_I2C -#define CONFIG_HARD_I2C -#define CONFIG_I2C_MXC -#define CONFIG_SYS_I2C_BASE		IMX_I2C_BASE -#define CONFIG_SYS_I2C_SPEED		100000 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC +#define CONFIG_SYS_SPD_BUS_NUM		0 /* I2C1 */  /* RTC */  #define CONFIG_RTC_IMXDI diff --git a/include/configs/mx35pdk.h b/include/configs/mx35pdk.h index 2f59104b8..2d1b800c3 100644 --- a/include/configs/mx35pdk.h +++ b/include/configs/mx35pdk.h @@ -40,10 +40,9 @@  /*   * Hardware drivers   */ -#define CONFIG_HARD_I2C -#define CONFIG_I2C_MXC -#define CONFIG_SYS_I2C_BASE		I2C1_BASE_ADDR -#define CONFIG_SYS_I2C_SPEED		100000 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC +#define CONFIG_SYS_SPD_BUS_NUM		0 /* I2C1 */  #define CONFIG_MXC_SPI  #define CONFIG_MXC_GPIO diff --git a/include/configs/mx53ard.h b/include/configs/mx53ard.h index 7956083c3..b404247ef 100644 --- a/include/configs/mx53ard.h +++ b/include/configs/mx53ard.h @@ -44,10 +44,9 @@  /* I2C Configs */  #define CONFIG_CMD_I2C -#define CONFIG_HARD_I2C -#define CONFIG_I2C_MXC -#define CONFIG_SYS_I2C_BASE		I2C2_BASE_ADDR -#define CONFIG_SYS_I2C_SPEED            100000 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC +#define CONFIG_SYS_SPD_BUS_NUM		1 /* I2C2 */  /* MMC Configs */  #define CONFIG_FSL_ESDHC diff --git a/include/configs/mx53evk.h b/include/configs/mx53evk.h index fe5cf3c70..d9c7df5b2 100644 --- a/include/configs/mx53evk.h +++ b/include/configs/mx53evk.h @@ -37,10 +37,9 @@  /* I2C Configs */  #define CONFIG_CMD_I2C -#define CONFIG_HARD_I2C -#define CONFIG_I2C_MXC -#define CONFIG_SYS_I2C_BASE		I2C2_BASE_ADDR -#define CONFIG_SYS_I2C_SPEED            100000 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC +#define CONFIG_SYS_SPD_BUS_NUM		1 /* I2C2 */  /* PMIC Configs */  #define CONFIG_POWER diff --git a/include/configs/mx53loco.h b/include/configs/mx53loco.h index bd2fa43b9..5f343b13b 100644 --- a/include/configs/mx53loco.h +++ b/include/configs/mx53loco.h @@ -71,10 +71,9 @@  #define CONFIG_MXC_USB_FLAGS	0  /* I2C Configs */ -#define CONFIG_HARD_I2C -#define CONFIG_I2C_MXC -#define CONFIG_SYS_I2C_BASE		I2C1_BASE_ADDR -#define CONFIG_SYS_I2C_SPEED		100000 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC +#define CONFIG_SYS_SPD_BUS_NUM		0 /* I2C1 */  /* PMIC Controller */  #define CONFIG_POWER diff --git a/include/configs/mx53smd.h b/include/configs/mx53smd.h index 12b2c0de8..2f7736d50 100644 --- a/include/configs/mx53smd.h +++ b/include/configs/mx53smd.h @@ -34,10 +34,9 @@  /* I2C Configs */  #define CONFIG_CMD_I2C -#define CONFIG_HARD_I2C -#define CONFIG_I2C_MXC -#define CONFIG_SYS_I2C_BASE		I2C2_BASE_ADDR -#define CONFIG_SYS_I2C_SPEED            100000 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC +#define CONFIG_SYS_SPD_BUS_NUM		1 /* I2C2 */  /* MMC Configs */  #define CONFIG_FSL_ESDHC diff --git a/include/configs/mx6qsabreauto.h b/include/configs/mx6qsabreauto.h index 5530fc6f2..dbbb6f031 100644 --- a/include/configs/mx6qsabreauto.h +++ b/include/configs/mx6qsabreauto.h @@ -23,7 +23,8 @@  #define CONFIG_USB_STORAGE  #define CONFIG_USB_HOST_ETHER  #define CONFIG_USB_ETHER_ASIX -#define CONFIG_MXC_USB_PORT	1 +#define CONFIG_USB_MAX_CONTROLLER_COUNT 2 +#define CONFIG_EHCI_HCD_INIT_AFTER_RESET	/* For OTG port */  #define CONFIG_MXC_USB_PORTSC	(PORT_PTS_UTMI | PORT_PTS_PTW)  #define CONFIG_MXC_USB_FLAGS	0 @@ -36,8 +37,8 @@  /* I2C Configs */  #define CONFIG_CMD_I2C -#define CONFIG_I2C_MULTI_BUS -#define CONFIG_I2C_MXC +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC  #define CONFIG_SYS_I2C_SPEED		100000  #endif                         /* __MX6QSABREAUTO_CONFIG_H */ diff --git a/include/configs/nitrogen6x.h b/include/configs/nitrogen6x.h index 3454b862a..85fe5ee94 100644 --- a/include/configs/nitrogen6x.h +++ b/include/configs/nitrogen6x.h @@ -30,6 +30,12 @@  #define CONFIG_BOARD_EARLY_INIT_F  #define CONFIG_MISC_INIT_R  #define CONFIG_MXC_GPIO +#define CONFIG_MV_UDC +#define CONFIG_USBD_HS +#define CONFIG_USB_GADGET_DUALSPEED +#define CONFIG_USB_ETHER +#define CONFIG_USB_ETH_CDC +#define CONFIG_NETCONSOLE  #define CONFIG_CMD_FUSE  #ifdef CONFIG_CMD_FUSE @@ -52,8 +58,8 @@  /* I2C Configs */  #define CONFIG_CMD_I2C -#define CONFIG_I2C_MULTI_BUS -#define CONFIG_I2C_MXC +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC  #define CONFIG_SYS_I2C_SPEED		100000  /* OCOTP Configs */ @@ -119,7 +125,8 @@  #define CONFIG_USB_HOST_ETHER  #define CONFIG_USB_ETHER_ASIX  #define CONFIG_USB_ETHER_SMSC95XX -#define CONFIG_MXC_USB_PORT	1 +#define CONFIG_USB_MAX_CONTROLLER_COUNT 2 +#define CONFIG_EHCI_HCD_INIT_AFTER_RESET	/* For OTG port */  #define CONFIG_MXC_USB_PORTSC	(PORT_PTS_UTMI | PORT_PTS_PTW)  #define CONFIG_MXC_USB_FLAGS	0 diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h index 5f0c4fb25..a435f29c2 100644 --- a/include/configs/p1_p2_rdb_pc.h +++ b/include/configs/p1_p2_rdb_pc.h @@ -144,61 +144,106 @@  #define CONFIG_SYS_L2_SIZE	(512 << 10)  #endif -#if CONFIG_SYS_L2_SIZE >= (512 << 10) -/* must be 32-bit */ -#define CONFIG_SYS_INIT_L2_ADDR	0xf8f80000 -#define CONFIG_SYS_INIT_L2_ADDR_PHYS CONFIG_SYS_INIT_L2_ADDR -#define CONFIG_SYS_INIT_L2_END  (CONFIG_SYS_INIT_L2_ADDR + CONFIG_SYS_L2_SIZE) -#endif -  #ifdef CONFIG_SDCARD -#define CONFIG_RAMBOOT_SDCARD -#define CONFIG_SYS_RAMBOOT -#define CONFIG_SYS_EXTRA_ENV_RELOC -#define CONFIG_SYS_TEXT_BASE		0x11000000 -#define CONFIG_RESET_VECTOR_ADDRESS	0x1107fffc +#define CONFIG_SPL +#define CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT +#define CONFIG_SPL_ENV_SUPPORT +#define CONFIG_SPL_SERIAL_SUPPORT +#define CONFIG_SPL_MMC_SUPPORT +#define CONFIG_SPL_MMC_MINIMAL +#define CONFIG_SPL_FLUSH_IMAGE +#define CONFIG_SPL_TARGET		"u-boot-with-spl.bin" +#define CONFIG_SPL_LIBGENERIC_SUPPORT +#define CONFIG_SPL_LIBCOMMON_SUPPORT +#define CONFIG_SPL_I2C_SUPPORT +#define CONFIG_FSL_LAW                 /* Use common FSL init code */ +#define CONFIG_SYS_TEXT_BASE		0x11001000 +#define CONFIG_SPL_TEXT_BASE		0xf8f81000 +#define CONFIG_SPL_PAD_TO		0x18000 +#define CONFIG_SPL_MAX_SIZE		(96 * 1024) +#define CONFIG_SYS_MMC_U_BOOT_SIZE	(512 << 10) +#define CONFIG_SYS_MMC_U_BOOT_DST	(0x11000000) +#define CONFIG_SYS_MMC_U_BOOT_START	(0x11000000) +#define CONFIG_SYS_MMC_U_BOOT_OFFS	(96 << 10) +#define CONFIG_SYS_MPC85XX_NO_RESETVEC +#define CONFIG_SYS_LDSCRIPT	"arch/powerpc/cpu/mpc85xx/u-boot.lds" +#define CONFIG_SPL_MMC_BOOT +#ifdef CONFIG_SPL_BUILD +#define CONFIG_SPL_COMMON_INIT_DDR +#endif  #endif  #ifdef CONFIG_SPIFLASH -#define CONFIG_RAMBOOT_SPIFLASH -#define CONFIG_SYS_RAMBOOT -#define CONFIG_SYS_EXTRA_ENV_RELOC -#define CONFIG_SYS_TEXT_BASE		0x11000000 -#define CONFIG_RESET_VECTOR_ADDRESS	0x1107fffc +#define CONFIG_SPL +#define CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT +#define CONFIG_SPL_ENV_SUPPORT +#define CONFIG_SPL_SERIAL_SUPPORT +#define CONFIG_SPL_SPI_SUPPORT +#define CONFIG_SPL_SPI_FLASH_SUPPORT +#define CONFIG_SPL_SPI_FLASH_MINIMAL +#define CONFIG_SPL_FLUSH_IMAGE +#define CONFIG_SPL_TARGET		"u-boot-with-spl.bin" +#define CONFIG_SPL_LIBGENERIC_SUPPORT +#define CONFIG_SPL_LIBCOMMON_SUPPORT +#define CONFIG_SPL_I2C_SUPPORT +#define CONFIG_FSL_LAW         /* Use common FSL init code */ +#define CONFIG_SYS_TEXT_BASE		0x11001000 +#define CONFIG_SPL_TEXT_BASE		0xf8f81000 +#define CONFIG_SPL_PAD_TO		0x18000 +#define CONFIG_SPL_MAX_SIZE		(96 * 1024) +#define CONFIG_SYS_SPI_FLASH_U_BOOT_SIZE	(512 << 10) +#define CONFIG_SYS_SPI_FLASH_U_BOOT_DST		(0x11000000) +#define CONFIG_SYS_SPI_FLASH_U_BOOT_START	(0x11000000) +#define CONFIG_SYS_SPI_FLASH_U_BOOT_OFFS	(96 << 10) +#define CONFIG_SYS_MPC85XX_NO_RESETVEC +#define CONFIG_SYS_LDSCRIPT	"arch/powerpc/cpu/mpc85xx/u-boot.lds" +#define CONFIG_SPL_SPI_BOOT +#ifdef CONFIG_SPL_BUILD +#define CONFIG_SPL_COMMON_INIT_DDR +#endif  #endif  #ifdef CONFIG_NAND  #define CONFIG_SPL +#define CONFIG_TPL +#ifdef CONFIG_TPL_BUILD +#define CONFIG_SPL_NAND_BOOT +#define CONFIG_SPL_FLUSH_IMAGE +#define CONFIG_SPL_ENV_SUPPORT +#define CONFIG_SPL_NAND_INIT +#define CONFIG_SPL_SERIAL_SUPPORT +#define CONFIG_SPL_LIBGENERIC_SUPPORT +#define CONFIG_SPL_LIBCOMMON_SUPPORT +#define CONFIG_SPL_I2C_SUPPORT +#define CONFIG_SPL_NAND_SUPPORT +#define CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT +#define CONFIG_SPL_COMMON_INIT_DDR +#define CONFIG_SPL_MAX_SIZE		(128 << 10) +#define CONFIG_SPL_TEXT_BASE		0xf8f81000 +#define CONFIG_SYS_MPC85XX_NO_RESETVEC +#define CONFIG_SYS_NAND_U_BOOT_SIZE	(576 << 10) +#define CONFIG_SYS_NAND_U_BOOT_DST	(0x11000000) +#define CONFIG_SYS_NAND_U_BOOT_START	(0x11000000) +#define CONFIG_SYS_NAND_U_BOOT_OFFS	((128 + 128) << 10) +#elif defined(CONFIG_SPL_BUILD)  #define CONFIG_SPL_INIT_MINIMAL  #define CONFIG_SPL_SERIAL_SUPPORT  #define CONFIG_SPL_NAND_SUPPORT  #define CONFIG_SPL_FLUSH_IMAGE  #define CONFIG_SPL_TARGET		"u-boot-with-spl.bin" - -#define CONFIG_SPL_TEXT_BASE		0xfffff000 +#define CONFIG_SPL_TEXT_BASE		0xff800000  #define CONFIG_SPL_MAX_SIZE		4096 +#define CONFIG_SYS_NAND_U_BOOT_SIZE	(128 << 10) +#define CONFIG_SYS_NAND_U_BOOT_DST	0xf8f80000 +#define CONFIG_SYS_NAND_U_BOOT_START	0xf8f80000 +#define CONFIG_SYS_NAND_U_BOOT_OFFS	(128 << 10) +#endif /* not CONFIG_TPL_BUILD */ -#ifdef CONFIG_SYS_INIT_L2_ADDR -/* We multiply CONFIG_SPL_MAX_SIZE by two to leave some room for BSS. */ -#define CONFIG_SYS_TEXT_BASE		0xf8f82000 -#define CONFIG_SPL_RELOC_TEXT_BASE	\ -	(CONFIG_SYS_INIT_L2_END - CONFIG_SPL_MAX_SIZE * 2) -#define CONFIG_SPL_RELOC_STACK		\ -	(CONFIG_SYS_INIT_L2_END - CONFIG_SPL_MAX_SIZE * 2) -#define CONFIG_SYS_NAND_U_BOOT_DST	(CONFIG_SYS_INIT_L2_ADDR) -#define CONFIG_SYS_NAND_U_BOOT_START	\ -	(CONFIG_SYS_INIT_L2_ADDR + CONFIG_SPL_MAX_SIZE) -#else -#define CONFIG_SYS_TEXT_BASE		0x00201000 -#define CONFIG_SPL_RELOC_TEXT_BASE	0x00100000 -#define CONFIG_SPL_RELOC_STACK		0x00100000 -#define CONFIG_SYS_NAND_U_BOOT_DST	(0x00200000 - CONFIG_SPL_MAX_SIZE) -#define CONFIG_SYS_NAND_U_BOOT_START	0x00200000 -#endif - -#define CONFIG_SYS_NAND_U_BOOT_SIZE	((512 << 10) - 0x2000) -#define CONFIG_SYS_NAND_U_BOOT_OFFS	0 -#define CONFIG_SYS_LDSCRIPT		"arch/powerpc/cpu/mpc85xx/u-boot-nand.lds" +#define CONFIG_SPL_PAD_TO		0x20000 +#define CONFIG_TPL_PAD_TO		0x20000 +#define CONFIG_SPL_TARGET		"u-boot-with-spl.bin" +#define CONFIG_SYS_TEXT_BASE		0x11001000 +#define CONFIG_SYS_LDSCRIPT	"arch/powerpc/cpu/mpc85xx/u-boot-nand.lds"  #endif  #ifndef CONFIG_SYS_TEXT_BASE @@ -526,6 +571,40 @@  #define CONFIG_VSC7385_IMAGE_SIZE	8192  #endif +/* + * Config the L2 Cache as L2 SRAM +*/ +#if defined(CONFIG_SPL_BUILD) +#if defined(CONFIG_SDCARD) || defined(CONFIG_SPIFLASH) +#define CONFIG_SYS_INIT_L2_ADDR		0xf8f80000 +#define CONFIG_SYS_INIT_L2_ADDR_PHYS	CONFIG_SYS_INIT_L2_ADDR +#define CONFIG_SYS_INIT_L2_END	(CONFIG_SYS_INIT_L2_ADDR + CONFIG_SYS_L2_SIZE) +#define CONFIG_SPL_RELOC_TEXT_BASE	0xf8f81000 +#define CONFIG_SPL_RELOC_STACK		(CONFIG_SYS_INIT_L2_ADDR + 128 * 1024) +#define CONFIG_SPL_RELOC_STACK_SIZE	(32 << 10) +#define CONFIG_SPL_RELOC_MALLOC_ADDR	(CONFIG_SYS_INIT_L2_ADDR + 160 * 1024) +#define CONFIG_SPL_RELOC_MALLOC_SIZE	(96 << 10) +#define CONFIG_SPL_GD_ADDR		(CONFIG_SYS_INIT_L2_ADDR + 112 * 1024) +#elif defined(CONFIG_NAND) +#ifdef CONFIG_TPL_BUILD +#define CONFIG_SYS_INIT_L2_ADDR		0xf8f80000 +#define CONFIG_SYS_INIT_L2_ADDR_PHYS	CONFIG_SYS_INIT_L2_ADDR +#define CONFIG_SYS_INIT_L2_END	(CONFIG_SYS_INIT_L2_ADDR + CONFIG_SYS_L2_SIZE) +#define CONFIG_SPL_RELOC_TEXT_BASE	0xf8f81000 +#define CONFIG_SPL_RELOC_STACK		(CONFIG_SYS_INIT_L2_ADDR + 192 * 1024) +#define CONFIG_SPL_RELOC_MALLOC_ADDR	(CONFIG_SYS_INIT_L2_ADDR + 208 * 1024) +#define CONFIG_SPL_RELOC_MALLOC_SIZE	(48 << 10) +#define CONFIG_SPL_GD_ADDR		(CONFIG_SYS_INIT_L2_ADDR + 176 * 1024) +#else +#define CONFIG_SYS_INIT_L2_ADDR		0xf8f80000 +#define CONFIG_SYS_INIT_L2_ADDR_PHYS	CONFIG_SYS_INIT_L2_ADDR +#define CONFIG_SYS_INIT_L2_END	(CONFIG_SYS_INIT_L2_ADDR + CONFIG_SYS_L2_SIZE) +#define CONFIG_SPL_RELOC_TEXT_BASE	(CONFIG_SYS_INIT_L2_END - 0x2000) +#define CONFIG_SPL_RELOC_STACK		((CONFIG_SYS_INIT_L2_END - 1) & ~0xF) +#endif /* CONFIG_TPL_BUILD */ +#endif +#endif +  /* Serial Port - controlled on board with jumper J8   * open - index 2   * shorted - index 1 @@ -536,7 +615,7 @@  #define CONFIG_SYS_NS16550_SERIAL  #define CONFIG_SYS_NS16550_REG_SIZE	1  #define CONFIG_SYS_NS16550_CLK		get_bus_freq(0) -#ifdef CONFIG_SPL_BUILD +#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_INIT_MINIMAL)  #define CONFIG_NS16550_MIN_FUNCTIONS  #endif @@ -733,7 +812,7 @@  /*   * Environment   */ -#ifdef CONFIG_RAMBOOT_SPIFLASH +#ifdef CONFIG_SPIFLASH  #define CONFIG_ENV_IS_IN_SPI_FLASH  #define CONFIG_ENV_SPI_BUS	0  #define CONFIG_ENV_SPI_CS	0 @@ -742,15 +821,20 @@  #define CONFIG_ENV_SIZE		0x2000	/* 8KB */  #define CONFIG_ENV_OFFSET	0x100000	/* 1MB */  #define CONFIG_ENV_SECT_SIZE	0x10000 -#elif defined(CONFIG_RAMBOOT_SDCARD) +#elif defined(CONFIG_SDCARD)  #define CONFIG_ENV_IS_IN_MMC  #define CONFIG_FSL_FIXED_MMC_LOCATION  #define CONFIG_ENV_SIZE		0x2000  #define CONFIG_SYS_MMC_ENV_DEV	0  #elif defined(CONFIG_NAND) -#define CONFIG_ENV_IS_IN_NAND +#ifdef CONFIG_TPL_BUILD +#define CONFIG_ENV_SIZE		0x2000 +#define CONFIG_ENV_ADDR		(CONFIG_SYS_INIT_L2_ADDR + (160 << 10)) +#else  #define CONFIG_ENV_SIZE		CONFIG_SYS_NAND_BLOCK_SIZE -#define CONFIG_ENV_OFFSET	((512 * 1024) + CONFIG_SYS_NAND_BLOCK_SIZE) +#endif +#define CONFIG_ENV_IS_IN_NAND +#define CONFIG_ENV_OFFSET	(1024 * 1024)  #define CONFIG_ENV_RANGE	(3 * CONFIG_ENV_SIZE)  #elif defined(CONFIG_SYS_RAMBOOT)  #define CONFIG_ENV_IS_NOWHERE	/* Store ENV in memory only */ diff --git a/include/configs/titanium.h b/include/configs/titanium.h index 077e25e16..0769f07e5 100644 --- a/include/configs/titanium.h +++ b/include/configs/titanium.h @@ -41,8 +41,8 @@  /* I2C Configs */  #define CONFIG_CMD_I2C -#define CONFIG_I2C_MULTI_BUS -#define CONFIG_I2C_MXC +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC  #define CONFIG_SYS_I2C_SPEED		100000  /* MMC Configs */ diff --git a/include/configs/trats.h b/include/configs/trats.h index 24ea06b92..f5bb6aa7f 100644 --- a/include/configs/trats.h +++ b/include/configs/trats.h @@ -49,8 +49,9 @@  #define MACH_TYPE_TRATS			3928  #define CONFIG_MACH_TYPE		MACH_TYPE_TRATS +#include <asm/sizes.h>  /* Size of malloc() pool */ -#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + (16 << 20)) +#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + (80 * SZ_1M))  /* select serial console configuration */  #define CONFIG_SERIAL2			/* use SERIAL 2 */ @@ -91,12 +92,20 @@  /* USB Composite download gadget - g_dnl */  #define CONFIG_USBDOWNLOAD_GADGET + +/* TIZEN THOR downloader support */ +#define CONFIG_CMD_THOR_DOWNLOAD +#define CONFIG_THOR_FUNCTION + +#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_32M  #define CONFIG_DFU_FUNCTION  #define CONFIG_DFU_MMC  /* USB Samsung's IDs */  #define CONFIG_G_DNL_VENDOR_NUM 0x04E8  #define CONFIG_G_DNL_PRODUCT_NUM 0x6601 +#define CONFIG_G_DNL_THOR_VENDOR_NUM CONFIG_G_DNL_VENDOR_NUM +#define CONFIG_G_DNL_THOR_PRODUCT_NUM 0x685D  #define CONFIG_G_DNL_MANUFACTURER "Samsung"  #define CONFIG_BOOTDELAY		1 @@ -131,7 +140,8 @@  #define CONFIG_DFU_ALT \  	"u-boot mmc 80 400;" \  	"uImage ext4 0 2;" \ -	"exynos4210-trats.dtb ext4 0 2\0" +	"exynos4210-trats.dtb ext4 0 2;" \ +	""PARTS_ROOT" part 0 5\0"  #define CONFIG_ENV_OVERWRITE  #define CONFIG_SYS_CONSOLE_INFO_QUIET diff --git a/include/configs/vf610twr.h b/include/configs/vf610twr.h index 5a7a06637..34861f652 100644 --- a/include/configs/vf610twr.h +++ b/include/configs/vf610twr.h @@ -70,10 +70,9 @@  /* I2C Configs */  #define CONFIG_CMD_I2C -#define CONFIG_HARD_I2C -#define CONFIG_I2C_MXC -#define CONFIG_SYS_I2C_BASE		I2C0_BASE_ADDR -#define CONFIG_SYS_I2C_SPEED		100000 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC +#define CONFIG_SYS_SPD_BUS_NUM		0  #define CONFIG_BOOTDELAY		3 diff --git a/include/configs/woodburn_common.h b/include/configs/woodburn_common.h index 5c442ad86..8770e9c69 100644 --- a/include/configs/woodburn_common.h +++ b/include/configs/woodburn_common.h @@ -45,10 +45,9 @@  /*   * Hardware drivers   */ -#define CONFIG_HARD_I2C -#define CONFIG_I2C_MXC -#define CONFIG_SYS_I2C_BASE		I2C1_BASE_ADDR -#define CONFIG_SYS_I2C_SPEED		100000 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC +#define CONFIG_SYS_SPD_BUS_NUM		0  #define CONFIG_MXC_SPI  #define CONFIG_MXC_GPIO diff --git a/include/ddr_spd.h b/include/ddr_spd.h index f5809e5e1..15a3e8d35 100644 --- a/include/ddr_spd.h +++ b/include/ddr_spd.h @@ -126,8 +126,8 @@ typedef struct ddr2_spd_eeprom_s {  	unsigned char tdqsq;       /* 44 Max DQS to DQ skew (tDQSQ max) */  	unsigned char tqhs;        /* 45 Max Read DataHold skew (tQHS) */  	unsigned char pll_relock;  /* 46 PLL Relock time */ -	unsigned char Tcasemax;    /* 47 Tcasemax */ -	unsigned char psiTAdram;   /* 48 Thermal Resistance of DRAM Package from +	unsigned char t_casemax;    /* 47 Tcasemax */ +	unsigned char psi_ta_dram;  /* 48 Thermal Resistance of DRAM Package from  					 Top (Case) to Ambient (Psi T-A DRAM) */  	unsigned char dt0_mode;    /* 49 DRAM Case Temperature Rise from Ambient  					 due to Activate-Precharge/Mode Bits @@ -153,9 +153,9 @@ typedef struct ddr2_spd_eeprom_s {  	unsigned char dt7;         /* 57 DRAM Case Temperature Rise from Ambient  					 due to Bank Interleave Reads with  					 Auto-Precharge (DT7) */ -	unsigned char psiTApll;    /* 58 Thermal Resistance of PLL Package form +	unsigned char psi_ta_pll;  /* 58 Thermal Resistance of PLL Package form  					 Top (Case) to Ambient (Psi T-A PLL) */ -	unsigned char psiTAreg;    /* 59 Thermal Reisitance of Register Package +	unsigned char psi_ta_reg;    /* 59 Thermal Reisitance of Register Package  					 from Top (Case) to Ambient  					 (Psi T-A Register) */  	unsigned char dtpllactive; /* 60 PLL Case Temperature Rise from Ambient @@ -191,41 +191,41 @@ typedef struct ddr3_spd_eeprom_s {  					     Dividend / Divisor */  	unsigned char mtb_dividend;    /* 10 Medium Timebase (MTB) Dividend */  	unsigned char mtb_divisor;     /* 11 Medium Timebase (MTB) Divisor */ -	unsigned char tCK_min;         /* 12 SDRAM Minimum Cycle Time */ +	unsigned char tck_min;         /* 12 SDRAM Minimum Cycle Time */  	unsigned char res_13;          /* 13 Reserved */  	unsigned char caslat_lsb;      /* 14 CAS Latencies Supported,  					     Least Significant Byte */  	unsigned char caslat_msb;      /* 15 CAS Latencies Supported,  					     Most Significant Byte */ -	unsigned char tAA_min;         /* 16 Min CAS Latency Time */ -	unsigned char tWR_min;         /* 17 Min Write REcovery Time */ -	unsigned char tRCD_min;        /* 18 Min RAS# to CAS# Delay Time */ -	unsigned char tRRD_min;        /* 19 Min Row Active to +	unsigned char taa_min;         /* 16 Min CAS Latency Time */ +	unsigned char twr_min;         /* 17 Min Write REcovery Time */ +	unsigned char trcd_min;        /* 18 Min RAS# to CAS# Delay Time */ +	unsigned char trrd_min;        /* 19 Min Row Active to  					     Row Active Delay Time */ -	unsigned char tRP_min;         /* 20 Min Row Precharge Delay Time */ -	unsigned char tRAS_tRC_ext;    /* 21 Upper Nibbles for tRAS and tRC */ -	unsigned char tRAS_min_lsb;    /* 22 Min Active to Precharge +	unsigned char trp_min;         /* 20 Min Row Precharge Delay Time */ +	unsigned char tras_trc_ext;    /* 21 Upper Nibbles for tRAS and tRC */ +	unsigned char tras_min_lsb;    /* 22 Min Active to Precharge  					     Delay Time */ -	unsigned char tRC_min_lsb;     /* 23 Min Active to Active/Refresh +	unsigned char trc_min_lsb;     /* 23 Min Active to Active/Refresh  					     Delay Time, LSB */ -	unsigned char tRFC_min_lsb;    /* 24 Min Refresh Recovery Delay Time */ -	unsigned char tRFC_min_msb;    /* 25 Min Refresh Recovery Delay Time */ -	unsigned char tWTR_min;        /* 26 Min Internal Write to +	unsigned char trfc_min_lsb;    /* 24 Min Refresh Recovery Delay Time */ +	unsigned char trfc_min_msb;    /* 25 Min Refresh Recovery Delay Time */ +	unsigned char twtr_min;        /* 26 Min Internal Write to  					     Read Command Delay Time */ -	unsigned char tRTP_min;        /* 27 Min Internal Read to Precharge +	unsigned char trtp_min;        /* 27 Min Internal Read to Precharge  					     Command Delay Time */ -	unsigned char tFAW_msb;        /* 28 Upper Nibble for tFAW */ -	unsigned char tFAW_min;        /* 29 Min Four Activate Window +	unsigned char tfaw_msb;        /* 28 Upper Nibble for tFAW */ +	unsigned char tfaw_min;        /* 29 Min Four Activate Window  					     Delay Time*/  	unsigned char opt_features;    /* 30 SDRAM Optional Features */  	unsigned char therm_ref_opt;   /* 31 SDRAM Thermal and Refresh Opts */  	unsigned char therm_sensor;    /* 32 Module Thermal Sensor */  	unsigned char device_type;     /* 33 SDRAM device type */ -	int8_t fine_tCK_min;	       /* 34 Fine offset for tCKmin */ -	int8_t fine_tAA_min;	       /* 35 Fine offset for tAAmin */ -	int8_t fine_tRCD_min;	       /* 36 Fine offset for tRCDmin */ -	int8_t fine_tRP_min;	       /* 37 Fine offset for tRPmin */ -	int8_t fine_tRC_min;	       /* 38 Fine offset for tRCmin */ +	int8_t fine_tck_min;	       /* 34 Fine offset for tCKmin */ +	int8_t fine_taa_min;	       /* 35 Fine offset for tAAmin */ +	int8_t fine_trcd_min;	       /* 36 Fine offset for tRCDmin */ +	int8_t fine_trp_min;	       /* 37 Fine offset for tRPmin */ +	int8_t fine_trc_min;	       /* 38 Fine offset for tRCmin */  	unsigned char res_39_59[21];   /* 39-59 Reserved, General Section */  	/* Module-Specific Section: Bytes 60-116 */ diff --git a/include/dfu.h b/include/dfu.h index b2ecf1beb..cc1404492 100644 --- a/include/dfu.h +++ b/include/dfu.h @@ -126,8 +126,11 @@ const char *dfu_get_layout(enum dfu_layout l);  struct dfu_entity *dfu_get_entity(int alt);  char *dfu_extract_token(char** e, int *n);  void dfu_trigger_reset(void); +int dfu_get_alt(char *name);  bool dfu_reset(void);  int dfu_init_env_entities(char *interface, int dev); +unsigned char *dfu_get_buf(void); +unsigned char *dfu_free_buf(void);  int dfu_read(struct dfu_entity *de, void *buf, int size, int blk_seq_num);  int dfu_write(struct dfu_entity *de, void *buf, int size, int blk_seq_num); diff --git a/include/fdtdec.h b/include/fdtdec.h index 6bf83bf7c..433d6a7c0 100644 --- a/include/fdtdec.h +++ b/include/fdtdec.h @@ -73,7 +73,9 @@ enum fdt_compat_id {  	COMPAT_GOOGLE_CROS_EC,		/* Google CROS_EC Protocol */  	COMPAT_GOOGLE_CROS_EC_KEYB,	/* Google CROS_EC Keyboard */  	COMPAT_SAMSUNG_EXYNOS_EHCI,	/* Exynos EHCI controller */ +	COMPAT_SAMSUNG_EXYNOS5_XHCI,	/* Exynos5 XHCI controller */  	COMPAT_SAMSUNG_EXYNOS_USB_PHY,	/* Exynos phy controller for usb2.0 */ +	COMPAT_SAMSUNG_EXYNOS5_USB3_PHY,/* Exynos phy controller for usb3.0 */  	COMPAT_SAMSUNG_EXYNOS_TMU,	/* Exynos TMU */  	COMPAT_SAMSUNG_EXYNOS_FIMD,	/* Exynos Display controller */  	COMPAT_SAMSUNG_EXYNOS5_DP,	/* Exynos Display port controller */ diff --git a/include/fm_eth.h b/include/fm_eth.h index 90562dc9f..114bb8cf2 100644 --- a/include/fm_eth.h +++ b/include/fm_eth.h @@ -149,5 +149,9 @@ void fm_info_set_phy_address(enum fm_port port, int address);  int fm_info_get_phy_address(enum fm_port port);  void fm_info_set_mdio(enum fm_port port, struct mii_dev *bus);  void fm_disable_port(enum fm_port port); +void set_sgmii_phy(struct mii_dev *bus, enum fm_port base_port, +		unsigned int port_num, int phy_base_addr); +int is_qsgmii_riser_card(struct mii_dev *bus, int phy_base_addr, +		unsigned int port_num, unsigned regnum);  #endif diff --git a/include/g_dnl.h b/include/g_dnl.h index 2b2f11a62..de669fb85 100644 --- a/include/g_dnl.h +++ b/include/g_dnl.h @@ -10,10 +10,8 @@  #include <linux/usb/ch9.h>  #include <linux/usb/gadget.h> -int g_dnl_bind_fixup(struct usb_device_descriptor *); +int g_dnl_bind_fixup(struct usb_device_descriptor *, const char *);  int g_dnl_register(const char *s);  void g_dnl_unregister(void); -/* USB initialization declaration - board specific */ -void board_usb_init(void);  #endif /* __G_DOWNLOAD_H_ */ diff --git a/include/i2c.h b/include/i2c.h index 8fd17d190..c1be533d5 100644 --- a/include/i2c.h +++ b/include/i2c.h @@ -135,6 +135,8 @@ extern struct i2c_bus_hose	i2c_bus[];  #define I2C_MUX_PCA9544		{I2C_MUX_PCA9544_ID, "PCA9544A"}  #define I2C_MUX_PCA9547_ID	4  #define I2C_MUX_PCA9547		{I2C_MUX_PCA9547_ID, "PCA9547A"} +#define I2C_MUX_PCA9548_ID	5 +#define I2C_MUX_PCA9548		{I2C_MUX_PCA9548_ID, "PCA9548"}  #endif  #ifndef I2C_SOFT_DECLARATIONS diff --git a/include/linux/usb/dwc3.h b/include/linux/usb/dwc3.h new file mode 100644 index 000000000..97d179a6e --- /dev/null +++ b/include/linux/usb/dwc3.h @@ -0,0 +1,188 @@ +/* include/linux/usb/dwc3.h + * + * Copyright (c) 2012 Samsung Electronics Co. Ltd + * + * Designware SuperSpeed USB 3.0 DRD Controller global and OTG registers + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef __DWC3_H_ +#define __DWC3_H_ + +/* Global constants */ +#define DWC3_ENDPOINTS_NUM			32 + +#define DWC3_EVENT_BUFFERS_SIZE			PAGE_SIZE +#define DWC3_EVENT_TYPE_MASK			0xfe + +#define DWC3_EVENT_TYPE_DEV			0 +#define DWC3_EVENT_TYPE_CARKIT			3 +#define DWC3_EVENT_TYPE_I2C			4 + +#define DWC3_DEVICE_EVENT_DISCONNECT		0 +#define DWC3_DEVICE_EVENT_RESET			1 +#define DWC3_DEVICE_EVENT_CONNECT_DONE		2 +#define DWC3_DEVICE_EVENT_LINK_STATUS_CHANGE	3 +#define DWC3_DEVICE_EVENT_WAKEUP		4 +#define DWC3_DEVICE_EVENT_EOPF			6 +#define DWC3_DEVICE_EVENT_SOF			7 +#define DWC3_DEVICE_EVENT_ERRATIC_ERROR		9 +#define DWC3_DEVICE_EVENT_CMD_CMPL		10 +#define DWC3_DEVICE_EVENT_OVERFLOW		11 + +#define DWC3_GEVNTCOUNT_MASK			0xfffc +#define DWC3_GSNPSID_MASK			0xffff0000 +#define DWC3_GSNPSID_SHIFT			16 +#define DWC3_GSNPSREV_MASK			0xffff + +#define DWC3_REVISION_MASK			0xffff + +#define DWC3_REG_OFFSET				0xC100 + +struct g_event_buffer { +	u64 g_evntadr; +	u32 g_evntsiz; +	u32 g_evntcount; +}; + +struct d_physical_endpoint { +	u32 d_depcmdpar2; +	u32 d_depcmdpar1; +	u32 d_depcmdpar0; +	u32 d_depcmd; +}; + +struct dwc3 {					/* offset: 0xC100 */ +	u32 g_sbuscfg0; +	u32 g_sbuscfg1; +	u32 g_txthrcfg; +	u32 g_rxthrcfg; +	u32 g_ctl; + +	u32 reserved1; + +	u32 g_sts; + +	u32 reserved2; + +	u32 g_snpsid; +	u32 g_gpio; +	u32 g_uid; +	u32 g_uctl; +	u64 g_buserraddr; +	u64 g_prtbimap; + +	u32 g_hwparams0; +	u32 g_hwparams1; +	u32 g_hwparams2; +	u32 g_hwparams3; +	u32 g_hwparams4; +	u32 g_hwparams5; +	u32 g_hwparams6; +	u32 g_hwparams7; + +	u32 g_dbgfifospace; +	u32 g_dbgltssm; +	u32 g_dbglnmcc; +	u32 g_dbgbmu; +	u32 g_dbglspmux; +	u32 g_dbglsp; +	u32 g_dbgepinfo0; +	u32 g_dbgepinfo1; + +	u64 g_prtbimap_hs; +	u64 g_prtbimap_fs; + +	u32 reserved3[28]; + +	u32 g_usb2phycfg[16]; +	u32 g_usb2i2cctl[16]; +	u32 g_usb2phyacc[16]; +	u32 g_usb3pipectl[16]; + +	u32 g_txfifosiz[32]; +	u32 g_rxfifosiz[32]; + +	struct g_event_buffer g_evnt_buf[32]; + +	u32 g_hwparams8; + +	u32 reserved4[63]; + +	u32 d_cfg; +	u32 d_ctl; +	u32 d_evten; +	u32 d_sts; +	u32 d_gcmdpar; +	u32 d_gcmd; + +	u32 reserved5[2]; + +	u32 d_alepena; + +	u32 reserved6[55]; + +	struct d_physical_endpoint d_phy_ep_cmd[32]; + +	u32 reserved7[128]; + +	u32 o_cfg; +	u32 o_ctl; +	u32 o_evt; +	u32 o_evten; +	u32 o_sts; + +	u32 reserved8[3]; + +	u32 adp_cfg; +	u32 adp_ctl; +	u32 adp_evt; +	u32 adp_evten; + +	u32 bc_cfg; + +	u32 reserved9; + +	u32 bc_evt; +	u32 bc_evten; +}; + +/* Global Configuration Register */ +#define DWC3_GCTL_PWRDNSCALE(n)			((n) << 19) +#define DWC3_GCTL_U2RSTECN			(1 << 16) +#define DWC3_GCTL_RAMCLKSEL(x)			\ +		(((x) & DWC3_GCTL_CLK_MASK) << 6) +#define DWC3_GCTL_CLK_BUS			(0) +#define DWC3_GCTL_CLK_PIPE			(1) +#define DWC3_GCTL_CLK_PIPEHALF			(2) +#define DWC3_GCTL_CLK_MASK			(3) +#define DWC3_GCTL_PRTCAP(n)			(((n) & (3 << 12)) >> 12) +#define DWC3_GCTL_PRTCAPDIR(n)			((n) << 12) +#define DWC3_GCTL_PRTCAP_HOST			1 +#define DWC3_GCTL_PRTCAP_DEVICE			2 +#define DWC3_GCTL_PRTCAP_OTG			3 +#define DWC3_GCTL_CORESOFTRESET			(1 << 11) +#define DWC3_GCTL_SCALEDOWN(n)			((n) << 4) +#define DWC3_GCTL_SCALEDOWN_MASK		DWC3_GCTL_SCALEDOWN(3) +#define DWC3_GCTL_DISSCRAMBLE			(1 << 3) +#define DWC3_GCTL_DSBLCLKGTNG			(1 << 0) + +/* Global HWPARAMS1 Register */ +#define DWC3_GHWPARAMS1_EN_PWROPT(n)		(((n) & (3 << 24)) >> 24) +#define DWC3_GHWPARAMS1_EN_PWROPT_NO		0 +#define DWC3_GHWPARAMS1_EN_PWROPT_CLK		1 + +/* Global USB2 PHY Configuration Register */ +#define DWC3_GUSB2PHYCFG_PHYSOFTRST		(1 << 31) +#define DWC3_GUSB2PHYCFG_SUSPHY			(1 << 6) + +/* Global USB3 PIPE Control Register */ +#define DWC3_GUSB3PIPECTL_PHYSOFTRST		(1 << 31) +#define DWC3_GUSB3PIPECTL_SUSPHY		(1 << 17) + +/* Global TX Fifo Size Register */ +#define DWC3_GTXFIFOSIZ_TXFDEF(n)		((n) & 0xffff) +#define DWC3_GTXFIFOSIZ_TXFSTADDR(n)		((n) & 0xffff0000) + +#endif /* __DWC3_H_ */ diff --git a/include/linux/usb/xhci-omap.h b/include/linux/usb/xhci-omap.h new file mode 100644 index 000000000..82630adc7 --- /dev/null +++ b/include/linux/usb/xhci-omap.h @@ -0,0 +1,140 @@ +/* + * (C) Copyright 2013 + * Texas Instruments Inc, <www.ti.com> + * + * Author: Dan Murphy <dmurphy@ti.com> + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef _ASM_ARCH_XHCI_OMAP_H_ +#define _ASM_ARCH_XHCI_OMAP_H_ + +#ifdef CONFIG_DRA7XX +#define OMAP_XHCI_BASE 0x488d0000 +#define OMAP_OCP1_SCP_BASE 0x4A081000 +#define OMAP_OTG_WRAPPER_BASE 0x488c0000 +#elif defined CONFIG_AM43XX +#define OMAP_XHCI_BASE 0x483d0000 +#define OMAP_OCP1_SCP_BASE 0x483E8000 +#define OMAP_OTG_WRAPPER_BASE 0x483dc100 +#else +/* Default to the OMAP5 XHCI defines */ +#define OMAP_XHCI_BASE 0x4a030000 +#define OMAP_OCP1_SCP_BASE 0x4a084c00 +#define OMAP_OTG_WRAPPER_BASE 0x4A020000 +#endif + +/* Phy register MACRO definitions */ +#define	PLL_REGM_MASK		0x001FFE00 +#define	PLL_REGM_SHIFT		0x9 +#define	PLL_REGM_F_MASK		0x0003FFFF +#define	PLL_REGM_F_SHIFT	0x0 +#define	PLL_REGN_MASK		0x000001FE +#define	PLL_REGN_SHIFT		0x1 +#define	PLL_SELFREQDCO_MASK	0x0000000E +#define	PLL_SELFREQDCO_SHIFT	0x1 +#define	PLL_SD_MASK		0x0003FC00 +#define	PLL_SD_SHIFT		0x9 +#define	SET_PLL_GO		0x1 +#define	PLL_TICOPWDN		0x10000 +#define	PLL_LOCK		0x2 +#define	PLL_IDLE		0x1 + +#define USB3_PWRCTL_CLK_CMD_MASK	0x3FE000 +#define USB3_PWRCTL_CLK_FREQ_MASK	0xFFC +#define USB3_PHY_PARTIAL_RX_POWERON     (1 << 6) +#define USB3_PHY_RX_POWERON		(1 << 14) +#define USB3_PHY_TX_POWERON		(1 << 15) +#define USB3_PHY_TX_RX_POWERON	(USB3_PHY_RX_POWERON | USB3_PHY_TX_POWERON) +#define USB3_PWRCTL_CLK_CMD_SHIFT   14 +#define USB3_PWRCTL_CLK_FREQ_SHIFT	22 + +/* USBOTGSS_WRAPPER definitions */ +#define USBOTGSS_WRAPRESET	(1 << 17) +#define USBOTGSS_DMADISABLE (1 << 16) +#define USBOTGSS_STANDBYMODE_NO_STANDBY (1 << 4) +#define USBOTGSS_STANDBYMODE_SMRT		(1 << 5) +#define USBOTGSS_STANDBYMODE_SMRT_WKUP (0x3 << 4) +#define USBOTGSS_IDLEMODE_NOIDLE (1 << 2) +#define USBOTGSS_IDLEMODE_SMRT (1 << 3) +#define USBOTGSS_IDLEMODE_SMRT_WKUP (0x3 << 2) + +/* USBOTGSS_IRQENABLE_SET_0 bit */ +#define USBOTGSS_COREIRQ_EN	(1 << 0) + +/* USBOTGSS_IRQENABLE_SET_1 bits */ +#define USBOTGSS_IRQ_SET_1_IDPULLUP_FALL_EN	(1 << 0) +#define USBOTGSS_IRQ_SET_1_DISCHRGVBUS_FALL_EN	(1 << 3) +#define USBOTGSS_IRQ_SET_1_CHRGVBUS_FALL_EN	(1 << 4) +#define USBOTGSS_IRQ_SET_1_DRVVBUS_FALL_EN	(1 << 5) +#define USBOTGSS_IRQ_SET_1_IDPULLUP_RISE_EN	(1 << 8) +#define USBOTGSS_IRQ_SET_1_DISCHRGVBUS_RISE_EN	(1 << 11) +#define USBOTGSS_IRQ_SET_1_CHRGVBUS_RISE_EN	(1 << 12) +#define USBOTGSS_IRQ_SET_1_DRVVBUS_RISE_EN	(1 << 13) +#define USBOTGSS_IRQ_SET_1_OEVT_EN	(1 << 16) +#define USBOTGSS_IRQ_SET_1_DMADISABLECLR_EN	(1 << 17) + +/* + * USBOTGSS_WRAPPER registers + */ +struct omap_dwc_wrapper { +	u32 revision; + +	u32 reserve_1[3]; + +	u32 sysconfig; /* offset of 0x10 */ + +	u32 reserve_2[3]; +	u16 reserve_3; + +	u32 irqstatus_raw_0; /* offset of 0x24 */ +	u32 irqstatus_0; +	u32 irqenable_set_0; +	u32 irqenable_clr_0; + +	u32 irqstatus_raw_1; /* offset of 0x34 */ +	u32 irqstatus_1; +	u32 irqenable_set_1; +	u32 irqenable_clr_1; + +	u32 reserve_4[15]; + +	u32 utmi_otg_ctrl; /* offset of 0x80 */ +	u32 utmi_otg_status; + +	u32 reserve_5[30]; + +	u32 mram_offset; /* offset of 0x100 */ +	u32 fladj; +	u32 dbg_config; +	u32 dbg_data; +	u32 dev_ebc_en; +}; + +/* XHCI PHY register structure */ +struct omap_usb3_phy { +	u32 reserve1; +	u32 pll_status; +	u32 pll_go; +	u32 pll_config_1; +	u32 pll_config_2; +	u32 pll_config_3; +	u32 pll_ssc_config_1; +	u32 pll_ssc_config_2; +	u32 pll_config_4; +}; + +struct omap_xhci { +	struct omap_dwc_wrapper *otg_wrapper; +	struct omap_usb3_phy *usb3_phy; +	struct xhci_hccr *hcd; +	struct dwc3 *dwc3_reg; +}; + +/* USB PHY functions */ +void omap_enable_phy(struct omap_xhci *omap); +void omap_reset_usb_phy(struct dwc3 *dwc3_reg); +void usb_phy_power(int on); + +#endif /* _ASM_ARCH_XHCI_OMAP_H_ */ diff --git a/include/palmas.h b/include/palmas.h index f74f08e2d..eaf367086 100644 --- a/include/palmas.h +++ b/include/palmas.h @@ -31,6 +31,7 @@  /* LDOUSB control/voltage */  #define LDOUSB_CTRL		0x64  #define LDOUSB_VOLTAGE		0x65 +#define LDO_CTRL		0x6a  /* Control of 32 kHz audio clock */  #define CLK32KGAUDIO_CTRL	0xd5 @@ -62,6 +63,10 @@  #define SMPS9_CTRL		0x38  #define SMPS9_VOLTAGE		0x3b +/* SMPS10_CTRL */ +#define SMPS10_CTRL		0x3c +#define SMPS10_MODE_ACTIVE_D	0x0d +  /* Bit field definitions for SMPSx_CTRL */  #define SMPS_MODE_ACT_AUTO	1  #define SMPS_MODE_ACT_ECO	2 @@ -114,5 +119,6 @@ int palmas_mmc1_poweron_ldo(void);  int twl603x_mmc1_set_ldo9(u8 vsel);  int twl603x_audio_power(u8 on);  int twl603x_enable_bb_charge(u8 bb_fields); +int palmas_enable_ss_ldo(void);  #endif /* PALMAS_H */ diff --git a/include/pci.h b/include/pci.h index 911ba89ac..d46247966 100644 --- a/include/pci.h +++ b/include/pci.h @@ -410,6 +410,9 @@  #define PCI_MAX_PCI_DEVICES	32  #define PCI_MAX_PCI_FUNCTIONS	8 +#define PCI_FIND_CAP_TTL 0x48 +#define CAP_START_POS 0x40 +  /* Include the ID list */  #include <pci_ids.h> @@ -647,6 +650,13 @@ extern int pci_hose_config_device(struct pci_controller *hose,  				  pci_addr_t mem,  				  unsigned long command); +extern int pci_hose_find_capability(struct pci_controller *hose, pci_dev_t dev, +				    int cap); +extern int pci_hose_find_cap_start(struct pci_controller *hose, pci_dev_t dev, +				   u8 hdr_type); +extern int pci_find_cap(struct pci_controller *hose, pci_dev_t dev, int pos, +			int cap); +  const char * pci_class_str(u8 class);  int pci_last_busno(void); diff --git a/include/thor.h b/include/thor.h new file mode 100644 index 000000000..afeade456 --- /dev/null +++ b/include/thor.h @@ -0,0 +1,27 @@ +/* + * thor.h -- USB THOR Downloader protocol + * + * Copyright (C) 2013 Samsung Electronics + * Lukasz Majewski  <l.majewski@samsung.com> + * + * SPDX-License-Identifier:	GPL-2.0+ + * + */ + +#ifndef __THOR_H_ +#define __THOR_H_ + +#include <linux/usb/composite.h> + +int thor_handle(void); +int thor_init(void); + +#ifdef CONFIG_THOR_FUNCTION +int thor_add(struct usb_configuration *c); +#else +int thor_add(struct usb_configuration *c) +{ +	return 0; +} +#endif +#endif /* __THOR_H_ */ diff --git a/include/usb.h b/include/usb.h index 60db897cb..d9fedeeff 100644 --- a/include/usb.h +++ b/include/usb.h @@ -125,6 +125,18 @@ struct usb_device {  	struct usb_device *children[USB_MAXCHILDREN];  	void *controller;		/* hardware controller private data */ +	/* slot_id - for xHCI enabled devices */ +	unsigned int slot_id; +}; + +/* + * You can initialize platform's USB host or device + * ports by passing this enum as an argument to + * board_usb_init(). + */ +enum usb_init_type { +	USB_INIT_HOST, +	USB_INIT_DEVICE  };  /********************************************************************** @@ -138,9 +150,9 @@ struct usb_device {  	defined(CONFIG_USB_OMAP3) || defined(CONFIG_USB_DA8XX) || \  	defined(CONFIG_USB_BLACKFIN) || defined(CONFIG_USB_AM35X) || \  	defined(CONFIG_USB_MUSB_DSPS) || defined(CONFIG_USB_MUSB_AM35X) || \ -	defined(CONFIG_USB_MUSB_OMAP2PLUS) +	defined(CONFIG_USB_MUSB_OMAP2PLUS) || defined(CONFIG_USB_XHCI) -int usb_lowlevel_init(int index, void **controller); +int usb_lowlevel_init(int index, enum usb_init_type init, void **controller);  int usb_lowlevel_stop(int index);  int submit_bulk_msg(struct usb_device *dev, unsigned long pipe, @@ -165,10 +177,26 @@ int submit_int_msg(struct usb_device *dev, unsigned long pipe, void *buffer,  extern void udc_disconnect(void); -#else -#error USB Lowlevel not defined  #endif +/* + * board-specific hardware initialization, called by + * usb drivers and u-boot commands + * + * @param index USB controller number + * @param init initializes controller as USB host or device + */ +int board_usb_init(int index, enum usb_init_type init); + +/* + * can be used to clean up after failed USB initialization attempt + * vide: board_usb_init() + * + * @param index USB controller number for selective cleanup + * @param init usb_init_type passed to board_usb_init() + */ +int board_usb_cleanup(int index, enum usb_init_type init); +  #ifdef CONFIG_USB_STORAGE  #define USB_MAX_STOR_DEV 5 @@ -338,6 +366,10 @@ int usb_set_interface(struct usb_device *dev, int interface, int alternate);  #define usb_pipecontrol(pipe)	(usb_pipetype((pipe)) == PIPE_CONTROL)  #define usb_pipebulk(pipe)	(usb_pipetype((pipe)) == PIPE_BULK) +#define usb_pipe_ep_index(pipe)	\ +		usb_pipecontrol(pipe) ? (usb_pipeendpoint(pipe) * 2) : \ +				((usb_pipeendpoint(pipe) * 2) - \ +				 (usb_pipein(pipe) ? 0 : 1))  /*************************************************************************   * Hub Stuff @@ -382,5 +414,6 @@ struct usb_device *usb_alloc_new_device(void *controller);  int usb_new_device(struct usb_device *dev);  void usb_free_device(void); +int usb_alloc_device(struct usb_device *dev);  #endif /*_USB_H_ */ diff --git a/include/usb/designware_udc.h b/include/usb/designware_udc.h index 2e29a7e2a..2e1cdf138 100644 --- a/include/usb/designware_udc.h +++ b/include/usb/designware_udc.h @@ -174,19 +174,6 @@ struct udcfifo_regs {  };  /* - * USBTTY definitions - */ -#define  EP0_MAX_PACKET_SIZE		64 -#define  UDC_INT_ENDPOINT		1 -#define  UDC_INT_PACKET_SIZE		64 -#define  UDC_OUT_ENDPOINT		2 -#define  UDC_BULK_PACKET_SIZE		64 -#define  UDC_BULK_HS_PACKET_SIZE	512 -#define  UDC_IN_ENDPOINT		3 -#define  UDC_OUT_PACKET_SIZE		64 -#define  UDC_IN_PACKET_SIZE		64 - -/*   * UDC endpoint definitions   */  #define  UDC_EP0			0 @@ -194,22 +181,4 @@ struct udcfifo_regs {  #define  UDC_EP2			2  #define  UDC_EP3			3 -/* - * Function declarations - */ - -void udc_irq(void); - -void udc_set_nak(int epid); -void udc_unset_nak(int epid); -int udc_endpoint_write(struct usb_endpoint_instance *endpoint); -int udc_init(void); -void udc_enable(struct usb_device_instance *device); -void udc_disable(void); -void udc_connect(void); -void udc_disconnect(void); -void udc_startup_events(struct usb_device_instance *device); -void udc_setup_ep(struct usb_device_instance *device, unsigned int ep, -		  struct usb_endpoint_instance *endpoint); -  #endif /* __DW_UDC_H */ diff --git a/include/usb/mpc8xx_udc.h b/include/usb/mpc8xx_udc.h index 475dd4166..9906c75f6 100644 --- a/include/usb/mpc8xx_udc.h +++ b/include/usb/mpc8xx_udc.h @@ -111,11 +111,9 @@  /* UDC device defines */  #define EP0_MAX_PACKET_SIZE	EP_MAX_PKT -#define UDC_OUT_ENDPOINT	0x02 +  #define UDC_OUT_PACKET_SIZE	EP_MIN_PACKET_SIZE -#define UDC_IN_ENDPOINT		0x03  #define UDC_IN_PACKET_SIZE	EP_MIN_PACKET_SIZE -#define UDC_INT_ENDPOINT	0x01  #define UDC_INT_PACKET_SIZE	UDC_IN_PACKET_SIZE  #define UDC_BULK_PACKET_SIZE	EP_MIN_PACKET_SIZE @@ -178,18 +176,3 @@ typedef enum mpc8xx_udc_state{  	STATE_READY,  }mpc8xx_udc_state_t; -/* Declarations */ -int udc_init(void); -void udc_irq(void); -int udc_endpoint_write(struct usb_endpoint_instance *endpoint); -void udc_setup_ep(struct usb_device_instance *device, unsigned int ep, -		  struct usb_endpoint_instance *endpoint); -void udc_connect(void); -void udc_disconnect(void); -void udc_enable(struct usb_device_instance *device); -void udc_disable(void); -void udc_startup_events(struct usb_device_instance *device); - -/* Flow control */ -void udc_set_nak(int epid); -void udc_unset_nak (int epid); diff --git a/include/usb/musb_udc.h b/include/usb/musb_udc.h deleted file mode 100644 index 3500c7ae9..000000000 --- a/include/usb/musb_udc.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2009 Wind River Systems, Inc. - * Tom Rix <Tom.Rix@windriver.com> - * - * SPDX-License-Identifier:	GPL-2.0+ - */ -#ifndef __MUSB_UDC_H__ -#define __MUSB_UDC_H__ - -#include <usbdevice.h> - -/* UDC level routines */ -void udc_irq(void); -void udc_set_nak(int ep_num); -void udc_unset_nak(int ep_num); -int udc_endpoint_write(struct usb_endpoint_instance *endpoint); -void udc_setup_ep(struct usb_device_instance *device, unsigned int id, -		  struct usb_endpoint_instance *endpoint); -void udc_connect(void); -void udc_disconnect(void); -void udc_enable(struct usb_device_instance *device); -void udc_disable(void); -void udc_startup_events(struct usb_device_instance *device); -int udc_init(void); - -/* usbtty */ -#ifdef CONFIG_USB_TTY - -#define EP0_MAX_PACKET_SIZE	64 /* MUSB_EP0_FIFOSIZE */ -#define UDC_INT_ENDPOINT	1 -#define UDC_INT_PACKET_SIZE	64 -#define UDC_OUT_ENDPOINT	2 -#define UDC_OUT_PACKET_SIZE	64 -#define UDC_IN_ENDPOINT		3 -#define UDC_IN_PACKET_SIZE	64 -#define UDC_BULK_PACKET_SIZE	64 - -#endif /* CONFIG_USB_TTY */ - -#endif /* __MUSB_UDC_H__ */ diff --git a/include/usb/mv_udc.h b/include/usb/mv_udc.h index c71516cf6..f6c7b5e89 100644 --- a/include/usb/mv_udc.h +++ b/include/usb/mv_udc.h @@ -9,124 +9,6 @@  #ifndef __MV_UDC_H__  #define __MV_UDC_H__ -#include <asm/byteorder.h> -#include <asm/errno.h> -#include <linux/usb/ch9.h> -#include <linux/usb/gadget.h> - -#include "../../drivers/usb/host/ehci.h" - -#define NUM_ENDPOINTS		6 - -/* Endpoint parameters */ -#define MAX_ENDPOINTS		4 -  #define EP_MAX_PACKET_SIZE	0x200  #define EP0_MAX_PACKET_SIZE	64 - -struct mv_udc { -#define MICRO_8FRAME	0x8 -#define USBCMD_ITC(x)	((((x) > 0xff) ? 0xff : x) << 16) -#define USBCMD_FS2	(1 << 15) -#define USBCMD_RST	(1 << 1) -#define USBCMD_RUN	(1) -	u32 usbcmd;		/* 0x140 */ -#define STS_SLI		(1 << 8) -#define STS_URI		(1 << 6) -#define STS_PCI		(1 << 2) -#define STS_UEI		(1 << 1) -#define STS_UI		(1 << 0) -	u32 usbsts;		/* 0x144 */ -	u32 pad1[3]; -	u32 devaddr;		/* 0x154 */ -	u32 epinitaddr;		/* 0x158 */ -	u32 pad2[10]; -#define PTS_ENABLE	2 -#define PTS(x)		(((x) & 0x3) << 30) -#define PFSC		(1 << 24) -	u32 portsc;		/* 0x184 */ -	u32 pad3[8]; -#define USBMODE_DEVICE	2 -	u32 usbmode;		/* 0x1a8 */ -	u32 epstat;		/* 0x1ac */ -#define EPT_TX(x)	(1 << (((x) & 0xffff) + 16)) -#define EPT_RX(x)	(1 << ((x) & 0xffff)) -	u32 epprime;		/* 0x1b0 */ -	u32 epflush;		/* 0x1b4 */ -	u32 pad4; -	u32 epcomp;		/* 0x1bc */ -#define CTRL_TXE	(1 << 23) -#define CTRL_TXR	(1 << 22) -#define CTRL_RXE	(1 << 7) -#define CTRL_RXR	(1 << 6) -#define CTRL_TXT_BULK	(2 << 18) -#define CTRL_RXT_BULK	(2 << 2) -	u32 epctrl[16];		/* 0x1c0 */ -}; - -struct mv_ep { -	struct usb_ep ep; -	struct list_head queue; -	const struct usb_endpoint_descriptor *desc; - -	struct usb_request req; -	uint8_t *b_buf; -	uint32_t b_len; -	uint8_t b_fast[64] __aligned(ARCH_DMA_MINALIGN); -}; - -struct mv_drv { -	struct usb_gadget		gadget; -	struct usb_gadget_driver	*driver; -	struct ehci_ctrl		*ctrl; -	struct ept_queue_head		*epts; -	struct ept_queue_item		*items[2 * NUM_ENDPOINTS]; -	uint8_t				*items_mem; -	struct mv_ep			ep[NUM_ENDPOINTS]; -}; - -struct ept_queue_head { -	unsigned config; -	unsigned current;	/* read-only */ - -	unsigned next; -	unsigned info; -	unsigned page0; -	unsigned page1; -	unsigned page2; -	unsigned page3; -	unsigned page4; -	unsigned reserved_0; - -	unsigned char setup_data[8]; - -	unsigned reserved_1; -	unsigned reserved_2; -	unsigned reserved_3; -	unsigned reserved_4; -}; - -#define CONFIG_MAX_PKT(n)	((n) << 16) -#define CONFIG_ZLT		(1 << 29)	/* stop on zero-len xfer */ -#define CONFIG_IOS		(1 << 15)	/* IRQ on setup */ - -struct ept_queue_item { -	unsigned next; -	unsigned info; -	unsigned page0; -	unsigned page1; -	unsigned page2; -	unsigned page3; -	unsigned page4; -	unsigned reserved; -}; - -#define TERMINATE 1 -#define INFO_BYTES(n)		((n) << 16) -#define INFO_IOC		(1 << 15) -#define INFO_ACTIVE		(1 << 7) -#define INFO_HALTED		(1 << 6) -#define INFO_BUFFER_ERROR	(1 << 5) -#define INFO_TX_ERROR		(1 << 3) -  #endif /* __MV_UDC_H__ */ diff --git a/include/usb/omap1510_udc.h b/include/usb/omap1510_udc.h index ece0e95b6..adfbf5499 100644 --- a/include/usb/omap1510_udc.h +++ b/include/usb/omap1510_udc.h @@ -162,32 +162,13 @@  #define UDC_VBUS_MODE	    (1 << 18)  /* OMAP Endpoint parameters */ -#define EP0_MAX_PACKET_SIZE 64 -#define UDC_OUT_ENDPOINT 2 -#define UDC_OUT_PACKET_SIZE 64 -#define UDC_IN_ENDPOINT	1 -#define UDC_IN_PACKET_SIZE 64 -#define UDC_INT_ENDPOINT 5 +#define UDC_OUT_PACKET_SIZE	64 +#define UDC_IN_PACKET_SIZE	64  #define UDC_INT_PACKET_SIZE	16 -#define UDC_BULK_PACKET_SIZE 16 - -void udc_irq (void); -/* Flow control */ -void udc_set_nak(int epid); -void udc_unset_nak (int epid); - -/* Higher level functions for abstracting away from specific device */ -int udc_endpoint_write(struct usb_endpoint_instance *endpoint); - -int  udc_init (void); +#define UDC_BULK_PACKET_SIZE	16 -void udc_enable(struct usb_device_instance *device); -void udc_disable(void); - -void udc_connect(void); -void udc_disconnect(void); - -void udc_startup_events(struct usb_device_instance *device); -void udc_setup_ep(struct usb_device_instance *device, unsigned int ep, struct usb_endpoint_instance *endpoint); +#define UDC_INT_ENDPOINT 5 +#define UDC_OUT_ENDPOINT 2 +#define UDC_IN_ENDPOINT	1  #endif diff --git a/include/usb/pxa27x_udc.h b/include/usb/pxa27x_udc.h index 7fdbe2ae0..7eaa00030 100644 --- a/include/usb/pxa27x_udc.h +++ b/include/usb/pxa27x_udc.h @@ -22,35 +22,11 @@  /* Endpoint parameters */  #define MAX_ENDPOINTS		4 -#define EP_MAX_PACKET_SIZE	64  #define EP0_MAX_PACKET_SIZE     16 +  #define UDC_OUT_ENDPOINT        0x02 -#define UDC_OUT_PACKET_SIZE     EP_MAX_PACKET_SIZE  #define UDC_IN_ENDPOINT         0x01 -#define UDC_IN_PACKET_SIZE      EP_MAX_PACKET_SIZE  #define UDC_INT_ENDPOINT        0x05 -#define UDC_INT_PACKET_SIZE     EP_MAX_PACKET_SIZE -#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE - -void udc_irq(void); -/* Flow control */ -void udc_set_nak(int epid); -void udc_unset_nak(int epid); - -/* Higher level functions for abstracting away from specific device */ -int udc_endpoint_write(struct usb_endpoint_instance *endpoint); - -int  udc_init(void); - -void udc_enable(struct usb_device_instance *device); -void udc_disable(void); - -void udc_connect(void); -void udc_disconnect(void); - -void udc_startup_events(struct usb_device_instance *device); -void udc_setup_ep(struct usb_device_instance *device, -	 unsigned int ep, struct usb_endpoint_instance *endpoint);  #endif diff --git a/include/usb/udc.h b/include/usb/udc.h new file mode 100644 index 000000000..1f545ec1b --- /dev/null +++ b/include/usb/udc.h @@ -0,0 +1,53 @@ +/* + * SPDX-License-Identifier:	GPL-2.0+ + */ +#ifndef USB_UDC_H +#define USB_UDC_H + +#ifndef EP0_MAX_PACKET_SIZE +#define EP0_MAX_PACKET_SIZE     64 +#endif + +#ifndef EP_MAX_PACKET_SIZE +#define EP_MAX_PACKET_SIZE	64 +#endif + +#if !defined(CONFIG_PPC) && !defined(CONFIG_OMAP1510) +/* omap1510_udc.h and mpc8xx_udc.h will set these values */ +#define UDC_OUT_PACKET_SIZE     EP_MAX_PACKET_SIZE +#define UDC_IN_PACKET_SIZE      EP_MAX_PACKET_SIZE +#define UDC_INT_PACKET_SIZE     EP_MAX_PACKET_SIZE +#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE +#endif + +#define UDC_BULK_HS_PACKET_SIZE	512 + +#ifndef UDC_INT_ENDPOINT +#define UDC_INT_ENDPOINT	1 +#endif + +#ifndef UDC_OUT_ENDPOINT +#define UDC_OUT_ENDPOINT	2 +#endif + +#ifndef UDC_IN_ENDPOINT +#define UDC_IN_ENDPOINT		3 +#endif + +/* function declarations */ +int udc_init(void); +void udc_irq(void); +int udc_endpoint_write(struct usb_endpoint_instance *endpoint); +void udc_setup_ep(struct usb_device_instance *device, unsigned int ep, +		  struct usb_endpoint_instance *endpoint); +void udc_connect(void); +void udc_disconnect(void); +void udc_enable(struct usb_device_instance *device); +void udc_disable(void); +void udc_startup_events(struct usb_device_instance *device); + +/* Flow control */ +void udc_set_nak(int epid); +void udc_unset_nak(int epid); + +#endif diff --git a/include/usb_defs.h b/include/usb_defs.h index 0cf5f2da8..236a5ecdf 100644 --- a/include/usb_defs.h +++ b/include/usb_defs.h @@ -63,6 +63,25 @@  #define USB_DIR_OUT           0  #define USB_DIR_IN            0x80 +/* + * bmRequestType: USB Device Requests, table 9.2 USB 2.0 spec. + * (shifted) direction/type/recipient. + */ +#define DeviceRequest \ +	((USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_DEVICE) << 8) + +#define DeviceOutRequest \ +	((USB_DIR_OUT | USB_TYPE_STANDARD | USB_RECIP_DEVICE) << 8) + +#define InterfaceRequest \ +	((USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_INTERFACE) << 8) + +#define EndpointRequest \ +	((USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_INTERFACE) << 8) + +#define EndpointOutRequest \ +	((USB_DIR_OUT | USB_TYPE_STANDARD | USB_RECIP_INTERFACE) << 8) +  /* Descriptor types */  #define USB_DT_DEVICE        0x01  #define USB_DT_CONFIG        0x02 diff --git a/include/usb_mass_storage.h b/include/usb_mass_storage.h index e08deb4dd..13f535ce2 100644 --- a/include/usb_mass_storage.h +++ b/include/usb_mass_storage.h @@ -31,14 +31,11 @@ struct ums_board_info {  	struct ums_device ums_dev;  }; -extern void board_usb_init(void); - -extern int fsg_init(struct ums_board_info *); -extern void fsg_cleanup(void); -extern struct ums_board_info *board_ums_init(unsigned int, -					     unsigned int, unsigned int); -extern int usb_gadget_handle_interrupts(void); -extern int fsg_main_thread(void *); +int fsg_init(struct ums_board_info *); +void fsg_cleanup(void); +struct ums_board_info *board_ums_init(unsigned int, unsigned int, +				      unsigned int); +int fsg_main_thread(void *);  #ifdef CONFIG_USB_GADGET_MASS_STORAGE  int fsg_add(struct usb_configuration *c); |