From patchwork Wed Feb 12 15:37:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Bauer X-Patchwork-Id: 1236923 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=david-bauer.net Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20170209 header.b=MZuCDQIm; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48HkLZ47Zqz9s1x for ; Thu, 13 Feb 2020 02:38:14 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Subject:MIME-Version:Message-Id:Date:To :From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=8rFB6itgTzdz2RCgk7k3uf2lJ0djN5R8vRBk/qlNX6k=; b=MZuCDQImlAiQw1 EqPYi9R0uz3QJ+eEzHigEBnUWGuvQ0mtRzoI+MfzQJMrljpHkZ7seNcUsn4Yn0EYOgPzzihiJTrBC yZyjDKFsFZDpONFls0B/oneLrrlYchHW04/aoaspYWCZ0H1d6ElNikYGt4S3l3wTzKYXLz/M6MJFc WY62YPOgFkZ2JWAm3M37cq7ijgmD9vIpTMFRsoxLetPNMHKwLf3oEyu77AhG19IG6dC4nmTyngKnF 85HdBG5A9ewsesRAIk21aXfzPNdw40t8kqYsx6Xtbcg3gvVjxdKgC93dgUztk/L8wuhy7EZ/3gKIw oRJ870VaVI1k/iYayANQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1j1u5Z-0003Ko-LL; Wed, 12 Feb 2020 15:38:09 +0000 Received: from mars.blocktrron.ovh ([2001:41d0:401:3000::cbd] helo=mail.blocktrron.ovh) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1j1u5S-0003JH-Ae for openwrt-devel@lists.openwrt.org; Wed, 12 Feb 2020 15:38:07 +0000 Received: from localhost.localdomain (unknown [46.183.103.8]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.blocktrron.ovh (Postfix) with ESMTPSA id 49D871F0CD for ; Wed, 12 Feb 2020 16:37:57 +0100 (CET) From: David Bauer To: openwrt-devel@lists.openwrt.org Date: Wed, 12 Feb 2020 16:37:01 +0100 Message-Id: <20200212153702.11977-1-mail@david-bauer.net> X-Mailer: git-send-email 2.25.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200212_073802_659314_8DA44401 X-CRM114-Status: GOOD ( 17.82 ) X-Spam-Score: 0.0 (/) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record Subject: [OpenWrt-Devel] [PATCH 1/2] ath79: backport phy reset-controller patches X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org The Siemens WS-AP3610 asserts reset to the ethernet PHY with the reset-register. Backport the necessary patches to de-assert reset when probing the PHY. These patches can be dropped when using kernel 5.4. Signed-off-by: David Bauer --- ...net-phy-add-reset-controller-support.patch | 107 ++++++++++++++++++ ...us-dont-use-managed-reset-controller.patch | 44 +++++++ 2 files changed, 151 insertions(+) create mode 100644 target/linux/ath79/patches-4.19/700-net-phy-add-reset-controller-support.patch create mode 100644 target/linux/ath79/patches-4.19/701-mdio-bus-dont-use-managed-reset-controller.patch diff --git a/target/linux/ath79/patches-4.19/700-net-phy-add-reset-controller-support.patch b/target/linux/ath79/patches-4.19/700-net-phy-add-reset-controller-support.patch new file mode 100644 index 0000000000..9f96390911 --- /dev/null +++ b/target/linux/ath79/patches-4.19/700-net-phy-add-reset-controller-support.patch @@ -0,0 +1,107 @@ +From 71dd6c0dff51b5f1fef2e9dfa6f6a948aac975f3 Mon Sep 17 00:00:00 2001 +From: David Bauer +Date: Wed, 17 Apr 2019 23:59:21 +0200 +Subject: [PATCH] net: phy: add support for reset-controller + +This commit adds support for PHY reset pins handled by a reset controller. + +Signed-off-by: David Bauer +Reviewed-by: Andrew Lunn +Signed-off-by: David S. Miller +--- + drivers/net/phy/mdio_bus.c | 27 +++++++++++++++++++++++++-- + drivers/net/phy/mdio_device.c | 13 +++++++++++-- + include/linux/mdio.h | 1 + + 3 files changed, 37 insertions(+), 4 deletions(-) + +--- a/drivers/net/phy/mdio_bus.c ++++ b/drivers/net/phy/mdio_bus.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -65,8 +66,23 @@ static int mdiobus_register_gpiod(struct + + mdiodev->reset = gpiod; + +- /* Assert the reset signal again */ +- mdio_device_reset(mdiodev, 1); ++ return 0; ++} ++ ++static int mdiobus_register_reset(struct mdio_device *mdiodev) ++{ ++ struct reset_control *reset = NULL; ++ ++ if (mdiodev->dev.of_node) ++ reset = devm_reset_control_get_exclusive(&mdiodev->dev, ++ "phy"); ++ if (PTR_ERR(reset) == -ENOENT || ++ PTR_ERR(reset) == -ENOTSUPP) ++ reset = NULL; ++ else if (IS_ERR(reset)) ++ return PTR_ERR(reset); ++ ++ mdiodev->reset_ctrl = reset; + + return 0; + } +@@ -82,6 +98,13 @@ int mdiobus_register_device(struct mdio_ + err = mdiobus_register_gpiod(mdiodev); + if (err) + return err; ++ ++ err = mdiobus_register_reset(mdiodev); ++ if (err) ++ return err; ++ ++ /* Assert the reset signal */ ++ mdio_device_reset(mdiodev, 1); + } + + mdiodev->bus->mdio_map[mdiodev->addr] = mdiodev; +--- a/drivers/net/phy/mdio_device.c ++++ b/drivers/net/phy/mdio_device.c +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -121,10 +122,18 @@ void mdio_device_reset(struct mdio_devic + { + unsigned int d; + +- if (!mdiodev->reset) ++ if (!mdiodev->reset && !mdiodev->reset_ctrl) + return; + +- gpiod_set_value(mdiodev->reset, value); ++ if (mdiodev->reset) ++ gpiod_set_value(mdiodev->reset, value); ++ ++ if (mdiodev->reset_ctrl) { ++ if (value) ++ reset_control_assert(mdiodev->reset_ctrl); ++ else ++ reset_control_deassert(mdiodev->reset_ctrl); ++ } + + d = value ? mdiodev->reset_assert_delay : mdiodev->reset_deassert_delay; + if (d) +--- a/include/linux/mdio.h ++++ b/include/linux/mdio.h +@@ -40,6 +40,7 @@ struct mdio_device { + int addr; + int flags; + struct gpio_desc *reset; ++ struct reset_control *reset_ctrl; + unsigned int reset_assert_delay; + unsigned int reset_deassert_delay; + }; diff --git a/target/linux/ath79/patches-4.19/701-mdio-bus-dont-use-managed-reset-controller.patch b/target/linux/ath79/patches-4.19/701-mdio-bus-dont-use-managed-reset-controller.patch new file mode 100644 index 0000000000..16e7f20370 --- /dev/null +++ b/target/linux/ath79/patches-4.19/701-mdio-bus-dont-use-managed-reset-controller.patch @@ -0,0 +1,44 @@ +From 32085f25d7b68404055f3525c780142fc72e543f Mon Sep 17 00:00:00 2001 +From: David Bauer +Date: Fri, 22 Nov 2019 22:44:51 +0100 +Subject: [PATCH] mdio_bus: don't use managed reset-controller + +Geert Uytterhoeven reported that using devm_reset_controller_get leads +to a WARNING when probing a reset-controlled PHY. This is because the +device devm_reset_controller_get gets supplied is not actually the +one being probed. + +Acquire an unmanaged reset-control as well as free the reset_control on +unregister to fix this. + +Reported-by: Geert Uytterhoeven +CC: Andrew Lunn +Signed-off-by: David Bauer +Reviewed-by: Andrew Lunn +Signed-off-by: David S. Miller +--- + drivers/net/phy/mdio_bus.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/drivers/net/phy/mdio_bus.c ++++ b/drivers/net/phy/mdio_bus.c +@@ -74,8 +74,8 @@ static int mdiobus_register_reset(struct + struct reset_control *reset = NULL; + + if (mdiodev->dev.of_node) +- reset = devm_reset_control_get_exclusive(&mdiodev->dev, +- "phy"); ++ reset = of_reset_control_get_exclusive(mdiodev->dev.of_node, ++ "phy"); + if (PTR_ERR(reset) == -ENOENT || + PTR_ERR(reset) == -ENOTSUPP) + reset = NULL; +@@ -118,6 +118,8 @@ int mdiobus_unregister_device(struct mdi + if (mdiodev->bus->mdio_map[mdiodev->addr] != mdiodev) + return -EINVAL; + ++ reset_control_put(mdiodev->reset_ctrl); ++ + mdiodev->bus->mdio_map[mdiodev->addr] = NULL; + + return 0; From patchwork Wed Feb 12 15:37:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Bauer X-Patchwork-Id: 1236924 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=david-bauer.net Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20170209 header.b=n2WC0Upz; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48HkLg5Z3fz9s1x for ; Thu, 13 Feb 2020 02:38:19 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Subject:MIME-Version:References: In-Reply-To:Message-Id:Date:To:From:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=64BjEpNoASezidEOmScWgkxY5Hz/hsK01plm5qYzog0=; b=n2WC0UpzRGuSICqyAM0LDdd0Ke oqeAeaiK8H23mqb/ZldqT29Gg5l3q9eyfxN4PBVMTW8yrdxVEBHpxnbEjhojTkDQljvVaWID/FWR6 UI7KwvWZcNLuVt14k91BMOAuNfNbHKyWELSCSS34IMCW9g4tsl8Odc+bwVguEeb5vf64b99i7o1/d dhBlvRbx0IEWyPpYnVBCnEOTik9frjEoOfGKvdIaNhiPFieh902N8xUcHYGgGNEjEQzzrsgRTQk2l CUOP5cxG1MoZzNbTwEP4Gw3k9TT9BwwQa/pZg9dfrhF1mQKuQ4mBWeTcB6VyYFp1gKBqfGs2OBPtu q+KN/hZg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1j1u5g-0003TD-1i; Wed, 12 Feb 2020 15:38:16 +0000 Received: from mars.blocktrron.ovh ([51.254.112.43] helo=mail.blocktrron.ovh) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1j1u5S-0003JK-Mz for openwrt-devel@lists.openwrt.org; Wed, 12 Feb 2020 15:38:07 +0000 Received: from localhost.localdomain (unknown [46.183.103.8]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.blocktrron.ovh (Postfix) with ESMTPSA id 14EC8230C0 for ; Wed, 12 Feb 2020 16:37:58 +0100 (CET) From: David Bauer To: openwrt-devel@lists.openwrt.org Date: Wed, 12 Feb 2020 16:37:02 +0100 Message-Id: <20200212153702.11977-2-mail@david-bauer.net> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200212153702.11977-1-mail@david-bauer.net> References: <20200212153702.11977-1-mail@david-bauer.net> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200212_073803_047754_2F82154B X-CRM114-Status: GOOD ( 16.25 ) X-Spam-Score: 0.0 (/) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record Subject: [OpenWrt-Devel] [PATCH 2/2] ath79: add support for Siemens WS-AP3610 X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org Hardware -------- SoC: Atheros AR7161 RAM: Samsung K4H511638D-UCCC 2x 64M DDR1 SPI: Micron M25P128 (16M) WiFi: Atheros AR9160 bgn Atheros AR9160 an ETH: Broadcom BCM5481 LED: Power (Green/Red) ETH (Green / Blue / Yellow) (PHY-controlled) WiFi 5 (Green / Blue) WiFi 2 (Green / Blue) BTN: Reset Serial: Cisco-Style RJ45 - 115200 8N1 Installation ------------ 1. Download the OpenWrt initramfs-image. Place it into a TFTP server root directory and rename it to 1401A8C0.img. Configure the TFTP server to listen at 192.168.1.66/24. 2. Connect the TFTP server to the access point. 3. Connect to the serial console of the access point. Attach power and interrupt the boot procedure when prompted (bootdelay is 1 second). 4. Configure the U-Boot environment for booting OpenWrt from Ram and flash: $ setenv boot_openwrt 'setenv bootargs; bootm 0xbf080000' $ setenv ramboot_openwrt 'setenv serverip 192.168.1.66; tftpboot; bootm' $ saveenv 5. Load OpenWrt into memory: $ run ramboot_openwrt Wait for the image to boot. 6. Transfer the OpenWrt sysupgrade image to the device. Write the image to flash using sysupgrade: $ sysupgrade -n /path/to/openwrt-sysuograde.bin Signed-off-by: David Bauer --- .../ath79/dts/ar7161_siemens_ws-ap3610.dts | 186 ++++++++++++++++++ .../generic/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/ieee80211/10_fix_wifi_mac | 3 + .../base-files/lib/preinit/10_fix_eth_mac.sh | 13 ++ target/linux/ath79/generic/config-default | 1 + target/linux/ath79/image/generic.mk | 14 ++ 6 files changed, 218 insertions(+) create mode 100644 target/linux/ath79/dts/ar7161_siemens_ws-ap3610.dts create mode 100644 target/linux/ath79/generic/base-files/lib/preinit/10_fix_eth_mac.sh diff --git a/target/linux/ath79/dts/ar7161_siemens_ws-ap3610.dts b/target/linux/ath79/dts/ar7161_siemens_ws-ap3610.dts new file mode 100644 index 0000000000..8e0a80cb32 --- /dev/null +++ b/target/linux/ath79/dts/ar7161_siemens_ws-ap3610.dts @@ -0,0 +1,186 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include +#include + +#include "ar7100.dtsi" + +/ { + compatible = "siemens,ws-ap3610", "qca,ar7161"; + model = "Siemens WS-AP3610"; + + chosen { + bootargs = "console=ttyS0,115200"; + }; + + aliases { + led-boot = &led_power_green; + led-failsafe = &led_power_red; + led-running = &led_power_green; + led-upgrade = &led_power_red; + label-mac-device = ð0; + }; + + extosc: ref { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-output-names = "ref"; + clock-frequency = <40000000>; + }; + + leds { + compatible = "gpio-leds"; + + led_power_green: led_power_green { + label = "ws-ap3610:green:power"; + gpios = <&gpio 7 GPIO_ACTIVE_LOW>; + }; + + led_power_red: led_power_red { + label = "ws-ap3610:red:power"; + gpios = <&gpio 8 GPIO_ACTIVE_LOW>; + }; + + led_wlan5_blue { + label = "ws-ap3610:blue:wlan5"; + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + + led_wlan5_green { + label = "ws-ap3610:green:wlan5"; + gpios = <&gpio 3 GPIO_ACTIVE_LOW>; + }; + + led_wlan2_blue { + label = "ws-ap3610:blue:wlan2"; + gpios = <&gpio 4 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy1tpt"; + }; + + led_wlan2_green { + label = "ws-ap3610:green:wlan2"; + gpios = <&gpio 5 GPIO_ACTIVE_LOW>; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&gpio 11 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&pcie0 { + status = "okay"; +}; + +&uart { + status = "okay"; +}; + +&mdio0 { + status = "okay"; + + phy0: ethernet-phy@0 { + /* + * When the compatible-is missing, PHY autodetection + * is performed, but the PHY-ID reads all 0xff. + * + * Linux does not create the device in this case, + * and the reset is never even de-asserted. + */ + compatible = "ethernet-phy-id0143.bca2", + "ethernet-phy-ieee802.3-c22"; + reg = <0>; + + resets = <&rst 8>; + reset-names = "phy"; + reset-assert-us = <10000>; + reset-deassert-us = <10000>; + }; +}; + +ð0 { + status = "okay"; + + phy-mode = "rgmii-id"; + phy-handle = <&phy0>; +}; + +&spi { + status = "okay"; + + num-cs = <1>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <25000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x40000>; + read-only; + }; + + partition@40000 { + label = "u-boot-bak"; + reg = <0x40000 0x40000>; + read-only; + }; + + partition@80000 { + compatible = "denx,uimage"; + label = "firmware"; + reg = <0x80000 0xe00000>; + }; + + partition@e80000 { + label = "cfg1"; + reg = <0xe80000 0x40000>; + read-only; + }; + + partition@ec0000 { + label = "cfg2"; + reg = <0xec0000 0x40000>; + read-only; + }; + + partition@f00000 { + label = "nvram1"; + reg = <0xf00000 0x40000>; + read-only; + }; + + partition@f40000 { + label = "nvram2"; + reg = <0xf40000 0x40000>; + read-only; + }; + + partition@f80000 { + label = "rsvd1"; + reg = <0xf80000 0x40000>; + read-only; + }; + + partition@fc0000 { + label = "rsvd2"; + reg = <0xfc0000 0x40000>; + read-only; + }; + }; + }; +}; diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network index a3fcf35715..69c19358e2 100755 --- a/target/linux/ath79/generic/base-files/etc/board.d/02_network +++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network @@ -30,6 +30,7 @@ ath79_setup_interfaces() pisen,ts-d084|\ pisen,wmb001n|\ pisen,wmm003n|\ + siemens,ws-ap3610|\ tplink,cpe210-v2|\ tplink,cpe210-v3|\ tplink,cpe510-v2|\ diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac index 8c8b7932bc..f814bd46ad 100644 --- a/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac +++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac @@ -34,6 +34,9 @@ case "$board" in [ "$PHYNBR" -eq 1 ] && \ k2t_get_mac "lan_mac" > /sys${DEVPATH}/macaddress ;; + siemens,ws-ap3610) + mtd_get_mac_ascii cfg1 RADIOADDR${PHYNBR} > /sys${DEVPATH}/macaddress + ;; trendnet,tew-823dru) # set the 2.4G interface mac address to LAN MAC [ "$PHYNBR" -eq 1 ] && \ diff --git a/target/linux/ath79/generic/base-files/lib/preinit/10_fix_eth_mac.sh b/target/linux/ath79/generic/base-files/lib/preinit/10_fix_eth_mac.sh new file mode 100644 index 0000000000..a0fb9fc717 --- /dev/null +++ b/target/linux/ath79/generic/base-files/lib/preinit/10_fix_eth_mac.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +. /lib/functions.sh + +preinit_set_mac_address() { + case $(board_name) in + siemens,ws-ap3610) + ip link set dev eth0 address $(mtd_get_mac_ascii cfg1 ethaddr) + ;; + esac +} + +boot_hook_add preinit_main preinit_set_mac_address diff --git a/target/linux/ath79/generic/config-default b/target/linux/ath79/generic/config-default index 2d8f7f20c2..6cd1518e3a 100644 --- a/target/linux/ath79/generic/config-default +++ b/target/linux/ath79/generic/config-default @@ -1,4 +1,5 @@ CONFIG_AT803X_PHY=y +CONFIG_BROADCOM_PHY=y CONFIG_GPIO_WATCHDOG=y CONFIG_GPIO_WATCHDOG_ARCH_INITCALL=y CONFIG_INTEL_XWAY_PHY=y diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index 3c74b0f7d7..94851be557 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -1040,6 +1040,20 @@ define Device/rosinson_wr818 endef TARGET_DEVICES += rosinson_wr818 +define Device/siemens_ws-ap3610 + SOC := ar7161 + DEVICE_VENDOR := Siemens + DEVICE_MODEL := WS-AP3610 + IMAGE_SIZE := 14336k + LOADER_TYPE := bin + LOADER_FLASH_OFFS := 0x82000 + COMPILE := loader-$(1).bin + COMPILE/loader-$(1).bin := loader-okli-compile + KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 | loader-okli $(1) 8128 | uImage none + KERNEL_INITRAMFS := kernel-bin | append-dtb | uImage none +endef +TARGET_DEVICES += siemens_ws-ap3610 + define Device/sitecom_wlr-7100 SOC := ar1022 DEVICE_VENDOR := Sitecom