Hi,
First of all my apologies if I don't follow the correct procedure to the
letter, but this is my first attempt at feeding changes into OpenWrt.
I have added support for the Oolite V1.0 AR9331 module.
I have attached a patch to the git head as of right now. If you prefer to pull
from git, I have made my changes public at:
https://github.com/ThingMesh/openwrt.git
in the branch "oolite" (master is identical with the openwrt master).
Hope this will get accepted and if I did any major screwups please do let me
know.
//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..7e8b386
--- /dev/null
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-gs-oolite.c
@@ -0,0 +1,193 @@
+/*
+ * 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,
+ },{
+ .name = "gpio0",
+ .gpio = GS_OOLITE_GPIO0,
+ .active_low = 1,
+ },{
+ .name = "gpio1",
+ .gpio = GS_OOLITE_GPIO1,
+ .active_low = 1,
+ },{
+ .name = "gpio8",
+ .gpio = GS_OOLITE_GPIO8,
+ .active_low = 1,
+ },{
+ .name = "gpio13",
+ .gpio = GS_OOLITE_GPIO13,
+ .active_low = 1,
+ },{
+ .name = "gpio14",
+ .gpio = GS_OOLITE_GPIO14,
+ .active_low = 1,
+ },{
+ .name = "gpio15",
+ .gpio = GS_OOLITE_GPIO15,
+ .active_low = 1,
+ },{
+ .name = "gpio16",
+ .gpio = GS_OOLITE_GPIO16,
+ .active_low = 1,
+ },{
+ .name = "gpio17",
+ .gpio = GS_OOLITE_GPIO17,
+ .active_low = 1,
+ },{
+ .name = "gpio18",
+ .gpio = GS_OOLITE_GPIO18,
+ .active_low = 1,
+ },{
+ .name = "gpio19",
+ .gpio = GS_OOLITE_GPIO19,
+ .active_low = 1,
+ },{
+ .name = "gpio20",
+ .gpio = GS_OOLITE_GPIO20,
+ .active_low = 1,
+ },{
+ .name = "gpio21",
+ .gpio = GS_OOLITE_GPIO21,
+ .active_low = 1,
+ },{
+ .name = "gpio22",
+ .gpio = GS_OOLITE_GPIO22,
+ .active_low = 1,
+ },{
+ .name = "gpio26",
+ .gpio = GS_OOLITE_GPIO26,
+ .active_low = 1,
+ },{
+ .name = "gpio23",
+ .gpio = GS_OOLITE_GPIO23,
+ .active_low = 1,
+ },{
+ .name = "gpio24",
+ .gpio = GS_OOLITE_GPIO24,
+ .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
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel