From 012da658a4565b60d2cae8d888fcd487c8ecfac9 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Tue, 19 Apr 2016 20:12:41 +0000 Subject: [PATCH] oxnas: add support for Akitio MyCloud mini Signed-off-by: Daniel Golle SVN-Revision: 49197 --- package/boot/uboot-envtools/files/oxnas | 1 + package/network/utils/curl/Config.in.orig | 162 ++++++++++++++++++ .../oxnas/base-files/etc/board.d/01_leds | 3 + target/linux/oxnas/base-files/etc/diag.sh | 3 + target/linux/oxnas/base-files/lib/oxnas.sh | 3 + .../files/arch/arm/boot/dts/ox820-akitio.dts | 132 ++++++++++++++ target/linux/oxnas/image/Makefile | 6 +- .../oxnas/patches-4.4/900-more-boards.patch | 5 +- target/linux/oxnas/profiles/akitio.mk | 17 ++ 9 files changed, 329 insertions(+), 3 deletions(-) create mode 100644 package/network/utils/curl/Config.in.orig create mode 100644 target/linux/oxnas/files/arch/arm/boot/dts/ox820-akitio.dts create mode 100644 target/linux/oxnas/profiles/akitio.mk diff --git a/package/boot/uboot-envtools/files/oxnas b/package/boot/uboot-envtools/files/oxnas index 063ffa0b92..e560e22fab 100644 --- a/package/boot/uboot-envtools/files/oxnas +++ b/package/boot/uboot-envtools/files/oxnas @@ -14,6 +14,7 @@ touch /etc/config/ubootenv board=$(oxnas_board_name) case "$board" in +akitio | \ stg212 | \ kd20) ubootenv_add_uci_config "/dev/ubi0_0" "0x0" "0x4000" "0x1F000" "1" diff --git a/package/network/utils/curl/Config.in.orig b/package/network/utils/curl/Config.in.orig new file mode 100644 index 0000000000..7a46e4e25a --- /dev/null +++ b/package/network/utils/curl/Config.in.orig @@ -0,0 +1,162 @@ +if PACKAGE_libcurl + +comment "SSL support" + +choice + prompt "Selected SSL library" + default LIBCURL_POLARSSL + + config LIBCURL_POLARSSL + bool "PolarSSL" + + config LIBCURL_MBEDTLS + bool "mbed TLS" + + config LIBCURL_CYASSL + bool "CyaSSL" + + config LIBCURL_AXTLS + bool "axTLS" + + config LIBCURL_OPENSSL + bool "OpenSSL" + + config LIBCURL_GNUTLS + bool "GNUTLS" + + config LIBCURL_NOSSL + bool "No SSL support" + +endchoice + +comment "Supported protocols" + +config LIBCURL_DICT + bool "DICT protocol" + default n + +config LIBCURL_FILE + bool "FILE protocol" + default y + +config LIBCURL_FTP + bool "FTP / FTPS protocol" + default y + +config LIBCURL_GOPHER + bool "Gopher protocol" + default n + +config LIBCURL_HTTP + bool "HTTP / HTTPS protocol" + default y + +config LIBCURL_COOKIES + bool "Enable Cookies support" + depends on LIBCURL_HTTP + default y + +config LIBCURL_IMAP + bool "IMAP / IMAPS protocol" + default n + +config LIBCURL_LDAP + bool "LDAP protocol" + default n + +config LIBCURL_LDAPS + bool "Enable LDAPS support" + depends on LIBCURL_LDAP && !LIBCURL_NOSSL + default y + +config LIBCURL_POP3 + bool "POP3 / POP3S protocol" + default n + +config LIBCURL_RTSP + bool "RTSP protocol" + depends on LIBCURL_HTTP + default n +config LIBCURL_NO_RTSP + string "RTSP require HTTP protocol" + depends on !LIBCURL_HTTP + default "!" + +config LIBCURL_SSH2 + bool "SCP / SFTP protocol" + default n + +config LIBCURL_SMB + bool "SMB protocol (CIFS)" + depends on LIBCURL_CRYPTO_AUTH && (LIBCURL_GNUTLS || LIBCURL_OPENSSL) + default n +config LIBCURL_NO_SMB + string "SMB require 'cryptographic authentication' and either 'GnuTLS' or 'OpenSSL'" + depends on !LIBCURL_CRYPTO_AUTH || (!LIBCURL_GNUTLS && !LIBCURL_OPENSSL) + default "!" + +config LIBCURL_SMTP + bool "SMTP / SMTPS protocol" + default n + +config LIBCURL_TELNET + bool "TELNET protocol" + default n + +config LIBCURL_TFTP + bool "TFTP protocol" + default n + +comment "Miscellaneous" + +config LIBCURL_PROXY + bool "Enable proxy support" + default y + +config LIBCURL_CRYPTO_AUTH + bool "Enable cryptographic authentication" + default n + +config LIBCURL_TLS_SRP + bool "Enable TLS-SRP authentication" + default n + +config LIBCURL_LIBIDN + bool "Enable IDN support" + default n + +config LIBCURL_THREADED_RESOLVER + bool "Enable threaded DNS resolver" + default n + help + Enable POSIX threaded asynchronous DNS resolution + +config LIBCURL_ZLIB + bool "Enable zlib support" + default n + +config LIBCURL_UNIX_SOCKETS + bool "Enable unix domain socket support" + default n + help + Enable HTTP over unix domain sockets. + To use this with the curl command line, you specify the socket path to the new --unix-domain option. + This feature is actually not limited to HTTP, you can do all the TCP-based protocols + except FTP over the unix domain socket, but it is only HTTP that is regularly used this way. + The reason FTP isn't supported is of course its use of two connections + which would be even weirder to do like this. + +config LIBCURL_LIBCURL_OPTION + bool "Enable generation of C code" + default n + +config LIBCURL_VERBOSE + bool "Enable verbose error strings" + default n + +config LIBCURL_NTLM + bool "Enable NTLM support" + depends on LIBCURL_CRYPTO_AUTH && !LIBCURL_NOSSL + default n + +endif diff --git a/target/linux/oxnas/base-files/etc/board.d/01_leds b/target/linux/oxnas/base-files/etc/board.d/01_leds index af565d7031..b4b598cc40 100755 --- a/target/linux/oxnas/base-files/etc/board.d/01_leds +++ b/target/linux/oxnas/base-files/etc/board.d/01_leds @@ -7,6 +7,9 @@ board=$(oxnas_board_name) board_config_update case $board in + akitio) + ucidef_set_led_default "status" "status" "akitio:red:status" "0" + ;; stg212) ucidef_set_led_default "power" "power" "zyxel:blue:status" "1" ucidef_set_led_usbdev "usb" "USB" "zyxel:orange:copy" "1-1" diff --git a/target/linux/oxnas/base-files/etc/diag.sh b/target/linux/oxnas/base-files/etc/diag.sh index 5aec796cb2..51771f3ea6 100644 --- a/target/linux/oxnas/base-files/etc/diag.sh +++ b/target/linux/oxnas/base-files/etc/diag.sh @@ -6,6 +6,9 @@ get_status_led() { case $(oxnas_board_name) in + akitio) + status_led="akitio:red:status" + ;; stg212) status_led="zyxel:blue:status" ;; diff --git a/target/linux/oxnas/base-files/lib/oxnas.sh b/target/linux/oxnas/base-files/lib/oxnas.sh index 8ae5fbbeee..991f92720d 100755 --- a/target/linux/oxnas/base-files/lib/oxnas.sh +++ b/target/linux/oxnas/base-files/lib/oxnas.sh @@ -13,6 +13,9 @@ oxnas_board_detect() { machine=$(cat /proc/device-tree/model) case "$machine" in + *"Akitio MyCloud mini"*) + name="akitio" + ;; *"MitraStar Technology Corp. STG-212"*) name="stg212" ;; diff --git a/target/linux/oxnas/files/arch/arm/boot/dts/ox820-akitio.dts b/target/linux/oxnas/files/arch/arm/boot/dts/ox820-akitio.dts new file mode 100644 index 0000000000..5da4fa4419 --- /dev/null +++ b/target/linux/oxnas/files/arch/arm/boot/dts/ox820-akitio.dts @@ -0,0 +1,132 @@ +/* + * Copyright (C) 2016 Daniel Golle + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +/dts-v1/; +#include "ox820.dtsi" + +/ { + model = "Akitio MyCloud mini"; + + chosen { + bootargs = "console=ttyS0,115200n8 earlyprintk=serial"; + }; + + pcie-controller@47C00000 { + status = "disabled"; + }; + + uart@44200000 { + status = "okay"; + }; + + sata@45900000 { + status = "okay"; + nr-ports = <2>; + }; + + nand@41000000 { + status = "okay"; + + partition@0 { + label = "boot"; + reg = <0x0 0x26c0000>; + }; + + partition@26c0000 { + label = "ubi"; + reg = <0x26c0000 0xd940000>; + }; + }; + + ethernet@40400000 { + status = "okay"; + }; + + ehci@40200100 { + status = "okay"; + }; + + i2c-gpio { + compatible = "i2c-gpio"; + gpios = <&GPIOB 9 0 &GPIOB 10 0>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c>; + i2c-gpio,delay-us = <10>; + #address-cells = <1>; + #size-cells = <0>; + ds1307: rtc@68 { + compatible = "dallas,ds1307"; + reg = <0x68>; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_buttons>; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <100>; + power { + label = "power"; + gpios = <&GPIOA 11 1>; + linux,code = <116>; + } + reset { + label = "reset"; + gpios = <&GPIOB 6 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_leds>; + status { + label = "akitio:red:status"; + gpios = <&GPIOA 29 0>; + }; + }; + + gpio-poweroff { + compatible = "gpio-poweroff"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_poweroff>; + gpios = <&GPIOB 13 2>; + }; + + pinctrl { + i2c { + pinctrl_i2c: i2c-0 { + plxtech,pins = + <1 9 0 4 /* MF_B9 GPIO debounce */ + 1 10 0 4>; /* MF_B10 GPIO debounce */ + }; + }; + buttons { + pinctrl_buttons: buttons-0 { + plxtech,pins = + <0 11 0 0 /* MF_A11 GPIO */ + 1 6 0 0>; /* MF_B6 GPIO */ + }; + }; + leds { + pinctrl_leds: leds-0 { + plxtech,pins = + <0 29 0 0>; /* MF_A29 GPIO */ + }; + }; + poweroff { + pinctrl_poweroff: poweroff-0 { + plxtech,pins = + <1 13 0 0>; /* MF_B13 GPIO */ + }; + }; + }; +}; diff --git a/target/linux/oxnas/image/Makefile b/target/linux/oxnas/image/Makefile index ae1050e9a1..27da2da27c 100644 --- a/target/linux/oxnas/image/Makefile +++ b/target/linux/oxnas/image/Makefile @@ -18,7 +18,7 @@ DEVICE_VARS += DEVICE_DTS KERNEL_SIZE PAGESIZE BLOCKSIZE SUBPAGESIZE DEVICE_VARS += KERNEL_IN_UBI UBOOTENV_IN_UBI UBIFS_OPTS KERNEL_LOADADDR := 0x60008000 -TARGET_DEVICES = kd20 pogoplug-pro pogoplug-v3 stg212 +TARGET_DEVICES = akitio kd20 pogoplug-pro pogoplug-v3 stg212 define Device/Default KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts) @@ -38,6 +38,10 @@ define Device/Default UBOOTENV_IN_UBI := 1 endef +define Device/akitio + PROFILES := Default AKITIO + DEVICE_DTS := ox820-akitio +endef define Device/kd20 PROFILES := Default KD20 diff --git a/target/linux/oxnas/patches-4.4/900-more-boards.patch b/target/linux/oxnas/patches-4.4/900-more-boards.patch index 19e1e8275b..f41fa8648e 100644 --- a/target/linux/oxnas/patches-4.4/900-more-boards.patch +++ b/target/linux/oxnas/patches-4.4/900-more-boards.patch @@ -1,11 +1,12 @@ --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -497,7 +497,10 @@ dtb-$(CONFIG_ARCH_ORION5X) += \ +@@ -497,7 +497,11 @@ dtb-$(CONFIG_ARCH_ORION5X) += \ orion5x-lswsgl.dtb \ orion5x-maxtor-shared-storage-2.dtb \ orion5x-rd88f5182-nas.dtb -dtb-$(CONFIG_ARCH_OXNAS) += ox820-pogoplug-pro.dtb -+dtb-$(CONFIG_ARCH_OXNAS) += ox820-pogoplug-pro.dtb \ ++dtb-$(CONFIG_ARCH_OXNAS) += ox820-akitio.dtb \ ++ ox820-pogoplug-pro.dtb \ + ox820-pogoplug-v3.dtb \ + ox820-stg212.dtb \ + ox820-kd20.dtb diff --git a/target/linux/oxnas/profiles/akitio.mk b/target/linux/oxnas/profiles/akitio.mk new file mode 100644 index 0000000000..a10860101a --- /dev/null +++ b/target/linux/oxnas/profiles/akitio.mk @@ -0,0 +1,17 @@ +# Copyright (C) 2016 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/AKITIO + NAME:=Akitio MyCloud mini / Silverstone DC01 + PACKAGES:= \ + kmod-usb-storage kmod-i2c-gpio kmod-rtc-ds1307 +endef + +define Profile/AKITIO/Description + Profile for the Akitio MyCloud mini aka. Silverstone DC01 +endef + +$(eval $(call Profile,AKITIO))