diff options
author | Sander van Deijck <sander@vandeijck.com> | 2023-05-19 00:59:25 +0200 |
---|---|---|
committer | Christian Lamparter <chunkeey@gmail.com> | 2023-05-20 15:35:37 +0200 |
commit | 4642d8abdc699685db5d4eb251c71055a2bc43fa (patch) | |
tree | b6170eed7d213e71e5762de1cc261b73ae4a9fe3 | |
parent | 7365e6b00a7ab823467b7d92d4f3f0bdbe271f35 (diff) | |
download | upstream-4642d8abdc699685db5d4eb251c71055a2bc43fa.tar.gz upstream-4642d8abdc699685db5d4eb251c71055a2bc43fa.tar.bz2 upstream-4642d8abdc699685db5d4eb251c71055a2bc43fa.zip |
kirkwood: add support for Iomega Storcenter ix4-200d
Iomega Storcenter ix4-200d is a four-bay SATA NAS powered by a Marvell
Kirkwood SoC clocked at 1.2GHz. It has 512MB of RAM and 32MB of
flash memory, 3x USB 2.0 and 2x 1Gbit/s NIC
Specification:
- SoC: Marvell Kirkwood 88F6281
- CPU/Speed: 1200Mhz
- Flash size: 32 MiB
- RAM: 512MB
- LAN: 2x 1Gbit/s
- 3x USB 2.0
Notes:
- The blue drive LED is triggered by HDD activity, it can not be controlled
via GPIO.
- The LCD screen requires proprietary code and does not function at this time.
- Due to a kernel-related issue with the Marvell 88SE6121 SATA controller,
currently only trays numbered #3 and #4 work, #1 and #2 do not. [1]
Serial pinout:
CN4
--------------
| 10 8 6 4 2 |
| 9 7 5 3 1 |
-------------- PIN 1 Mark (fat line)
1 = RXD
4 = TXD
6 = GND
9 = 3.3V (not necessary to connect)
Installation instructions:
1. download initramfs-uImage and copy into tftp server
2. connect the tftp server to network port #1
3. access uboot environment with serial cable and run
setenv mainlineLinux yes
setenv arcNumber 1682
setenv console 'console=ttyS0,115200n8'
setenv mtdparts 'mtdparts=orion_nand:0x100000@0x000000(u-boot)ro,0x20000@0xA0000(u-boot environment)ro,0x300000@0x100000(kernel),0x1C00000@0x400000(ubi)'
setenv bootargs_root 'root='
setenv bootcmd 'setenv bootargs ${console} ${mtdparts} ${bootargs_root}; nand read.e 0x800000 0x100000 0x300000; bootm 0x00800000'
saveenv
setenv serverip 192.168.1.1
setenv ipaddr 192.168.1.2
tftpboot 0x00800000 [initramfs-uImage filename]
bootm 0x00800000
4. connect to LAN on network port #2, log into openwrt and sysupgrade to install into flash
[1] https://bugzilla.kernel.org/show_bug.cgi?id=216094
Signed-off-by: Sander van Deijck <sander@vandeijck.com>
(aligned FROM from signed-off. LED+key rename, whitespace removal)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
-rw-r--r-- | target/linux/kirkwood/base-files/etc/board.d/02_network | 3 | ||||
-rw-r--r-- | target/linux/kirkwood/files/arch/arm/boot/dts/kirkwood-ix4-200d.dts | 202 | ||||
-rw-r--r-- | target/linux/kirkwood/image/Makefile | 18 |
3 files changed, 223 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 df38694f40..15f75df6a8 100644 --- a/target/linux/kirkwood/base-files/etc/board.d/02_network +++ b/target/linux/kirkwood/base-files/etc/board.d/02_network @@ -37,6 +37,9 @@ kirkwood_setup_interfaces() endian,4i-edge-200) ucidef_set_interface_lan "port1 port2 port3 port4 eth1" ;; + iom,ix4-200d) + ucidef_set_interface_lan "eth0 eth1" "dhcp" + ;; linksys,e4200-v2|\ linksys,ea3500|\ linksys,ea4500) diff --git a/target/linux/kirkwood/files/arch/arm/boot/dts/kirkwood-ix4-200d.dts b/target/linux/kirkwood/files/arch/arm/boot/dts/kirkwood-ix4-200d.dts new file mode 100644 index 0000000000..c63742a1a8 --- /dev/null +++ b/target/linux/kirkwood/files/arch/arm/boot/dts/kirkwood-ix4-200d.dts @@ -0,0 +1,202 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6281.dtsi" +#include <dt-bindings/leds/common.h> + +/ { + model = "Iomega ix4-200d"; + compatible = "iom,ix4-200d", "marvell,kirkwood-88f6281", "marvell,kirkwood"; + + aliases { + led-boot = &led_status_white; + led-failsafe = &led_status_red; + led-running = &led_power_white; + led-upgrade = &led_status_red; + }; + + chosen { + bootargs = "console=ttyS0,115200n8 earlyprintk"; + stdout-path = &uart0; + }; + + memory { + device_type = "memory"; + reg = <0x00000000 0x20000000>; + }; + + ocp@f1000000 { + i2c@11000 { + status = "okay"; + + adt7473@2e { + compatible = "adi,adt7473"; + reg = <0x2e>; + }; + }; + + pinctrl: pin-controller@10000 { + pmx_spi: pmx-spi { + marvell,pins = "mpp12", "mpp13", "mpp14"; + marvell,function = "gpio"; + }; + + pmx_keys: pmx-keys { + marvell,pins = "mpp16", "mpp29", "mpp47", "mpp49"; + marvell,function = "gpio"; + }; + }; + + sata@80000 { + status = "okay"; + nr-ports = <2>; + }; + + serial@12000 { + status = "okay"; + }; + + spi3 { + compatible = "spi-gpio"; + #address-cells = <0x1>; + ranges; + status = "okay"; + sck-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; + mosi-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; + cs-gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; + num-chipselects = <1>; + #size-cells = <0>; + + gpio_spi: gpio_spi@0 { + compatible = "fairchild,74hc595"; + reg = <0>; + gpio-controller; + #gpio-cells = <2>; + registers-number = <1>; + spi-max-frequency = <100000>; + }; + }; + + gpio-keys { + compatible = "gpio-keys"; + pinctrl-0 = <&pmx_keys>; + pinctrl-names = "default"; + + button-0 { + label = "Next Button"; + linux,code = <BTN_0>; + gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>; + }; + + button-1 { + label = "Reset Button"; + linux,code = <KEY_RESTART>; + gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; + }; + + button-2 { + label = "Cancel Button"; + linux,code = <BTN_1>; + gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; + }; + + button-3 { + label = "Power Button"; + linux,code = <KEY_POWER2>; + gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + led_status_white: led-0 { + label = "status:white"; + function = LED_FUNCTION_STATUS; + color = <LED_COLOR_ID_WHITE>; + gpios = <&gpio_spi 4 GPIO_ACTIVE_LOW>; + }; + + led_status_red: led-1 { + label = "status:red"; + function = LED_FUNCTION_STATUS; + color = <LED_COLOR_ID_RED>; + gpios = <&gpio_spi 5 GPIO_ACTIVE_LOW>; + }; + + led_power_white: led-2 { + label = "power:white"; + function = LED_FUNCTION_POWER; + color = <LED_COLOR_ID_WHITE>; + gpios = <&gpio_spi 7 GPIO_ACTIVE_HIGH>; + }; + }; + }; +}; + +ð0 { + status = "okay"; + ethernet0-port@0 { + phy-handle = <ðphy0>; + }; +}; + +ð1 { + status = "okay"; + ethernet1-port@0 { + phy-handle = <ðphy1>; + }; +}; + +&mdio { + status = "okay"; + + ethphy0: ethernet-phy@8 { + reg = <8>; + }; + + ethphy1: ethernet-phy@9 { + reg = <9>; + }; +}; + +&nand { + status = "okay"; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x0000000 0x100000>; + read-only; + }; + + partition@a0000 { + label = "u-boot environment"; + reg = <0xa0000 0x20000>; + read-only; + }; + + partition@100000 { + label = "kernel"; + reg = <0x100000 0x300000>; + }; + + partition@400000 { + label = "ubi"; + reg = <0x400000 0x1C00000>; + }; + }; +}; + +&pciec { + status = "okay"; +}; + +&pcie0 { + status = "okay"; +}; diff --git a/target/linux/kirkwood/image/Makefile b/target/linux/kirkwood/image/Makefile index ea76e21970..0fa14b89f3 100644 --- a/target/linux/kirkwood/image/Makefile +++ b/target/linux/kirkwood/image/Makefile @@ -184,6 +184,24 @@ define Device/iom_ix2-200 endef TARGET_DEVICES += iom_ix2-200 +define Device/iom_ix4-200d + DEVICE_VENDOR := Iomega + DEVICE_MODEL := StorCenter ix4-200d + DEVICE_PACKAGES := kmod-ata-marvell-sata kmod-fs-ext4 \ + kmod-gpio-button-hotplug kmod-gpio-nxp-74hc164 \ + kmod-hwmon-adt7475 kmod-mvsdio kmod-spi-gpio + PAGESIZE := 512 + SUBPAGESIZE := 256 + BLOCKSIZE := 16k + KERNEL_SIZE := 3072k + KERNEL_IN_UBI := + UBINIZE_OPTS := -E 5 + IMAGE_SIZE := 31744k + IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \ + check-size +endef +TARGET_DEVICES += iom_ix4-200d + define Device/iptime_nas1 DEVICE_VENDOR := ipTIME DEVICE_MODEL := NAS1 |