[OpenWrt-Devel] [PATCH] ar71xx: add qihoo 360 c301 router support

John Crispin blogic at openwrt.org
Wed Sep 10 07:52:45 EDT 2014


Hi,

patch is whitespace broken. please fix and resend

    John

On 09/09/2014 20:28, Weijie Gao wrote:
> Add Qihoo 360 C301 router support
>
> Signed-off-by: Weijie Gao <hackpascal at gmail.com>
> ---
>
> The hardware of Qihoo 360 C301 router is AR9344 + AR9882 
> with 128MB RAM and two 16MB flashes.
>
> The sysupgrade firmware can be upgraded directly in its
> offical bootloader.
>
>  target/linux/ar71xx/base-files/etc/diag.sh         |    3 +
>  .../ar71xx/base-files/etc/uci-defaults/01_leds     |    5 +
>  .../ar71xx/base-files/etc/uci-defaults/02_network  |    1 +
>  target/linux/ar71xx/base-files/lib/ar71xx.sh       |    3 +
>  .../lib/preinit/81_load_ath10k_board_bin           |   23 +++
>  .../ar71xx/base-files/lib/upgrade/platform.sh      |    1 +
>  target/linux/ar71xx/config-3.10                    |    1 +
>  target/linux/ar71xx/config-3.14                    |    1 +
>  .../ar71xx/files/arch/mips/ath79/mach-qihoo-c301.c |  168
> ++++++++++++++++++++
>  target/linux/ar71xx/generic/profiles/qihoo.mk      |   17 ++
>  target/linux/ar71xx/image/Makefile                 |    3 +
>  .../601-MIPS-ath79-add-more-register-defines.patch |    3 +-
>  .../610-MIPS-ath79-openwrt-machines.patch          |   19 ++-
>  .../601-MIPS-ath79-add-more-register-defines.patch |    3 +-
>  .../610-MIPS-ath79-openwrt-machines.patch          |   19 ++-
>  15 files changed, 262 insertions(+), 8 deletions(-)
>  create mode 100644
> target/linux/ar71xx/files/arch/mips/ath79/mach-qihoo-c301.c
>  create mode 100644 target/linux/ar71xx/generic/profiles/qihoo.mk
>
> diff --git a/target/linux/ar71xx/base-files/etc/diag.sh
> b/target/linux/ar71xx/base-files/etc/diag.sh
> index 1864b11..c16b7d7 100755
> --- a/target/linux/ar71xx/base-files/etc/diag.sh
> +++ b/target/linux/ar71xx/base-files/etc/diag.sh
> @@ -166,6 +166,9 @@ get_status_led() {
>  	oolite)
>  		status_led="oolite:red:system"
>  		;;
> +	qihoo-c301)
> +		status_led="qihoo:green:status"
> +		;;
>  	tew-632brp)
>  		status_led="tew-632brp:green:status"
>  		;;
> 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 d3b766d..872fc0d 100755
> --- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
> +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
> @@ -191,6 +191,11 @@ om5p)
>  	ucidef_set_led_netdev "port2" "port2" "om5p:blue:lan" "eth1"
>  	;;
>  
> +qihoo-c301)
> +	ucidef_set_led_wlan "wlan2g" "WLAN2G" "qihoo:green:status" "phy1tpt"
> +	ucidef_set_led_wlan "wlan5g" "WLAN5G" "qihoo:red:status" "phy0tpt"
> +	;;
> +
>  smart-300)
>  	ucidef_set_led_netdev "wan" "WAN" "nc-link:green:wan" "eth0"
>  	ucidef_set_led_switch "lan1" "LAN1" "nc-link:green:lan1" "switch0"
> "0x04"
> 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 c5cfd67..d5a43bd 100755
> --- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
> +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
> @@ -346,6 +346,7 @@ hiwifi-hc6361 |\
>  ja76pf |\
>  mynet-n600 |\
>  oolite |\
> +qihoo-c301 |\
>  rb-750 |\
>  rb-751 |\
>  tew-632brp |\
> diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh
> b/target/linux/ar71xx/base-files/lib/ar71xx.sh
> index 1e96b6d..1c685c6 100755
> --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
> +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
> @@ -430,6 +430,9 @@ ar71xx_board_detect() {
>  	*PB92)
>  		name="pb92"
>  		;;
> +	*"Qihoo 360 C301")
> +		name="qihoo-c301"
> +		;;
>  	*"RouterBOARD 411/A/AH")
>  		name="rb-411"
>  		;;
> diff --git
> a/target/linux/ar71xx/base-files/lib/preinit/81_load_ath10k_board_bin
> b/target/linux/ar71xx/base-files/lib/preinit/81_load_ath10k_board_bin
> index a28932f..66ccb1f 100644
> --- a/target/linux/ar71xx/base-files/lib/preinit/81_load_ath10k_board_bin
> +++ b/target/linux/ar71xx/base-files/lib/preinit/81_load_ath10k_board_bin
> @@ -24,6 +24,29 @@ do_load_ath10k_board_bin() {
>  				bs=1 skip=20492 count=2104 >>
> /tmp/ath10k-board.bin
>  
>  		;;
> +		qihoo-c301)
> +			local mac
> +			local tmp
> +
> +			dd if=/dev/mtdblock2 of=/tmp/c301-nvram >/dev/null
> 2>/dev/null
> +
> +			tmp=$(cat /tmp/c301-nvram | grep
> 'wlan5mac=\(.[0-9A-Fa-f]:.[0-9A-Fa-f]:.[0-9A-Fa-f]:.[0-9A-Fa-f]:.[0-9A-Fa-f]
> :.[0-9A-Fa-f]\)')
> +
> +			if [ $? == 0 ]; then
> +				rm -f /tmp/c301-nvram
> +				mac=$(echo ${tmp} | sed
> 's/wlan5mac=\(.[0-9A-Fa-f]:.[0-9A-Fa-f]:.[0-9A-Fa-f]:.[0-9A-Fa-f]:.[0-9A-Fa-
> f]:.[0-9A-Fa-f]\)/\1/g')
> +			else
> +				mac=$(macaddr_add $(cat
> /sys/class/net/eth0/address) -2)
> +			fi
> +
> +			dd if=/dev/mtdblock10 \
> +				bs=1 skip=20480 count=6 \
> +				of=/tmp/ath10k-board.bin
> +			macaddr_2bin $mac >> /tmp/ath10k-board.bin
> +			dd if=/dev/mtdblock10 \
> +				bs=1 skip=20492 count=2104 >>
> /tmp/ath10k-board.bin
> +
> +		;;
>  	esac
>  	[ -f /tmp/ath10k-board.bin ] || {
>  		return
> diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
> b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
> index 846954c..6122d45 100755
> --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
> +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
> @@ -225,6 +225,7 @@ platform_check_image() {
>  		return 1
>  		;;
>  
> +	qihoo-c301 | \
>  	mynet-n600 | \
>  	mynet-n750)
>  		[ "$magic_long" != "5ea3a417" ] && {
> diff --git a/target/linux/ar71xx/config-3.10
> b/target/linux/ar71xx/config-3.10
> index 9a8378a..48ff491 100644
> --- a/target/linux/ar71xx/config-3.10
> +++ b/target/linux/ar71xx/config-3.10
> @@ -72,6 +72,7 @@ CONFIG_ATH79_MACH_OM5P=y
>  CONFIG_ATH79_MACH_PB42=y
>  CONFIG_ATH79_MACH_PB44=y
>  CONFIG_ATH79_MACH_PB92=y
> +CONFIG_ATH79_MACH_QIHOO_C301=y
>  # CONFIG_ATH79_MACH_RB2011 is not set
>  # CONFIG_ATH79_MACH_RB4XX is not set
>  # CONFIG_ATH79_MACH_RB750 is not set
> diff --git a/target/linux/ar71xx/config-3.14
> b/target/linux/ar71xx/config-3.14
> index c642913..0996ccb 100644
> --- a/target/linux/ar71xx/config-3.14
> +++ b/target/linux/ar71xx/config-3.14
> @@ -73,6 +73,7 @@ CONFIG_ATH79_MACH_OM5P=y
>  CONFIG_ATH79_MACH_PB42=y
>  CONFIG_ATH79_MACH_PB44=y
>  CONFIG_ATH79_MACH_PB92=y
> +CONFIG_ATH79_MACH_QIHOO_C301=y
>  # CONFIG_ATH79_MACH_RB2011 is not set
>  # CONFIG_ATH79_MACH_RB4XX is not set
>  # CONFIG_ATH79_MACH_RB750 is not set
> diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-qihoo-c301.c
> b/target/linux/ar71xx/files/arch/mips/ath79/mach-qihoo-c301.c
> new file mode 100644
> index 0000000..a5d9b64
> --- /dev/null
> +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-qihoo-c301.c
> @@ -0,0 +1,168 @@
> +/*
> + *  Qihoo 360 C301 board support
> + *
> + *  Copyright (C) 2013 Gabor Juhos <juhosg at openwrt.org>
> + *  Copyright (C) 2014 Weijie Gao <hackpascal at gmail.com>
> + *
> + *  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/pci.h>
> +#include <linux/phy.h>
> +#include <linux/gpio.h>
> +#include <linux/platform_device.h>
> +#include <linux/ath9k_platform.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-spi.h"
> +#include "dev-usb.h"
> +#include "dev-wmac.h"
> +#include "machtypes.h"
> +#include "nvram.h"
> +
> +#define QIHOO_C301_GPIO_LED_STATUS_GREEN	0
> +#define QIHOO_C301_GPIO_LED_STATUS_RED		11
> +
> +#define QIHOO_C301_GPIO_LED_WAN			1
> +#define QIHOO_C301_GPIO_LED_LAN1		2
> +#define QIHOO_C301_GPIO_LED_LAN2		3
> +#define QIHOO_C301_GPIO_ETH_LEN_EN		18
> +
> +#define QIHOO_C301_GPIO_BTN_RESET		16
> +
> +#define QIHOO_C301_GPIO_USB_POWER		19
> +
> +#define QIHOO_C301_GPIO_SPI_CS1			12
> +
> +#define QIHOO_C301_GPIO_EXTERNAL_LNA0		14
> +#define QIHOO_C301_GPIO_EXTERNAL_LNA1		15
> +
> +#define QIHOO_C301_KEYS_POLL_INTERVAL		20	/* msecs */
> +#define QIHOO_C301_KEYS_DEBOUNCE_INTERVAL 	(3 *
> QIHOO_C301_KEYS_POLL_INTERVAL)
> +
> +#define QIHOO_C301_WMAC_CALDATA_OFFSET		0x1000
> +#define QIHOO_C301_PCIE_CALDATA_OFFSET		0x5000
> +
> +#define QIHOO_C301_NVRAM_ADDR			0x1f058010
> +#define QIHOO_C301_NVRAM_SIZE			0x7ff0
> +
> +static struct gpio_led qihoo_c301_leds_gpio[] __initdata = {
> +	{
> +		.name		= "qihoo:green:status",
> +		.gpio		= QIHOO_C301_GPIO_LED_STATUS_GREEN,
> +		.active_low	= 1,
> +	},
> +	{
> +		.name		= "qihoo:red:status",
> +		.gpio		= QIHOO_C301_GPIO_LED_STATUS_RED,
> +		.active_low	= 1,
> +	},
> +};
> +
> +static struct gpio_keys_button qihoo_c301_gpio_keys[] __initdata = {
> +	{
> +		.desc		= "reset",
> +		.type		= EV_KEY,
> +		.code		= KEY_RESTART,
> +		.debounce_interval = QIHOO_C301_KEYS_DEBOUNCE_INTERVAL,
> +		.gpio		= QIHOO_C301_GPIO_BTN_RESET,
> +		.active_low	= 1,
> +	},
> +};
> +
> +struct flash_platform_data flash __initdata = {NULL, NULL, 0};
> +
> +static void qihoo_c301_get_mac(const char *name, char *mac)
> +{
> +	u8 *nvram = (u8 *) KSEG1ADDR(QIHOO_C301_NVRAM_ADDR);
> +	int err;
> +
> +	err = ath79_nvram_parse_mac_addr(nvram, QIHOO_C301_NVRAM_SIZE,
> +					 name, mac);
> +	if (err)
> +		pr_err("no MAC address found for %s\n", name);
> +}
> +
> +static void __init qihoo_c301_setup(void)
> +{
> +	u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);
> +	u8 tmpmac[ETH_ALEN];
> +
> +	ath79_register_m25p80_multi(&flash);
> +
> +	ath79_gpio_function_enable(AR934X_GPIO_FUNC_JTAG_DISABLE);
> +
> +	ath79_gpio_output_select(QIHOO_C301_GPIO_LED_WAN,
> +				 AR934X_GPIO_OUT_LED_LINK4);
> +	ath79_gpio_output_select(QIHOO_C301_GPIO_LED_LAN1,
> +				 AR934X_GPIO_OUT_LED_LINK1);
> +	ath79_gpio_output_select(QIHOO_C301_GPIO_LED_LAN2,
> +				 AR934X_GPIO_OUT_LED_LINK2);
> +
> +	ath79_gpio_output_select(QIHOO_C301_GPIO_SPI_CS1,
> +				 AR934X_GPIO_OUT_SPI_CS1);
> +
> +	gpio_request_one(QIHOO_C301_GPIO_ETH_LEN_EN,
> +			 GPIOF_OUT_INIT_LOW | GPIOF_EXPORT_DIR_FIXED,
> +			 "Ethernet LED enable");
> +
> +	ath79_register_leds_gpio(-1, ARRAY_SIZE(qihoo_c301_leds_gpio),
> +				 qihoo_c301_leds_gpio);
> +
> +	ath79_register_gpio_keys_polled(-1, QIHOO_C301_KEYS_POLL_INTERVAL,
> +					ARRAY_SIZE(qihoo_c301_gpio_keys),
> +					qihoo_c301_gpio_keys);
> +
> +	ath79_wmac_set_ext_lna_gpio(0, QIHOO_C301_GPIO_EXTERNAL_LNA0);
> +	ath79_wmac_set_ext_lna_gpio(1, QIHOO_C301_GPIO_EXTERNAL_LNA1);
> +
> +	qihoo_c301_get_mac("wlan24mac=", tmpmac);
> +	ath79_register_wmac(art + QIHOO_C301_WMAC_CALDATA_OFFSET, tmpmac);
> +
> +	qihoo_c301_get_mac("wlan5mac=", tmpmac);
> +	ap91_pci_init(art + QIHOO_C301_PCIE_CALDATA_OFFSET, tmpmac);
> +
> +	ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_ONLY_MODE |
> +				   AR934X_ETH_CFG_SW_PHY_SWAP);
> +
> +	ath79_register_mdio(1, 0x0);
> +
> +	/* LAN */
> +	qihoo_c301_get_mac("lanmac=", ath79_eth1_data.mac_addr);
> +
> +	/* GMAC1 is connected to the internal switch */
> +	ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII;
> +
> +	ath79_register_eth(1);
> +
> +	/* WAN */
> +	qihoo_c301_get_mac("wanmac=", ath79_eth0_data.mac_addr);
> +
> +	/* GMAC0 is connected to the PHY4 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);
> +
> +	gpio_request_one(QIHOO_C301_GPIO_USB_POWER,
> +			 GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED,
> +			 "USB power");
> +	ath79_register_usb();
> +}
> +
> +MIPS_MACHINE(ATH79_MACH_QIHOO_C301, "QIHOO-C301", "Qihoo 360 C301",
> +	     qihoo_c301_setup);
> +
> diff --git a/target/linux/ar71xx/generic/profiles/qihoo.mk
> b/target/linux/ar71xx/generic/profiles/qihoo.mk
> new file mode 100644
> index 0000000..a373bbb
> --- /dev/null
> +++ b/target/linux/ar71xx/generic/profiles/qihoo.mk
> @@ -0,0 +1,17 @@
> +#
> +# Copyright (C) 2013 OpenWrt.org
> +# Copyright (C) 2014 hackpascal
> +#
> +# This is free software, licensed under the GNU General Public License v2.
> +# See /LICENSE for more information.
> +#
> +
> +define Profile/QIHOO360
> +	NAME:=Qihoo 360 C301
> +	PACKAGES:=kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev kmod-ath10k
> +endef
> +
> +define Profile/QIHOO360/Description
> +  Package set optimized for the Qihoo 360 C301 device.
> +endef
> +$(eval $(call Profile,QIHOO360))
> diff --git a/target/linux/ar71xx/image/Makefile
> b/target/linux/ar71xx/image/Makefile
> index 683c238..d56585e 100644
> --- a/target/linux/ar71xx/image/Makefile
> +++ b/target/linux/ar71xx/image/Makefile
> @@ -290,6 +290,7 @@
> zcn1523h_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6208k(ro
> otfs
>  
> mynet_n600_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(de
> vdata)ro,64k(devconf)ro,15872k(firmware),64k(radiocfg)ro
>  
> mynet_rext_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,7808k(firmware),64k(nvra
> m)ro,64k(ART)ro,6848k at 0x130000(filesystem)
>  
> zyx_nbg6716_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(env)ro,64k(RFdata)r
> o,-(nbu);ar934x-nfc:2048k(zyxel_rfsd),2048k(romd),1024k(header),2048k(kernel
> ),-(ubi)
> +qihoo_c301_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env),64k(dev
> data),64k(devconf),15744k(firmware),64k(warm_start),64k(action_image_config)
> ,64k(radiocfg)ro;spi0.1:15360k(upgrade2),1024k(privatedata)
>  
>  
>  define Image/BuildKernel
> @@ -1156,6 +1157,8 @@ $(eval $(call
> SingleProfile,Planex,64kraw,MZKW300NH,mzk-w300nh,MZK-W300NH,ttyS0,
>  $(eval $(call
> SingleProfile,Seama,64k,MYNETN600,mynet-n600,MYNET-N600,ttyS0,115200,$$(myne
> t_n600_mtdlayout),wrgnd16_wd_db600,1310720,16187392))
>  $(eval $(call
> SingleProfile,Seama,64k,MYNETN750,mynet-n750,MYNET-N750,ttyS0,115200,$$(myne
> t_n600_mtdlayout),wrgnd13_wd_av,1310720,16187392))
>  
> +$(eval $(call
> SingleProfile,Seama,64k,QIHOO360,qihoo-c301,QIHOO-C301,ttyS0,115200,$$(qihoo
> _c301_mtdlayout),wrgac26_qihoo360_360rg,1310720,16121856))
> +
>  $(eval $(call
> SingleProfile,Senao,squashfs-only,EAP300V2,eap300v2,EAP300V2,ttyS0,115200,$$
> (eap300v2_mtdlayout)))
>  
>  $(eval $(call
> SingleProfile,TPLINKOLD,squashfs-only,TLWR841NV15,tl-wr841nd-v1.5,TL-WR841N-
> v1.5,ttyS0,115200,0x08410002,2,4M))
> diff --git
> a/target/linux/ar71xx/patches-3.10/601-MIPS-ath79-add-more-register-defines.
> patch
> b/target/linux/ar71xx/patches-3.10/601-MIPS-ath79-add-more-register-defines.
> patch
> index 81a997b..214aa73 100644
> ---
> a/target/linux/ar71xx/patches-3.10/601-MIPS-ath79-add-more-register-defines.
> patch
> +++
> b/target/linux/ar71xx/patches-3.10/601-MIPS-ath79-add-more-register-defines.
> patch
> @@ -207,7 +207,7 @@
>   #define AR934X_GPIO_REG_FUNC		0x6c
>   
>   #define AR71XX_GPIO_COUNT		16
> -@@ -561,4 +664,148 @@
> +@@ -561,4 +664,149 @@
>   #define AR934X_SRIF_DPLL2_OUTDIV_SHIFT	13
>   #define AR934X_SRIF_DPLL2_OUTDIV_MASK	0x7
>   
> @@ -279,6 +279,7 @@
>  +#define AR934X_GPIO_FUNC_JTAG_DISABLE		BIT(1)
>  +
>  +#define AR934X_GPIO_OUT_GPIO		0
> ++#define AR934X_GPIO_OUT_SPI_CS1	7
>  +#define AR934X_GPIO_OUT_LED_LINK0	41
>  +#define AR934X_GPIO_OUT_LED_LINK1	42
>  +#define AR934X_GPIO_OUT_LED_LINK2	43
> 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 cba18a8..df28564 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,6 +1,6 @@
>  --- a/arch/mips/ath79/machtypes.h
>  +++ b/arch/mips/ath79/machtypes.h
> -@@ -16,22 +16,144 @@
> +@@ -16,22 +16,145 @@
>   
>   enum ath79_mach_type {
>   	ATH79_MACH_GENERIC = 0,
> @@ -54,6 +54,7 @@
>  +	ATH79_MACH_OM2P,		/* OpenMesh OM2P */
>  +	ATH79_MACH_PB42,		/* Atheros PB42 */
>  +	ATH79_MACH_PB92,		/* Atheros PB92 */
> ++	ATH79_MACH_QIHOO_C301,		/* Qihoo 360 C301 */
>  +	ATH79_MACH_RB_411,		/* MikroTik RouterBOARD
> 411/411A/411AH */
>  +	ATH79_MACH_RB_411U,		/* MikroTik RouterBOARD 411U */
>  +	ATH79_MACH_RB_433,		/* MikroTik RouterBOARD 433/433AH */
> @@ -974,7 +975,7 @@
>   
>   config ATH79_MACH_UBNT_XM
>   	bool "Ubiquiti Networks XM/UniFi boards"
> -@@ -83,6 +810,65 @@ config ATH79_MACH_UBNT_XM
> +@@ -83,6 +810,76 @@ config ATH79_MACH_UBNT_XM
>   	  Say 'Y' here if you want your kernel to support the
>   	  Ubiquiti Networks XM (rev 1.0) board.
>   
> @@ -1037,6 +1038,17 @@
>  +	select ATH79_DEV_USB
>  +	select ATH79_DEV_WMAC
>  +
> ++config ATH79_MACH_QIHOO_C301
> ++	bool "Qihoo 360 C301 board support"
> ++	select SOC_AR934X
> ++	select ATH79_DEV_ETH
> ++	select ATH79_DEV_GPIO_BUTTONS
> ++	select ATH79_DEV_LEDS_GPIO
> ++	select ATH79_DEV_M25P80
> ++	select ATH79_DEV_WMAC
> ++	select ATH79_DEV_USB
> ++	select ATH79_NVRAM
> ++
>   endmenu
>   
>   config SOC_AR71XX
> @@ -1062,7 +1074,7 @@
>   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
>   #
> @@ -1103,6 +1115,7 @@
>  +obj-$(CONFIG_ATH79_MACH_PB42)		+= mach-pb42.o
>   obj-$(CONFIG_ATH79_MACH_PB44)		+= mach-pb44.o
>  +obj-$(CONFIG_ATH79_MACH_PB92)		+= mach-pb92.o
> ++obj-$(CONFIG_ATH79_MACH_QIHOO_C301)	+= mach-qihoo-c301.o
>  +obj-$(CONFIG_ATH79_MACH_RB4XX)		+= mach-rb4xx.o
>  +obj-$(CONFIG_ATH79_MACH_RB750)		+= mach-rb750.o
>  +obj-$(CONFIG_ATH79_MACH_RB95X)		+= mach-rb95x.o
> diff --git
> a/target/linux/ar71xx/patches-3.14/601-MIPS-ath79-add-more-register-defines.
> patch
> b/target/linux/ar71xx/patches-3.14/601-MIPS-ath79-add-more-register-defines.
> patch
> index 79e53b3..2dec020 100644
> ---
> a/target/linux/ar71xx/patches-3.14/601-MIPS-ath79-add-more-register-defines.
> patch
> +++
> b/target/linux/ar71xx/patches-3.14/601-MIPS-ath79-add-more-register-defines.
> patch
> @@ -207,7 +207,7 @@
>   #define AR934X_GPIO_REG_FUNC		0x6c
>   
>   #define AR71XX_GPIO_COUNT		16
> -@@ -560,4 +663,148 @@
> +@@ -560,4 +663,149 @@
>   #define AR934X_SRIF_DPLL2_OUTDIV_SHIFT	13
>   #define AR934X_SRIF_DPLL2_OUTDIV_MASK	0x7
>   
> @@ -279,6 +279,7 @@
>  +#define AR934X_GPIO_FUNC_JTAG_DISABLE		BIT(1)
>  +
>  +#define AR934X_GPIO_OUT_GPIO		0
> ++#define AR934X_GPIO_OUT_SPI_CS1	7
>  +#define AR934X_GPIO_OUT_LED_LINK0	41
>  +#define AR934X_GPIO_OUT_LED_LINK1	42
>  +#define AR934X_GPIO_OUT_LED_LINK2	43
> diff --git
> a/target/linux/ar71xx/patches-3.14/610-MIPS-ath79-openwrt-machines.patch
> b/target/linux/ar71xx/patches-3.14/610-MIPS-ath79-openwrt-machines.patch
> index cba18a8..df28564 100644
> --- a/target/linux/ar71xx/patches-3.14/610-MIPS-ath79-openwrt-machines.patch
> +++ b/target/linux/ar71xx/patches-3.14/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,144 @@
> +@@ -16,22 +16,145 @@
>   
>   enum ath79_mach_type {
>   	ATH79_MACH_GENERIC = 0,
> @@ -54,6 +54,7 @@
>  +	ATH79_MACH_OM2P,		/* OpenMesh OM2P */
>  +	ATH79_MACH_PB42,		/* Atheros PB42 */
>  +	ATH79_MACH_PB92,		/* Atheros PB92 */
> ++	ATH79_MACH_QIHOO_C301,		/* Qihoo 360 C301 */
>  +	ATH79_MACH_RB_411,		/* MikroTik RouterBOARD
> 411/411A/411AH */
>  +	ATH79_MACH_RB_411U,		/* MikroTik RouterBOARD 411U */
>  +	ATH79_MACH_RB_433,		/* MikroTik RouterBOARD 433/433AH */
> @@ -974,7 +975,7 @@
>   
>   config ATH79_MACH_UBNT_XM
>   	bool "Ubiquiti Networks XM/UniFi boards"
> -@@ -83,6 +810,65 @@ config ATH79_MACH_UBNT_XM
> +@@ -83,6 +810,76 @@ config ATH79_MACH_UBNT_XM
>   	  Say 'Y' here if you want your kernel to support the
>   	  Ubiquiti Networks XM (rev 1.0) board.
>   
> @@ -1037,6 +1038,17 @@
>  +	select ATH79_DEV_USB
>  +	select ATH79_DEV_WMAC
>  +
> ++config ATH79_MACH_QIHOO_C301
> ++	bool "Qihoo 360 C301 board support"
> ++	select SOC_AR934X
> ++	select ATH79_DEV_ETH
> ++	select ATH79_DEV_GPIO_BUTTONS
> ++	select ATH79_DEV_LEDS_GPIO
> ++	select ATH79_DEV_M25P80
> ++	select ATH79_DEV_WMAC
> ++	select ATH79_DEV_USB
> ++	select ATH79_NVRAM
> ++
>   endmenu
>   
>   config SOC_AR71XX
> @@ -1062,7 +1074,7 @@
>   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
>   #
> @@ -1103,6 +1115,7 @@
>  +obj-$(CONFIG_ATH79_MACH_PB42)		+= mach-pb42.o
>   obj-$(CONFIG_ATH79_MACH_PB44)		+= mach-pb44.o
>  +obj-$(CONFIG_ATH79_MACH_PB92)		+= mach-pb92.o
> ++obj-$(CONFIG_ATH79_MACH_QIHOO_C301)	+= mach-qihoo-c301.o
>  +obj-$(CONFIG_ATH79_MACH_RB4XX)		+= mach-rb4xx.o
>  +obj-$(CONFIG_ATH79_MACH_RB750)		+= mach-rb750.o
>  +obj-$(CONFIG_ATH79_MACH_RB95X)		+= mach-rb95x.o
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list