svn commit: r216476 - in head/sys: contrib/octeon-sdk mips/cavium/octe

Juli Mallett jmallett at FreeBSD.org
Thu Dec 16 07:20:39 UTC 2010


Author: jmallett
Date: Thu Dec 16 07:20:38 2010
New Revision: 216476
URL: http://svn.freebsd.org/changeset/base/216476

Log:
  o) Add support for the Lanner MR-321X/MR-325, which is just a modified MR-320.
  o) On the Lanner MR-730, disable PCIe lane swap, per vendor.

Modified:
  head/sys/contrib/octeon-sdk/cvmx-app-init.h
  head/sys/contrib/octeon-sdk/cvmx-helper-board.c
  head/sys/contrib/octeon-sdk/cvmx-helper-rgmii.c
  head/sys/contrib/octeon-sdk/cvmx-pcie.c
  head/sys/mips/cavium/octe/ethernet-common.c

Modified: head/sys/contrib/octeon-sdk/cvmx-app-init.h
==============================================================================
--- head/sys/contrib/octeon-sdk/cvmx-app-init.h	Thu Dec 16 05:13:41 2010	(r216475)
+++ head/sys/contrib/octeon-sdk/cvmx-app-init.h	Thu Dec 16 07:20:38 2010	(r216476)
@@ -223,6 +223,7 @@ enum cvmx_board_types_enum {
     CVMX_BOARD_TYPE_CUST_PRIVATE_MIN = 20001,
 #if defined(OCTEON_VENDOR_LANNER)
     CVMX_BOARD_TYPE_CUST_LANNER_MR320= 20002,
+    CVMX_BOARD_TYPE_CUST_LANNER_MR321X=20007,
 #endif
     CVMX_BOARD_TYPE_CUST_PRIVATE_MAX = 30000,
 
@@ -336,6 +337,7 @@ static inline const char *cvmx_board_typ
         ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MIN)
 #if defined(OCTEON_VENDOR_LANNER)
 	ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_LANNER_MR320)
+	ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_LANNER_MR321X)
 #endif
         ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MAX)
 

Modified: head/sys/contrib/octeon-sdk/cvmx-helper-board.c
==============================================================================
--- head/sys/contrib/octeon-sdk/cvmx-helper-board.c	Thu Dec 16 05:13:41 2010	(r216475)
+++ head/sys/contrib/octeon-sdk/cvmx-helper-board.c	Thu Dec 16 07:20:38 2010	(r216476)
@@ -276,6 +276,7 @@ int cvmx_helper_board_get_mii_address(in
                 return ipd_port;
 	    return -1;
 	case CVMX_BOARD_TYPE_CUST_LANNER_MR320:
+	case CVMX_BOARD_TYPE_CUST_LANNER_MR321X:
 	    /* Port 0 is a Marvell 88E6161 switch, ports 1 and 2 are Marvell
 	       88E1111 interfaces.  */
 	    switch (ipd_port) {
@@ -417,6 +418,7 @@ cvmx_helper_link_info_t __cvmx_helper_bo
 	    is_broadcom_phy = 1;
 	    break;
 	case CVMX_BOARD_TYPE_CUST_LANNER_MR320:
+	case CVMX_BOARD_TYPE_CUST_LANNER_MR321X:
 	    /* Port 0 connects to the switch */
 	    if (ipd_port == 0)
 	    {
@@ -860,6 +862,7 @@ cvmx_helper_board_usb_clock_types_t __cv
         case CVMX_BOARD_TYPE_LANAI2_G:
 #if defined(OCTEON_VENDOR_LANNER)
     case CVMX_BOARD_TYPE_CUST_LANNER_MR320:
+    case CVMX_BOARD_TYPE_CUST_LANNER_MR321X:
 #endif
             return USB_CLOCK_TYPE_CRYSTAL_12;
     }

Modified: head/sys/contrib/octeon-sdk/cvmx-helper-rgmii.c
==============================================================================
--- head/sys/contrib/octeon-sdk/cvmx-helper-rgmii.c	Thu Dec 16 05:13:41 2010	(r216475)
+++ head/sys/contrib/octeon-sdk/cvmx-helper-rgmii.c	Thu Dec 16 07:20:38 2010	(r216476)
@@ -239,6 +239,7 @@ int __cvmx_helper_rgmii_enable(int inter
 #if defined(OCTEON_VENDOR_LANNER)
 	switch (cvmx_sysinfo_get()->board_type) {
 	case CVMX_BOARD_TYPE_CUST_LANNER_MR320:
+	case CVMX_BOARD_TYPE_CUST_LANNER_MR321X:
             if (port == 0) {
                 cvmx_write_csr(CVMX_ASXX_TX_CLK_SETX(port, interface), 4);
 	    } else {

Modified: head/sys/contrib/octeon-sdk/cvmx-pcie.c
==============================================================================
--- head/sys/contrib/octeon-sdk/cvmx-pcie.c	Thu Dec 16 05:13:41 2010	(r216475)
+++ head/sys/contrib/octeon-sdk/cvmx-pcie.c	Thu Dec 16 07:20:38 2010	(r216476)
@@ -392,7 +392,16 @@ static int __cvmx_pcie_rc_initialize_lin
     /* Lane swap needs to be manually enabled for CN52XX */
     if (OCTEON_IS_MODEL(OCTEON_CN52XX) && (pcie_port == 1))
     {
-      pescx_ctl_status.s.lane_swp = 1;
+      switch (cvmx_sysinfo_get()->board_type)
+      {
+#if defined(OCTEON_VENDOR_LANNER)
+	case CVMX_BOARD_TYPE_CUST_LANNER_MR730:
+	  break;
+#endif
+	default:
+	  pescx_ctl_status.s.lane_swp = 1;
+	  break;
+      }
       cvmx_write_csr(CVMX_PESCX_CTL_STATUS(pcie_port),pescx_ctl_status.u64);
     }
 

Modified: head/sys/mips/cavium/octe/ethernet-common.c
==============================================================================
--- head/sys/mips/cavium/octe/ethernet-common.c	Thu Dec 16 05:13:41 2010	(r216475)
+++ head/sys/mips/cavium/octe/ethernet-common.c	Thu Dec 16 07:20:38 2010	(r216476)
@@ -294,6 +294,7 @@ int cvm_oct_common_init(struct ifnet *if
 	switch (cvmx_sysinfo_get()->board_type) {
 #if defined(OCTEON_VENDOR_LANNER)
 	case CVMX_BOARD_TYPE_CUST_LANNER_MR320:
+	case CVMX_BOARD_TYPE_CUST_LANNER_MR321X:
 		if (priv->phy_id == 16)
 			cvm_oct_mv88e61xx_setup_device(ifp);
 		break;


More information about the svn-src-head mailing list