]> git.sur5r.net Git - u-boot/commitdiff
Add support for Freescale SGMII Riser Card
authorAndy Fleming <afleming@freescale.com>
Sun, 31 Aug 2008 21:33:28 +0000 (16:33 -0500)
committerBen Warren <biggerbadderben@gmail.com>
Wed, 3 Sep 2008 04:18:15 +0000 (21:18 -0700)
The 8544DS and 8572DS systems have an optional SGMII riser card which
exposes new ethernet ports which are connected to the eTSECs via an
SGMII interface.  The SGMII PHYs for this board are offset from the standard
PHY addresses, so this code modifies the passed in tsec_info structure to
use the SGMII PHYs on the card, instead.

Signed-off-by: Andy Fleming <afleming@freescale.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
board/freescale/common/Makefile
board/freescale/common/sgmii_riser.c [new file with mode: 0644]
board/freescale/common/sgmii_riser.h [new file with mode: 0644]
include/configs/MPC8544DS.h

index 508e3b569b20a8484e3c1099ed4e307749b36cd0..8584374f387226107f2217b610d8343431c071ff 100644 (file)
@@ -36,6 +36,7 @@ COBJS-${CONFIG_FSL_DIU_FB}    += fsl_diu_fb.o fsl_logo_bmp.o
 COBJS-${CONFIG_FSL_PIXIS}      += pixis.o
 COBJS-${CONFIG_PQ_MDS_PIB}     += pq-mds-pib.o
 COBJS-${CONFIG_ID_EEPROM}      += sys_eeprom.o
+COBJS-${CONFIG_FSL_SGMII_RISER}        += sgmii_riser.o
 
 COBJS-${CONFIG_MPC8541CDS}     += cds_pci_ft.o
 COBJS-${CONFIG_MPC8548CDS}     += cds_pci_ft.o
diff --git a/board/freescale/common/sgmii_riser.c b/board/freescale/common/sgmii_riser.c
new file mode 100644 (file)
index 0000000..5ccd6bc
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Freescale SGMII Riser Card
+ *
+ * This driver supports the SGMII Riser card found on the
+ * "DS" style of development board from Freescale.
+ *
+ * This software may be used and distributed according to the
+ * terms of the GNU Public License, Version 2, incorporated
+ * herein by reference.
+ *
+ * Copyright 2008 Freescale Semiconductor, Inc.
+ *
+ */
+
+#include <config.h>
+#include <common.h>
+#include <tsec.h>
+
+void fsl_sgmii_riser_init(struct tsec_info_struct *tsec_info, int num)
+{
+       int i;
+
+       for (i = 0; i < num; i++)
+               if (tsec_info[i].flags & TSEC_SGMII)
+                       tsec_info[i].phyaddr += SGMII_RISER_PHY_OFFSET;
+}
diff --git a/board/freescale/common/sgmii_riser.h b/board/freescale/common/sgmii_riser.h
new file mode 100644 (file)
index 0000000..8d56a1f
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * Freescale SGMII Riser Card
+ *
+ * This driver supports the SGMII Riser card found on the
+ * "DS" style of development board from Freescale.
+ *
+ * This software may be used and distributed according to the
+ * terms of the GNU Public License, Version 2, incorporated
+ * herein by reference.
+ *
+ * Copyright 2008 Freescale Semiconductor, Inc.
+ *
+ */
+
+void fsl_sgmii_riser_init(struct tsec_info_struct *tsec_info, int num);
index 5738192032192d430dd02ac92b6d75155fdab8a2..a428e88ef3148aa700a5619b8791fff7b50013b1 100644 (file)
@@ -369,6 +369,9 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);
 #define CONFIG_TSEC3   1
 #define CONFIG_TSEC3_NAME      "eTSEC3"
 
+#define CONFIG_FSL_SGMII_RISER 1
+#define SGMII_RISER_PHY_OFFSET 0x1c
+
 #define TSEC1_PHY_ADDR         0
 #define TSEC3_PHY_ADDR         1