From patchwork Sat Sep 19 00:30:45 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stijn Segers X-Patchwork-Id: 519617 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (arrakis.dune.hu [78.24.191.176]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 5C5EB140789 for ; Sat, 19 Sep 2015 10:31:41 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; secure) header.d=inventati.org header.i=@inventati.org header.b=E0of0XqS; dkim-atps=neutral Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 5815428C650; Sat, 19 Sep 2015 02:30:17 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on arrakis.dune.hu X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=unavailable version=3.3.2 Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id D8BBB28BE90 for ; Sat, 19 Sep 2015 02:30:08 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 CL_IP_EQ_FROM_MX=-3.1; rate: -7.6 Received: from perdizione.investici.org (perdizione.investici.org [94.23.50.208]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Sat, 19 Sep 2015 02:30:08 +0200 (CEST) Received: from [94.23.50.208] (perdizione [94.23.50.208]) (Authenticated sender: francesco.borromini@inventati.org) by localhost (Postfix) with ESMTPSA id 6D83B120EAD for ; Sat, 19 Sep 2015 00:31:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inventati.org; s=stigmate; t=1442622680; bh=EX2wBKSWqhw38yIv21IGnZjG7DYNmsGc7N4omy99qS8=; h=From:To:Subject:Date; b=E0of0XqSTbibEqN97kI4HJIawiJy/D8h4ZJtcWuA4m3PAfQ2LpEcd07FR1MKMn9Og Or748adcxyLsAoAak4Aw3TCLAxwvjFYfFc0VsHVK4fpvniUwYs8OhPuNOoUd0KWPCR 14hJYZdS17Oem7gMH6OsNia5bUnGpwEJBK9mPADA= From: Stijn Segers To: openwrt-devel@lists.openwrt.org Date: Sat, 19 Sep 2015 02:30:45 +0200 Message-Id: <1442622645-17772-1-git-send-email-francesco.borromini@inventati.org> X-Mailer: git-send-email 2.1.4 Subject: [OpenWrt-Devel] [PATCH] ar71xx: Add Gainstrong MiniBox v1.0 support to 15.05 X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" The following patch adds support for the Gainstrong MiniBox to 15.05 Chaos Calmer. Fixed items: - Inverted LED polarity (OOLITE seems to suffer from the same problem). - Changed uppercase MINIBOX_V1_ prefix as requested. - Prefixes are now gs_minibox_ similar to gs_oolite_ (same vendor). - Mention the vendor (Gainstrong) in code headers. Compiles fine, has been confirmed working by owners. I assume it won't be added to 15.05 post release but like this people who do want to migrate their MiniBox to 15.05 don't need to fiddle with the patch for trunk. Compile-tested by myself and confirmed working by owners. Thank you Signed-off by: Stijn Segers --- target/linux/ar71xx/base-files/etc/diag.sh | 3 + .../ar71xx/base-files/etc/uci-defaults/02_network | 1 + target/linux/ar71xx/base-files/lib/ar71xx.sh | 6 ++ .../ar71xx/base-files/lib/upgrade/platform.sh | 1 + target/linux/ar71xx/config-3.18 | 1 + .../files/arch/mips/ath79/mach-gs-minibox-v1.c | 85 ++++++++++++++++++++++ target/linux/ar71xx/generic/profiles/minibox-v1.mk | 17 +++++ target/linux/ar71xx/image/Makefile | 9 +++ .../799-MIPS-ath79-add-minibox-v1-support.patch | 39 ++++++++++ 9 files changed, 162 insertions(+) create mode 100644 target/linux/ar71xx/files/arch/mips/ath79/mach-gs-minibox-v1.c create mode 100644 target/linux/ar71xx/generic/profiles/minibox-v1.mk create mode 100644 target/linux/ar71xx/patches-3.18/799-MIPS-ath79-add-minibox-v1-support.patch diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index ece7098..c1b7598 100644 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -212,6 +212,9 @@ get_status_led() { smart-300) status_led="nc-link:green:system" ;; + minibox-v1) + status_led="minibox-v1:green:system" + ;; oolite) status_led="oolite:red:system" ;; diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network index 7e26886..4e7b8c6 100644 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network @@ -414,6 +414,7 @@ dir-615-e4 |\ hiwifi-hc6361 |\ ja76pf |\ mc-mac1200r|\ +minibox-v1 |\ mynet-n600 |\ oolite |\ qihoo-c301 |\ diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index cacf362..f60f451 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -119,6 +119,9 @@ tplink_board_detect() { "3C0001"*) model="OOLITE" ;; + "3C0002"*) + model="MINIBOX_V1" + ;; "070300"*) model="TP-Link TL-WR703N" ;; @@ -490,6 +493,9 @@ ar71xx_board_detect() { *"MAC1200R") name="mc-mac1200r" ;; + *"MiniBox V1.0") + name="minibox-v1" + ;; *MR12) name="mr12" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index e5376ef..9e027ff 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -311,6 +311,7 @@ platform_check_image() { el-mini | \ gl-inet | \ mc-mac1200r | \ + minibox-v1 |\ onion-omega | \ oolite | \ smart-300 | \ diff --git a/target/linux/ar71xx/config-3.18 b/target/linux/ar71xx/config-3.18 index d661aa7..ad861e1 100644 --- a/target/linux/ar71xx/config-3.18 +++ b/target/linux/ar71xx/config-3.18 @@ -68,6 +68,7 @@ CONFIG_ATH79_MACH_ESR900=y CONFIG_ATH79_MACH_EW_DORIN=y CONFIG_ATH79_MACH_F9K1115V2=y CONFIG_ATH79_MACH_GL_INET=y +CONFIG_ATH79_MACH_GS_MINIBOX_V1=y CONFIG_ATH79_MACH_GS_OOLITE=y CONFIG_ATH79_MACH_HIWIFI_HC6361=y CONFIG_ATH79_MACH_HORNET_UB=y diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-gs-minibox-v1.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-gs-minibox-v1.c new file mode 100644 index 0000000..47eeb65 --- /dev/null +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-gs-minibox-v1.c @@ -0,0 +1,85 @@ +/* + * Gainstrong MiniBox V1.0 board support + * + * + * 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. + */ + +#include + +#include +#include + +#include "common.h" +#include "dev-eth.h" +#include "dev-gpio-buttons.h" +#include "dev-leds-gpio.h" +#include "dev-m25p80.h" +#include "dev-usb.h" +#include "dev-wmac.h" +#include "machtypes.h" + +#define GS_MINIBOX_V1_GPIO_BTN_RESET 11 + +#define GS_MINIBOX_V1_GPIO_LED_SYSTEM 1 + +#define GS_MINIBOX_V1_KEYS_POLL_INTERVAL 20 /* msecs */ +#define GS_MINIBOX_V1_KEYS_DEBOUNCE_INTERVAL (3 * GS_MINIBOX_V1_KEYS_POLL_INTERVAL) + +static const char *gs_minibox_v1_part_probes[] = { + "tp-link", + NULL, +}; + +static struct flash_platform_data gs_minibox_v1_flash_data = { + .part_probes = gs_minibox_v1_part_probes, +}; + +static struct gpio_led gs_minibox_v1_leds_gpio[] __initdata = { + { + .name = "minibox-v1:green:system", + .gpio = GS_MINIBOX_V1_GPIO_LED_SYSTEM, + .active_low = 1, + }, +}; + +static struct gpio_keys_button gs_minibox_v1_gpio_keys[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = GS_MINIBOX_V1_KEYS_DEBOUNCE_INTERVAL, + .gpio = GS_MINIBOX_V1_GPIO_BTN_RESET, + .active_low = 0, + }, +}; + +static void __init gs_minibox_v1_setup(void) +{ + u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); + u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(gs_minibox_v1_leds_gpio), + gs_minibox_v1_leds_gpio); + + ath79_register_gpio_keys_polled(-1, GS_MINIBOX_V1_KEYS_POLL_INTERVAL, + ARRAY_SIZE(gs_minibox_v1_gpio_keys), + gs_minibox_v1_gpio_keys); + + ath79_register_usb(); + + ath79_register_m25p80(&gs_minibox_v1_flash_data); + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1); + ath79_init_mac(ath79_eth1_data.mac_addr, mac, -1); + + ath79_register_mdio(0, 0x0); + ath79_register_eth(1); + ath79_register_eth(0); + + ath79_register_wmac(ee, mac); +} + +MIPS_MACHINE(ATH79_MACH_GS_MINIBOX_V1, "MINIBOX-V1", + "MiniBox V1.0", gs_minibox_v1_setup); diff --git a/target/linux/ar71xx/generic/profiles/minibox-v1.mk b/target/linux/ar71xx/generic/profiles/minibox-v1.mk new file mode 100644 index 0000000..1484114 --- /dev/null +++ b/target/linux/ar71xx/generic/profiles/minibox-v1.mk @@ -0,0 +1,17 @@ +# +# Copyright (C) 2015 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/MINIBOXV1 + NAME:=Gainstrong MiniBox V1.0 + PACKAGES:=kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev +endef + + +define Profile/MINIBOXV1/Description + Package set optimized for the Gainstrong MiniBox V1.0 +endef +$(eval $(call Profile,MINIBOXV1)) diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile index bb5de17..5c99ba7 100644 --- a/target/linux/ar71xx/image/Makefile +++ b/target/linux/ar71xx/image/Makefile @@ -345,6 +345,15 @@ define Device/mc-mac1200r endef TARGET_DEVICES += mc-mac1200r +define Device/minibox-v1 + $(Device/tplink-16mlzma) + BOARDNAME := MINIBOX-V1 + DEVICE_PROFILE := MINIBOXV1 + TPLINK_HWID := 0x3C000201 + CONSOLE := ttyATH0,115200 +endef +TARGET_DEVICES += minibox-v1 + define Device/onion-omega $(Device/tplink-16mlzma) BOARDNAME := ONION-OMEGA diff --git a/target/linux/ar71xx/patches-3.18/799-MIPS-ath79-add-minibox-v1-support.patch b/target/linux/ar71xx/patches-3.18/799-MIPS-ath79-add-minibox-v1-support.patch new file mode 100644 index 0000000..4a8f4fc --- /dev/null +++ b/target/linux/ar71xx/patches-3.18/799-MIPS-ath79-add-minibox-v1-support.patch @@ -0,0 +1,39 @@ +--- a/arch/mips/ath79/machtypes.h ++++ b/arch/mips/ath79/machtypes.h +@@ -64,6 +64,7 @@ enum ath79_mach_type { + ATH79_MACH_EPG5000, /* EnGenius EPG5000 */ + ATH79_MACH_F9K1115V2, /* Belkin AC1750DB */ + ATH79_MACH_GL_INET, /* GL-CONNECT GL-INET */ ++ ATH79_MACH_GS_MINIBOX_V1, /* Gainstrong MiniBox V1.0 */ + ATH79_MACH_GS_OOLITE, /* GS OOLITE V1.0 */ + ATH79_MACH_HIWIFI_HC6361, /* HiWiFi HC6361 */ + ATH79_MACH_JA76PF, /* jjPlus JA76PF */ +--- a/arch/mips/ath79/Kconfig ++++ b/arch/mips/ath79/Kconfig +@@ -511,6 +511,16 @@ + select ATH79_DEV_M25P80 + select ATH79_DEV_WMAC + ++config ATH79_MACH_GS_MINIBOX_V1 ++ bool "Gainstrong MiniBox V1.0 support" ++ select SOC_AR933X ++ select ARH79_DEV_ETH ++ select ARH79_DEV_GPIO_BUTTONS ++ select ATH79_DEV_LEDS_GPIO ++ select ATH79_DEV_M25P80 ++ select ATH79_DEV_USB ++ select ATH79_DEV_WMAC ++ + config ATH79_MACH_GS_OOLITE + bool "GS Oolite V1 support" + select SOC_AR933X +--- a/arch/mips/ath79/Makefile 2015-08-10 23:27:44.599500173 +0200 ++++ b/arch/mips/ath79/Makefile 2015-08-10 23:29:25.090929262 +0200 +@@ -75,6 +75,7 @@ + obj-$(CONFIG_ATH79_MACH_ESR1750) += mach-esr1750.o + obj-$(CONFIG_ATH79_MACH_F9K1115V2) += mach-f9k1115v2.o + obj-$(CONFIG_ATH79_MACH_GL_INET) += mach-gl-inet.o ++obj-$(CONFIG_ATH79_MACH_GS_MINIBOX_V1) += mach-gs-minibox-v1.o + obj-$(CONFIG_ATH79_MACH_GS_OOLITE) += mach-gs-oolite.o + obj-$(CONFIG_ATH79_MACH_HIWIFI_HC6361) += mach-hiwifi-hc6361.o + obj-$(CONFIG_ATH79_MACH_JA76PF) += mach-ja76pf.o