diff options
-rwxr-xr-x | target/linux/ramips/base-files/etc/board.d/02_network | 15 | ||||
-rw-r--r-- | target/linux/ramips/base-files/etc/diag.sh | 11 | ||||
-rwxr-xr-x | target/linux/ramips/base-files/lib/ramips.sh | 3 | ||||
-rwxr-xr-x | target/linux/ramips/base-files/lib/upgrade/platform.sh | 9 | ||||
-rw-r--r-- | target/linux/ramips/dts/WCR-1166DS.dts | 172 | ||||
-rw-r--r-- | target/linux/ramips/image/Makefile | 3 | ||||
-rw-r--r-- | target/linux/ramips/image/mt7628.mk | 16 | ||||
-rw-r--r-- | target/linux/ramips/mt7628/config-4.4 | 1 | ||||
-rw-r--r-- | target/linux/ramips/patches-4.4/0400-mtd-mtdsplit-add-support-for-custom-trx-magic-for-Buffalo-WCR-1166DS.patch | 30 |
9 files changed, 245 insertions, 15 deletions
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 91f1aaacbe..c001dfe85a 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -263,6 +263,10 @@ ramips_setup_interfaces() ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0" ;; + wcr-1166ds) + ucidef_add_switch "switch0" \ + "3:lan" "4:wan" "6@eth0" + ;; wcr-150gn) ucidef_add_switch "switch0" \ "0:lan" "6t@eth0" @@ -410,6 +414,12 @@ ramips_setup_macs() lan_mac=$(cat /sys/class/net/eth0/address) wan_mac=$(macaddr_add "$lan_mac" 5) ;; + wcr-1166ds|\ + wsr-1166) + local index="$(find_mtd_index "board_data")" + wan_mac="$(grep -m1 mac= "/dev/mtd${index}" | cut -d= -f2)" + lan_mac=$wan_mac + ;; wcr-150gn) wan_mac=$(mtd_get_mac_binary factory 40) ;; @@ -427,11 +437,6 @@ ramips_setup_macs() wlr-6000) wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 32772)" 2) ;; - wsr-1166) - local index="$(find_mtd_index "board_data")" - wan_mac="$(grep -m1 mac= "/dev/mtd${index}" | cut -d= -f2)" - lan_mac=$wan_mac - ;; *) lan_mac=$(cat /sys/class/net/eth0/address) wan_mac=$(macaddr_add "$lan_mac" 1) diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index 94998333b3..5fb221380e 100644 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -219,6 +219,12 @@ get_status_led() { zbt-wr8305rt) status_led="$board:green:sys" ;; + wcr-1166ds|\ + whr-300hp2|\ + wsr-1166|\ + wsr-600) + status_led="$board:green:power" + ;; wcr-150gn|\ wl-351) status_led="$board:amber:power" @@ -233,11 +239,6 @@ get_status_led() { wizfi630a) status_led="$board::run" ;; - whr-300hp2|\ - wsr-1166|\ - wsr-600) - status_led="$board:green:power" - ;; wrtnode2r | \ wrtnode2p | \ wrtnode) diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 8292da1d4a..d9918cceb5 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -499,6 +499,9 @@ ramips_board_detect() { *"W502U") name="w502u" ;; + *"WCR-1166DS") + name="wcr-1166ds" + ;; *"WCR-150GN") name="wcr-150gn" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index c6ad8ca3e5..d83e5c1dd2 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -226,6 +226,11 @@ platform_check_image() { } return 0 ;; + ubnt-erx) + nand_do_platform_check "$board" "$1" + return $?; + ;; + wcr-1166ds|\ wsr-1166) [ "$magic" != "48445230" ] && { echo "Invalid image type." @@ -233,10 +238,6 @@ platform_check_image() { } return 0 ;; - ubnt-erx) - nand_do_platform_check "$board" "$1" - return $?; - ;; esac echo "Sysupgrade is not yet supported on $board." diff --git a/target/linux/ramips/dts/WCR-1166DS.dts b/target/linux/ramips/dts/WCR-1166DS.dts new file mode 100644 index 0000000000..ad3f21ba67 --- /dev/null +++ b/target/linux/ramips/dts/WCR-1166DS.dts @@ -0,0 +1,172 @@ +/dts-v1/; + +#include "mt7628an.dtsi" + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> + +/ { + compatible = "buffalo,wcr-1166ds", "mediatek,mt7628an-soc"; + model = "Buffalo WCR-1166DS"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + + aoss { + label = "aoss"; + gpios = <&gpio0 0 GPIO_ACTIVE_LOW>; + linux,code = <KEY_WPS_BUTTON>; + }; + + ap { + label = "ap"; + gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; + linux,code = <BTN_0>; + linux,input-type = <EV_SW>; + }; + + reset { + label = "reset"; + gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; + linux,code = <KEY_RESTART>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + router_o { + label = "wcr-1166ds:orange:router"; + gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; + }; + + router_g { + label = "wcr-1166ds:green:router"; + gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; + }; + + internet_o { + label = "wcr-1166ds:orange:internet"; + gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; + }; + + internet_g { + label = "wcr-1166ds:green:internet"; + gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; + }; + + wireless_o { + label = "wcr-1166ds:orange:wireless"; + gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; + }; + + wireless_g { + label = "wcr-1166ds:green:wireless"; + gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; + }; + + diag { + label = "wcr-1166ds:orange:diag"; + gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; + }; + + power { + label = "wcr-1166ds:green:power"; + gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&ehci { + status = "disabled"; +}; + +&esw { + mediatek,portmap = <0x2f>; + mediatek,portdisable = <0x27>; +}; + +&ohci { + status = "disabled"; +}; + +&pcie { + status = "okay"; + pcie-bridge { + mt76@0,0 { + reg = <0x0000 0 0 0 0>; + device_type = "pci"; + mediatek,mtd-eeprom = <&factory 0x8000>; + mediatek,2ghz = <0>; + }; + }; +}; + +&pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "uart1", "wled_an", "p0led_an", "p1led_an", "p2led_an", "p3led_an", "p4led_an", "wdt", "refclk", "gpio", "i2s"; + ralink,function = "gpio"; + }; + }; +}; + +&spi0 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <10000000>; + m25p,chunked-io = <32>; + + 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 { + label = "firmware"; + reg = <0x50000 0x7c0000>; + }; + + partition@810000 { + label = "firmware2"; + reg = <0x810000 0x7c0000>; + }; + + partition@fd0000 { + label = "glbcfg"; + reg = <0xfd0000 0x10000>; + read-only; + }; + + partition@fe0000 { + label = "board_data"; + reg = <0xfe0000 0x10000>; + read-only; + }; + }; +}; + +&wmac { + status = "okay"; +}; diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index 2952c5f840..f34eba79cd 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -23,6 +23,7 @@ define Image/Build/Initramfs endef DEVICE_VARS += DTS IMAGE_SIZE NETGEAR_BOARD_ID NETGEAR_HW_ID +DEVICE_VARS += BUFFALO_TAG_PLATFORM BUFFALO_TAG_VERSION BUFFALO_TAG_MINOR loadaddr-y := 0x80000000 loadaddr-$(CONFIG_TARGET_ramips_rt288x) := 0x88000000 @@ -48,7 +49,7 @@ define Build/patch-dtb endef define Build/trx - $(STAGING_DIR_HOST)/bin/trx \ + $(STAGING_DIR_HOST)/bin/trx $(1) \ -o $@ \ -m $(IMAGE_SIZE) \ -f $(IMAGE_KERNEL) \ diff --git a/target/linux/ramips/image/mt7628.mk b/target/linux/ramips/image/mt7628.mk index 4502588c80..0304921f41 100644 --- a/target/linux/ramips/image/mt7628.mk +++ b/target/linux/ramips/image/mt7628.mk @@ -55,3 +55,19 @@ define Device/mac1200r-v2 DEVICE_TITLE := Mercury MAC1200R v2.0 endef TARGET_DEVICES += mac1200r-v2 + +define Device/wcr-1166ds + DTS := WCR-1166DS + BUFFALO_TAG_PLATFORM := MTK + BUFFALO_TAG_VERSION := 9.99 + BUFFALO_TAG_MINOR := 9.99 + IMAGES += factory.bin + IMAGE/sysupgrade.bin := trx | pad-rootfs | append-metadata + IMAGE/factory.bin := \ + trx -M 0x746f435c | pad-rootfs | append-metadata | \ + buffalo-enc WCR-1166DS $$(BUFFALO_TAG_VERSION) -l | \ + buffalo-tag-dhp WCR-1166DS JP JP | buffalo-enc-tag -l | \ + buffalo-dhp-image + DEVICE_TITLE := Buffalo WCR-1166DS +endef +TARGET_DEVICES += wcr-1166ds diff --git a/target/linux/ramips/mt7628/config-4.4 b/target/linux/ramips/mt7628/config-4.4 index 6b04457f17..6cd7838aee 100644 --- a/target/linux/ramips/mt7628/config-4.4 +++ b/target/linux/ramips/mt7628/config-4.4 @@ -138,6 +138,7 @@ CONFIG_MTD_NAND_MT7620=y CONFIG_MTD_PHYSMAP=y CONFIG_MTD_SPI_NOR=y CONFIG_MTD_SPLIT_FIRMWARE=y +CONFIG_MTD_SPLIT_TRX_FW=y CONFIG_MTD_SPLIT_UIMAGE_FW=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_PER_CPU_KM=y diff --git a/target/linux/ramips/patches-4.4/0400-mtd-mtdsplit-add-support-for-custom-trx-magic-for-Buffalo-WCR-1166DS.patch b/target/linux/ramips/patches-4.4/0400-mtd-mtdsplit-add-support-for-custom-trx-magic-for-Buffalo-WCR-1166DS.patch new file mode 100644 index 0000000000..1af72f93df --- /dev/null +++ b/target/linux/ramips/patches-4.4/0400-mtd-mtdsplit-add-support-for-custom-trx-magic-for-Buffalo-WCR-1166DS.patch @@ -0,0 +1,30 @@ +--- a/drivers/mtd/mtdsplit/mtdsplit_trx.c ++++ b/drivers/mtd/mtdsplit/mtdsplit_trx.c +@@ -13,6 +13,7 @@ + #include <linux/module.h> + #include <linux/init.h> + #include <linux/kernel.h> ++#include <linux/of.h> + #include <linux/slab.h> + #include <linux/mtd/mtd.h> + #include <linux/mtd/partitions.h> +@@ -20,7 +21,8 @@ + + #include "mtdsplit.h" + +-#define TRX_MAGIC 0x30524448 /* "HDR0" */ ++#define TRX_MAGIC 0x30524448 /* "HDR0" */ ++#define TRX_MAGIC_BUFFALO 0x746f435c + + struct trx_header { + __le32 magic; +@@ -82,7 +84,8 @@ mtdsplit_parse_trx(struct mtd_info *mast + if (ret) + continue; + +- if (hdr.magic != cpu_to_le32(TRX_MAGIC)) { ++ if (hdr.magic != cpu_to_le32(TRX_MAGIC) && ++ !(of_machine_is_compatible("buffalo,wcr-1166ds") && hdr.magic == cpu_to_le32(TRX_MAGIC_BUFFALO))) { + pr_debug("no valid trx header found in \"%s\" at offset %llx\n", + master->name, (unsigned long long) offset); + continue; |