diff mbox series

[OpenWrt-Devel,v2] ramips: add support for Edimax RG21S

Message ID 9e6069ea-1f8a-62b8-d25c-27f064ba7279@birger-koblitz.de
State Superseded
Headers show
Series [OpenWrt-Devel,v2] ramips: add support for Edimax RG21S | expand

Commit Message

Birger Koblitz July 20, 2019, 10:49 a.m. UTC
ramips: add Edimax RG21S

SoC:	MediaTek MT7621AT dual-core @ 880MHz
RAM:	256M (Nanya NT5CC128M)
FLASH:	16MB (Macronix MX25L12835F)
WiFi:	- 2.4GHz MediaTek MT7615N bgn
	- 5GHz MediaTek MT7615N nac
Switch: SoC integrated Gigabit Switch (4 x LAN, 1 x WAN)
USB:	No
BTN:	Reset, WPS
LED:	4 red LEDs, indistinguishable when casing closed
UART: 	UART is present as Pads marked J1 on the PCB.
	3.3V - RX - GND - TX / 57600-8N1
	3.3V is the square pad

Installation
------------
Update the factory image via the OEM web-interface
(by default:http://192.168.1.1)
The sysupgrade image can be installed via TFTP from
the U-Boot bootloader. Connect ethernet port 2.

Signed-off-by: Birger Koblitz <mail@birger-koblitz.de>

---

v2: Update to DEVICE_VENDOR / DEVICE_MODEL in mt7621.mk
    renamed .dts according to new conventions

Comments

Adrian Schmutzler July 20, 2019, 1:23 p.m. UTC | #1
Hi,

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org]
> On Behalf Of Birger Koblitz
> Sent: Samstag, 20. Juli 2019 12:49
> To: openwrt-devel@lists.openwrt.org
> Subject: [OpenWrt-Devel] [PATCH v2] ramips: add support for Edimax RG21S
> 
> ramips: add Edimax RG21S
> 

Some comments:
- You can remove the memory node since mt7621 has auto-detection now.
- Please specify IMAGE_SIZE in kiB since the ralink...16M variable currently not matches your partition size

> +		wps {
> +                        label = "wps";
> +                        gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
> +                        linux,code = <KEY_RESTART>;
> +                };
> +	};

Indentation is broken there for some lines.

Can you report which of the MAC addresses matches the one on the devices label/sticker/cover/box?

Best

Adrian
Birger Koblitz July 20, 2019, 3:19 p.m. UTC | #2
Hi Adrian,

I'll submit a v3 with all your comments taken into account.

The sticker on the router states the MAC addresses for both 2.4GHz and 5GHz, e.g:

2.4GHz:74DAxxyyzz63    5GHz:74DAxxyyzz64
PIN CODE: 01234567     PIN CODE: 01234567
SSID: edimax.setup 63  SSID: edimax.setup5G 64

The MAC Adress for the LAN interface is identical to the one on 2.4GHz,
the WAN-MAC is LAN-MAC+2, i.e in the example above 74DAxxyyzz65

Birger

On 20.07.19 15:23, mail@adrianschmutzler.de wrote:
> Hi,
> 
>> -----Original Message-----
>> From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org]
>> On Behalf Of Birger Koblitz
>> Sent: Samstag, 20. Juli 2019 12:49
>> To: openwrt-devel@lists.openwrt.org
>> Subject: [OpenWrt-Devel] [PATCH v2] ramips: add support for Edimax RG21S
>>
>> ramips: add Edimax RG21S
>>
> 
> Some comments:
> - You can remove the memory node since mt7621 has auto-detection now.
> - Please specify IMAGE_SIZE in kiB since the ralink...16M variable currently not matches your partition size
> 
>> +		wps {
>> +                        label = "wps";
>> +                        gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
>> +                        linux,code = <KEY_RESTART>;
>> +                };
>> +	};
> 
> Indentation is broken there for some lines.
> 
> Can you report which of the MAC addresses matches the one on the devices label/sticker/cover/box?
> 
> Best
> 
> Adrian
>
Adrian Schmutzler July 20, 2019, 5:37 p.m. UTC | #3
Hi,

> -----Original Message-----
> From: Birger Koblitz [mailto:mail@birger-koblitz.de]
> Sent: Samstag, 20. Juli 2019 17:20
> To: mail@adrianschmutzler.de; openwrt-devel@lists.openwrt.org
> Subject: Re: [OpenWrt-Devel] [PATCH v2] ramips: add support for Edimax
> RG21S
> 
> Hi Adrian,
> 
> I'll submit a v3 with all your comments taken into account.
> 
> The sticker on the router states the MAC addresses for both 2.4GHz and
> 5GHz, e.g:
> 
> 2.4GHz:74DAxxyyzz63    5GHz:74DAxxyyzz64
> PIN CODE: 01234567     PIN CODE: 01234567
> SSID: edimax.setup 63  SSID: edimax.setup5G 64
> 
> The MAC Adress for the LAN interface is identical to the one on 2.4GHz, the
> WAN-MAC is LAN-MAC+2, i.e in the example above 74DAxxyyzz65

Thanks for your response.

Note that you could also use the mtd-mac-address command as for 2.4 GHz to set the ethernet MAC address in DTS.

Since this one is used twice and printed on the label first, I tend to just use that one a label-mac-address then.
So, for my PR https://github.com/openwrt/openwrt/pull/2253 , I will use 2.4 GHz WiFi node.

If you resubmit anyway, maybe already add "wifi0:" and "wifi1:" to the wifi subnodes of &pcie0 and &pcie1, so I can refer to them.

Best

Adrian



> 
> Birger
> 
> On 20.07.19 15:23, mail@adrianschmutzler.de wrote:
> > Hi,
> >
> >> -----Original Message-----
> >> From: openwrt-devel [mailto:openwrt-devel-
> bounces@lists.openwrt.org]
> >> On Behalf Of Birger Koblitz
> >> Sent: Samstag, 20. Juli 2019 12:49
> >> To: openwrt-devel@lists.openwrt.org
> >> Subject: [OpenWrt-Devel] [PATCH v2] ramips: add support for Edimax
> >> RG21S
> >>
> >> ramips: add Edimax RG21S
> >>
> >
> > Some comments:
> > - You can remove the memory node since mt7621 has auto-detection now.
> > - Please specify IMAGE_SIZE in kiB since the ralink...16M variable
> > currently not matches your partition size
> >
> >> +		wps {
> >> +                        label = "wps";
> >> +                        gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
> >> +                        linux,code = <KEY_RESTART>;
> >> +                };
> >> +	};
> >
> > Indentation is broken there for some lines.
> >
> > Can you report which of the MAC addresses matches the one on the
> devices label/sticker/cover/box?
> >
> > Best
> >
> > Adrian
> >
diff mbox series

Patch

diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network
index a2b7d1cf33..252d2f4e50 100755
--- a/target/linux/ramips/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/base-files/etc/board.d/02_network
@@ -329,6 +329,10 @@  ramips_setup_interfaces()
 		ucidef_add_switch "switch1" \
 			"1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
 		;;
+	edimax,rg21s)
+		ucidef_add_switch "switch0" \
+			"1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
+		;;
 	gehua,ghl-r-001)
 		ucidef_add_switch "switch0" \
 			"0:lan" "1:lan" "2:lan" "4:wan" "6@eth0"
@@ -587,6 +591,10 @@  ramips_setup_macs()
 		lan_mac=$(cat /sys/class/net/eth0/address)
 		wan_mac=$(macaddr_add "$lan_mac" 2)
 		;;
+	edimax,rg21s)
+		lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
+		wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
+		;;
 	elecom,wrc-1167ghbk2-s|\
 	elecom,wrc-1900gst|\
 	elecom,wrc-2533gst|\
