ramips: consolidate Netgear devices for mt7628

This creates a common DTSI and shared image definition for the
relatively similar Netgear devices for mt7628 platform.

As a side effect, this raises SPI flash frequency for the R6120,
as it's expected to work there as well if it works for R6080 and
R6020.

Based on the data from the other devices, it also seems probable
the 5g MAC address for R6120 could be extracted from the caldata,
and the mtd-mac-address there could be dropped.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
Adrian Schmutzler 2020-07-10 12:00:08 +02:00
parent ad81e2da08
commit 11478524a2
7 changed files with 151 additions and 283 deletions

View File

@ -1,10 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "mt7628an.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "mt7628an_netgear_r6xxx.dtsi"
/ {
compatible = "netgear,r6020", "mediatek,mt7628an-soc";
@ -17,16 +14,6 @@
led-upgrade = &led_power;
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
leds {
compatible = "gpio-leds";
@ -65,45 +52,13 @@
&state_default {
gpio {
groups = "p0led_an", "p1led_an", "p2led_an",
"p3led_an", "p4led_an", "wdt",
"wled_an";
groups = "p0led_an", "p1led_an", "p2led_an", "p3led_an",
"p4led_an", "wdt", "wled_an";
function = "gpio";
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <86000000>;
m25p,fast-read;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0x40000>;
read-only;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x20000>;
read-only;
};
partition@60000 {
label = "nvram";
reg = <0x60000 0x30000>;
read-only;
};
&partitions {
partition@90000 {
compatible = "denx,uimage";
label = "firmware";
@ -139,28 +94,6 @@
reg = <0x7f0000 0x10000>;
read-only;
};
};
};
};
&wmac {
status = "okay";
};
&ethernet {
mtd-mac-address = <&factory 0x4>;
};
&pcie {
status = "okay";
};
&pcie0 {
wifi@0,0 {
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
};
};
&ehci {

View File

@ -1,10 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "mt7628an.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "mt7628an_netgear_r6xxx.dtsi"
/ {
compatible = "netgear,r6080", "mediatek,mt7628an-soc";
@ -18,16 +15,6 @@
label-mac-device = &ethernet;
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
leds {
compatible = "gpio-leds";
@ -72,38 +59,7 @@
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <86000000>;
m25p,fast-read;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0x40000>;
read-only;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x20000>;
read-only;
};
partition@60000 {
label = "nvram";
reg = <0x60000 0x30000>;
read-only;
};
&partitions {
partition@90000 {
compatible = "denx,uimage";
label = "firmware";
@ -115,28 +71,6 @@
reg = <0x7f0000 0x10000>;
read-only;
};
};
};
};
&wmac {
status = "okay";
};
&ethernet {
mtd-mac-address = <&factory 0x4>;
};
&pcie {
status = "okay";
};
&pcie0 {
wifi@0,0 {
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
};
};
&ehci {

View File

@ -1,9 +1,6 @@
/dts-v1/;
#include "mt7628an.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "mt7628an_netgear_r6xxx.dtsi"
/ {
compatible = "netgear,r6120", "mediatek,mt7628an-soc";
@ -17,16 +14,6 @@
label-mac-device = &ethernet;
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
leds {
compatible = "gpio-leds";
@ -77,44 +64,13 @@
&state_default {
gpio {
groups = "p0led_an", "p1led_an", "p2led_an",
"p3led_an", "p4led_an", "wdt",
"wled_an", "uart1";
groups = "p0led_an", "p1led_an", "p2led_an", "p3led_an",
"p4led_an", "wdt", "wled_an", "uart1";
function = "gpio";
};
};
&spi0 {
status = "okay";
flash@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 0x40000>;
read-only;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x20000>;
read-only;
};
partition@60000 {
label = "nvram";
reg = <0x60000 0x30000>;
read-only;
};
&partitions {
partition@90000 {
compatible = "denx,uimage";
label = "firmware";
@ -126,28 +82,9 @@
reg = <0xff0000 0x10000>;
read-only;
};
};
};
};
&wmac {
status = "okay";
};
&ethernet {
mtd-mac-address = <&factory 0x4>;
};
&pcie {
status = "okay";
};
&pcie0 {
wifi@0,0 {
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
&wifi5 {
mtd-mac-address = <&factory 0x4>;
mtd-mac-address-increment = <(2)>;
};
};

View File

@ -0,0 +1,73 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "mt7628an.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
keys {
compatible = "gpio-keys";
reset {
label = "reset";
gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <86000000>;
m25p,fast-read;
partitions: partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0x40000>;
read-only;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x20000>;
read-only;
};
partition@60000 {
label = "nvram";
reg = <0x60000 0x30000>;
read-only;
};
};
};
};
&wmac {
status = "okay";
};
&ethernet {
mtd-mac-address = <&factory 0x4>;
};
&pcie {
status = "okay";
};
&pcie0 {
wifi5: wifi@0,0 {
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
};
};

View File

@ -11,7 +11,7 @@ DEVICE_VARS += LOADER_TYPE
DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
DEVICE_VARS += BUFFALO_TAG_PLATFORM BUFFALO_TAG_VERSION BUFFALO_TAG_MINOR
DEVICE_VARS += SEAMA_SIGNATURE SEAMA_MTDBLOCK
DEVICE_VARS += SERCOMM_HWID SERCOMM_HWVER SERCOMM_SWVER
DEVICE_VARS += SERCOMM_HWNAME SERCOMM_HWID SERCOMM_HWVER SERCOMM_SWVER
DEVICE_VARS += JCG_MAXSIZE
loadaddr-y := 0x80000000

View File

@ -7,7 +7,7 @@ include ./common-tp-link.mk
DEFAULT_SOC := mt7621
KERNEL_DTB += -d21
DEVICE_VARS += UIMAGE_MAGIC SERCOMM_HWNAME
DEVICE_VARS += UIMAGE_MAGIC
# The OEM webinterface expects an kernel with initramfs which has the uImage
# header field ih_name.

View File

@ -189,60 +189,51 @@ define Device/mercury_mac1200r-v2
endef
TARGET_DEVICES += mercury_mac1200r-v2
define Device/netgear_r6020
define Device/netgear_r6xxx
BLOCKSIZE := 64k
IMAGE_SIZE := 7104k
DEVICE_VENDOR := NETGEAR
DEVICE_MODEL := R6020
DEVICE_PACKAGES := kmod-mt76x2
SERCOMM_HWID := CFR
SERCOMM_HWVER := A001
SERCOMM_SWVER := 0x0040
IMAGES += factory.img
IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \
pad-rootfs
IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size
IMAGE/factory.img := pad-extra 576k | $$(IMAGE/default) | \
pad-to $$$$(BLOCKSIZE) | sercom-footer | pad-to 128 | zip R6020.bin | \
sercom-seal
pad-to $$$$(BLOCKSIZE) | sercom-footer | pad-to 128 | \
zip $$$$(SERCOMM_HWNAME).bin | sercom-seal
endef
define Device/netgear_r6020
$(Device/netgear_r6xxx)
IMAGE_SIZE := 7104k
DEVICE_MODEL := R6020
DEVICE_PACKAGES := kmod-mt76x2
SERCOMM_HWNAME := R6020
SERCOMM_HWID := CFR
SERCOMM_HWVER := A001
SERCOMM_SWVER := 0x0040
endef
TARGET_DEVICES += netgear_r6020
define Device/netgear_r6080
BLOCKSIZE := 64k
$(Device/netgear_r6xxx)
IMAGE_SIZE := 7552k
DEVICE_VENDOR := NETGEAR
DEVICE_MODEL := R6080
DEVICE_PACKAGES := kmod-mt76x2
SERCOMM_HWNAME := R6080
SERCOMM_HWID := CFR
SERCOMM_HWVER := A001
SERCOMM_SWVER := 0x0040
IMAGES += factory.img
IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \
pad-rootfs
IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size
IMAGE/factory.img := pad-extra 576k | $$(IMAGE/default) | \
pad-to $$$$(BLOCKSIZE) | sercom-footer | pad-to 128 | zip R6080.bin | \
sercom-seal
endef
TARGET_DEVICES += netgear_r6080
define Device/netgear_r6120
BLOCKSIZE := 64k
$(Device/netgear_r6xxx)
IMAGE_SIZE := 15744k
DEVICE_VENDOR := NETGEAR
DEVICE_MODEL := R6120
DEVICE_PACKAGES := kmod-mt76x2 kmod-usb2 kmod-usb-ohci
SERCOMM_HWNAME := R6120
SERCOMM_HWID := CGQ
SERCOMM_HWVER := A001
SERCOMM_SWVER := 0x0040
IMAGES += factory.img
IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \
pad-rootfs
IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size
IMAGE/factory.img := pad-extra 576k | $$(IMAGE/default) | \
pad-to $$$$(BLOCKSIZE) | sercom-footer | pad-to 128 | zip R6120.bin | \
sercom-seal
endef
TARGET_DEVICES += netgear_r6120