diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-ppc/immap_83xx.h | 8 | ||||
| -rw-r--r-- | include/asm-ppc/immap_85xx.h | 5 | ||||
| -rw-r--r-- | include/asm-ppc/immap_86xx.h | 8 | ||||
| -rw-r--r-- | include/tsec.h | 45 | 
4 files changed, 42 insertions, 24 deletions
| diff --git a/include/asm-ppc/immap_83xx.h b/include/asm-ppc/immap_83xx.h index c60a7d21c..3a144f040 100644 --- a/include/asm-ppc/immap_83xx.h +++ b/include/asm-ppc/immap_83xx.h @@ -1,5 +1,5 @@  /* - * (C) Copyright 2004-2009 Freescale Semiconductor, Inc. + * Copyright 2004-2009 Freescale Semiconductor, Inc.   *   * MPC83xx Internal Memory Map   * @@ -868,4 +868,10 @@ typedef struct immap {  #endif  #define CONFIG_SYS_MPC83xx_USB_ADDR \  			(CONFIG_SYS_IMMR + CONFIG_SYS_MPC83xx_USB_OFFSET) + +#define CONFIG_SYS_TSEC1_OFFSET		0x24000 +#define CONFIG_SYS_MDIO1_OFFSET		0x24520 + +#define TSEC_BASE_ADDR		(CONFIG_SYS_IMMR + CONFIG_SYS_TSEC1_OFFSET) +#define MDIO_BASE_ADDR		(CONFIG_SYS_IMMR + CONFIG_SYS_MDIO1_OFFSET)  #endif				/* __IMMAP_83xx__ */ diff --git a/include/asm-ppc/immap_85xx.h b/include/asm-ppc/immap_85xx.h index 8c806501c..3d24ebe4c 100644 --- a/include/asm-ppc/immap_85xx.h +++ b/include/asm-ppc/immap_85xx.h @@ -1959,6 +1959,8 @@ enum {  #define CONFIG_SYS_MPC85xx_L2_OFFSET		0x20000  #define CONFIG_SYS_MPC85xx_DMA_OFFSET		0x21000  #define CONFIG_SYS_MPC85xx_USB_OFFSET		0x22000 +#define CONFIG_SYS_TSEC1_OFFSET			0x24000 +#define CONFIG_SYS_MDIO1_OFFSET			0x24520  #define CONFIG_SYS_MPC85xx_ESDHC_OFFSET		0x2e000  #define CONFIG_SYS_MPC85xx_SERDES2_OFFSET	0xE3100  #define CONFIG_SYS_MPC85xx_SERDES1_OFFSET	0xE3000 @@ -2019,4 +2021,7 @@ enum {  #define CONFIG_SYS_MPC85xx_USB_ADDR \  	(CONFIG_SYS_IMMR + CONFIG_SYS_MPC85xx_USB_OFFSET) +#define TSEC_BASE_ADDR		(CONFIG_SYS_IMMR + CONFIG_SYS_TSEC1_OFFSET) +#define MDIO_BASE_ADDR		(CONFIG_SYS_IMMR + CONFIG_SYS_MDIO1_OFFSET) +  #endif /*__IMMAP_85xx__*/ diff --git a/include/asm-ppc/immap_86xx.h b/include/asm-ppc/immap_86xx.h index fdfc654f2..41892b4e5 100644 --- a/include/asm-ppc/immap_86xx.h +++ b/include/asm-ppc/immap_86xx.h @@ -1,7 +1,7 @@  /*   * MPC86xx Internal Memory Map   * - * Copyright(c) 2004 Freescale Semiconductor + * Copyright 2004 Freescale Semiconductor   * Jeff Brown (Jeffrey@freescale.com)   * Srikanth Srinivasan (srikanth.srinivasan@freescale.com)   * @@ -1298,4 +1298,10 @@ extern immap_t  *immr;  #define CONFIG_SYS_MPC86xx_DMA_OFFSET	(0x21000)  #define CONFIG_SYS_MPC86xx_DMA_ADDR	(CONFIG_SYS_IMMR + CONFIG_SYS_MPC86xx_DMA_OFFSET) +#define CONFIG_SYS_TSEC1_OFFSET		0x24000 +#define CONFIG_SYS_MDIO1_OFFSET		0x24520 + +#define TSEC_BASE_ADDR		(CONFIG_SYS_IMMR + CONFIG_SYS_TSEC1_OFFSET) +#define MDIO_BASE_ADDR		(CONFIG_SYS_IMMR + CONFIG_SYS_MDIO1_OFFSET) +  #endif /*__IMMAP_86xx__*/ diff --git a/include/tsec.h b/include/tsec.h index 0ac303406..92bd028f0 100644 --- a/include/tsec.h +++ b/include/tsec.h @@ -7,7 +7,7 @@   *  terms of the GNU Public License, Version 2, incorporated   *  herein by reference.   * - * Copyright 2004, 2007 Freescale Semiconductor, Inc. + * Copyright 2004, 2007, 2009  Freescale Semiconductor, Inc.   * (C) Copyright 2003, Motorola, Inc.   * maintained by Xianghua Xiao (x.xiao@motorola.com)   * author Andy Fleming @@ -20,22 +20,15 @@  #include <net.h>  #include <config.h> -#ifndef CONFIG_SYS_TSEC1_OFFSET -    #define CONFIG_SYS_TSEC1_OFFSET	(0x24000) -#endif - -#define TSEC_SIZE	0x01000 - -/* FIXME:  Should these be pushed back to 83xx and 85xx config files? */ -#if defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx) \ -	|| defined(CONFIG_MPC83xx) -    #define TSEC_BASE_ADDR	(CONFIG_SYS_IMMR + CONFIG_SYS_TSEC1_OFFSET) -#endif +#define TSEC_SIZE 		0x01000 +#define TSEC_MDIO_OFFSET	0x01000  #define STD_TSEC_INFO(num) \  {			\  	.regs = (tsec_t *)(TSEC_BASE_ADDR + ((num - 1) * TSEC_SIZE)), \ -	.miiregs = (tsec_t *)TSEC_BASE_ADDR, \ +	.miiregs = (tsec_mdio_t *)(MDIO_BASE_ADDR), \ +	.miiregs_sgmii = (tsec_mdio_t *)(MDIO_BASE_ADDR \ +					 + (num - 1) * TSEC_MDIO_OFFSET), \  	.devname = CONFIG_TSEC##num##_NAME, \  	.phyaddr = TSEC##num##_PHY_ADDR, \  	.flags = TSEC##num##_FLAGS \ @@ -44,7 +37,9 @@  #define SET_STD_TSEC_INFO(x, num) \  {			\  	x.regs = (tsec_t *)(TSEC_BASE_ADDR + ((num - 1) * TSEC_SIZE)); \ -	x.miiregs = (tsec_t *)TSEC_BASE_ADDR; \ +	x.miiregs = (tsec_mdio_t *)(MDIO_BASE_ADDR); \ +	x.miiregs_sgmii = (tsec_mdio_t *)(MDIO_BASE_ADDR \ +					  + (num - 1) * TSEC_MDIO_OFFSET); \  	x.devname = CONFIG_TSEC##num##_NAME; \  	x.phyaddr = TSEC##num##_PHY_ADDR; \  	x.flags = TSEC##num##_FLAGS;\ @@ -461,6 +456,15 @@ typedef struct tsec_hash_regs  	uint	res2[24];  } tsec_hash_t; +typedef struct tsec_mdio { +	uint	miimcfg;	/* MII Management: Configuration */ +	uint	miimcom;	/* MII Management: Command */ +	uint	miimadd;	/* MII Management: Address */ +	uint	miimcon;	/* MII Management: Control */ +	uint	miimstat;	/* MII Management: Status */ +	uint	miimind;	/* MII Management: Indicators */ +} tsec_mdio_t; +  typedef struct tsec  {  	/* General Control and Status Registers (0x2_n000) */ @@ -526,12 +530,7 @@ typedef struct tsec  	uint	res51c; -	uint	miimcfg;	/* MII Management: Configuration */ -	uint	miimcom;	/* MII Management: Command */ -	uint	miimadd;	/* MII Management: Address */ -	uint	miimcon;	/* MII Management: Control */ -	uint	miimstat;	/* MII Management: Status */ -	uint	miimind;	/* MII Management: Indicators */ +	uint	resmdio[6];  	uint	res538; @@ -571,7 +570,8 @@ typedef struct tsec  struct tsec_private {  	volatile tsec_t *regs; -	volatile tsec_t *phyregs; +	volatile tsec_mdio_t *phyregs; +	volatile tsec_mdio_t *phyregs_sgmii;  	struct phy_info *phyinfo;  	uint phyaddr;  	u32 flags; @@ -630,7 +630,8 @@ struct phy_info {  struct tsec_info_struct {  	tsec_t *regs; -	tsec_t *miiregs; +	tsec_mdio_t *miiregs; +	tsec_mdio_t *miiregs_sgmii;  	char *devname;  	unsigned int phyaddr;  	u32 flags; |