Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From 22178392df8d1cb9c959dfbc1c20f28b24551250 Mon Sep 17 00:00:00 2001
- Date: Sat, 3 Oct 2015 08:31:13 -0300
- Subject: [PATCH] Add Comfast compatibility
- ---
- .../ar71xx/base-files/etc/uci-defaults/01_leds | 31 ++
- .../ar71xx/base-files/etc/uci-defaults/02_network | 49 +++
- target/linux/ar71xx/base-files/lib/ar71xx.sh | 12 +
- .../ar71xx/base-files/lib/upgrade/platform.sh | 8 +
- target/linux/ar71xx/config-3.18 | 5 +
- .../ar71xx/files/arch/mips/ath79/mach-comfast.c | 485 +++++++++++++++++++++
- target/linux/ar71xx/generic/profiles/comfast.mk | 49 +++
- target/linux/ar71xx/image/Makefile | 102 +++++
- .../610-MIPS-ath79-openwrt-machines.patch | 32 +-
- .../patches-3.18/614-MIPS-ath79-wdt-timeout.patch | 54 +++
- 10 files changed, 821 insertions(+), 6 deletions(-)
- create mode 100644 target/linux/ar71xx/files/arch/mips/ath79/mach-comfast.c
- create mode 100644 target/linux/ar71xx/generic/profiles/comfast.mk
- create mode 100644 target/linux/ar71xx/patches-3.18/614-MIPS-ath79-wdt-timeout.patch
- diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
- index d628f1a..969b97a 100644
- --- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
- +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
- @@ -50,6 +50,37 @@ bsb)
- ucidef_set_led_default "sys" "SYS" "bsb:red:sys" "1"
- ;;
- +ap9341fe)
- + ucidef_set_led_default "lan" "LAN" "comfast:green" "1"
- + ucidef_set_led_netdev "wan" "WAN" "comfast:red" "eth1"
- + ucidef_set_led_netdev "lan" "LAN" "comfast:green" "eth0"
- + ucidef_set_led_wlan "wlan" "WLAN" "comfast:blue" "phy0tpt"
- + ;;
- +
- +cf-e316nv2)
- + ucidef_set_led_netdev "wan" "WAN" "comfast:white:wan" "eth1"
- + ucidef_set_led_netdev "lan" "LAN" "comfast:white:lan" "eth0"
- + ucidef_set_led_wlan "wlan" "WLAN" "comfast:white:wifi" "phy0tpt"
- + ;;
- +
- +cf-e325n)
- + ucidef_set_led_netdev "wan" "WAN" "comfast:red" "eth1"
- + ucidef_set_led_netdev "lan" "LAN" "comfast:green" "eth0"
- + ucidef_set_led_wlan "wlan" "WLAN" "comfast:blue" "phy0tpt"
- + ;;
- +
- +cf-wr600n)
- + ucidef_set_led_netdev "wan1" "WAN1" "cf_wr600n:green:wan1" "eth0"
- + ucidef_set_led_switch "lan1" "LAN1" "cf_wr600n:green:lan1" "switch0" "0x04"
- + ucidef_set_led_switch "lan2" "LAN2" "cf_wr600n:green:lan2" "switch0" "0x08"
- + ucidef_set_led_switch "lan3" "LAN3" "cf_wr600n:green:lan3" "switch0" "0x10"
- +# ucidef_set_led_switch "lan4" "LAN4" "cf_wr600n:green:lan4" "switch0" "0x02"
- +# ucidef_set_led_default "lan" "LAN" "comfast:green" "1"
- + ucidef_set_led_netdev "wan" "WAN" "comfast:red" "eth0"
- + ucidef_set_led_netdev "lan" "LAN" "comfast:green" "eth1"
- + ucidef_set_led_wlan "wlan" "WLAN" "comfast:blue" "phy0tpt"
- + ;;
- +
- bullet-m | \
- nanostation-m | \
- rocket-m | \
- 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..2fb753e 100644
- --- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
- +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
- @@ -55,6 +55,55 @@ wzr-450hp2)
- ucidef_add_switch_vlan "switch0" "2" "5 6"
- ;;
- +ap9341fe)
- + ucidef_set_interfaces_lan_wan "eth0" "eth1"
- + ucidef_add_switch "switch0" "1" "1"
- + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4"
- + lan_mac=$(cat /sys/class/net/eth0/address)
- + wlan_mac=$(macaddr_add "$lan_mac" 1)
- + wan_mac=$(macaddr_add "$lan_mac" 2)
- + [ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac
- + [ -n "$wlan_mac" ] && ucidef_set_wireless_macaddr radio0 $wlan_mac
- + [ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac
- + ;;
- +
- +cf-e316nv2)
- + ucidef_set_interfaces_lan_wan "eth0" "eth1"
- + ucidef_add_switch "switch0" "1" "1"
- + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4"
- + lan_mac=$(cat /sys/class/net/eth0/address)
- + wlan_mac=$(macaddr_add "$lan_mac" 1)
- + wan_mac=$(macaddr_add "$lan_mac" 2)
- + [ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac
- + [ -n "$wlan_mac" ] && ucidef_set_wireless_macaddr radio0 $wlan_mac
- + [ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac
- + ;;
- +
- +cf-e325n)
- + ucidef_set_interfaces_lan_wan "eth0" "eth1"
- + ucidef_add_switch "switch0" "1" "1"
- + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4"
- + lan_mac=$(cat /sys/class/net/eth0/address)
- + wlan_mac=$(macaddr_add "$lan_mac" 1)
- + wan_mac=$(macaddr_add "$lan_mac" 2)
- + [ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac
- + [ -n "$wlan_mac" ] && ucidef_set_wireless_macaddr radio0 $wlan_mac
- + [ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac
- + ;;
- +
- +cf-wr600n)
- + ucidef_set_interfaces_lan_wan "eth1" "eth0"
- + ucidef_add_switch "switch0" "1" "1"
- + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4"
- + lan_mac=$(cat /sys/class/net/eth1/address)
- + wlan_mac=$(macaddr_add "$lan_mac" 1)
- + wan_mac=$(macaddr_add "$lan_mac" 2)
- + [ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac
- + [ -n "$wlan_mac" ] && ucidef_set_wireless_macaddr radio0 $wlan_mac
- + [ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac
- + ;;
- +
- +
- archer-c5 |\
- archer-c7 |\
- tl-wdr4900-v2)
- diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
- index cacf362..32fdbfc 100755
- --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
- +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
- @@ -380,6 +380,18 @@ ar71xx_board_detect() {
- *AW-NR580)
- name="aw-nr580"
- ;;
- + *AP9341FE)
- + name="ap9341fe"
- + ;;
- + *CF-E316NV2)
- + name="cf-e316nv2"
- + ;;
- + *CF-E325N)
- + name="cf-e325n"
- + ;;
- + *CF-WR600N)
- + name="cf-wr600n"
- + ;;
- *CAP4200AG)
- name="cap4200ag"
- ;;
- diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
- index e5376ef..22cae6b 100755
- --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
- +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
- @@ -387,6 +387,10 @@ platform_check_image() {
- return 1
- ;;
- + ap9341fe | \
- + cf-e316nv2 | \
- + cf-e325n | \
- + cf-wr600n | \
- unifi-outdoor-plus | \
- uap-pro)
- [ "$magic_long" != "19852003" ] && {
- @@ -518,6 +522,10 @@ platform_do_upgrade() {
- om5p-an)
- platform_do_upgrade_openmesh "$ARGV"
- ;;
- + ap9341fe | \
- + cf-e316nv2 | \
- + cf-e325n | \
- + cf-wr600n | \
- unifi-outdoor-plus | \
- uap-pro)
- MTD_CONFIG_ARGS="-s 0x180000"
- diff --git a/target/linux/ar71xx/config-3.18 b/target/linux/ar71xx/config-3.18
- index d661aa7..ea3ff09 100644
- --- a/target/linux/ar71xx/config-3.18
- +++ b/target/linux/ar71xx/config-3.18
- @@ -46,6 +46,11 @@ CONFIG_ATH79_MACH_BHU_BXU2000N2_A=y
- CONFIG_ATH79_MACH_BSB=y
- CONFIG_ATH79_MACH_CAP4200AG=y
- CONFIG_ATH79_MACH_CARAMBOLA2=y
- +CONFIG_ATH79_MACH_COMFAST=y
- +CONFIG_ATH79_MACH_COMFAST_AP9341FE=y
- +CONFIG_ATH79_MACH_COMFAST_CF_E316NV2=y
- +CONFIG_ATH79_MACH_COMFAST_CF_E325N=y
- +CONFIG_ATH79_MACH_COMFAST_CF_WR600N=y
- CONFIG_ATH79_MACH_CPE510=y
- CONFIG_ATH79_MACH_DB120=y
- CONFIG_ATH79_MACH_DGL_5500_A1=y
- diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-comfast.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-comfast.c
- new file mode 100644
- index 0000000..d5d8b8b
- --- /dev/null
- +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-comfast.c
- @@ -0,0 +1,485 @@
- +#include <linux/init.h>
- +#include <linux/pci.h>
- +#include <linux/platform_device.h>
- +#include <linux/ath9k_platform.h>
- +#include <linux/etherdevice.h>
- +#include <linux/ar8216_platform.h>
- +
- +#include <asm/mach-ath79/irq.h>
- +#include <asm/mach-ath79/ar71xx_regs.h>
- +
- +#include "common.h"
- +#include "dev-ap9x-pci.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 "dev-nfc.h"
- +#include "gpio.h"
- +#include "machtypes.h"
- +
- +#define COMFAST_KEYS_POLL_INTERVAL 20
- +#define COMFAST_KEYS_DEBOUNCE_INTERVAL (3 * COMFAST_KEYS_POLL_INTERVAL)
- +
- +#define AP9341FE_GPIO_XWDT_TRIGGER 16
- +
- +#define XWDT_AUTOFEED_DURATION (HZ / 3)
- +static int gpio_external_wdt = -1;
- +static int wdt_timeout = -1, wdt_autofeed_count = 0;
- +
- +static void watchdog_fire(unsigned long);
- +static struct timer_list watchdog_ticktock = TIMER_INITIALIZER(watchdog_fire, 0, 0);
- +
- +static void enable_external_wdt(int gpio)
- +{
- + gpio_external_wdt = gpio;
- + wdt_timeout = -1;
- + mod_timer(&watchdog_ticktock, jiffies + XWDT_AUTOFEED_DURATION);
- +}
- +
- +static void external_wdt_toggle(void)
- +{
- + static u32 data;
- + data ++;
- + gpio_set_value(gpio_external_wdt, data & 0x01);
- +}
- +
- +void ath79_external_wdt_disable(void)
- +{
- + if(gpio_external_wdt >= 0) {
- + wdt_timeout = -1;
- + mod_timer(&watchdog_ticktock, jiffies + XWDT_AUTOFEED_DURATION);
- + }
- +}
- +EXPORT_SYMBOL(ath79_external_wdt_disable);
- +
- +void ath79_external_wdt_trigger(void)
- +{
- + if(gpio_external_wdt >= 0) {
- +// printk(KERN_ERR "XWDT TRIGGER\n");
- + wdt_autofeed_count = 0;
- + mod_timer(&watchdog_ticktock, jiffies + XWDT_AUTOFEED_DURATION);
- + }
- +}
- +EXPORT_SYMBOL(ath79_external_wdt_trigger);
- +
- +void ath79_external_wdt_set_timeout(int timeout)
- +{
- + if(gpio_external_wdt >= 0) {
- + wdt_timeout = timeout;
- + external_wdt_toggle();
- +// printk(KERN_ERR "XWDT SET TIMEOUT: %d\n", timeout);
- + }
- +}
- +EXPORT_SYMBOL(ath79_external_wdt_set_timeout);
- +
- +static void watchdog_fire(unsigned long data)
- +{
- + if(wdt_timeout > 0)
- + wdt_autofeed_count++;
- +
- + if((wdt_timeout < 0) || (wdt_autofeed_count < wdt_timeout)) {
- +// printk(KERN_ERR "XWDT AUTOFEED: %d\n", wdt_autofeed_count);
- + external_wdt_toggle();
- + mod_timer(&watchdog_ticktock, jiffies + XWDT_AUTOFEED_DURATION);
- + }
- +}
- +
- +static struct gpio_keys_button comfast_ap934x_gpio_keys[] __initdata = {
- + {
- + .desc = "reset",
- + .type = EV_KEY,
- + .code = KEY_RESTART,
- + .debounce_interval = COMFAST_KEYS_DEBOUNCE_INTERVAL,
- + .gpio = 20,
- + .active_low = 1,
- + }
- +};
- +
- +static struct gpio_led comfast_ap934x_gpio_leds[] __initdata = {
- + {
- + .name = "comfast:red",
- + .gpio = 2,
- + }, {
- + .name = "comfast:green",
- + .gpio = 3,
- + }, {
- + .name = "comfast:blue",
- + .gpio = 0,
- + }
- +};
- +
- +static void ext_lna_control_gpio_setup(int gpio_rx0, int gpio_rx1)
- +{
- + ath79_gpio_output_select(gpio_rx0, AR934X_GPIO_OUT_EXT_LNA0);
- + ath79_gpio_output_select(gpio_rx1, AR934X_GPIO_OUT_EXT_LNA1);
- +}
- +
- +
- +static void __init comfast_ap9341fe_setup(void)
- +{
- + u8 *mac = (u8 *) KSEG1ADDR(0x1f010000);
- + u8 *art = (u8 *) KSEG1ADDR(0x1f011000);
- +
- + /* Disable JTAG, enabling GPIOs 0-3 */
- + /* Configure OBS4 line, for GPIO 4*/
- + ath79_gpio_function_setup(AR934X_GPIO_FUNC_JTAG_DISABLE, AR934X_GPIO_FUNC_CLK_OBS4_EN);
- +
- + ath79_gpio_output_select(AP9341FE_GPIO_XWDT_TRIGGER, 0);
- + enable_external_wdt(AP9341FE_GPIO_XWDT_TRIGGER);
- +
- + ath79_register_m25p80(NULL);
- +
- + ath79_register_leds_gpio(-1, ARRAY_SIZE(comfast_ap934x_gpio_leds),
- + comfast_ap934x_gpio_leds);
- + ath79_register_gpio_keys_polled(-1, COMFAST_KEYS_POLL_INTERVAL,
- + ARRAY_SIZE(comfast_ap934x_gpio_keys),
- + comfast_ap934x_gpio_keys);
- +
- + ext_lna_control_gpio_setup(13, 14);
- +
- + ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_PHY_SWAP);
- +
- + ath79_register_mdio(1, 0x0);
- +
- + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
- + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 2);
- +
- + /* GMAC0 is connected to the PHY0 of the internal switch */
- + ath79_switch_data.phy4_mii_en = 1;
- + ath79_switch_data.phy_poll_mask = BIT(0);
- + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
- + ath79_eth0_data.phy_mask = BIT(0);
- + ath79_eth0_data.mii_bus_dev = &ath79_mdio1_device.dev;
- + ath79_register_eth(0);
- +
- + /* GMAC1 is connected to the internal switch */
- + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII;
- +
- + ath79_register_eth(1);
- +
- + ath79_register_usb();
- +
- + ath79_register_wmac(art, NULL);
- +}
- +MIPS_MACHINE(ATH79_MACH_COMFAST_AP9341FE, "COMFAST-AP9341FE", "COMFAST AP9341FE", comfast_ap9341fe_setup);
- +
- +#define CF_WR600N_GPIO_LED_LAN1 22
- +#define CF_WR600N_GPIO_LED_LAN2 11
- +#define CF_WR600N_GPIO_LED_LAN3 19
- +#define CF_WR600N_GPIO_LED_WAN1 18
- +
- +#define CF_WR600N_GPIO_XWDT_TRIGGER 20
- +
- +static struct gpio_keys_button comfast_cf_wr600n_gpio_keys[] __initdata = {
- + {
- + .desc = "reset",
- + .type = EV_KEY,
- + .code = KEY_RESTART,
- + .debounce_interval = COMFAST_KEYS_DEBOUNCE_INTERVAL,
- + .gpio = 16,
- + .active_low = 1,
- + }
- +};
- +
- +static struct gpio_led comfast_cf_wr600n_gpio_leds[] __initdata = {
- + {
- + .name = "comfast:red",
- + .gpio = 2,
- + }, {
- + .name = "comfast:green",
- + .gpio = 3,
- + }, {
- + .name = "comfast:blue",
- + .gpio = 0,
- + }, {
- + .name = "cf_wr600n:green:lan1",
- + .gpio = CF_WR600N_GPIO_LED_LAN1,
- + .active_low = 1,
- + }, {
- + .name = "cf_wr600n:green:lan2",
- + .gpio = CF_WR600N_GPIO_LED_LAN2,
- + .active_low = 1,
- + }, {
- + .name = "cf_wr600n:green:lan3",
- + .gpio = CF_WR600N_GPIO_LED_LAN3,
- + .active_low = 1,
- + }, {
- + .name = "cf_wr600n:green:wan1",
- + .gpio = CF_WR600N_GPIO_LED_WAN1,
- + .active_low = 1,
- + },
- +};
- +
- +
- +static void __init comfast_cf_wr600n_setup(void)
- +{
- + u8 *mac = (u8 *) KSEG1ADDR(0x1f010000);
- + u8 *art = (u8 *) KSEG1ADDR(0x1f011000);
- +
- + /* Disable JTAG, enabling GPIOs 0-3 */
- + /* Configure OBS4 line, for GPIO 4*/
- + ath79_gpio_function_setup(AR934X_GPIO_FUNC_JTAG_DISABLE, AR934X_GPIO_FUNC_CLK_OBS4_EN);
- +
- +// ath79_gpio_output_select(CF_WR600N_GPIO_XWDT_TRIGGER, 0);
- +// enable_external_wdt(CF_WR600N_GPIO_XWDT_TRIGGER);
- +
- + ath79_register_m25p80(NULL);
- +
- + ath79_gpio_output_select(CF_WR600N_GPIO_LED_LAN2, 0);
- +
- + ath79_register_leds_gpio(-1, ARRAY_SIZE(comfast_cf_wr600n_gpio_leds),
- + comfast_cf_wr600n_gpio_leds);
- + ath79_register_gpio_keys_polled(-1, COMFAST_KEYS_POLL_INTERVAL,
- + ARRAY_SIZE(comfast_cf_wr600n_gpio_keys),
- + comfast_cf_wr600n_gpio_keys);
- +
- + ext_lna_control_gpio_setup(13, 14);
- +
- + ath79_register_mdio(1, 0x0);
- +
- + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
- + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 2);
- +
- + /* GMAC0 is connected to the PHY0 of the internal switch */
- + ath79_switch_data.phy4_mii_en = 1;
- + ath79_switch_data.phy_poll_mask = BIT(4);
- + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
- + ath79_eth0_data.phy_mask = BIT(4);
- + ath79_eth0_data.mii_bus_dev = &ath79_mdio1_device.dev;
- + ath79_register_eth(0);
- +
- + /* GMAC1 is connected to the internal switch */
- + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII;
- +
- + ath79_register_eth(1);
- +
- + ath79_register_usb();
- +
- + ath79_register_wmac(art, NULL);
- +}
- +
- +MIPS_MACHINE(ATH79_MACH_COMFAST_CF_WR600N, "COMFAST-CF-WR600N", "COMFAST CF-WR600N", comfast_cf_wr600n_setup);
- +
- +#define CF_E316NV2_GPIO_XWDT_TRIGGER 16
- +
- +static struct gpio_keys_button comfast_cf_e316nv2_gpio_keys[] __initdata = {
- + {
- + .desc = "reset",
- + .type = EV_KEY,
- + .code = KEY_RESTART,
- + .debounce_interval = COMFAST_KEYS_DEBOUNCE_INTERVAL,
- + .gpio = 20,
- + .active_low = 1,
- + }
- +};
- +
- +static struct gpio_led comfast_cf_e316nv2_gpio_leds[] __initdata = {
- + {
- + .name = "comfast:white:wifi",
- + .gpio = 12,
- + .active_low = 1,
- + }, {
- + .name = "comfast:white:lan",
- + .gpio = 19,
- + .active_low = 1,
- + }, {
- + .name = "comfast:white:wan",
- + .gpio = 17,
- + .active_low = 1,
- + }, {
- + .name = "comfast:green",
- + .gpio = 3,
- + }
- +};
- +
- +static void __init comfast_cf_e316nv2_setup(void)
- +{
- + u8 *mac = (u8 *) KSEG1ADDR(0x1f010000);
- + u8 *art = (u8 *) KSEG1ADDR(0x1f011000);
- +
- + /* Disable JTAG, enabling GPIOs 0-3 */
- + /* Configure OBS4 line, for GPIO 4*/
- + ath79_gpio_function_setup(AR934X_GPIO_FUNC_JTAG_DISABLE, AR934X_GPIO_FUNC_CLK_OBS4_EN);
- +
- + ath79_gpio_output_select(CF_E316NV2_GPIO_XWDT_TRIGGER, 0);
- + enable_external_wdt(CF_E316NV2_GPIO_XWDT_TRIGGER);
- +
- + ath79_register_m25p80(NULL);
- +
- + ath79_gpio_output_select(12, 0);
- + ath79_gpio_output_select(17, 0);
- + ath79_gpio_output_select(19, 0);
- +
- + ath79_register_leds_gpio(-1, ARRAY_SIZE(comfast_cf_e316nv2_gpio_leds),
- + comfast_cf_e316nv2_gpio_leds);
- + ath79_register_gpio_keys_polled(-1, COMFAST_KEYS_POLL_INTERVAL,
- + ARRAY_SIZE(comfast_cf_e316nv2_gpio_keys),
- + comfast_cf_e316nv2_gpio_keys);
- +
- + ext_lna_control_gpio_setup(13, 14);
- +
- + ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_PHY_SWAP);
- +
- + ath79_register_mdio(1, 0x0);
- +
- + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
- + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 2);
- +
- + /* GMAC0 is connected to the PHY0 of the internal switch */
- + ath79_switch_data.phy4_mii_en = 1;
- + ath79_switch_data.phy_poll_mask = BIT(0);
- + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
- + ath79_eth0_data.phy_mask = BIT(0);
- + ath79_eth0_data.mii_bus_dev = &ath79_mdio1_device.dev;
- + ath79_register_eth(0);
- +
- + /* GMAC1 is connected to the internal switch */
- + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII;
- +
- + ath79_register_eth(1);
- +
- + ath79_register_usb();
- +
- + ath79_register_wmac(art, NULL);
- +}
- +MIPS_MACHINE(ATH79_MACH_COMFAST_CF_E316NV2, "COMFAST-CF-E316NV2", "COMFAST CF-E316NV2", comfast_cf_e316nv2_setup);
- +
- +#define CF_E325N_GPIO_XWDT_TRIGGER 16
- +
- +static struct gpio_keys_button comfast_cf_e325n_gpio_keys[] __initdata = {
- + {
- + .desc = "reset",
- + .type = EV_KEY,
- + .code = KEY_RESTART,
- + .debounce_interval = COMFAST_KEYS_DEBOUNCE_INTERVAL,
- + .gpio = 20,
- + .active_low = 1,
- + }
- +};
- +
- +static struct gpio_led comfast_cf_e325n_gpio_leds[] __initdata = {
- + {
- + .name = "comfast:red",
- + .gpio = 2,
- + }, {
- + .name = "comfast:green",
- + .gpio = 3,
- + }, {
- + .name = "comfast:blue",
- + .gpio = 0,
- + }
- +};
- +
- +static void __init comfast_cf_e325n_setup(void)
- +{
- + u8 *mac = (u8 *) KSEG1ADDR(0x1f010000);
- + u8 *art = (u8 *) KSEG1ADDR(0x1f011000);
- +
- + /* Disable JTAG, enabling GPIOs 0-3 */
- + /* Configure OBS4 line, for GPIO 4*/
- + ath79_gpio_function_setup(AR934X_GPIO_FUNC_JTAG_DISABLE, AR934X_GPIO_FUNC_CLK_OBS4_EN);
- +
- + ath79_gpio_output_select(CF_E325N_GPIO_XWDT_TRIGGER, 0);
- + enable_external_wdt(CF_E325N_GPIO_XWDT_TRIGGER);
- +
- + ath79_register_m25p80(NULL);
- +
- + ath79_register_leds_gpio(-1, ARRAY_SIZE(comfast_cf_e325n_gpio_leds),
- + comfast_cf_e325n_gpio_leds);
- + ath79_register_gpio_keys_polled(-1, COMFAST_KEYS_POLL_INTERVAL,
- + ARRAY_SIZE(comfast_cf_e325n_gpio_keys),
- + comfast_cf_e325n_gpio_keys);
- +
- + ext_lna_control_gpio_setup(13, 14);
- +
- + ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_PHY_SWAP);
- +
- + ath79_register_mdio(1, 0x0);
- +
- + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
- + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 2);
- +
- + /* GMAC0 is connected to the PHY0 of the internal switch */
- + ath79_switch_data.phy4_mii_en = 1;
- + ath79_switch_data.phy_poll_mask = BIT(0);
- + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
- + ath79_eth0_data.phy_mask = BIT(0);
- + ath79_eth0_data.mii_bus_dev = &ath79_mdio1_device.dev;
- + ath79_register_eth(0);
- +
- + /* GMAC1 is connected to the internal switch */
- + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII;
- +
- + ath79_register_eth(1);
- +
- + ath79_register_usb();
- +
- + ath79_register_wmac(art, NULL);
- +}
- +MIPS_MACHINE(ATH79_MACH_COMFAST_CF_E325N, "COMFAST-CF-E325N", "COMFAST CF-E325N", comfast_cf_e325n_setup);
- +#if 0
- +#define DBDC9344GE_PHYMASK BIT(0)
- +#define DBDC9344GE_WMAC_CALDATA_OFFSET 0x1000
- +#define DBDC9344GE_PCI_CALDATA_OFFSET 0x5000
- +
- +#define DBDC9344GE_GPIO_EXTPHY_RESET 11
- +
- +static struct gpio_keys_button comfast_dbdc9344ge_gpio_keys[] __initdata = {
- + {
- + .desc = "reset",
- + .type = EV_KEY,
- + .code = KEY_RESTART,
- + .debounce_interval = COMFAST_KEYS_DEBOUNCE_INTERVAL,
- + .gpio = 22,
- + .active_low = 1,
- + }
- +};
- +
- +static struct gpio_led comfast_dbdc9344ge_gpio_leds[] __initdata = {
- + {
- + .name = "comfast:red",
- + .gpio = 2,
- + }, {
- + .name = "comfast:green",
- + .gpio = 3,
- + }, {
- + .name = "comfast:blue",
- + .gpio = 0,
- + }
- +};
- +
- +static void __init comfast_dbdc9344ge_setup(void)
- +{
- + u8 *mac = (u8 *) KSEG1ADDR(0x1f010000);
- +
- + ath79_gpio_function_setup(AR934X_GPIO_FUNC_JTAG_DISABLE, AR934X_GPIO_FUNC_CLK_OBS4_EN);
- +
- + ath79_register_m25p80(NULL);
- +
- + ath79_register_leds_gpio(-1, ARRAY_SIZE(comfast_dbdc9344ge_gpio_leds),
- + comfast_dbdc9344ge_gpio_leds);
- +
- + ath79_register_gpio_keys_polled(-1, COMFAST_KEYS_POLL_INTERVAL,
- + ARRAY_SIZE(comfast_dbdc9344ge_gpio_keys),
- + comfast_dbdc9344ge_gpio_keys);
- +
- + ext_lna_control_gpio_setup(18, 19);
- +
- + ath79_register_mdio(0, 0x00);
- +
- + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
- +
- + /* GMAC0 is connected to GE-PHY by RGMII */
- + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;
- + ath79_eth0_data.phy_mask = DBDC9344GE_PHYMASK;
- + ath79_register_eth(0);
- +
- + ath79_register_wmac(mac + DBDC9344GE_WMAC_CALDATA_OFFSET, NULL);
- + ap91_pci_init(mac + DBDC9344GE_PCI_CALDATA_OFFSET, NULL);
- +}
- +
- +MIPS_MACHINE(ATH79_MACH_COMFAST_DBDC9344GE, "COMFAST-DBDC9344GE", "COMFAST DBDC9344GE", comfast_dbdc9344ge_setup);
- +#endif
- diff --git a/target/linux/ar71xx/generic/profiles/comfast.mk b/target/linux/ar71xx/generic/profiles/comfast.mk
- new file mode 100644
- index 0000000..09612af
- --- /dev/null
- +++ b/target/linux/ar71xx/generic/profiles/comfast.mk
- @@ -0,0 +1,49 @@
- +#
- +# Copyright (C) 2009 OpenWrt.org
- +#
- +# This is free software, licensed under the GNU General Public License v2.
- +# See /LICENSE for more information.
- +#
- +define Profile/COMFASTAP9341FE
- + NAME:=COMFAST AP9341FE
- + PACKAGES:=
- +endef
- +
- +define Profile/COMFASTAP9341FE/Description
- + Package set optimized for the COMFAST AP9341FE.
- +endef
- +
- +$(eval $(call Profile,COMFASTAP9341FE))
- +
- +define Profile/COMFASTCFWR600N
- + NAME:=COMFAST CF-WR600N
- + PACKAGES:=
- +endef
- +
- +define Profile/COMFASTCFWR600N/Description
- + Package set optimized for the COMFAST CF-WR600N.
- +endef
- +
- +$(eval $(call Profile,COMFASTCFWR600N))
- +
- +define Profile/COMFASTCFE316NV2
- + NAME:=COMFAST CF-E316NV2
- + PACKAGES:=
- +endef
- +
- +define Profile/COMFASTCFE316NV2/Description
- + Package set optimized for the COMFAST CF-E316NV2.
- +endef
- +
- +$(eval $(call Profile,COMFASTCFE316NV2))
- +
- +define Profile/COMFASTCFE325N
- + NAME:=COMFAST CF-E325N
- + PACKAGES:=
- +endef
- +
- +define Profile/COMFASTCFE325N/Description
- + Package set optimized for the COMFAST CF-E325N.
- +endef
- +
- +$(eval $(call Profile,COMFASTCFE325N))
- \ No newline at end of file
- diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
- index bb5de17..118adb3 100644
- --- a/target/linux/ar71xx/image/Makefile
- +++ b/target/linux/ar71xx/image/Makefile
- @@ -971,6 +971,10 @@ pb92_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,2752k(rootfs),89
- planex_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7744k(firmware),128k(art)ro
- ubntxm_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7552k(firmware),256k(cfg)ro,64k(EEPROM)ro
- uap_pro_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,1536k(kernel),14208k(rootfs),256k(cfg)ro,64k(EEPROM)ro,15744k@0x50000(firmware)
- +comfast_mtdlayout=mtdparts=spi0.0:64k(u-boot)ro,64k(art)ro,1536k(kernel),14656k(rootfs),64k(nvram)ro,16192k@0x20000(firmware)
- +ar9341_cf_wr600n_mtdlayout=mtdparts=spi0.0:64k(u-boot)ro,64k(art)ro,1536k(kernel),14656k(rootfs),64k(nvram)ro,16192k@0x20000(firmware)
- +ar9341_cf_e316nv2_mtdlayout=mtdparts=spi0.0:64k(u-boot)ro,64k(art)ro,1536k(kernel),14656k(rootfs),64k(nvram)ro,16192k@0x20000(firmware)
- +ar9341_cf_e325n_mtdlayout=mtdparts=spi0.0:64k(u-boot)ro,64k(art)ro,1536k(kernel),14656k(rootfs),64k(nvram)ro,16192k@0x20000(firmware)
- ubdev_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7488k(firmware),64k(certs),256k(cfg)ro,64k(EEPROM)ro
- whrhpg300n_mtdlayout=mtdparts=spi0.0:248k(u-boot)ro,8k(u-boot-env)ro,3712k(firmware),64k(art)ro
- wlr8100_mtdlayout=mtdparts=spi0.0:192k(u-boot)ro,64k(u-boot-env)ro,1408k(kernel),14080k(rootfs),192k(unknown)ro,64k(art)ro,384k(unknown2)ro,15488k@0x40000(firmware)
- @@ -1320,6 +1324,99 @@ define Image/Build/UAPPRO
- -o $(call factoryname,$(1),$(2))
- endef
- +Image/Build/COMFAST/initramfs=$(call MkuImageLzma/initramfs,$(2),$(3) $(comfast_mtdlayout))
- +define Image/Build/COMFAST/buildkernel
- + $(call MkuImageLzma,$(2),$(3) $(comfast_mtdlayout))
- + -rm -rf $(KDIR_TMP)/$(2)
- + mkdir -p $(KDIR_TMP)/$(2)/image
- + cp $(KDIR_TMP)/vmlinux-$(2).uImage $(KDIR_TMP)/$(2)/image/kernel0
- + $(STAGING_DIR_HOST)/bin/mkfs.jffs2 \
- + --pad --big-endian --squash-uids -v -e 64KiB \
- + -o $(KDIR_TMP)/$(2)-kernel.jffs2 \
- + -d $(KDIR_TMP)/$(2)/image \
- + 2>&1 1>/dev/null | awk '/^.+$$$$/'
- + -rm -rf $(KDIR_TMP)/$(2)
- + $(STAGING_DIR_HOST)/bin/padjffs2 $(KDIR_TMP)/$(2)-kernel.jffs2 -J 64
- +endef
- +
- +define Image/Build/COMFAST
- + $(call CatFiles,$(KDIR_TMP)/$(2)-kernel.jffs2,1572864,$(KDIR)/root.$(1),14548992,$(call sysupname,$(1),$(2)))
- + -$(STAGING_DIR_HOST)/bin/mkfwimage2 -f 0x9f000000 \
- + -v $(5).$(6).v6.0.0-OpenWrt-$(REVISION) \
- + -p jffs2:0x50000:0xf60000:0:0:$(call sysupname,$(1),$(2)) \
- + -o $(call factoryname,$(1),$(2))
- +endef
- +
- +Image/Build/COMFAST_CF_WR600N/initramfs=$(call MkuImageLzma/initramfs,$(2),$(3) (ar9341_cf_wr600n_mtdlayout))
- +define Image/Build/COMFAST_CF_WR600N/buildkernel
- + $(call MkuImageLzma,$(2),$(3) $(ar9341_cf_wr600n_mtdlayout))
- + -rm -rf $(KDIR_TMP)/$(2)
- + mkdir -p $(KDIR_TMP)/$(2)/image
- + cp $(KDIR_TMP)/vmlinux-$(2).uImage $(KDIR_TMP)/$(2)/image/kernel0
- + $(STAGING_DIR_HOST)/bin/mkfs.jffs2 \
- + --pad --big-endian --squash-uids -v -e 64KiB \
- + -o $(KDIR_TMP)/$(2)-kernel.jffs2 \
- + -d $(KDIR_TMP)/$(2)/image \
- + 2>&1 1>/dev/null | awk '/^.+$$$$/'
- + -rm -rf $(KDIR_TMP)/$(2)
- + $(STAGING_DIR_HOST)/bin/padjffs2 $(KDIR_TMP)/$(2)-kernel.jffs2 -J 64
- +endef
- +
- +define Image/Build/COMFAST_CF_WR600N
- + $(call CatFiles,$(KDIR_TMP)/$(2)-kernel.jffs2,1572864,$(KDIR)/root.$(1),14548992,$(call sysupname,$(1),$(2)))
- + -$(STAGING_DIR_HOST)/bin/mkfwimage2 -f 0x9f000000 \
- + -v $(5).$(6).v6.0.0-OpenWrt-$(REVISION) \
- + -p jffs2:0x50000:0xf60000:0:0:$(call sysupname,$(1),$(2)) \
- + -o $(call factoryname,$(1),$(2))
- +endef
- +
- +Image/Build/COMFAST_CF_E316NV2/initramfs=$(call MkuImageLzma/initramfs,$(2),$(3) $(ar9341_cf_e316nv2_mtdlayout))
- +define Image/Build/COMFAST_CF_E316NV2/buildkernel
- + $(call MkuImageLzma,$(2),$(3) $(ar9341_cf_e316nv2_mtdlayout))
- + -rm -rf $(KDIR_TMP)/$(2)
- + mkdir -p $(KDIR_TMP)/$(2)/image
- + cp $(KDIR_TMP)/vmlinux-$(2).uImage $(KDIR_TMP)/$(2)/image/kernel0
- + $(STAGING_DIR_HOST)/bin/mkfs.jffs2 \
- + --pad --big-endian --squash-uids -v -e 64KiB \
- + -o $(KDIR_TMP)/$(2)-kernel.jffs2 \
- + -d $(KDIR_TMP)/$(2)/image \
- + 2>&1 1>/dev/null | awk '/^.+$$$$/'
- + -rm -rf $(KDIR_TMP)/$(2)
- + $(STAGING_DIR_HOST)/bin/padjffs2 $(KDIR_TMP)/$(2)-kernel.jffs2 -J 64
- +endef
- +
- +define Image/Build/COMFAST_CF_E316NV2
- + $(call CatFiles,$(KDIR_TMP)/$(2)-kernel.jffs2,1572864,$(KDIR)/root.$(1),14548992,$(call sysupname,$(1),$(2)))
- + -$(STAGING_DIR_HOST)/bin/mkfwimage2 -f 0x9f000000 \
- + -v $(5).$(6).v6.0.0-OpenWrt-$(REVISION) \
- + -p jffs2:0x50000:0xf60000:0:0:$(call sysupname,$(1),$(2)) \
- + -o $(call factoryname,$(1),$(2))
- +endef
- +
- +Image/Build/COMFAST_CF_E325N/initramfs=$(call MkuImageLzma/initramfs,$(2),$(3) $(ar9341_cf_e325n_mtdlayout))
- +define Image/Build/COMFAST_CF_E325N/buildkernel
- + $(call MkuImageLzma,$(2),$(3) $(ar9341_cf_e325n_mtdlayout))
- + -rm -rf $(KDIR_TMP)/$(2)
- + mkdir -p $(KDIR_TMP)/$(2)/image
- + cp $(KDIR_TMP)/vmlinux-$(2).uImage $(KDIR_TMP)/$(2)/image/kernel0
- + $(STAGING_DIR_HOST)/bin/mkfs.jffs2 \
- + --pad --big-endian --squash-uids -v -e 64KiB \
- + -o $(KDIR_TMP)/$(2)-kernel.jffs2 \
- + -d $(KDIR_TMP)/$(2)/image \
- + 2>&1 1>/dev/null | awk '/^.+$$$$/'
- + -rm -rf $(KDIR_TMP)/$(2)
- + $(STAGING_DIR_HOST)/bin/padjffs2 $(KDIR_TMP)/$(2)-kernel.jffs2 -J 64
- +endef
- +
- +define Image/Build/COMFAST_CF_E325N
- + $(call CatFiles,$(KDIR_TMP)/$(2)-kernel.jffs2,1572864,$(KDIR)/root.$(1),14548992,$(call sysupname,$(1),$(2)))
- + -$(STAGING_DIR_HOST)/bin/mkfwimage2 -f 0x9f000000 \
- + -v $(5).$(6).v6.0.0-OpenWrt-$(REVISION) \
- + -p jffs2:0x50000:0xf60000:0:0:$(call sysupname,$(1),$(2)) \
- + -o $(call factoryname,$(1),$(2))
- +endef
- +
- +
- # $(4) = board (XS2, XS5, RS, XM)
- # $(5) = series (BZ, XM, XW)
- # $(6) = chip (ar7240, ar934x)
- @@ -1982,6 +2079,11 @@ $(eval $(call SingleProfile,TPLINK-SAFELOADER,64kraw,CPE510,cpe210-220-510-520,C
- $(eval $(call SingleProfile,UAPPRO,64k,UAPPRO,ubnt-uap-pro,UAP-PRO,ttyS0,115200,BZ,BZ,ar934x))
- $(eval $(call SingleProfile,UAPPRO,64k,UBNTUNIFIOUTDOORPLUS,ubnt-unifi-outdoor-plus,UBNT-UOP,ttyS0,115200,BZ,BZ,ar7240))
- +$(eval $(call SingleProfile,COMFAST,64k,COMFASTAP9341FE,comfast-ap9341fe,COMFAST-AP9341FE,ttyS0,115200,AP9341FE,AP9341FE,ar934x))
- +$(eval $(call SingleProfile,COMFAST,64k,COMFASTCFWR600N,comfast-cf-wr600n,COMFAST-CF-WR600N,ttyS0,115200,CF-WR600N,CF-WR600N,ar934x))
- +$(eval $(call SingleProfile,COMFAST,64k,COMFASTCFE316NV2,comfast-cf-e316nv2,COMFAST-CF-E316NV2,ttyS0,115200,CF-E316NV2,CF-E316NV2,ar934x))
- +$(eval $(call SingleProfile,COMFAST,64k,COMFASTCFE325N,comfast-cf-e325n,COMFAST-CF-E325N,ttyS0,115200,CF-E325N,CF-E325N,ar934x))
- +
- $(eval $(call SingleProfile,UBDEV,64kraw,UBDEV01,ubdev01,UBNT-UF,ttyS0,115200,XM,XM,ar7240))
- $(eval $(call SingleProfile,UBNT,64k,UBNTRS,ubnt-rs,UBNT-RS,ttyS0,115200,RS,RSx,ar7100))
- diff --git a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
- index 941cb49..a3875cd 100644
- --- a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
- +++ b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
- @@ -1,6 +1,6 @@
- --- a/arch/mips/ath79/machtypes.h
- +++ b/arch/mips/ath79/machtypes.h
- -@@ -16,22 +16,195 @@
- +@@ -16,22 +16,199 @@
- enum ath79_mach_type {
- ATH79_MACH_GENERIC = 0,
- @@ -25,6 +25,10 @@
- + ATH79_MACH_BHU_BXU2000N2_A1, /* BHU BXU2000n-2 A1 */
- + ATH79_MACH_CAP4200AG, /* Senao CAP4200AG */
- + ATH79_MACH_CARAMBOLA2, /* 8devices Carambola2 */
- ++ ATH79_MACH_COMFAST_AP9341FE, /* COMFAST AP9341FE */
- ++ ATH79_MACH_COMFAST_CF_E316NV2, /* COMFAST CF-E316NV2 */
- ++ ATH79_MACH_COMFAST_CF_E325N, /* COMFAST CF-E325N */
- ++ ATH79_MACH_COMFAST_CF_WR600N, /* COMFAST CF-WR600N */
- + ATH79_MACH_CPE510, /* TP-LINK CPE510 */
- ATH79_MACH_DB120, /* Atheros DB120 reference board */
- ATH79_MACH_PB44, /* Atheros PB44 reference board */
- @@ -269,7 +273,7 @@
- config ATH79_MACH_AP121
- bool "Atheros AP121 reference board"
- select SOC_AR933X
- -@@ -11,62 +75,1030 @@ config ATH79_MACH_AP121
- +@@ -11,62 +75,1045 @@ config ATH79_MACH_AP121
- select ATH79_DEV_M25P80
- select ATH79_DEV_USB
- select ATH79_DEV_WMAC
- @@ -336,6 +340,21 @@
- + select ATH79_DEV_M25P80
- + select ATH79_DEV_USB
- +
- ++config ATH79_MACH_COMFAST
- ++ bool "COMFAST reference board"
- ++ select SOC_AR934X
- ++ select ATH79_DEV_AP9X_PCI if PCI
- ++ select ATH79_DEV_ETH
- ++ select ATH79_DEV_GPIO_BUTTONS
- ++ select ATH79_DEV_LEDS_GPIO
- ++ select ATH79_DEV_M25P80
- ++ select ATH79_DEV_NFC
- ++ select ATH79_DEV_USB
- ++ select ATH79_DEV_WMAC
- ++ help
- ++ Say 'Y' here if you want your kernel to support the
- ++ Comfast reference board.
- ++
- +config ATH79_MACH_DB120
- + bool "Atheros DB120 reference board"
- + select SOC_AR934X
- @@ -1328,7 +1347,7 @@
- config ATH79_MACH_UBNT_XM
- bool "Ubiquiti Networks XM/UniFi boards"
- -@@ -83,6 +1115,97 @@ config ATH79_MACH_UBNT_XM
- +@@ -83,6 +1130,97 @@ config ATH79_MACH_UBNT_XM
- Say 'Y' here if you want your kernel to support the
- Ubiquiti Networks XM (rev 1.0) board.
- @@ -1426,7 +1445,7 @@
- endmenu
- config SOC_AR71XX
- -@@ -124,7 +1247,10 @@ config ATH79_DEV_DSA
- +@@ -124,7 +1262,10 @@ config ATH79_DEV_DSA
- config ATH79_DEV_ETH
- def_bool n
- @@ -1438,7 +1457,7 @@
- def_bool n
- config ATH79_DEV_GPIO_BUTTONS
- -@@ -154,6 +1280,11 @@ config ATH79_PCI_ATH9K_FIXUP
- +@@ -154,6 +1295,11 @@ config ATH79_PCI_ATH9K_FIXUP
- def_bool n
- config ATH79_ROUTERBOOT
- @@ -1452,7 +1471,7 @@
- endif
- --- a/arch/mips/ath79/Makefile
- +++ b/arch/mips/ath79/Makefile
- -@@ -38,9 +38,124 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route
- +@@ -38,9 +38,125 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route
- #
- # Machines
- #
- @@ -1471,6 +1490,7 @@
- +obj-$(CONFIG_ATH79_MACH_AW_NR580) += mach-aw-nr580.o
- +obj-$(CONFIG_ATH79_MACH_BHU_BXU2000N2_A)+= mach-bhu-bxu2000n2-a.o
- +obj-$(CONFIG_ATH79_MACH_CAP4200AG) += mach-cap4200ag.o
- ++obj-$(CONFIG_ATH79_MACH_COMFAST) += mach-comfast.o
- +obj-$(CONFIG_ATH79_MACH_CPE510) += mach-cpe510.o
- obj-$(CONFIG_ATH79_MACH_DB120) += mach-db120.o
- +obj-$(CONFIG_ATH79_MACH_DLAN_PRO_500_WP) += mach-dlan-pro-500-wp.o
- diff --git a/target/linux/ar71xx/patches-3.18/614-MIPS-ath79-wdt-timeout.patch b/target/linux/ar71xx/patches-3.18/614-MIPS-ath79-wdt-timeout.patch
- new file mode 100644
- index 0000000..6d45e9f
- --- /dev/null
- +++ b/target/linux/ar71xx/patches-3.18/614-MIPS-ath79-wdt-timeout.patch
- @@ -0,0 +1,54 @@
- +--- a/drivers/watchdog/ath79_wdt.c 2014-06-23 23:35:55.747047338 -0400
- ++++ b/drivers/watchdog/ath79_wdt.c 2014-06-23 21:29:47.793775345 -0400
- +@@ -38,6 +38,12 @@
- +
- + #define DRIVER_NAME "ath79-wdt"
- +
- ++#ifdef CONFIG_ATH79_MACH_COMFAST
- ++void ath79_external_wdt_trigger(void);
- ++void ath79_external_wdt_set_timeout(int timeout);
- ++void ath79_external_wdt_disable(void);
- ++#endif
- ++
- + #define WDT_TIMEOUT 15 /* seconds */
- +
- + #define WDOG_REG_CTRL 0x00
- +@@ -86,6 +92,9 @@
- + ath79_wdt_wr(WDOG_REG_TIMER, wdt_freq * timeout);
- + /* flush write */
- + ath79_wdt_rr(WDOG_REG_TIMER);
- ++#ifdef CONFIG_ATH79_MACH_COMFAST
- ++ ath79_external_wdt_trigger();
- ++#endif
- + }
- +
- + static inline void ath79_wdt_enable(void)
- +@@ -101,6 +110,9 @@
- + ath79_wdt_wr(WDOG_REG_CTRL, WDOG_CTRL_ACTION_NONE);
- + /* flush write */
- + ath79_wdt_rr(WDOG_REG_CTRL);
- ++#ifdef CONFIG_ATH79_MACH_COMFAST
- ++ ath79_external_wdt_disable();
- ++#endif
- + }
- +
- + static int ath79_wdt_set_timeout(int val)
- +@@ -108,11 +120,17 @@
- + if (val < 1)
- + return -EINVAL;
- +
- +- if (val > max_timeout)
- ++ if (val > max_timeout) {
- ++ printk(KERN_ERR "Watchdog timeout exceeds, using %d\n", max_timeout);
- + timeout = max_timeout;
- ++ }
- + else
- + timeout = val;
- +
- ++#ifdef CONFIG_ATH79_MACH_COMFAST
- ++ ath79_external_wdt_set_timeout(timeout);
- ++#endif
- ++
- + ath79_wdt_keepalive();
- +
- + return 0;
- --
- 2.5.0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement