diff options
author | Kip Porterfield <kip.porterfield@gmail.com> | 2020-08-03 14:07:51 +0000 |
---|---|---|
committer | Petr Štetiar <ynezz@true.cz> | 2020-12-22 19:11:50 +0100 |
commit | 6ffe8a473eedf6f4f472bb5e64a1e1775917f3c8 (patch) | |
tree | edc24dded25f21f676251b3ad7cbc07d6334e1c4 /target/linux | |
parent | 98b86296e67dd2b467212fe1a577656e6d3725da (diff) | |
download | upstream-6ffe8a473eedf6f4f472bb5e64a1e1775917f3c8.tar.gz upstream-6ffe8a473eedf6f4f472bb5e64a1e1775917f3c8.tar.bz2 upstream-6ffe8a473eedf6f4f472bb5e64a1e1775917f3c8.zip |
kirkwood: add support for Seagate BlackArmor NAS220
The Seagate BlackArmor NAS220 is a consumer NAS
with two internal drive bays. The stock OS runs
RAID 1 over the disks via mdadm.
Device specification:
- SoC: Marvell 88F6192 800 MHz
- RAM: 128 MB
- Flash: 32 MB
- 2 x internal SATA II drives
- Ethernet: 10/100/1000 Mbps (single port, no switch)
- WLAN: None
- LED: Power, Status, Sata Activity
- Key: Power, Reset
- Serial: 10 pin header, (115200,8,N,1), 3.3V TTL
9|x - x|10
7|x - x|8
5|x - GND|6
3|x - RX|4
1|TX - x|2
front of case
- USB ports: 2 x USB 2.0
Flash instruction:
NOTE: this process uses a serial connection. It will upgrade the
bootloader and reset the bootloader environment variables
TFTP server setup
- Setup PC with TFTP server set the PC IP to 10.4.50.5 as TFTP server
- Copy these files to TFTP server location
- u-boot.kwb
- seagate_blackarmor-nas220-initramfs-uImage
- seagate_blackarmor-nas220-squashfs-sysupgrade.bin
- seagate_blackarmor-nas220-squashfs-factory.bin
Seagate NAS setup
- Connect LAN cable between PC and seagate device
- Connect to serial to seagate device
Install u-boot
- Boot seagate device and stop in bootloader by pressing any key
- run 'printenv' from u-boot and save the values
- tftpboot 0x2000000 u-boot.kwb
- nand erase.part uboot
- nand write 0x2000000 0x0 ${filesize}
- reset
Update MAC address in u-boot env
- Stop in u-boot by pressing any key
- Get your MAC address from your saved printenv. Is also on chassis
- setenv ethaddr <your MAC>
- saveenv
Option 1 (recommended) - Install OpenWrt via initramfs and sysupgrade
- tftpboot 0x2000000 seagate_blackarmor-nas220-initramfs-uImage
- bootm 0x2000000
- *OpenWrt should be running now, however it is not written to flash yet*
- From the running instance of OpenWrt use Luci's "flash image" feature
from the web site or use sysupgrade from the console to write
seagate_blackarmor-nas220-squashfs-sysupgrade.bin to flash
Option 2 - Install OpenWrt by flashing factory image from u-boot
- nand erase.part ubi
- tftpboot 0x2000000 seagate_blackarmor-nas220-squashfs-factory.bin
- nand write 0x2000000 ubi ${filesize}
- reset
Signed-off-by: Kip Porterfield <kip.porterfield@gmail.com>
Diffstat (limited to 'target/linux')
4 files changed, 126 insertions, 0 deletions
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 a60b87c912..c3d31affda 100755 --- a/target/linux/kirkwood/base-files/etc/board.d/02_network +++ b/target/linux/kirkwood/base-files/etc/board.d/02_network @@ -22,6 +22,7 @@ case "$board" in "iom,iconnect-1.1"|\ "iom,ix2-200"|\ "raidsonic,ib-nas62x0"|\ +"seagate,blackarmor-nas220"|\ "seagate,dockstar"|\ "seagate,goflexhome"|\ "seagate,goflexnet"|\ diff --git a/target/linux/kirkwood/base-files/etc/init.d/hwmon_fancontrol b/target/linux/kirkwood/base-files/etc/init.d/hwmon_fancontrol index a0e3de062b..c64ed1100c 100755 --- a/target/linux/kirkwood/base-files/etc/init.d/hwmon_fancontrol +++ b/target/linux/kirkwood/base-files/etc/init.d/hwmon_fancontrol @@ -11,6 +11,20 @@ boot() { path_to_hwmon='/sys/class/hwmon/hwmon0' echo 2 > "$path_to_hwmon/pwm1_enable" # fan is on pwm1 ;; + seagate,blackarmor-nas220) + path_to_hwmon='/sys/devices/platform/ocp@f1000000/f1011000.i2c/i2c-0/0-002e/hwmon/hwmon0' + # adt7476 fan control chip. 3 temp sensors. Set to 1/4 speed at 35C and max speed at 48C. + echo 7 > "$path_to_hwmon/pwm1_auto_channels_temp" + echo 64 > "$path_to_hwmon/pwm1_auto_point1_pwm" + echo 255 > "$path_to_hwmon/pwm1_auto_point2_pwm" + echo 35000 > "$path_to_hwmon/temp1_auto_point1_temp" + echo 48000 > "$path_to_hwmon/temp1_auto_point2_temp" + echo 35000 > "$path_to_hwmon/temp2_auto_point1_temp" + echo 48000 > "$path_to_hwmon/temp2_auto_point2_temp" + echo 35000 > "$path_to_hwmon/temp3_auto_point1_temp" + echo 48000 > "$path_to_hwmon/temp3_auto_point2_temp" + echo 2 > "$path_to_hwmon/pwm1_enable" + ;; zyxel,nsa310b) path_to_hwmon='/sys/devices/platform/ocp@f1000000/f1011000.i2c/i2c-0/0-002e/hwmon/hwmon0' echo 2 > "$path_to_hwmon/pwm1_enable" # fan is on pwm1 diff --git a/target/linux/kirkwood/image/Makefile b/target/linux/kirkwood/image/Makefile index 0816add474..a9aad01f7f 100644 --- a/target/linux/kirkwood/image/Makefile +++ b/target/linux/kirkwood/image/Makefile @@ -145,6 +145,18 @@ define Device/raidsonic_ib-nas62x0 endef TARGET_DEVICES += raidsonic_ib-nas62x0 +define Device/seagate_blackarmor-nas220 + DEVICE_VENDOR := Seagate + DEVICE_MODEL := Blackarmor NAS220 + DEVICE_PACKAGES := kmod-hwmon-adt7475 kmod-fs-ext4 kmod-ata-marvell-sata \ + mdadm kmod-gpio-button-hotplug + PAGESIZE := 512 + SUBPAGESIZE := 256 + BLOCKSIZE := 16k + UBINIZE_OPTS := -e 1 +endef +TARGET_DEVICES += seagate_blackarmor-nas220 + define Device/seagate_dockstar DEVICE_VENDOR := Seagate DEVICE_MODEL := FreeAgent Dockstar diff --git a/target/linux/kirkwood/patches-5.4/203-blackarmor-nas220.patch b/target/linux/kirkwood/patches-5.4/203-blackarmor-nas220.patch new file mode 100644 index 0000000000..e04a28206a --- /dev/null +++ b/target/linux/kirkwood/patches-5.4/203-blackarmor-nas220.patch @@ -0,0 +1,99 @@ +--- a/arch/arm/boot/dts/kirkwood-blackarmor-nas220.dts ++++ b/arch/arm/boot/dts/kirkwood-blackarmor-nas220.dts +@@ -17,6 +17,13 @@ + compatible = "seagate,blackarmor-nas220","marvell,kirkwood-88f6192", + "marvell,kirkwood"; + ++ aliases { ++ led-boot = &led_status_amber; ++ led-failsafe = &led_status_amber; ++ led-running = &led_status_blue; ++ led-upgrade = &led_status_amber; ++ }; ++ + memory { /* 128 MB */ + device_type = "memory"; + reg = <0x00000000 0x8000000>; +@@ -36,14 +43,14 @@ + compatible = "gpio-keys"; + + reset { +- label = "Reset"; +- linux,code = <KEY_POWER>; ++ label = "Reset Button"; ++ linux,code = <KEY_RESTART>; + gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; + }; + +- button { +- label = "Power"; +- linux,code = <KEY_SLEEP>; ++ power { ++ label = "Power Button"; ++ linux,code = <KEY_POWER>; + gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; + }; + }; +@@ -51,11 +58,27 @@ + gpio-leds { + compatible = "gpio-leds"; + +- blue-power { ++ led_power_blue: power_blue { + label = "nas220:blue:power"; + gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "default-on"; + }; ++ ++ disk_blue { ++ label = "nas220:blue:disk"; ++ gpios = <&gpio0 16 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "disk-activity"; ++ }; ++ ++ led_status_blue: status_blue { ++ label = "nas220:blue:status"; ++ gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ led_status_amber: status_amber { ++ label = "nas220:amber:status"; ++ gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>; ++ }; + }; + + regulators { +@@ -153,6 +176,33 @@ + + &nand { + status = "okay"; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ ++ partition@0 { ++ label = "uboot"; ++ reg = <0x0 0xa0000>; ++ read-only; ++ }; ++ ++ partition@a0000 { ++ label = "uboot-env"; ++ reg = <0xa0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@b0000 { ++ label = "reserved"; ++ reg = <0xb0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@c0000 { ++ label = "ubi"; ++ reg = <0xc0000 0x1e80000>; ++ }; ++ }; + }; + + &mdio { |