From patchwork Mon Nov 30 21:50:19 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Daniel_Gonz=C3=A1lez_Cabanelas?= X-Patchwork-Id: 550335 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (arrakis.dune.hu [78.24.191.176]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4FD6D1402BF for ; Tue, 1 Dec 2015 08:50:50 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=XPldnZLE; dkim-atps=neutral Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id B6A7D28BDBF; Mon, 30 Nov 2015 22:50:15 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on arrakis.dune.hu X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=unavailable version=3.3.2 Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 5BBE6281091 for ; Mon, 30 Nov 2015 22:50:10 +0100 (CET) X-policyd-weight: using cached result; rate: -8.5 Received: from mail-wm0-f43.google.com (mail-wm0-f43.google.com [74.125.82.43]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Mon, 30 Nov 2015 22:50:09 +0100 (CET) Received: by wmww144 with SMTP id w144so148518512wmw.1 for ; Mon, 30 Nov 2015 13:50:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:user-agent:mime-version :content-transfer-encoding:content-type; bh=PGOsIDleBWpi2eNG3sBWpv1+xHFh1MomeEv09tnNE1U=; b=XPldnZLEApgs5YHd9YHrFNzLTNMnmR72hvvG8Y/ePkdvt+SXVjxbzaWh4P3XhMe/q+ +tzzj5Ib/HyWSZQnPkpj7k76jlVUYyQm0Uti3O0LiU1i2V07RgEtpKCqY+xho2MHwJG7 Jh+icvCFICD4CuzqdVyXljpyEJKkvY0X1wwuEm5MgzAaWktnSqmw9R5l5pFyL6m2REnn WiXUjNTIW026cR1O6eLex8FS7IbTalJ0MkfSc8Htxz18gKH/zOucW3XBgdP7H0VL0/Pi nCpIImSmA/RUXegV+4wGclBnLdrm8t7RecYi3UDuAwgZT/glEktCZex0pjoWXb9IoWG6 IhBw== X-Received: by 10.28.150.7 with SMTP id y7mr32511933wmd.73.1448920212595; Mon, 30 Nov 2015 13:50:12 -0800 (PST) Received: from tool.localnet ([77.231.193.240]) by smtp.googlemail.com with ESMTPSA id qm9sm15247534wjc.39.2015.11.30.13.50.11 for (version=TLSv1/SSLv3 cipher=OTHER); Mon, 30 Nov 2015 13:50:11 -0800 (PST) From: dani To: openwrt-devel@lists.openwrt.org Date: Mon, 30 Nov 2015 22:50:19 +0100 Message-ID: <2124718.LGh41Llpeb@tool> User-Agent: KMail/4.14.10 (Linux/4.2.5-1-ARCH; KDE/4.14.14; x86_64; ; ) MIME-Version: 1.0 Subject: [OpenWrt-Devel] [PATCH v2] brcm63xx: Add NuCom R5010UNv2 support X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" This patch adds support for the NuCom R5010UNv2. It's a BCM6328 based board. It has an onboard BCM43217 wifi chip. For this wifi chip looks like the brcmsmac driver isn't still supported, b43 drivers are used for the profile of the router. It's worth mentioning this board was affected by a bug solved with https://dev.openwrt.org/changeset/46707 Tested-by: Angel Fontan Signed-off-by: Daniel Gonzalez diff --git a/target/linux/brcm63xx/base-files/etc/diag.sh b/target/linux/brcm63xx/base-files/etc/diag.sh index 7826fad..c0fb31e 100644 --- a/target/linux/brcm63xx/base-files/etc/diag.sh +++ b/target/linux/brcm63xx/base-files/etc/diag.sh @@ -102,6 +102,9 @@ set_state() { p870hw-51a_v2) status_led="P870HW-51a:green:power" ;; + r5010un_v2) + status_led="96328ang:green:power" + ;; rta770bw) status_led="RTA770BW:green:diag" ;; diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds b/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds index bdb3dad..34d5c51 100644 --- a/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds +++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds @@ -46,6 +46,9 @@ homehub2a) ucidef_set_led_usbdev "usb1" "USB1" "HOMEHUB2A:blue:phone" "1-1" ucidef_set_led_usbdev "usb2" "USB2" "HOMEHUB2A:green:phone" "2-1" ;; +r5010un_v2) + ucidef_set_led_usbdev "usb" "USB" "96328ang:green:usb" "1-1" + ;; esac ucidef_commit_leds diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network index 129514b..70f18cb 100644 --- a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network +++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network @@ -94,6 +94,7 @@ fast2504n |\ fast2704v2 |\ hg655b |\ p870hw-51a_v2 |\ +r5010un_v2 |\ vr-3025un |\ vr-3025u |\ vr-3026e) diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc b/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc index f307a4c..bc9ae21 100644 --- a/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc +++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc @@ -23,6 +23,7 @@ case "$(brcm63xx_board_name)" in dsl-274xb-f |\ magic |\ p870hw-51a_v2 |\ + r5010un_v2 |\ rta770bw |\ rta770w |\ spw303v |\ diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh index 1a97c86..7dc57fd 100755 --- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh +++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh @@ -180,6 +180,9 @@ brcm63xx_dt_detect() { "Netgear DGND3700v1/DGND3800B") board_name="dgnd3700v1_dgnd3800b" ;; + "NuCom R5010UN v2") + board_name="r5010un_v2" + ;; "Pirelli A226G") board_name="a226g" ;; diff --git a/target/linux/brcm63xx/dts/r5010unv2.dts b/target/linux/brcm63xx/dts/r5010unv2.dts new file mode 100644 index 0000000..8c83483 --- /dev/null +++ b/target/linux/brcm63xx/dts/r5010unv2.dts @@ -0,0 +1,64 @@ +/dts-v1/; + +#include "bcm6328.dtsi" + +#include + +/ { + model = "NuCom R5010UN v2"; + compatible = "nucom,r5010unv2", "brcm,bcm6328"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 23 1>; + linux,code = ; + }; + wps { + label = "wps"; + gpios = <&gpio0 24 1>; + linux,code = ; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + inet_green { + label = "96328ang:green:inet"; + gpios = <&gpio0 1 1>; + }; + inet_fail_red { + label = "96328ang:red:inet-fail"; + gpios = <&gpio0 2 1>; + }; + dsl_red { + label = "96328ang:green:dsl"; + gpios = <&gpio0 3 1>; + }; + power_green { + label = "96328ang:green:power"; + gpios = <&gpio0 4 1>; + default-state = "on"; + }; + power_fail_red { + label = "96328ang:red:power-fail"; + gpios = <&gpio0 5 1>; + }; + wps_green { + label = "96328ang:green:wps"; + gpios = <&gpio0 10 1>; + }; + usb_green { + label = "96328ang:green:usb"; + gpios = <&gpio0 11 1>; + }; + }; +}; + diff --git a/target/linux/brcm63xx/image/Makefile b/target/linux/brcm63xx/image/Makefile index 9581116..06b9000 100644 --- a/target/linux/brcm63xx/image/Makefile +++ b/target/linux/brcm63xx/image/Makefile @@ -590,6 +590,8 @@ $(eval $(call bcm63xxCfeRamdisk,DG834GV4,DG834GTv4,dg834g_v4,96348W3,6348)) $(eval $(call bcm63xxCfeNetgear,DGND3700v1_3800B,DGND3700v1,dgnd3700v1,96368MVWG,6368,--image-offset 0x20000 --block-size 0x20000,U12L144T01_NETGEAR_NEWLED,1)) # Netgear DGND3800B $(eval $(call bcm63xxCfeNetgear,DGND3700v1_3800B,DGND3800B,dgnd3700v1,96368MVWG,6368,--image-offset 0x20000 --block-size 0x20000,U12L144T11_NETGEAR_NEWLED,1)) +# NuCom R5010UNv2 +$(eval $(call bcm63xxCfe,R5010UNV2,R5010UNv2,r5010unv2,96328ang,6328,--pad 8)) # Pirelli Alice Gate VoIP 2 Plus Wi-Fi AGPF-S0 $(eval $(call bcm63xxCfe,AGPF_S0,AGV2+W,agpf-s0,AGPF-S0,6358,--block-size 0x20000 --image-offset 0x20000 --signature2 IMAGE --tag-version 8)) # Pirelli A226G diff --git a/target/linux/brcm63xx/patches-4.1/573-board_R5010UNv2.patch b/target/linux/brcm63xx/patches-4.1/573-board_R5010UNv2.patch new file mode 100644 index 0000000..cf5a719 --- /dev/null +++ b/target/linux/brcm63xx/patches-4.1/573-board_R5010UNv2.patch @@ -0,0 +1,70 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -641,6 +641,51 @@ + }, + }, + }; ++ ++static struct board_info __initdata board_R5010UNV2 = { ++ .name = "96328ang", ++ .expected_cpu_id = 0x6328, ++ ++ .has_uart0 = 1, ++ .has_pci = 1, ++ .use_fallback_sprom = 1, ++ .has_ohci0 = 1, ++ .has_ehci0 = 1, ++ .num_usbh_ports = 1, ++ .has_enetsw = 1, ++ ++ .enetsw = { ++ .used_ports = { ++ [0] = { ++ .used = 1, ++ .phy_id = 1, ++ .name = "Port 1", ++ }, ++ [1] = { ++ .used = 1, ++ .phy_id = 2, ++ .name = "Port 2", ++ }, ++ [2] = { ++ .used = 1, ++ .phy_id = 3, ++ .name = "Port 3", ++ }, ++ [3] = { ++ .used = 1, ++ .phy_id = 4, ++ .name = "Port 4", ++ }, ++ }, ++ }, ++ ++ .fallback_sprom = { ++ .type = SPROM_BCM43217, ++ .pci_bus = 1, ++ .pci_dev = 0, ++ }, ++}; ++ + #endif /* CONFIG_BCM63XX_CPU_6328 */ + + /* +@@ -2452,6 +2497,7 @@ + &board_A4001N1, + &board_dsl_274xb_f1, + &board_FAST2704V2, ++ &board_R5010UNV2, + #endif + #ifdef CONFIG_BCM63XX_CPU_6338 + &board_96338gw, +@@ -2550,6 +2596,7 @@ + { .compatible = "comtrend,ar-5381u", .data = &board_AR5381u, }, + { .compatible = "comtrend,ar-5387un", .data = &board_AR5387un, }, + { .compatible = "d-link,dsl-274xb-f", .data = &board_dsl_274xb_f1, }, ++ { .compatible = "nucom,r5010unv2", .data = &board_R5010UNV2, }, + { .compatible = "sagem,f@st2704v2", .data = &board_FAST2704V2, }, + #endif + #ifdef CONFIG_BCM63XX_CPU_6338 diff --git a/target/linux/brcm63xx/profiles/nucom.mk b/target/linux/brcm63xx/profiles/nucom.mk new file mode 100644 index 0000000..2cd8801 --- /dev/null +++ b/target/linux/brcm63xx/profiles/nucom.mk @@ -0,0 +1,16 @@ +# +# Copyright (C) 2015 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/R5010UNV2 + NAME:=NuCom R5010UN v2 + PACKAGES:=kmod-b43 wpad-mini \ + kmod-usb2 kmod-usb-ohci kmod-ledtrig-usbdev +endef +define Profile/R5010UNV2/Description + Package set optimized for R5010UNV2. +endef +$(eval $(call Profile,R5010UNV2))