Преглед изворни кода

Add SGMII support for the 8544 DS

The 8544 DS has an optional SGMII Riser card, which uses different PHY
addresses.  Check if we are in SGMII mode, and invoke the SGMII Riser
setup code if so.

Signed-off-by: Andy Fleming <afleming@freescale.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Andy Fleming пре 17 година
родитељ
комит
216f2a7156
1 измењених фајлова са 39 додато и 0 уклоњено
  1. 39 0
      board/freescale/mpc8544ds/mpc8544ds.c

+ 39 - 0
board/freescale/mpc8544ds/mpc8544ds.c

@@ -32,8 +32,10 @@
 #include <miiphy.h>
 #include <miiphy.h>
 #include <libfdt.h>
 #include <libfdt.h>
 #include <fdt_support.h>
 #include <fdt_support.h>
+#include <tsec.h>
 
 
 #include "../common/pixis.h"
 #include "../common/pixis.h"
+#include "../common/sgmii_riser.h"
 
 
 #if defined(CONFIG_DDR_ECC) && !defined(CONFIG_ECC_INIT_VIA_DDRCONTROLLER)
 #if defined(CONFIG_DDR_ECC) && !defined(CONFIG_ECC_INIT_VIA_DDRCONTROLLER)
 extern void ddr_enable_ecc(unsigned int dram_size);
 extern void ddr_enable_ecc(unsigned int dram_size);
@@ -463,6 +465,43 @@ get_board_sys_clk(ulong dummy)
 	return val;
 	return val;
 }
 }
 
 
+#ifdef CONFIG_TSEC_ENET
+int board_eth_init(bd_t *bis)
+{
+	struct tsec_info_struct tsec_info[2];
+	volatile ccsr_gur_t *gur = (void *)(CFG_MPC85xx_GUTS_ADDR);
+	uint io_sel = (gur->pordevsr & MPC85xx_PORDEVSR_IO_SEL) >> 19;
+	int num = 0;
+
+#ifdef CONFIG_TSEC1
+	SET_STD_TSEC_INFO(tsec_info[num], 1);
+	if (!(gur->pordevsr & MPC85xx_PORDEVSR_SGMII1_DIS))
+		tsec_info[num].flags |= TSEC_SGMII;
+	num++;
+#endif
+#ifdef CONFIG_TSEC3
+	SET_STD_TSEC_INFO(tsec_info[num], 3);
+	if (!(gur->pordevsr & MPC85xx_PORDEVSR_SGMII3_DIS))
+		tsec_info[num].flags |= TSEC_SGMII;
+	num++;
+#endif
+
+	if (!num) {
+		printf("No TSECs initialized\n");
+
+		return 0;
+	}
+
+	if (io_sel & 1)
+		fsl_sgmii_riser_init(tsec_info, num);
+
+
+	tsec_eth_init(bis, tsec_info, num);
+
+	return 0;
+}
+#endif
+
 #if defined(CONFIG_OF_BOARD_SETUP)
 #if defined(CONFIG_OF_BOARD_SETUP)
 
 
 void
 void