diff options
| author | Poonam Aggrwal <poonam.aggrwal@freescale.com> | 2012-12-23 19:24:16 +0000 | 
|---|---|---|
| committer | Andy Fleming <afleming@freescale.com> | 2013-01-30 11:25:10 -0600 | 
| commit | e1dbdd81523c7c7de1ac5dee03dd9e4587e808af (patch) | |
| tree | 7271df8bfcc1d40292dc45c9a6fe516077a4bf95 /arch/powerpc/cpu/mpc85xx/b4860_serdes.c | |
| parent | e394ceb17f93545e6b89b6d04df348dc435e2d4f (diff) | |
| download | olio-uboot-2014.01-e1dbdd81523c7c7de1ac5dee03dd9e4587e808af.tar.xz olio-uboot-2014.01-e1dbdd81523c7c7de1ac5dee03dd9e4587e808af.zip | |
powerpc/mpc85xx:Add support of B4420 SoC
B4420 is a reduced personality of B4860 with fewer core/clusters(both SC3900
and e6500), fewer DDR controllers, fewer serdes lanes, fewer SGMII interfaces and
reduced target frequencies.
Key differences between B4860 and B4420
----------------------------------------
B4420 has:
1. Fewer e6500 cores: 1 cluster with 2 e6500 cores
2. Fewer SC3900 cores/clusters: 1 cluster with 2 SC3900 cores per cluster.
3. Single DDRC
4. 2X 4 lane serdes
5. 3 SGMII interfaces
6. no sRIO
7. no 10G
Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Signed-off-by: Poonam Aggrwal <poonam.aggrwal@freescale.com>
Signed-off-by: Andy Fleming <afleming@freescale.com>
Diffstat (limited to 'arch/powerpc/cpu/mpc85xx/b4860_serdes.c')
| -rw-r--r-- | arch/powerpc/cpu/mpc85xx/b4860_serdes.c | 45 | 
1 files changed, 45 insertions, 0 deletions
| diff --git a/arch/powerpc/cpu/mpc85xx/b4860_serdes.c b/arch/powerpc/cpu/mpc85xx/b4860_serdes.c index 002828015..bd3234271 100644 --- a/arch/powerpc/cpu/mpc85xx/b4860_serdes.c +++ b/arch/powerpc/cpu/mpc85xx/b4860_serdes.c @@ -31,6 +31,7 @@ struct serdes_config {  	u8 lanes[SRDS_MAX_LANES];  }; +#ifdef CONFIG_PPC_B4860  static struct serdes_config serdes1_cfg_tbl[] = {  	/* SerDes 1 */  	{0x0D, {CPRI8, CPRI7, CPRI6, CPRI5, @@ -128,6 +129,50 @@ static struct serdes_config serdes2_cfg_tbl[] = {  		XAUI_FM1_MAC10, XAUI_FM1_MAC10}},  	{}  }; +#endif + +#ifdef CONFIG_PPC_B4420 +static struct serdes_config serdes1_cfg_tbl[] = { +	{0x0D, {NONE, NONE, CPRI6, CPRI5, +		CPRI4, CPRI3, NONE, NONE} }, +	{0x0E, {NONE, NONE, CPRI8, CPRI5, +		CPRI4, CPRI3, NONE, NONE} }, +	{0x0F, {NONE, NONE, CPRI6, CPRI5, +		CPRI4, CPRI3, NONE, NONE} }, +	{0x18, {NONE, NONE, +		SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4, +		NONE, NONE, NONE, NONE} }, +	{0x1B, {NONE, NONE, +		SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4, +		NONE, NONE, NONE, NONE} }, +	{0x1E, {NONE, NONE, AURORA, AURORA, +		NONE, NONE, NONE, NONE} }, +	{0x21, {NONE, NONE, AURORA, AURORA, +		NONE, NONE, NONE, NONE} }, +	{0x3E, {NONE, NONE, CPRI6, CPRI5, +		CPRI4, CPRI3, NONE, NONE} }, +	{} +}; +static struct serdes_config serdes2_cfg_tbl[] = { +	{0x49, {SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2, +		SGMII_FM1_DTSEC3, AURORA, +		NONE, NONE, NONE, NONE} }, +	{0x4A, {SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2, +		SGMII_FM1_DTSEC3, AURORA, +		NONE, NONE, NONE, NONE} }, +	{0x6F, {SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2, +		AURORA, AURORA,	NONE, NONE, NONE, NONE} }, +	{0x70, {SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2, +		AURORA, AURORA,	NONE, NONE, NONE, NONE} }, +	{0x9A, {PCIE1, PCIE1, +		SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4, +		NONE, NONE, NONE, NONE} }, +	{0x9E, {PCIE1, PCIE1, PCIE1, PCIE1, +		NONE, NONE, NONE, NONE} }, +	{} +}; +#endif +  static struct serdes_config *serdes_cfg_tbl[] = {  	serdes1_cfg_tbl,  	serdes2_cfg_tbl, |