From 83a97c53face95b8c7239da25a1c7f776bcfc521 Mon Sep 17 00:00:00 2001 From: NOGUCHI Hiroshi Date: Fri, 24 Aug 2018 10:36:13 +0900 Subject: [PATCH] ramips: add support for Netgear R6350 Netgear R6350 is a wireless router, aka Netgear AC1750. Specification: - SoC: Mediatek MT7621AT (2 CPU cores, 4 threads) - RAM: 128MiB (Nanya NT5CC64M16GP-DI) - ROM: 128MiB NAND Flash (Macronix MX30LF1G18AC-TI) - Wireless: for 11b/g/n (upto 300Mbps): MT7603 for 11a/ac (upto 1450Mbps) : MT7615, is not avaliable now - Ethernet LAN speed: up to 1000Mbps - Ethernet LAN ports: 4 - Ethernet WAN speed: up to 1000Mbps - Ethernet WAN ports: 1 - USB ports: 1 (USB 2.0) - LEDs: 4 (all can be controlled by SoC's GPIO) - buttons: 2 - serial ports: unknown Installation through telnet: - Copy kernel.bin and rootfs.bin to a USB flash disk, plug to usb port on the router. - Enable telnet with link: http://192.168.1.1/setup.cgi?todo=debug (login if required, default: admin password) - You will see "Debug Enabled!" - Telnet 192.168.1.1 and login with "root" - ls /mnt/shares/ to find out path of your USB disk. 'myUdisk' for example. - cd /mnt/shares/myUdisk - mtd_write write rootfs.bin Rootfs - mtd_write write kernel.bin Kernel - reboot recovery when bricked: nmrpflash can be used to recover to the netgear firmware if a broken image was flashed. The SC_PART_MAP partition suggests that an on flash partition table exists. After implementing a partition parser/builder for the sercom partition format, the definitions don't match the flash layout used by the stock firmware. It either means the partition format has not yet been completely understood or it isn't used by the stock firmware. For now, use fixed partitions instead. Signed-off-by: NOGUCHI Hiroshi [apply latest ramips changes and document the on flash partition map issues] Signed-off-by: Mathias Kresin --- .../ramips/base-files/etc/board.d/01_leds | 3 +- .../ramips/base-files/etc/board.d/02_network | 4 +- .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/R6350.dts | 156 ++++++++++++++++++ target/linux/ramips/image/mt7621.mk | 17 ++ 5 files changed, 179 insertions(+), 2 deletions(-) create mode 100644 target/linux/ramips/dts/R6350.dts diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds index 0fca40e1e010..400183acc54c 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -266,7 +266,8 @@ px-4885-4M|\ px-4885-8M) set_wifi_led "px-4885:orange:wifi" ;; -r6220) +r6220|\ +netgear,r6350) ucidef_set_led_netdev "wan" "wan" "$boardname:green:wan" eth0.2 set_wifi_led "$boardname:green:wifi" ;; 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 eed8d503923e..4cf61597459e 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -113,6 +113,7 @@ ramips_setup_interfaces() psg1208|\ psg1218a|\ r6220|\ + netgear,r6350|\ rt-n12p|\ sap-g3200u3|\ sk-wb8|\ @@ -561,7 +562,8 @@ ramips_setup_macs() lan_mac=$(mtd_get_mac_binary factory 40) wan_mac=$(mtd_get_mac_binary factory 46) ;; - r6220) + r6220|\ + netgear,r6350) wan_mac=$(mtd_get_mac_binary factory 4) lan_mac=$(macaddr_add "$wan_mac" 1) ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 2fad95021ce1..97fbaefea6e7 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -38,6 +38,7 @@ platform_do_upgrade() { hc5962|\ mir3g|\ r6220|\ + netgear,r6350|\ ubnt-erx|\ ubnt-erx-sfp) nand_do_upgrade "$ARGV" diff --git a/target/linux/ramips/dts/R6350.dts b/target/linux/ramips/dts/R6350.dts new file mode 100644 index 000000000000..cdf9a72c866c --- /dev/null +++ b/target/linux/ramips/dts/R6350.dts @@ -0,0 +1,156 @@ +/dts-v1/; + +#include "mt7621.dtsi" + +#include +#include + +/ { + compatible = "netgear,r6350", "mediatek,mt7621-soc"; + model = "Netgear R6350"; + + 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"; + }; + + gpio-leds { + compatible = "gpio-leds"; + + led_power: power { + label = "r6350:green:power"; + gpios = <&gpio0 18 GPIO_ACTIVE_LOW>; + }; + + usb { + label = "r6350:green:usb"; + gpios = <&gpio0 15 GPIO_ACTIVE_LOW>; + trigger-sources = <&xhci_ehci_port1>, <&ehci_port2>; + linux,default-trigger = "usbport"; + }; + + internet { + label = "r6350:green:wan"; + gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; + }; + + wifi { + label = "r6350:green:wifi"; + gpios = <&gpio0 16 GPIO_ACTIVE_LOW>; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + poll-interval = <20>; + + wps { + label = "wps"; + gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + reset { + label = "reset"; + gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + gpio_export { + compatible = "gpio-export"; + #size-cells = <0>; + + usbpower { + gpio-export,name = "usbpower"; + gpio-export,output = <1>; + gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&nand { + status = "okay"; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x100000>; + read-only; + }; + + partition@100000 { + label = "SC PART_MAP"; + reg = <0x100000 0x100000>; + read-only; + }; + + partition@200000 { + label = "kernel"; + reg = <0x200000 0x400000>; + }; + + partition@600000 { + label = "ubi"; + reg = <0x600000 0x2800000>; + }; + + partition@2e00000 { + label = "reserved0"; + reg = <0x2e00000 0x1800000>; + read-only; + }; + + factory: partition@4600000 { + label = "factory"; + reg = <0x4600000 0x200000>; + read-only; + }; + + partition@4800000 { + label = "reserved1"; + reg = <0x4800000 0x3800000>; + read-only; + }; + }; +}; + +&pcie { + status = "okay"; +}; + +&pcie1 { + wifi@0,0 { + reg = <0x0 0 0 0 0>; + mediatek,mtd-eeprom = <&factory 0x0>; + ieee80211-freq-limit = <2400000 2500000>; + }; +}; + +ðernet { + mtd-mac-address = <&factory 0x4>; +}; + +&pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "uart3", "uart2", "jtag", "wdt"; + ralink,function = "gpio"; + }; + }; +}; diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index 92bdbcf7431a..d4c9a100ed0b 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -297,6 +297,23 @@ define Device/r6220 endef TARGET_DEVICES += r6220 +define Device/netgear_r6350 + DTS := R6350 + BLOCKSIZE := 128k + PAGESIZE := 2048 + KERNEL_SIZE := 4096k + IMAGE_SIZE := 40960k + UBINIZE_OPTS := -E 5 + IMAGES += kernel.bin rootfs.bin + IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata + IMAGE/kernel.bin := append-kernel + IMAGE/rootfs.bin := append-ubi | check-size $$$$(IMAGE_SIZE) + DEVICE_TITLE := Netgear R6350 + DEVICE_PACKAGES := \ + kmod-mt7603 kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic +endef +TARGET_DEVICES += netgear_r6350 + define Device/rb750gr3 DTS := RB750Gr3 IMAGE_SIZE := $(ralink_default_fw_size_16M) -- 2.30.2