diff --git a/target/linux/ramips/dts/mt7621_edimax_rg21s.dts b/target/linux/ramips/dts/mt7621_edimax_rg21s.dts
new file mode 100644
index 0000000000..fe8be96aab
--- /dev/null
+++ b/target/linux/ramips/dts/mt7621_edimax_rg21s.dts
@@ -0,0 +1,163 @@ 
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	compatible = "edimax,rg21s", "mediatek,mt7621-soc";
+	model = "RG21S";
+
+	aliases {
+		led-boot = &led_power;
+		led-failsafe = &led_power;
+		led-running = &led_power;
+		led-upgrade = &led_power;
+	};
+
+	memory@0 {
+		device_type = "memory";
+		reg = <0x0 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,57600";
+	};
+
+	palmbus: palmbus@1E000000 {
+		i2c@900 {
+			status = "okay";
+		};
+	};
+
+	keys {
+		compatible = "gpio-keys-polled";
+		poll-interval = <20>;
+
+		reset {
+			label = "reset";
+			gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+
+		wps {
+                        label = "wps";
+                        gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
+                        linux,code = <KEY_RESTART>;
+                };
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		/* there are 4 red leds, unlabled */
+		led_power: led_1 {
+			label = "rg21s:red:led1";
+			gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
+		};
+
+		led_2 {
+			label = "rg21s:red:led2";
+			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+		};
+
+		led_3 {
+			label = "rg21s:red:led3";
+			gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+		};
+
+		led_4 {
+			label = "rg21s:red:led4";
+			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
+
+&sdhci {
+	status = "okay";
+};
+
+&spi0 {
+	status = "okay";
+
+	m25p80@0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <10000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition@0 {
+				label = "u-boot";
+				reg = <0x0 0x30000>;
+				read-only;
+			};
+
+			partition@30000 {
+				label = "u-boot-env";
+				reg = <0x30000 0x10000>;
+				read-only;
+			};
+
+			factory: partition@40000 {
+				label = "factory";
+				reg = <0x40000 0x10000>;
+				read-only;
+			};
+
+			partition@50000 {
+				compatible = "denx,uimage";
+				label = "firmware";
+				reg = <0x50000 0xfb0000>;
+			};
+		};
+	};
+};
+
+&pcie {
+	status = "okay";
+};
+
+&pcie0 {
+	wifi@0,0 {
+		compatible = "pci14c3,7603";
+		reg = <0x0000 0 0 0 0>;
+		mediatek,mtd-eeprom = <&factory 0x0000>;
+		ieee80211-freq-limit = <2400000 2500000>;
+		mtd-mac-address = <&factory 0x4>;
+	};
+};
+
+&pcie1 {
+	wifi@0,0 {
+		compatible = "pci14c3,7662";
+		reg = <0x0000 0 0 0 0>;
+		mediatek,mtd-eeprom = <&factory 0x8000>;
+		ieee80211-freq-limit = <5000000 6000000>;
+		mtd-mac-address = <&factory 0x8004>;
+	};
+};
+
+&ethernet {
+	mediatek,portmap = "wllll";
+	port@5 {
+		status = "disabled";
+	};
+};
+
+&pinctrl {
+	state_default: pinctrl0 {
+		gpio {
+			ralink,group = "wdt", "rgmii2", "jtag", "mdio";
+			ralink,function = "gpio";
+		};
+	};
+};
+
+&xhci {
+	status = "disabled";
+};
diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 73ded64e74..71315cbb5b 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -30,6 +30,25 @@  define Build/elecom-wrc-factory
   mv $@.new $@
 endef

+define Build/elx-header
+  $(eval hw_id=$(word 1,$(1)))
+  $(eval xor_pattern=$(word 2,$(1)))
+  ( \
+    echo -ne "\x00\x00\x00\x00\x00\x00\x00\x03" | \
+      dd bs=42 count=1 conv=sync; \
+    hw_id="$(hw_id)"; \
+    echo -ne "\x$${hw_id:0:2}\x$${hw_id:2:2}\x$${hw_id:4:2}\x$${hw_id:6:2}" | \
+      dd bs=20 count=1 conv=sync; \
+    echo -ne "$$(printf '%08x' $$(stat -c%s $@) | fold -s2 | xargs -I {} echo \\x{} | tr -d '\n')" | \
+      dd bs=8 count=1 conv=sync; \
+    echo -ne "$$($(STAGING_DIR_HOST)/bin/mkhash md5 $@ | fold -s2 | xargs -I {} echo \\x{} | tr -d '\n')" | \
+      dd bs=58 count=1 conv=sync; \
+  ) > $(KDIR)/tmp/$(DEVICE_NAME).header
+  $(call Build/xor-image,-p $(xor_pattern) -x)
+  cat $(KDIR)/tmp/$(DEVICE_NAME).header $@ > $@.new
+  mv $@.new $@
+endef
+
 define Build/iodata-factory
   $(eval fw_size=$(word 1,$(1)))
   $(eval fw_type=$(word 2,$(1)))
@@ -173,6 +192,20 @@  define Device/d-team_pbr-m1
 endef
 TARGET_DEVICES += d-team_pbr-m1

+define Device/edimax_rg21s
+  MTK_SOC := mt7621
+  IMAGE_SIZE := $(ralink_default_fw_size_16M)
+  DEVICE_VENDOR := EDIMAX
+  DEVICE_MODEL := RG21S
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+    $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
+    elx-header 02020038 8844A2D168B45A2D
+  DEVICE_PACKAGES := \
+        kmod-ata-ahci kmod-mt76x2 kmod-mt7603 kmod-mt7615 wpad-basic
+endef
+TARGET_DEVICES += edimax_rg21s
+
 define Device/elecom_wrc-1167ghbk2-s
   MTK_SOC := mt7621
   IMAGE_SIZE := 15488k