public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 3/5] B4860QDS: Enable SFP or AMC on basis of hwconfig string
@ 2014-11-13  3:27 shh.xie at gmail.com
  2014-12-05 16:35 ` York Sun
  0 siblings, 1 reply; 2+ messages in thread
From: shh.xie at gmail.com @ 2014-11-13  3:27 UTC (permalink / raw)
  To: u-boot

From: Suresh Gupta <suresh.gupta@freescale.com>

SerDes2 lanes EFGH either go to SFP or AMC riser card slot2.
By default AMC will be configured even if no hwconfig is specified.

To enable XFI via SFP use the below hwconfig:
	fsl_b4860_serdes2:sfp_amc=sfp

Signed-off-by: Suresh Gupta <suresh.gupta@freescale.com>
Signed-off-by: Poonam Aggrwal <poonam.aggrwal@ffeescale.com>
Signed-off-by: Shaohui Xie <Shaohui.Xie@freescale.com>
---
 board/freescale/b4860qds/b4860qds.c | 41 +++++++++++++++++++++++++++++--------
 1 file changed, 33 insertions(+), 8 deletions(-)

diff --git a/board/freescale/b4860qds/b4860qds.c b/board/freescale/b4860qds/b4860qds.c
index 6a7e426..86c7c66 100644
--- a/board/freescale/b4860qds/b4860qds.c
+++ b/board/freescale/b4860qds/b4860qds.c
@@ -19,6 +19,7 @@
 #include <asm/fsl_portals.h>
 #include <asm/fsl_liodn.h>
 #include <fm_eth.h>
+#include <hwconfig.h>
 
 #include "../common/qixis.h"
 #include "../common/vsc3316_3308.h"
@@ -333,6 +334,8 @@ int configure_vsc3316_3308(void)
 	unsigned int num_vsc16_con, num_vsc08_con;
 	u32 serdes1_prtcl, serdes2_prtcl;
 	int ret;
+	char buffer[HWCONFIG_BUFFER_SIZE];
+	char *buf = NULL;
 
 	serdes1_prtcl = in_be32(&gur->rcwsr[4]) &
 			FSL_CORENET2_RCWSR4_SRDS1_PRTCL;
@@ -536,14 +539,36 @@ int configure_vsc3316_3308(void)
 	case 0xb1:
 	case 0xb2:
 		if (!ret) {
-			ret = vsc3308_config(VSC3308_TX_ADDRESS,
-					vsc08_tx_sfp, num_vsc08_con);
-			if (ret)
-				return ret;
-			ret = vsc3308_config(VSC3308_RX_ADDRESS,
-					vsc08_rx_sfp, num_vsc08_con);
-			if (ret)
-				return ret;
+			/*
+			 * Extract hwconfig from environment since environment
+			 * is not setup properly yet
+			 */
+			getenv_f("hwconfig", buffer, sizeof(buffer));
+			buf = buffer;
+
+			if (hwconfig_subarg_cmp_f("fsl_b4860_serdes2",
+						  "sfp_amc", "sfp", buf)) {
+				ret = vsc3308_config(VSC3308_TX_ADDRESS,
+						vsc08_tx_sfp, num_vsc08_con);
+				if (ret)
+					return ret;
+
+				ret = vsc3308_config(VSC3308_RX_ADDRESS,
+						vsc08_rx_sfp, num_vsc08_con);
+				if (ret)
+					return ret;
+			} else {
+				ret = vsc3308_config(VSC3308_TX_ADDRESS,
+						vsc08_tx_amc, num_vsc08_con);
+				if (ret)
+					return ret;
+
+				ret = vsc3308_config(VSC3308_RX_ADDRESS,
+						vsc08_rx_amc, num_vsc08_con);
+				if (ret)
+					return ret;
+			}
+
 		} else {
 			return ret;
 		}
-- 
2.1.0.27.g96db324

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [U-Boot] [PATCH 3/5] B4860QDS: Enable SFP or AMC on basis of hwconfig string
  2014-11-13  3:27 [U-Boot] [PATCH 3/5] B4860QDS: Enable SFP or AMC on basis of hwconfig string shh.xie at gmail.com
@ 2014-12-05 16:35 ` York Sun
  0 siblings, 0 replies; 2+ messages in thread
From: York Sun @ 2014-12-05 16:35 UTC (permalink / raw)
  To: u-boot

On 11/12/2014 07:27 PM, shh.xie at gmail.com wrote:
> From: Suresh Gupta <suresh.gupta@freescale.com>
> 
> SerDes2 lanes EFGH either go to SFP or AMC riser card slot2.
> By default AMC will be configured even if no hwconfig is specified.
> 
> To enable XFI via SFP use the below hwconfig:
> 	fsl_b4860_serdes2:sfp_amc=sfp
> 
> Signed-off-by: Suresh Gupta <suresh.gupta@freescale.com>
> Signed-off-by: Poonam Aggrwal <poonam.aggrwal@ffeescale.com>
> Signed-off-by: Shaohui Xie <Shaohui.Xie@freescale.com>
> ---

Applied to u-boot-mpc85xx, awaiting upstream.

York

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-12-05 16:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-13  3:27 [U-Boot] [PATCH 3/5] B4860QDS: Enable SFP or AMC on basis of hwconfig string shh.xie at gmail.com
2014-12-05 16:35 ` York Sun

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox