From 3f31029b190417e12f4d19d9999cd52ec76d0f85 Mon Sep 17 00:00:00 2001 From: Andrew Yong Date: Sun, 8 Jan 2017 14:30:10 +0800 Subject: [PATCH] ramips: add support for VoCore2 This patch adds support for the VoCore VoCore2 and its complementary "ultimate" dock. Specifications: - SoC: MediaTek MT7628AN (580MHz, ramips) - RAM: 128MB DDR2 166MHz - Storage: 16MB NOR SPI flash onboard + microSD slot on dock - Wireless: Built into MT7628AN (mt76) with 1T1R firmware on VoCore2 boards with onboard 1x chip antenna - Ethernet: 1x100M (port0) on dock, 1x100M (port2) on PCB header - Dock hardware: - USB 2.0 socket - MicroSD socket - 100Mbps Ethernet x1 - 3.5mm headphone jack (TRRS) connected to Everest Semi ES8388 I2S DAC/ADC (support WIP) - Micro USB for power and console (UART2) Initial installation: - VoCore2 comes preinstalled with a fork of OpenWrt CC and AP on SSID "VoCore2" - Connect to VoCore2 by Ethernet or Wi-Fi - `ssh root@192.168.1.1` (password is "vocore") - scp/wget/etc. LEDE sysupgrade.bin to VoCore2 - `sysupgrade -n .bin` (don't keep old config, as the original firmware uses Ralink SDK Wi-Fi drivers and not mt76+mac80211) - after sysupgrade completes, Wi-Fi will be disabled by default so use Ethernet or the micro USB console to configure Wi-Fi again Signed-off-by: Andrew Yong --- .../ramips/base-files/etc/board.d/01_leds | 3 + .../ramips/base-files/etc/board.d/02_network | 4 + target/linux/ramips/base-files/etc/diag.sh | 3 + target/linux/ramips/base-files/lib/ramips.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/VOCORE2.dts | 123 ++++++++++++++++++ target/linux/ramips/image/mt7628.mk | 9 ++ 7 files changed, 146 insertions(+) create mode 100644 target/linux/ramips/dts/VOCORE2.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 0ebf471802..3d3aa0ac01 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -311,6 +311,9 @@ vocore) ucidef_set_led_netdev "eth" "ETH" "$board:orange:eth" "eth0" set_wifi_led "$board:green:status" ;; +vocore2) + set_wifi_led "$board:fuchsia:status" + ;; w502u) set_usb_led "$board:blue:usb" set_wifi_led "rt2800pci-phy0::radio" 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 daf9b33a74..e84a52d4a6 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -249,6 +249,10 @@ ramips_setup_interfaces() ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "0@eth0" ;; + vocore2) + ucidef_add_switch "switch0" \ + "0:lan" "2:lan" "6t@eth0" + ;; f5d8235-v1|\ tew-714tru|\ v11st-fe|\ diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index a22be5e3d4..0b5bfeb589 100644 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -206,6 +206,9 @@ get_status_led() { v22rw-2x2) status_led="$board:green:security" ;; + vocore2) + status_led="$board:fuchsia:status" + ;; w306r-v20|\ witi|\ zbt-wr8305rt) diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 9b82b2a5c1..895f3ae224 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -475,6 +475,9 @@ ramips_board_detect() { *"VoCore (16M)") name="vocore-16M" ;; + *"VoCore2") + name="vocore2" + ;; *"VR500") name="vr500" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index c097cfa218..ce2c2221f2 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -133,6 +133,7 @@ platform_check_image() { ur-336un|\ v22rw-2x2|\ vocore|\ + vocore2|\ vr500|\ w150m|\ w2914nsv2|\ diff --git a/target/linux/ramips/dts/VOCORE2.dts b/target/linux/ramips/dts/VOCORE2.dts new file mode 100644 index 0000000000..297cd1bb99 --- /dev/null +++ b/target/linux/ramips/dts/VOCORE2.dts @@ -0,0 +1,123 @@ +/dts-v1/; + +#include "mt7628an.dtsi" + +#include +#include + +/ { + compatible = "vocore,VoCore2", "mediatek,mt7628an-soc"; + model = "VoCore2"; + + chosen { + bootargs = "console=ttyS2,115200"; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x4000000>; + }; + + gpio-leds { + compatible = "gpio-leds"; + + status { + label = "vocore2:fuchsia:status"; + gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "refclk", "gpio"; + ralink,function = "gpio"; + }; + + agpio { + ralink,group = "agpio"; + ralink,function = "uart2"; + }; + }; + + uart1_pins: uart1 { + uart1 { + ralink,group = "uart1"; + ralink,function = "uart1"; + }; + }; + + uart2_pins: uart2 { + uart2 { + ralink,group = "spis"; + ralink,function = "pwm"; + }; + }; +}; + +&wmac { + status = "okay"; + ralink,mtd-eeprom = <&factory 0x4>; +}; + +&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 0xfb0000>; + }; + }; +}; + +&esw { + mediatek,portmap = <0x7>; + mediatek,portdisable = <0x3a>; +}; + +&i2s { + status = "okay"; +}; + +&gdma { + status = "okay"; +}; + +&pwm { + status = "okay"; +}; + +&uart1 { + status = "okay"; +}; + +&uart2 { + status = "okay"; +}; diff --git a/target/linux/ramips/image/mt7628.mk b/target/linux/ramips/image/mt7628.mk index 7a7ddce3c9..4502588c80 100644 --- a/target/linux/ramips/image/mt7628.mk +++ b/target/linux/ramips/image/mt7628.mk @@ -19,6 +19,15 @@ define Device/miwifi-nano endef TARGET_DEVICES += miwifi-nano +define Device/vocore2 + DTS := VOCORE2 + IMAGE_SIZE := $(ralink_default_fw_size_16M) + DEVICE_TITLE := VoCore VoCore2 + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport \ + kmod-sdhci kmod-sdhci-mt7620 +endef +TARGET_DEVICES += vocore2 + define Device/wl-wn575a3 DTS := WL-WN575A3 IMAGE_SIZE := $(ralink_default_fw_size_8M)