diff --git a/target/linux/kirkwood/base-files/etc/board.d/01_leds b/target/linux/kirkwood/base-files/etc/board.d/01_leds index ce1309966e..4518fc4b64 100755 --- a/target/linux/kirkwood/base-files/etc/board.d/01_leds +++ b/target/linux/kirkwood/base-files/etc/board.d/01_leds @@ -38,6 +38,9 @@ case "$board" in "guruplug-server-plus") ucidef_set_led_timer "health" "health" "guruplug:red:health" "200" "800" ;; +"nsa310b") + ucidef_set_led_default "health" "health" "nsa310:green:sys" "1" + ;; "sheevaplug" | \ "sheevaplug-esata") ucidef_set_led_timer "health" "health" "sheevaplug:blue:health" "200" "800" diff --git a/target/linux/kirkwood/base-files/etc/board.d/02_network b/target/linux/kirkwood/base-files/etc/board.d/02_network index f91e8a3252..91b59b93bd 100755 --- a/target/linux/kirkwood/base-files/etc/board.d/02_network +++ b/target/linux/kirkwood/base-files/etc/board.d/02_network @@ -22,13 +22,17 @@ case "$board" in "sheevaplug-esata") ucidef_set_interface_lan "eth0" "dhcp" ;; +"guruplug-server-plus") + ucidef_set_interface_lan "eth0 eth1" "dhcp" + ;; "linksys-audi"|\ "linksys-viper") ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5@eth0" "6@eth1" ;; -"guruplug-server-plus") - ucidef_set_interface_lan "eth0 eth1" "dhcp" +"nsa310b") + ucidef_set_interface_lan "eth0" "dhcp" + ucidef_set_interface_macaddr "lan" $( fw_printenv ethaddr | awk -F"=" '{print $2}' ) ;; *) ucidef_set_interface_lan "eth0" diff --git a/target/linux/kirkwood/base-files/etc/diag.sh b/target/linux/kirkwood/base-files/etc/diag.sh index 91cb8cf78e..1c4632d613 100755 --- a/target/linux/kirkwood/base-files/etc/diag.sh +++ b/target/linux/kirkwood/base-files/etc/diag.sh @@ -20,6 +20,9 @@ get_status_led() { linksys-viper) status_led="viper:white:health" ;; + nsa310b) + status_led="nsa310:green:sys" + ;; esac } diff --git a/target/linux/kirkwood/base-files/etc/init.d/nsa310_fancontrol b/target/linux/kirkwood/base-files/etc/init.d/nsa310_fancontrol new file mode 100755 index 0000000000..32e863e55d --- /dev/null +++ b/target/linux/kirkwood/base-files/etc/init.d/nsa310_fancontrol @@ -0,0 +1,21 @@ +#!/bin/sh /etc/rc.common + +START=98 +boot() { +. /lib/functions.sh +. /lib/kirkwood.sh + +#configuring lm85 onboard temp/fan controller to run the fan on its own +#for more information, please read https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface + +path_to_hwmon='/sys/devices/platform/ocp@f1000000/f1011000.i2c/i2c-0/0-002e/hwmon/hwmon0' + +case $(kirkwood_board_name) in + nsa310b) + echo 2 > "$path_to_hwmon/pwm1_enable" # fan is on pwm1 + echo 1 > "$path_to_hwmon/pwm1_auto_channels" # temp1 is the only one that changes + echo 23000 > "$path_to_hwmon/temp1_auto_temp_min" + echo 43000 > "$path_to_hwmon/temp1_auto_temp_max" # next step is 49600 millicelsius, or 50 celsius, 43 celsius is better + ;; +esac +} diff --git a/target/linux/kirkwood/base-files/lib/kirkwood.sh b/target/linux/kirkwood/base-files/lib/kirkwood.sh index 0e898ac197..f0efec4994 100755 --- a/target/linux/kirkwood/base-files/lib/kirkwood.sh +++ b/target/linux/kirkwood/base-files/lib/kirkwood.sh @@ -57,6 +57,10 @@ kirkwood_board_detect() { name="sheevaplug-esata" ;; + "ZyXEL NSA310b") + name="nsa310b" + ;; + "ZyXEL NSA310S") name="nsa310s" ;; diff --git a/target/linux/kirkwood/image/Makefile b/target/linux/kirkwood/image/Makefile index 520430f2c2..ece7c1adf6 100644 --- a/target/linux/kirkwood/image/Makefile +++ b/target/linux/kirkwood/image/Makefile @@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/image.mk KERNEL_LOADADDR:=0x8000 -TARGET_DEVICES = linksys-audi linksys-viper dockstar goflexnet goflexhome iconnect pogo_e02 ib62x0 +TARGET_DEVICES = linksys-audi linksys-viper dockstar goflexnet goflexhome iconnect pogo_e02 ib62x0 nsa310b UBI_OPTS := -m 2048 -p 128KiB -s 512 UBIFS_OPTS := -m 2048 -e 126KiB -c 4096 @@ -80,6 +80,13 @@ $(Device/dockstar) DEVICE_DTS := kirkwood-iconnect endef +define Device/nsa310b +$(Device/dockstar) + DEVICE_TITLE := ZyXEL NSA310b + DEVICE_DTS := kirkwood-nsa310b + DEVICE_PACKAGES := kmod-r8169 kmod-gpio-button-hotplug kmod-hwmon-lm85 +endef + define Device/pogo_e02 $(Device/dockstar) DEVICE_TITLE := Cloud Engines Pogoplug E02 diff --git a/target/linux/kirkwood/patches-4.4/190-zyxel-nsa3xx-common-nand-partitions.patch b/target/linux/kirkwood/patches-4.4/190-zyxel-nsa3xx-common-nand-partitions.patch new file mode 100644 index 0000000000..c8e15d4f81 --- /dev/null +++ b/target/linux/kirkwood/patches-4.4/190-zyxel-nsa3xx-common-nand-partitions.patch @@ -0,0 +1,47 @@ +--- a/arch/arm/boot/dts/kirkwood-nsa3x0-common.dtsi ++++ b/arch/arm/boot/dts/kirkwood-nsa3x0-common.dtsi +@@ -121,39 +121,15 @@ + + partition@0 { + label = "uboot"; +- reg = <0x0000000 0x0100000>; ++ reg = <0x0000000 0x00c0000>; + read-only; + }; + partition@100000 { + label = "uboot_env"; +- reg = <0x0100000 0x0080000>; ++ reg = <0x00c0000 0x0080000>; + }; +- partition@180000 { +- label = "key_store"; +- reg = <0x0180000 0x0080000>; +- }; +- partition@200000 { +- label = "info"; +- reg = <0x0200000 0x0080000>; +- }; +- partition@280000 { +- label = "etc"; +- reg = <0x0280000 0x0a00000>; +- }; +- partition@c80000 { +- label = "kernel_1"; +- reg = <0x0c80000 0x0a00000>; +- }; +- partition@1680000 { +- label = "rootfs1"; +- reg = <0x1680000 0x2fc0000>; +- }; +- partition@4640000 { +- label = "kernel_2"; +- reg = <0x4640000 0x0a00000>; +- }; +- partition@5040000 { +- label = "rootfs2"; +- reg = <0x5040000 0x2fc0000>; ++ partition@140000 { ++ label = "ubi"; ++ reg = <0x0140000 0x7ec0000>; + }; + }; diff --git a/target/linux/kirkwood/patches-4.4/191-nsa310b.patch b/target/linux/kirkwood/patches-4.4/191-nsa310b.patch new file mode 100644 index 0000000000..b0afb8e623 --- /dev/null +++ b/target/linux/kirkwood/patches-4.4/191-nsa310b.patch @@ -0,0 +1,169 @@ +kirkwood: add nsa310b dtb, a zyxel nsa310 variant + +add support to a nsa310 variant with red/green usb led +and lm85 temp/fan controller + +Signed-off-by: Alberto Bursi + +NOTE: this patch can be upstreamed as-is, LEDE-specific + nand partitions are set in another patch + +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -203,6 +203,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \ + kirkwood-ns2mini.dtb \ + kirkwood-nsa310.dtb \ + kirkwood-nsa310a.dtb \ ++ kirkwood-nsa310b.dtb \ + kirkwood-openblocks_a6.dtb \ + kirkwood-openblocks_a7.dtb \ + kirkwood-openrd-base.dtb \ +--- /dev/null ++++ b/arch/arm/boot/dts/kirkwood-nsa310b.dts +@@ -0,0 +1,146 @@ ++/dts-v1/; ++ ++#include "kirkwood-nsa3x0-common.dtsi" ++ ++/* ++ * There are at least two different NSA310 designs. This variant has ++ * a red/green USB Led (same as nsa310) and a lm85 temp/fan controller. ++ */ ++ ++/ { ++ model = "ZyXEL NSA310b"; ++ compatible = "zyxel,nsa310a", "zyxel,nsa310", "marvell,kirkwood-88f6281", "marvell,kirkwood"; ++ ++ memory { ++ device_type = "memory"; ++ reg = <0x00000000 0x10000000>; ++ }; ++ ++ chosen { ++ bootargs = "console=ttyS0,115200"; ++ stdout-path = "&uart0"; ++ }; ++ ++ mbus { ++ pcie-controller { ++ status = "okay"; ++ ++ pcie@1,0 { ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ ocp@f1000000 { ++ pinctrl: pin-controller@10000 { ++ pinctrl-0 = <&pmx_unknown>; ++ pinctrl-names = "default"; ++ ++ pmx_led_esata_green: pmx-led-esata-green { ++ marvell,pins = "mpp12"; ++ marvell,function = "gpio"; ++ }; ++ ++ pmx_led_esata_red: pmx-led-esata-red { ++ marvell,pins = "mpp13"; ++ marvell,function = "gpio"; ++ }; ++ ++ pmx_led_usb_green: pmx-led-usb-green { ++ marvell,pins = "mpp15"; ++ marvell,function = "gpio"; ++ }; ++ ++ pmx_led_usb_red: pmx-led-usb-red { ++ marvell,pins = "mpp16"; ++ marvell,function = "gpio"; ++ }; ++ ++ pmx_led_sys_green: pmx-led-sys-green { ++ marvell,pins = "mpp28"; ++ marvell,function = "gpio"; ++ }; ++ ++ pmx_led_sys_red: pmx-led-sys-red { ++ marvell,pins = "mpp29"; ++ marvell,function = "gpio"; ++ }; ++ ++ pmx_led_hdd_green: pmx-led-hdd-green { ++ marvell,pins = "mpp41"; ++ marvell,function = "gpio"; ++ }; ++ ++ pmx_led_hdd_red: pmx-led-hdd-red { ++ marvell,pins = "mpp42"; ++ marvell,function = "gpio"; ++ }; ++ ++ pmx_unknown: pmx-unknown { ++ marvell,pins = "mpp44"; ++ marvell,function = "gpio"; ++ }; ++ ++ }; ++ ++ i2c@11000 { ++ status = "okay"; ++ ++ lm85@2e { ++ compatible = "national,lm85"; ++ reg = <0x2e>; ++ }; ++ }; ++ }; ++ ++ gpio-leds { ++ compatible = "gpio-leds"; ++ pinctrl-0 = <&pmx_led_esata_green &pmx_led_esata_red ++ &pmx_led_usb_green &pmx_led_usb_red ++ &pmx_led_sys_green &pmx_led_sys_red ++ &pmx_led_copy_green &pmx_led_copy_red ++ &pmx_led_hdd_green &pmx_led_hdd_red>; ++ pinctrl-names = "default"; ++ ++ green-sys { ++ label = "nsa310:green:sys"; ++ gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>; ++ }; ++ red-sys { ++ label = "nsa310:red:sys"; ++ gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; ++ }; ++ green-hdd { ++ label = "nsa310:green:hdd"; ++ gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; ++ }; ++ red-hdd { ++ label = "nsa310:red:hdd"; ++ gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; ++ }; ++ green-esata { ++ label = "nsa310:green:esata"; ++ gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; ++ }; ++ red-esata { ++ label = "nsa310:red:esata"; ++ gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>; ++ }; ++ green-usb { ++ label = "nsa310:green:usb"; ++ gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; ++ }; ++ red-usb { ++ label = "nsa310:red:usb"; ++ gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>; ++ }; ++ green-copy { ++ label = "nsa310:green:copy"; ++ gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; ++ }; ++ red-copy { ++ label = "nsa310:red:copy"; ++ gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; ++ }; ++ }; ++}; diff --git a/target/linux/kirkwood/patches-4.4/190-nsa310s.patch b/target/linux/kirkwood/patches-4.4/192-nsa310s.patch similarity index 98% rename from target/linux/kirkwood/patches-4.4/190-nsa310s.patch rename to target/linux/kirkwood/patches-4.4/192-nsa310s.patch index d88cd74e99..e78e680bc3 100644 --- a/target/linux/kirkwood/patches-4.4/190-nsa310s.patch +++ b/target/linux/kirkwood/patches-4.4/192-nsa310s.patch @@ -1,3 +1,13 @@ +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -204,6 +204,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \ + kirkwood-nsa310.dtb \ + kirkwood-nsa310a.dtb \ + kirkwood-nsa310b.dtb \ ++ kirkwood-nsa310s.dtb \ + kirkwood-openblocks_a6.dtb \ + kirkwood-openblocks_a7.dtb \ + kirkwood-openrd-base.dtb \ --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-nsa310s.dts @@ -0,0 +1,287 @@ @@ -288,13 +298,3 @@ + phy-handle = <ðphy0>; + }; +}; ---- a/arch/arm/boot/dts/Makefile -+++ b/arch/arm/boot/dts/Makefile -@@ -203,6 +203,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \ - kirkwood-ns2mini.dtb \ - kirkwood-nsa310.dtb \ - kirkwood-nsa310a.dtb \ -+ kirkwood-nsa310s.dtb \ - kirkwood-openblocks_a6.dtb \ - kirkwood-openblocks_a7.dtb \ - kirkwood-openrd-base.dtb \