Re: [PATCH v2 2/2] MIPS: cavium-octeon: enable interfaces on EdgeRouter Lite

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Mon, Jun 24, 2013 at 11:48:48AM -0700, David Daney wrote:
> On 06/23/2013 02:38 PM, Aaro Koskinen wrote:
> >Enable interfaces on EdgeRouter Lite. Tested with cavium_octeon_defconfig
> >and busybox shell. DHCP & ping works with eth0, eth1 and eth2.
> >
> >The board type "UBNT_E100" is taken from the sources of the vendor kernel
> >shipped with the product.
> >
> >Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxx>
> 
> I don't have a board to verify any of this, but...
> 
> Acked-by: David Daney <david.daney@xxxxxxxxxx>

Ralf, would it be still possible to get this patch into 3.11 merge window?

3.10-rc has been working well with this board. With this patch, we can
enable ethernet, and also there will be USB driver in staging in 3.11, so
this board would be already pretty much usable (at least for development
purposes) with the mainline kernel.

A.

> 
> >---
> >  arch/mips/cavium-octeon/executive/cvmx-helper-board.c | 13 +++++++++++++
> >  arch/mips/include/asm/octeon/cvmx-bootinfo.h          |  2 ++
> >  2 files changed, 15 insertions(+)
> >
> >diff --git a/arch/mips/cavium-octeon/executive/cvmx-helper-board.c b/arch/mips/cavium-octeon/executive/cvmx-helper-board.c
> >index 9838c0e..2fcf030 100644
> >--- a/arch/mips/cavium-octeon/executive/cvmx-helper-board.c
> >+++ b/arch/mips/cavium-octeon/executive/cvmx-helper-board.c
> >@@ -183,6 +183,11 @@ int cvmx_helper_board_get_mii_address(int ipd_port)
> >  			return ipd_port - 16 + 4;
> >  		else
> >  			return -1;
> >+	case CVMX_BOARD_TYPE_UBNT_E100:
> >+		if (ipd_port >= 0 && ipd_port <= 2)
> >+			return 7 - ipd_port;
> >+		else
> >+			return -1;
> >  	}
> >
> >  	/* Some unknown board. Somebody forgot to update this function... */
> >@@ -707,6 +712,14 @@ int __cvmx_helper_board_hardware_enable(int interface)
> >  				}
> >  			}
> >  		}
> >+	} else if (cvmx_sysinfo_get()->board_type ==
> >+			CVMX_BOARD_TYPE_UBNT_E100) {
> >+		cvmx_write_csr(CVMX_ASXX_RX_CLK_SETX(0, interface), 0);
> >+		cvmx_write_csr(CVMX_ASXX_TX_CLK_SETX(0, interface), 0x10);
> >+		cvmx_write_csr(CVMX_ASXX_RX_CLK_SETX(1, interface), 0);
> >+		cvmx_write_csr(CVMX_ASXX_TX_CLK_SETX(1, interface), 0x10);
> >+		cvmx_write_csr(CVMX_ASXX_RX_CLK_SETX(2, interface), 0);
> >+		cvmx_write_csr(CVMX_ASXX_TX_CLK_SETX(2, interface), 0x10);
> >  	}
> >  	return 0;
> >  }
> >diff --git a/arch/mips/include/asm/octeon/cvmx-bootinfo.h b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
> >index 284fa8d..7b7818d 100644
> >--- a/arch/mips/include/asm/octeon/cvmx-bootinfo.h
> >+++ b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
> >@@ -227,6 +227,7 @@ enum cvmx_board_types_enum {
> >  	 * use any numbers in this range.
> >  	 */
> >  	CVMX_BOARD_TYPE_CUST_PRIVATE_MIN = 20001,
> >+	CVMX_BOARD_TYPE_UBNT_E100 = 20002,
> >  	CVMX_BOARD_TYPE_CUST_PRIVATE_MAX = 30000,
> >
> >  	/* The remaining range is reserved for future use. */
> >@@ -325,6 +326,7 @@ static inline const char *cvmx_board_type_to_string(enum
> >
> >  		    /* Customer private range */
> >  		ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MIN)
> >+		ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E100)
> >  		ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MAX)
> >  	}
> >  	return "Unsupported Board";
> >
> 
> 


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux