With this patch OpenWRT supports the following on the ZyXEL NBG 6716: -WiFi 2G -WiFi 5G -NAND flash -2 Ethernet interfaces -USB -LEDs (except switch LEDs) -sysupgrade process -reasonale defaults at first boot
Signed-off-by: André Valentin <[email protected]> --- package/boot/uboot-envtools/files/ar71xx | 3 + target/linux/ar71xx/base-files/etc/diag.sh | 3 + .../ar71xx/base-files/etc/uci-defaults/01_leds | 8 + .../ar71xx/base-files/etc/uci-defaults/02_network | 7 + target/linux/ar71xx/base-files/lib/ar71xx.sh | 3 + .../ar71xx/base-files/lib/upgrade/platform.sh | 21 +- target/linux/ar71xx/config-3.10 | 1 + .../ar71xx/files/arch/mips/ath79/mach-nbg6716.c | 278 ++++++++++++++++++++ target/linux/ar71xx/image/Makefile | 42 +++ target/linux/ar71xx/image/ubinize-nbg6716.ini | 29 ++ target/linux/ar71xx/nand/config-default | 4 +- target/linux/ar71xx/nand/profiles/zyxel.mk | 18 ++ .../patches-3.10/704-MIPS-ath79-add-NBG6716.patch | 37 +++ 13 files changed, 451 insertions(+), 3 deletions(-) create mode 100644 target/linux/ar71xx/files/arch/mips/ath79/mach-nbg6716.c create mode 100644 target/linux/ar71xx/image/ubinize-nbg6716.ini create mode 100644 target/linux/ar71xx/nand/profiles/zyxel.mk create mode 100644 target/linux/ar71xx/patches-3.10/704-MIPS-ath79-add-NBG6716.patch diff --git a/package/boot/uboot-envtools/files/ar71xx b/package/boot/uboot-envtools/files/ar71xx index 574f149..14528ac 100644 --- a/package/boot/uboot-envtools/files/ar71xx +++ b/package/boot/uboot-envtools/files/ar71xx @@ -23,6 +23,9 @@ mr600v2 | \ wndr3700) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000" ;; +nbg6716) + ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000" + ;; alfa-ap96 | \ all0315n | \ om2p | \ diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index b328766..572f28b 100755 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -94,6 +94,9 @@ get_status_led() { nbg460n_550n_550nh) status_led="nbg460n:green:power" ;; + nbg6716) + status_led="nbg6716:white:power" + ;; om2p | \ om2p-hs | \ om2p-lc) 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 a986dbc..bff6b0e 100755 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds @@ -133,6 +133,14 @@ nbg460n_550n_550nh) ucidef_set_led_wlan "wlan" "WLAN" "nbg460n:green:wlan" "phy0tpt" ;; +nbg6716) + ucidef_set_led_netdev "wan" "WAN" "nbg6716:white:internet" "eth1" + ucidef_set_led_wlan "wlan" "WLAN" "nbg6716:white:wifi2g" "phy1tpt" + ucidef_set_led_wlan "wlan5" "WLAN5" "nbg6716:white:wifi5g" "phy0tpt" + ucidef_set_led_usbdev "usb1" "USB1" "nbg6716:white:usb0" "1-1" + ucidef_set_led_usbdev "usb2" "USB2" "nbg6716:white:usb1" "2-1" + ;; + om2p | \ om2p-hs | \ om2p-lc) 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 9a1a285..8a46cc4 100755 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network @@ -86,6 +86,13 @@ nbg460n_550n_550nh) ucidef_add_switch_vlan "switch0" "0" "0 1 2 3 5" ;; +nbg6716) + ucidef_set_interfaces_lan_wan "eth0.1" "eth1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0t 1 2 3 4" + ucidef_add_switch_vlan "switch0" "2" "5 6" + ;; + rb-433 |\ rb-433u) ucidef_set_interfaces_lan_wan "eth1" "eth0" diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index 06f128b..990c2e0 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -342,6 +342,9 @@ ar71xx_board_detect() { *"NBG460N/550N/550NH") name="nbg460n_550n_550nh" ;; + *"Zyxel NBG6716") + name="nbg6716" + ;; *OM2P) name="om2p" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 0028e8a..7793d2a 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -106,6 +106,20 @@ platform_do_upgrade_compex() { fi } +platform_do_upgrade_nand() { + local fw_mtd_kfs=$1 + local fw_mtd=$2 + local fw_file=$3 + + if [ -n "$fw_mtd" ]; then + sync + dd if="$fw_file" bs=128k count=16 2>/dev/null | \ + mtd -e $fw_mtd_kfs write - $fw_mtd_kfs + dd if="$fw_file" bs=128k skip=16 2>/dev/null | \ + mtd -e $fw_mtd write - $fw_mtd + fi +} + platform_check_image() { local board=$(ar71xx_board_name) local magic="$(get_magic_word "$1")" @@ -218,7 +232,9 @@ platform_check_image() { platform_check_image_openmesh "$magic_long" "$1" && return 0 return 1 ;; - + nbg6716) + return 0; + ;; archer-c7 | \ tl-mr10u | \ tl-mr11u | \ @@ -372,6 +388,9 @@ platform_do_upgrade() { om2p-lc) platform_do_upgrade_openmesh "$ARGV" ;; + nbg6716) + platform_do_upgrade_nand "mtd7" "mtd9" "$ARGV" + ;; uap-pro) MTD_CONFIG_ARGS="-s 0x180000" default_do_upgrade "$ARGV" diff --git a/target/linux/ar71xx/config-3.10 b/target/linux/ar71xx/config-3.10 index 9d68280..e3ccb7a 100644 --- a/target/linux/ar71xx/config-3.10 +++ b/target/linux/ar71xx/config-3.10 @@ -58,6 +58,7 @@ CONFIG_ATH79_MACH_MYNET_REXT=y CONFIG_ATH79_MACH_MZK_W04NU=y CONFIG_ATH79_MACH_MZK_W300NH=y CONFIG_ATH79_MACH_NBG460N=y +CONFIG_ATH79_MACH_NBG6716=y CONFIG_ATH79_MACH_OM2P=y CONFIG_ATH79_MACH_PB42=y CONFIG_ATH79_MACH_PB44=y diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-nbg6716.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-nbg6716.c new file mode 100644 index 0000000..5150fa1 --- /dev/null +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-nbg6716.c @@ -0,0 +1,278 @@ +/* + * ZyXEL NBG 7616 board support + * + * Based on the Qualcomm Atheros AP135/AP136 reference board support code + * Copyright (c) 2012 Qualcomm Atheros + * Copyright (c) 2012-2013 Gabor Juhos <[email protected]> + * Copyright (c) 2013 Andre Valentin <[email protected]> + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include <linux/platform_device.h> +#include <linux/ar8216_platform.h> +#include <linux/mtd/mtd.h> +#include <linux/mtd/nand.h> +#include <linux/platform/ar934x_nfc.h> + +#include <asm/mach-ath79/ar71xx_regs.h> + +#include "common.h" +#include "pci.h" +#include "dev-ap9x-pci.h" +#include "dev-gpio-buttons.h" +#include "dev-eth.h" +#include "dev-leds-gpio.h" +#include "dev-nfc.h" +#include "dev-m25p80.h" +#include "dev-usb.h" +#include "dev-wmac.h" +#include "machtypes.h" +#include "nvram.h" + +#define NBG6716_GPIO_LED_INTERNET 18 +#define NBG6716_GPIO_LED_POWER 15 +#define NBG6716_GPIO_LED_USB0 4 +#define NBG6716_GPIO_LED_USB1 13 +#define NBG6716_GPIO_LED_WIFI2G 19 +#define NBG6716_GPIO_LED_WIFI5G 17 +#define NBG6716_GPIO_LED_WPS 21 + +#define NBG6716_GPIO_BTN_RESET 23 +#define NBG6716_GPIO_BTN_RFKILL 1 +#define NBG6716_GPIO_BTN_USB0 14 +#define NBG6716_GPIO_BTN_USB1 0 +#define NBG6716_GPIO_BTN_WPS 22 + +#define NBG6716_KEYS_POLL_INTERVAL 20 /* msecs */ +#define NBG6716_KEYS_DEBOUNCE_INTERVAL (3 * NBG6716_KEYS_POLL_INTERVAL) + +#define NBG6716_MAC0_OFFSET 0 +#define NBG6716_MAC1_OFFSET 6 +#define NBG6716_WMAC_CALDATA_OFFSET 0x1000 +#define NBG6716_PCIE_CALDATA_OFFSET 0x5000 + +static struct gpio_led nbg6716_leds_gpio[] __initdata = { + { + .name = "nbg6716:white:internet", + .gpio = NBG6716_GPIO_LED_INTERNET, + .active_low = 1, + }, + { + .name = "nbg6716:white:power", + .gpio = NBG6716_GPIO_LED_POWER, + .active_low = 1, + }, + { + .name = "nbg6716:white:usb0", + .gpio = NBG6716_GPIO_LED_USB0, + .active_low = 1, + }, + { + .name = "nbg6716:white:usb1", + .gpio = NBG6716_GPIO_LED_USB1, + .active_low = 1, + }, + { + .name = "nbg6716:white:wifi2g", + .gpio = NBG6716_GPIO_LED_WIFI2G, + .active_low = 1, + }, + { + .name = "nbg6716:white:wifi5g", + .gpio = NBG6716_GPIO_LED_WIFI5G, + .active_low = 1, + }, + { + .name = "nbg6716:white:wps", + .gpio = NBG6716_GPIO_LED_WPS, + .active_low = 1, + } +}; + +static struct gpio_keys_button nbg6716_gpio_keys[] __initdata = { + { + .desc = "RESET button", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = NBG6716_KEYS_DEBOUNCE_INTERVAL, + .gpio = NBG6716_GPIO_BTN_RESET, + .active_low = 1, + }, + { + .desc = "RFKILL button", + .type = EV_KEY, + .code = KEY_RFKILL, + .debounce_interval = NBG6716_KEYS_DEBOUNCE_INTERVAL, + .gpio = NBG6716_GPIO_BTN_RFKILL, + .active_low = 1, + }, + { + .desc = "USB0 eject button", + .type = EV_KEY, + .code = KEY_FN_F1, + .debounce_interval = NBG6716_KEYS_DEBOUNCE_INTERVAL, + .gpio = NBG6716_GPIO_BTN_USB0, + .active_low = 1, + }, + { + .desc = "USB1 eject button", + .type = EV_KEY, + .code = KEY_FN_F2, + .debounce_interval = NBG6716_KEYS_DEBOUNCE_INTERVAL, + .gpio = NBG6716_GPIO_BTN_USB1, + .active_low = 1, + }, + { + .desc = "WPS button", + .type = EV_KEY, + .code = KEY_WPS_BUTTON, + .debounce_interval = NBG6716_KEYS_DEBOUNCE_INTERVAL, + .gpio = NBG6716_GPIO_BTN_WPS, + .active_low = 1, + }, +}; + +static struct ar8327_pad_cfg nbg6716_ar8327_pad0_cfg; +static struct ar8327_pad_cfg nbg6716_ar8327_pad6_cfg; + +static struct ar8327_platform_data nbg6716_ar8327_data = { + .pad0_cfg = &nbg6716_ar8327_pad0_cfg, + .pad6_cfg = &nbg6716_ar8327_pad6_cfg, + .port0_cfg = { + .force_link = 1, + .speed = AR8327_PORT_SPEED_1000, + .duplex = 1, + .txpause = 1, + .rxpause = 1, + }, + .port6_cfg = { + .force_link = 1, + .speed = AR8327_PORT_SPEED_1000, + .duplex = 1, + .txpause = 1, + .rxpause = 1, + }, +}; + +static struct mdio_board_info nbg6716_mdio0_info[] = { + { + .bus_id = "ag71xx-mdio.0", + .phy_addr = 0, + .platform_data = &nbg6716_ar8327_data, + }, +}; + +static void nbg6716_get_mac(const char *name, char *mac) +{ + u8 *nvram = (u8 *) KSEG1ADDR(0x1f040000); + int err; + + err = ath79_nvram_parse_mac_addr(nvram, 0x10000, + name, mac); + if (err) + pr_err("no MAC address found for %s\n", name); +} + +static void __init nbg6716_gmac_setup(void) +{ + void __iomem *base; + u32 t; + + base = ioremap(QCA955X_GMAC_BASE, QCA955X_GMAC_SIZE); + + t = __raw_readl(base + QCA955X_GMAC_REG_ETH_CFG); + + t &= ~(QCA955X_ETH_CFG_RGMII_EN | QCA955X_ETH_CFG_GE0_SGMII); + t |= QCA955X_ETH_CFG_RGMII_EN; + + __raw_writel(t, base + QCA955X_GMAC_REG_ETH_CFG); + + iounmap(base); +} + +static void __init nbg6716_common_setup(void) +{ + u8 *art = (u8 *) KSEG1ADDR(0x1f050000); + u8 tmpmac[ETH_ALEN]; + + ath79_register_m25p80(NULL); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(nbg6716_leds_gpio), + nbg6716_leds_gpio); + ath79_register_gpio_keys_polled(-1, NBG6716_KEYS_POLL_INTERVAL, + ARRAY_SIZE(nbg6716_gpio_keys), + nbg6716_gpio_keys); + + ath79_nfc_set_ecc_mode(AR934X_NFC_ECC_HW); + ath79_register_nfc(); + + ath79_register_usb(); + + nbg6716_get_mac("ethaddr=", tmpmac); + + ath79_register_wmac(art + NBG6716_WMAC_CALDATA_OFFSET, tmpmac); + + nbg6716_gmac_setup(); + + ath79_register_mdio(0, 0x0); + + ath79_init_mac(ath79_eth0_data.mac_addr, tmpmac, 2); + ath79_init_mac(ath79_eth1_data.mac_addr, tmpmac, 3); + + mdiobus_register_board_info(nbg6716_mdio0_info, + ARRAY_SIZE(nbg6716_mdio0_info)); + + /* GMAC0 is connected to the RMGII interface */ + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; + ath79_eth0_data.phy_mask = BIT(0); + ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev; + + ath79_register_eth(0); + + /* GMAC1 is connected tot eh SGMII interface */ + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_SGMII; + ath79_eth1_data.speed = SPEED_1000; + ath79_eth1_data.duplex = DUPLEX_FULL; + + ath79_register_eth(1); +} + +static void __init nbg6716_010_setup(void) +{ + u8 *art = (u8 *) KSEG1ADDR(0x1f050000); + + /* GMAC0 of the AR8337 switch is connected to GMAC0 via RGMII */ + nbg6716_ar8327_pad0_cfg.mode = AR8327_PAD_MAC_RGMII; + nbg6716_ar8327_pad0_cfg.txclk_delay_en = true; + nbg6716_ar8327_pad0_cfg.rxclk_delay_en = true; + nbg6716_ar8327_pad0_cfg.txclk_delay_sel = AR8327_CLK_DELAY_SEL1; + nbg6716_ar8327_pad0_cfg.rxclk_delay_sel = AR8327_CLK_DELAY_SEL2; + + /* GMAC6 of the AR8337 switch is connected to GMAC1 via SGMII */ + nbg6716_ar8327_pad6_cfg.mode = AR8327_PAD_MAC_SGMII; + nbg6716_ar8327_pad6_cfg.rxclk_delay_en = true; + nbg6716_ar8327_pad6_cfg.rxclk_delay_sel = AR8327_CLK_DELAY_SEL0; + + ath79_eth0_pll_data.pll_1000 = 0xa6000000; + ath79_eth1_pll_data.pll_1000 = 0x03000101; + + nbg6716_common_setup(); + ap91_pci_init(art + NBG6716_PCIE_CALDATA_OFFSET, NULL); +} + +MIPS_MACHINE(ATH79_MACH_NBG6716, "NBG6716", + "Zyxel NBG6716", + nbg6716_010_setup); + diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile index b2b1706..5e2792c 100644 --- a/target/linux/ar71xx/image/Makefile +++ b/target/linux/ar71xx/image/Makefile @@ -243,6 +243,8 @@ wndr4300_mtdlayout=mtdparts=ar934x-nfc:256k(u-boot)ro,256k(u-boot-env)ro,256k(ca zcn1523h_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6208k(rootfs),1472k(kernel),64k(configure)ro,64k(mfg)ro,64k(art)ro,7680k@0x50000(firmware) mynet_n600_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(devdata)ro,64k(devconf)ro,15872k(firmware),64k(radiocfg)ro mynet_rext_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,7808k(firmware),64k(nvram)ro,64k(ART)ro,6848k@0x130000(filesystem) +zyx_nbg6716_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(env)ro,64k(RFdata)ro,-(nbu);ar934x-nfc:2048k(zyxel_rfsd),2048k(romd),1024k(header),2048k(kernel),-(ubiroot) + define Image/BuildKernel cp $(KDIR)/vmlinux.elf $(VMLINUX).elf @@ -838,6 +840,43 @@ ifdef CONFIG_PACKAGE_uboot-ar71xx-nbg460n_550n_550nh endif +define Image/Build/ZyXELNAND/buildkernel + $(eval kernelsize=$(call mtdpartsize,kernel,$(5))) + $(call MkuImageLzma,$(2),$(3) $(5) $(6)) + mkdir -p $(KDIR_TMP)/$(2)/image/boot + cp $(KDIR_TMP)/vmlinux-$(2).uImage $(KDIR_TMP)/$(2)/image/boot/vmlinux.lzma.uImage + $(STAGING_DIR_HOST)/bin/mkfs.jffs2 \ + --pad=$(kernelsize) --big-endian --squash-uids -v -e 128KiB \ + -o $(KDIR_TMP)/$(2)-kernel.jffs2 \ + -d $(KDIR_TMP)/$(2)/image \ + 2>&1 1>/dev/null | awk '/^.+$$$$/' + -rm -rf $(KDIR_TMP)/$(2) +endef + +define Image/Build/ZyXELNAND + if [ "$(1)" != "squashfs" ]; then \ + echo Only squashfs is supported; \ + return 0; \ + fi + $(eval firmwaresize=$(call mtdpartsize,firmware,$(4))) + $(eval kernelsize=$(call mtdpartsize,kernel,$(4))) + $(eval imageraw=$(KDIR_TMP)/$(2)-raw.img) + $(CP) $(KDIR)/root.$(1) $(KDIR_TMP)/ubi_root.img + echo -ne '\xde\xad\xc0\xde' > $(KDIR_TMP)/jffs2.eof + $(call ubinize,ubinize-$(2).ini,$(KDIR_TMP),$(KDIR_TMP)/$(2)-root.ubi,128KiB,2048,-E 5) + ( \ + dd if=$(KDIR_TMP)/$(2)-kernel.jffs2; \ + dd if=$(KDIR_TMP)/$(2)-root.ubi \ + ) > $(imageraw) + dd if=$(imageraw) of=$(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1)-factory.bin \ + bs=128k conv=sync + ( \ + dd if=$(KDIR_TMP)/$(2)-kernel.jffs2; \ + dd if=$(KDIR)/root.$(1) bs=128k conv=sync \ + ) > $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1)-sysupgrade.bin +endef + + Image/Build/OpenMesh/buildkernel=$(call MkuImageLzma,$(2)) define Image/Build/OpenMesh @@ -1122,8 +1161,11 @@ endif # ifeq ($(SUBTARGET),generic) ifeq ($(SUBTARGET),nand) $(eval $(call SingleProfile,NetgearNAND,64k,WNDR4300,wndr4300,WNDR4300,ttyS0,115200,$$(wndr4300_mtdlayout),0x33373033,WNDR4300,"",-H 29763948+0+128+128+2x2+3x3)) +$(eval $(call SingleProfile,ZyXELNAND,128k,NBG6716,nbg6716,NBG6716,ttyS0,115200,NBG6716,$$(zyx_nbg6716_mtdlayout),ubi.mtd=ubiroot mem=256M)) endif # ifeq ($(SUBTARGET),nand) +ifeq ($(SUBTARGET),zyxelnand) +endif # ifeq ($(SUBTARGET),zyxeland) $(eval $(call MultiProfile,Default,$(SINGLE_PROFILES))) diff --git a/target/linux/ar71xx/image/ubinize-nbg6716.ini b/target/linux/ar71xx/image/ubinize-nbg6716.ini new file mode 100644 index 0000000..ec8d7c7 --- /dev/null +++ b/target/linux/ar71xx/image/ubinize-nbg6716.ini @@ -0,0 +1,29 @@ +[rootfs] +# Volume mode (other option is static) +mode=ubi +# Source image +image=ubi_root.img +# Volume ID in UBI image +vol_id=0 +# Allow for dynamic resize +vol_type=dynamic +# Volume name +vol_name=rootfs +# Autoresize volume at first mount +# vol_flags=autoresize +vol_size=40MiB + +[rootfs_data] +# Volume mode (other option is static) +mode=ubi +# Source image +image=jffs2.eof +# Volume ID in UBI image +vol_id=1 +# Allow for dynamic resize +vol_type=dynamic +# Volume name +vol_name=rootfs_data +# Autoresize volume at first mount +vol_size=100MiB +#vol_flags=autoresize diff --git a/target/linux/ar71xx/nand/config-default b/target/linux/ar71xx/nand/config-default index 38e7a51..a94b797 100644 --- a/target/linux/ar71xx/nand/config-default +++ b/target/linux/ar71xx/nand/config-default @@ -82,7 +82,7 @@ CONFIG_CMDLINE="rootfstype=squashfs noinitrd" # CONFIG_MICREL_PHY is not set # CONFIG_MTD_CFI is not set CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_M25P80 is not set +CONFIG_MTD_M25P80=y CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_4=y # CONFIG_MTD_MYLOADER_PARTS is not set @@ -104,6 +104,6 @@ CONFIG_MTD_UBI_WL_THRESHOLD=4096 # CONFIG_SOC_AR71XX is not set # CONFIG_SOC_AR724X is not set # CONFIG_SOC_AR913X is not set -# CONFIG_SPI_ATH79 is not set +CONFIG_SPI_ATH79=y # CONFIG_SPI_BITBANG is not set # CONFIG_UBIFS_FS is not set diff --git a/target/linux/ar71xx/nand/profiles/zyxel.mk b/target/linux/ar71xx/nand/profiles/zyxel.mk new file mode 100644 index 0000000..ec813e5 --- /dev/null +++ b/target/linux/ar71xx/nand/profiles/zyxel.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/NBG6716 + NAME:=Zyxel NBG 6716 + PACKAGES:=kmod-rtc-pcf8563 kmod-ath10k +endef + +define Profile/NBG6716/Description + Package set optimized for the Zyxel NBG 6716 Routers. +endef + +$(eval $(call Profile,NBG6716)) + diff --git a/target/linux/ar71xx/patches-3.10/704-MIPS-ath79-add-NBG6716.patch b/target/linux/ar71xx/patches-3.10/704-MIPS-ath79-add-NBG6716.patch new file mode 100644 index 0000000..f9f8deb --- /dev/null +++ b/target/linux/ar71xx/patches-3.10/704-MIPS-ath79-add-NBG6716.patch @@ -0,0 +1,37 @@ +--- a/arch/mips/ath79/Makefile 2014-03-19 21:43:01.000000000 +0100 ++++ b/arch/mips/ath79/Makefile 2014-03-19 21:43:26.000000000 +0100 +@@ -127,3 +127,4 @@ obj-$(CONFIG_ATH79_MACH_WZR_HP_AG300H) + + obj-$(CONFIG_ATH79_MACH_WZR_HP_G450H) += mach-wzr-hp-g450h.o + obj-$(CONFIG_ATH79_MACH_ZCN_1523H) += mach-zcn-1523h.o + obj-$(CONFIG_ATH79_MACH_CARAMBOLA2) += mach-carambola2.o ++obj-$(CONFIG_ATH79_MACH_NBG6716) += mach-nbg6716.o +--- a/arch/mips/ath79/machtypes.h 2014-03-19 22:03:52.000000000 +0100 ++++ b/arch/mips/ath79/machtypes.h 2014-03-19 22:04:33.000000000 +0100 +@@ -61,6 +61,7 @@ enum ath79_mach_type { + ATH79_MACH_MZK_W04NU, /* Planex MZK-W04NU */ + ATH79_MACH_MZK_W300NH, /* Planex MZK-W300NH */ + ATH79_MACH_NBG460N, /* Zyxel NBG460N/550N/550NH */ ++ ATH79_MACH_NBG6716, /* Zyxel NBG6716 */ + ATH79_MACH_OM2P_HS, /* OpenMesh OM2P-HS */ + ATH79_MACH_OM2P_LC, /* OpenMesh OM2P-LC */ + ATH79_MACH_OM2P, /* OpenMesh OM2P */ +--- a/arch/mips/ath79/Kconfig 2014-03-19 22:21:13.000000000 +0100 ++++ b/arch/mips/ath79/Kconfig 2014-03-19 22:22:35.000000000 +0100 +@@ -869,6 +869,17 @@ config ATH79_MACH_NBG460N + select ATH79_DEV_M25P80 + select ATH79_DEV_WMAC + ++config ATH79_MACH_NBG6716 ++ bool "Zyxel NBG6717 board support" ++ select SOC_QCA955X ++ select ATH79_DEV_ETH ++ select ATH79_DEV_GPIO_BUTTONS ++ select ATH79_DEV_LEDS_GPIO ++ select ATH79_DEV_SPI ++ select ATH79_DEV_NFC ++ select ATH79_DEV_USB ++ select ATH79_DEV_WMAC ++ + config ATH79_MACH_CARAMBOLA2 + bool "8devices Carambola2 board" + select SOC_AR933X -- 1.7.10.4 _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
