Hi Michel, On Friday 21 February 2014 22:26:42 Michel Stempin wrote:
> Just one remark concerning your proposed patch: don't define every single > GPIO as a LED, this is a terrible thing to do, as it prevents you from using > a given GPIO as an input without recompiling the kernel. I have attached a new attempt (also on http://github.com/ThingMesh/openwrt.git branch oolite)- better? :) //Lars...
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index dea3f81..9e46451 100755 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -119,6 +119,9 @@ get_status_led() { rw2458n) status_led="rw2458n:green:d3" ;; + oolite) + status_led="oolite:red:system" + ;; tew-632brp) status_led="tew-632brp:green:status" ;; 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 fd38ffa..b62aa6b 100755 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network @@ -287,6 +287,7 @@ rb-750 |\ rb-751 |\ tew-632brp |\ tew-712br |\ +gs-oolite |\ tl-mr3220 |\ tl-mr3220-v2 |\ tl-mr3420 |\ diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index 81a7591..ff5a57a 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -91,6 +91,9 @@ tplink_board_detect() { hwver="v${hwver#0}" case "$hwid" in + "3C0001"*) + model="OOLITE" + ;; "070300"*) model="TP-Link TL-WR703N" ;; @@ -204,6 +207,9 @@ ar71xx_board_detect() { machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo) case "$machine" in + *"Oolite V1.0") + name="oolite" + ;; *"AirRouter") name="airrouter" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 0028e8a..d08799e 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -220,6 +220,7 @@ platform_check_image() { ;; archer-c7 | \ + oolite | \ tl-mr10u | \ tl-mr11u | \ tl-mr13u | \ diff --git a/target/linux/ar71xx/config-3.10 b/target/linux/ar71xx/config-3.10 index 9a60aeb..80dd21c 100644 --- a/target/linux/ar71xx/config-3.10 +++ b/target/linux/ar71xx/config-3.10 @@ -92,6 +92,7 @@ CONFIG_ATH79_MACH_TL_WR741ND_V4=y CONFIG_ATH79_MACH_TL_WR841N_V1=y CONFIG_ATH79_MACH_TL_WR841N_V8=y CONFIG_ATH79_MACH_TL_WR941ND=y +CONFIG_ATH79_MACH_GS_OOLITE=y CONFIG_ATH79_MACH_UBNT=y CONFIG_ATH79_MACH_UBNT_XM=y CONFIG_ATH79_MACH_WHR_HP_G300N=y diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-gs-oolite.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-gs-oolite.c new file mode 100755 index 0000000..f82f773 --- /dev/null +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-gs-oolite.c @@ -0,0 +1,129 @@ +/* + * Oolite 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 <linux/gpio.h> + +#include <asm/mach-ath79/ath79.h> +#include <asm/mach-ath79/ar71xx_regs.h> + +#include "common.h" +#include "dev-eth.h" +#include "dev-gpio-buttons.h" +#include "dev-leds-gpio.h" +#include "dev-m25p80.h" +#include "dev-wmac.h" +#include "machtypes.h" +#include "dev-usb.h" + +#define GS_OOLITE_GPIO0 0 +#define GS_OOLITE_GPIO1 1 +#define GS_OOLITE_GPIO8 8 +#define GS_OOLITE_GPIO13 13 +#define GS_OOLITE_GPIO14 14 +#define GS_OOLITE_GPIO15 15 +#define GS_OOLITE_GPIO16 16 +#define GS_OOLITE_GPIO17 17 +#define GS_OOLITE_GPIO18 18 +#define GS_OOLITE_GPIO19 19 +#define GS_OOLITE_GPIO20 20 +#define GS_OOLITE_GPIO21 21 +#define GS_OOLITE_GPIO22 22 +#define GS_OOLITE_GPIO26 26 + +#define GS_OOLITE_GPIO23 23 +#define GS_OOLITE_GPIO24 24 + +#define GS_OOLITE_GPIO_BTN6 6 +#define GS_OOLITE_GPIO_BTN7 7 +#define GS_OOLITE_GPIO_BTN_RESET 11 + +#define GS_OOLITE_GPIO_LED_SYSTEM 27 + +#define GS_OOLITE_KEYS_POLL_INTERVAL 20 /* msecs */ +#define GS_OOLITE_KEYS_DEBOUNCE_INTERVAL (3 * GS_OOLITE_KEYS_POLL_INTERVAL) + +static const char *GS_OOLITE_part_probes[] = { + "tp-link", + NULL, +}; + +static struct flash_platform_data GS_OOLITE_flash_data = { + .part_probes = GS_OOLITE_part_probes, +}; + +static struct gpio_led GS_OOLITE_leds_gpio[] __initdata = { + { + .name = "oolite:red:system", + .gpio = GS_OOLITE_GPIO_LED_SYSTEM, + .active_low = 1, + }, +}; + +static struct gpio_keys_button GS_OOLITE_gpio_keys[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = GS_OOLITE_KEYS_DEBOUNCE_INTERVAL, + .gpio = GS_OOLITE_GPIO_BTN_RESET, + .active_low = 1, + }, + { + .desc = "BTN_6", + .type = EV_KEY, + .code = BTN_6, + .debounce_interval = GS_OOLITE_KEYS_DEBOUNCE_INTERVAL, + .gpio = GS_OOLITE_GPIO_BTN6, + .active_low = 1, + }, + { + .desc = "BTN_7", + .type = EV_KEY, + .code = BTN_7, + .debounce_interval = GS_OOLITE_KEYS_DEBOUNCE_INTERVAL, + .gpio = GS_OOLITE_GPIO_BTN7, + .active_low = 1, + }, +}; + +static void __init GS_OOLITE_setup(void) +{ + u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); + u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(GS_OOLITE_leds_gpio), + GS_OOLITE_leds_gpio); + + ath79_register_gpio_keys_polled(-1, GS_OOLITE_KEYS_POLL_INTERVAL, + ARRAY_SIZE(GS_OOLITE_gpio_keys), + GS_OOLITE_gpio_keys); + + /* + ath79_gpio_function_disable(AR933X_GPIO_FUNC_ETH_SWITCH_LED0_EN | + AR933X_GPIO_FUNC_ETH_SWITCH_LED1_EN | + AR933X_GPIO_FUNC_ETH_SWITCH_LED2_EN | + AR933X_GPIO_FUNC_ETH_SWITCH_LED3_EN | + AR933X_GPIO_FUNC_ETH_SWITCH_LED4_EN); + */ + + ath79_register_usb(); + + ath79_register_m25p80(&GS_OOLITE_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_OOLITE, "GS-OOLITE", + "Oolite V1.0", GS_OOLITE_setup); diff --git a/target/linux/ar71xx/generic/profiles/oolite.mk b/target/linux/ar71xx/generic/profiles/oolite.mk new file mode 100755 index 0000000..448f08d --- /dev/null +++ b/target/linux/ar71xx/generic/profiles/oolite.mk @@ -0,0 +1,18 @@ +# +# Copyright (C) 2009 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/OOLITE + NAME:=OOLITE + PACKAGES:=kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev +endef + + +define Profile/OOLITE/Description + Package set optimized for the OOLITE. +endef +$(eval $(call Profile,OOLITE)) + diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile index 73a0ae2..cd401d0 100644 --- a/target/linux/ar71xx/image/Makefile +++ b/target/linux/ar71xx/image/Makefile @@ -1052,6 +1052,8 @@ $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWDR4310V1,tl-wdr4310-v1,TL-WDR4 $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWDR4900V2,tl-wdr4900-v2,TL-WDR4900-v2,ttyS0,115200,0x49000002,1,8Mlzma)) $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,MW4530RV1,mw4530r-v1,TL-WDR4300,ttyS0,115200,0x45300001,1,8Mlzma)) +$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,OOLITE,oolite,GS-OOLITE,ttyATH0,115200,0x3C000101,1,16Mlzma)) + $(eval $(call SingleProfile,UAPPRO,64k,UAPPRO,ubnt-uap-pro,UAP-PRO,ttyS0,115200,BZ,BZ,ar934x)) $(eval $(call SingleProfile,UBDEV,64kraw,UBDEV01,ubdev01,UBNT-UF,ttyS0,115200,XM,XM,ar7240)) diff --git a/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch index 52d5794..b58b67a 100644 --- a/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch +++ b/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch @@ -1,9 +1,10 @@ --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -16,22 +16,142 @@ +@@ -16,22 +16,143 @@ enum ath79_mach_type { ATH79_MACH_GENERIC = 0, ++ ATH79_MACH_GS_OOLITE, /* GS OOLITE V1.0 */ + ATH79_MACH_ALFA_AP96, /* ALFA Network AP96 board */ + ATH79_MACH_ALFA_NX, /* ALFA Network N2/N5 board */ + ATH79_MACH_ALL0258N, /* Allnet ALL0258N */ @@ -145,10 +146,20 @@ #endif /* _ATH79_MACHTYPE_H */ --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -2,6 +2,61 @@ if ATH79 +@@ -2,6 +2,71 @@ if ATH79 menu "Atheros AR71XX/AR724X/AR913X machine selection" ++config ATH79_MACH_GS_OOLITE ++ bool "OOLITE V1 support" ++ select SOC_AR71XX ++ 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_ALFA_AP96 + bool "ALFA Network AP96 board support" + select SOC_AR71XX @@ -1058,10 +1069,11 @@ endif --- a/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile -@@ -38,9 +38,90 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route +@@ -38,9 +38,91 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route # # Machines # ++obj-$(CONFIG_ATH79_MACH_GS_OOLITE) += mach-gs-oolite.o +obj-$(CONFIG_ATH79_MACH_ALFA_AP96) += mach-alfa-ap96.o +obj-$(CONFIG_ATH79_MACH_ALFA_NX) += mach-alfa-nx.o +obj-$(CONFIG_ATH79_MACH_ALL0258N) += mach-all0258n.o diff --git a/tools/firmware-utils/src/mktplinkfw.c b/tools/firmware-utils/src/mktplinkfw.c index d15ca5b..b23096e 100644 --- a/tools/firmware-utils/src/mktplinkfw.c +++ b/tools/firmware-utils/src/mktplinkfw.c @@ -30,6 +30,7 @@ #define ALIGN(x,a) ({ typeof(a) __a = (a); (((x) + __a - 1) & ~(__a - 1)); }) #define HEADER_VERSION_V1 0x01000000 +#define HWID_GS_OOLITE_V1 0x3C000101 #define HWID_TL_MR10U_V1 0x00100101 #define HWID_TL_MR13U_V1 0x00130101 #define HWID_TL_MR3020_V1 0x30200001 @@ -193,6 +194,18 @@ static struct flash_layout layouts[] = { .kernel_ep = 0xc0000000, .rootfs_ofs = 0x2a0000, }, { + .id = "16M", + .fw_max_len = 0xfc0000, + .kernel_la = 0x80060000, + .kernel_ep = 0x80060000, + .rootfs_ofs = 0x140000, + }, { + .id = "16Mlzma", + .fw_max_len = 0xfc0000, + .kernel_la = 0x80060000, + .kernel_ep = 0x80060000, + .rootfs_ofs = 0x100000, + }, { /* terminating entry */ } }; @@ -369,6 +382,11 @@ static struct board_info boards[] = { .hw_rev = 1, .layout_id = "4Mlzma", }, { + .id = "GS-OOLITEv1", + .hw_id = HWID_GS_OOLITE_V1, + .hw_rev = 1, + .layout_id = "16Mlzma", + }, { /* terminating entry */ } };
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel