From c60a21532bc903ab86d971b478752152d4476ef8 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sun, 4 Feb 2018 16:24:15 -0800 Subject: [PATCH] ramips: Add support for the GnuBee Personal Cloud Two The GnuBee Personal Cloud Two crowdfunded on https://www.crowdsupply.com It is a low-cost, low-power, network-attached storage device. Specifications: - SoC: MediaTek MT7621AT - RAM: DDR3 512 MB - Flash: 32 MB - Six SATA ports for 3.5" Drives - One SDcard - One USB 3.0 - Two USB 2.0 - Gigabit Ethernet: Three Ports - UART 3.5mm Audio Jack or 3 pin header - 57600 8N1 - Three GPIOs available on a pin header Flash instructions: The GnuBee Personal Cloud Two ships with libreCMC installed. libreCMC is a Free Software Foundation approved fork of LEDE/OpenWrt. As such one can upgrade using the webinterface or sysupgrade. Das U-Boot has multiple options for recovery or updates including : - USB - http - tftp Errata: - While there are three ethernet ports, the third requires support for the second GMAC. This will come in kernel 4.14. - The first hard drive slot has a clearance issue with the two fan headers. Workaround is to pull the headers out and connect the pins to jumper wires. - Using this device as a NAS is problematic with the 4.9 kernel as many /dev/sdX reads throw silent errors. The current theory behind this is some kind of unhandled DMA mapping error in the kernel. This is not an issue with kernel 4.4. Signed-off-by: L. D. Pinney Signed-off-by: Rosen Penev --- .../ramips/base-files/etc/board.d/01_leds | 6 + .../ramips/base-files/etc/board.d/02_network | 4 + target/linux/ramips/base-files/etc/diag.sh | 1 + target/linux/ramips/base-files/lib/ramips.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/GB-PC2.dts | 137 ++++++++++++++++++ target/linux/ramips/image/mt7621.mk | 8 + 7 files changed, 160 insertions(+) create mode 100644 target/linux/ramips/dts/GB-PC2.dts diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds index 677bf95a2735..573dd31c64de 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -191,6 +191,12 @@ gb-pc1) ucidef_set_led_switch "lan1" "lan1" "$boardname:green:lan1" "switch0" "0x01" ucidef_set_led_switch "lan2" "lan2" "$boardname:green:lan2" "switch0" "0x10" ;; +gb-pc2) + ucidef_set_led_switch "lan" "lan" "$board:green:lan" "switch0" "0x01" + ucidef_set_led_switch "wan" "wan" "$board:green:wan" "switch0" "0x10" + ucidef_set_led_netdev "eth1-g" "eth1-g" "$board:green:eth1-g" "eth1" + ucidef_set_led_netdev "eth1-y" "eth1-y" "$board:green:eth1-y" "eth1" + ;; gl-mt300a|\ gl-mt300n|\ gl-mt750) 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 d064bfef3b88..1ccff892b1d3 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -206,6 +206,10 @@ ramips_setup_interfaces() ucidef_add_switch "switch0" \ "0:lan" "4:lan" "6@eth0" ;; + gb-pc2) + ucidef_add_switch "switch0" \ + "4:lan" "0:wan" "6@eth0" + ;; gl-mt300n-v2) ucidef_add_switch "switch0" \ "1:lan" "0:wan" "6@eth0" diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index 6b11fb2872fe..e38311d5e5fc 100644 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -91,6 +91,7 @@ get_status_led() { dir-620-d1|\ dwr-512-b|\ gb-pc1|\ + gb-pc2|\ hpm|\ hw550-3g|\ mac1200rv2|\ diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 75474fbc6d07..74ed5913b8c2 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -205,6 +205,9 @@ ramips_board_detect() { *"GB-PC1") name="gb-pc1" ;; + *"GB-PC2") + name="gb-pc2" + ;; *"GL-MT300A") name="gl-mt300a" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 45e141de02be..ab538db108c1 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -61,6 +61,7 @@ platform_check_image() { fonera20n|\ freestation5|\ gb-pc1|\ + gb-pc2|\ gl-mt300a|\ gl-mt300n|\ gl-mt750|\ diff --git a/target/linux/ramips/dts/GB-PC2.dts b/target/linux/ramips/dts/GB-PC2.dts new file mode 100644 index 000000000000..f31ac2b84345 --- /dev/null +++ b/target/linux/ramips/dts/GB-PC2.dts @@ -0,0 +1,137 @@ +/dts-v1/; + +#include "mt7621.dtsi" + +#include +#include + +/ { + compatible = "gnubee,gb-pc2", "mediatek,mt7621-soc"; + model = "GB-PC2"; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x1c000000>, <0x20000000 0x4000000>; + }; + + chosen { + bootargs = "console=ttyS0,57600"; + }; + + palmbus: palmbus@1E000000 { + i2c@900 { + status = "okay"; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + + reset { + label = "reset"; + gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>; + linux,code = ; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + system { + label = "gb-pc2:green:system"; + gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; + }; + + status { + label = "gb-pc2:green:status"; + gpios = <&gpio0 8 GPIO_ACTIVE_LOW>; + }; + + lan { + label = "gb-pc2:green:lan"; + gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; + }; + + wan { + label = "gb-pc2:green:wan"; + gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; + }; + + eth1-y { + label = "gb-pc2:yellow:eth1-y"; + gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; + }; + + eth1-g { + label = "gb-pc2:green:eth1-g"; + gpios = <&gpio0 15 GPIO_ACTIVE_LOW>; + }; + + }; +}; + +&sdhci { + status = "okay"; +}; + +&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 0x1fb0000>; + }; + }; +}; + +&cpuclock { + compatible = "fixed-clock"; + clock-frequency = <900000000>; +}; + +&pcie { + status = "okay"; +}; + +ðernet { + mtd-mac-address = <&factory 0xe000>; +}; + +&pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "uart3"; + ralink,function = "gpio"; + }; + }; +}; + diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index 8ba65a1af2ca..f0b5a8444f5f 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -83,6 +83,14 @@ define Device/gb-pc1 endef TARGET_DEVICES += gb-pc1 +define Device/gb-pc2 + DTS := GB-PC2 + DEVICE_TITLE := GnuBee Personal Cloud Two + DEVICE_PACKAGES := kmod-ata-core kmod-ata-ahci kmod-usb3 kmod-sdhci-mt7620 + IMAGE_SIZE := $(ralink_default_fw_size_32M) +endef +TARGET_DEVICES += gb-pc2 + define Device/hc5962 DTS := HC5962 BLOCKSIZE := 128k -- 2.30.2