linux-mips
[Top] [All Lists]

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

To: Ralf Baechle <ralf@linux-mips.org>, linux-mips@linux-mips.org
Subject: Re: [PATCH v2 2/2] MIPS: cavium-octeon: enable interfaces on EdgeRouter Lite
From: Aaro Koskinen <aaro.koskinen@iki.fi>
Date: Sat, 29 Jun 2013 00:41:53 +0300
Cc: David Daney <ddaney.cavm@gmail.com>
In-reply-to: <51C89490.2060307@gmail.com>
List-archive: <http://www.linux-mips.org/archives/linux-mips/>
List-help: <mailto:ecartis@linux-mips.org?Subject=help>
List-id: linux-mips <linux-mips.eddie.linux-mips.org>
List-owner: <mailto:ralf@linux-mips.org>
List-post: <mailto:linux-mips@linux-mips.org>
List-software: Ecartis version 1.0.0
List-subscribe: <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips>
List-unsubscribe: <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1372023524-17333-1-git-send-email-aaro.koskinen@iki.fi> <1372023524-17333-2-git-send-email-aaro.koskinen@iki.fi> <51C89490.2060307@gmail.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.21 (2010-09-15)
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@iki.fi>
> 
> I don't have a board to verify any of this, but...
> 
> Acked-by: David Daney <david.daney@cavium.com>

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";
> >
> 
> 

<Prev in Thread] Current Thread [Next in Thread>