aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/kirkwood/base-files
diff options
context:
space:
mode:
authorAlberto Bursi <alberto.bursi@outlook.it>2017-01-23 20:34:29 +0100
committerFelix Fietkau <nbd@nbd.name>2017-01-24 16:21:25 +0100
commit94676dd99d96871e9f540a8ace26bdb317c010cf (patch)
treee07927cf431bde0fd778ad8b96fabb6425f85117 /target/linux/kirkwood/base-files
parent55ecceb84ecddaef3728873fdafec9c09c35765c (diff)
downloadupstream-94676dd99d96871e9f540a8ace26bdb317c010cf.tar.gz
upstream-94676dd99d96871e9f540a8ace26bdb317c010cf.tar.bz2
upstream-94676dd99d96871e9f540a8ace26bdb317c010cf.zip
kirkwood: add ZyXEL NSA310b
The ZyXEL NSA310 device is a Kirkwood based NAS: - SoC: Marvell 88F6702 1200Mhz - SDRAM memory: 256MB DDR2 400Mhz - Gigabit ethernet: Realtek (over pcie) - Flash memory: 128MB - 1 Power button - 1 Power LED (blue) - 5 Status LED (green/red) - 1 Copy/Sync button - 1 Reset button - 2 SATA II port (1 internal and 1 external) - 2 USB 2.0 ports (1 front and 1 back) - Smart fan The stock u-boot cannot read ubi so it should be replaced with the LEDE/OpenWRT's u-boot or with a u-boot from here https://github.com/mibodhi/u-boot-kirkwood This device's boot ROM supports "kwboot" tool (in mainline u-boot, built automatically if CONFIG_KIRKWOOD is declared) that sends an uboot image to the board over serial connection, it is very easy to unbrick. The stock bootloader can use usb and read from FAT filesystems, so the installation process is simple, place the uboot file on a USB flashdrive formatted as FAT (here it is "openwrt-kirkwood-nsa310.bin", then connect TTL to the board and write the following commands in the bootloader console: usb reset fatload usb 0 0x1000000 openwrt-kirkwood-nsa310.bin nand write 0x1000000 0x00000 0x100000 reset Now you are rebooting in the new u-boot, write this in its console to install the firmware: usb reset fatload usb 0 0x2000000 lede-kirkwood-nsa310b-squashfs-factory.bin nand erase.part ubi nand write 0x2000000 ubi 0x600000 If your firmware file is bigger than 6 MiBs you should write its size in hex instead of 0x600000 above, or remove that number entirely (it will take a while in this case). If you are using another uboot that can read ubi, set mtdparts like this mtdparts=mtdparts=orion_nand:0x00c0000(uboot),0x80000(uboot_env),0x7ec0000(ubi) And set your bootcmd to be like this bootcmd=run setenv bootargs; ubi part ubi; ubi read 0x800000 kernel; bootm 0x800000 Then you can install the firmware as described above. After you installed (or configured) the u-boot for booting the firmware, write the device's mac address in the ethaddr u-boot env. The MAC address is usually on a sticker under the device (one of the two codes is the serial), it should begin with "107BEF" as it is assigned to ZyXEL. write in the u-boot console (use your MAC address instead of the example) setenv ethaddr 10:7B:EF:00:00:00 saveenv to save the mac address in the u-boot. Signed-off-by: Alberto Bursi <alberto.bursi@outlook.it>
Diffstat (limited to 'target/linux/kirkwood/base-files')
-rwxr-xr-xtarget/linux/kirkwood/base-files/etc/board.d/01_leds3
-rwxr-xr-xtarget/linux/kirkwood/base-files/etc/board.d/02_network8
-rwxr-xr-xtarget/linux/kirkwood/base-files/etc/diag.sh3
-rwxr-xr-xtarget/linux/kirkwood/base-files/etc/init.d/nsa310_fancontrol21
-rwxr-xr-xtarget/linux/kirkwood/base-files/lib/kirkwood.sh4
5 files changed, 37 insertions, 2 deletions
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"
;;