[OpenWrt-Devel] [PATCH v3] ar71xx: Add support for MikroTik RouterBOARD SXT Lite
John Crispin
john at phrozen.org
Wed Jun 18 05:57:53 EDT 2014
Hi,
this patch is generated against the wrong root directory making "git
am" fail. i had to use patch -p0 to manually apply it. Please make
sure to send a valid patch the next time.
John
On 11/06/2014 23:05, Matthew Reeve wrote:
> This patch adds support for the MikroTik RouterBOARD SXT Lite.
>
> The new RB911L series is also supported as a result.
>
> v2 of this patch fixes the wmac offset to match what is on the
> sticker. v3 refreshes the patch against r41148 and defines the
> power led as the status led in diag.sh
>
> Signed-off-by: Matthew Reeve <mreeve at tenxnetworks.com>
>
> ---
> target/linux/ar71xx/patches-3.10/712-MIPS-ath79-add-RBSXTLite-support.patch
>
>
2014-05-12 18:49:06.902842033 +0000 +++
> target/linux/ar71xx/patches-3.10/712-MIPS-ath79-add-RBSXTLite-support.patch
>
>
2014-05-21 20:34:52.209118569 +0000 @@ -0,0 +1,38 @@ +---
> a/arch/mips/ath79/Kconfig 2014-05-21 20:25:24.801106234 +0000 ++++
> b/arch/mips/ath79/Kconfig 2014-05-21 20:28:20.489109814 +0000 +@@
> -442,6 +442,14 @@ config ATH79_MACH_RB2011 + select
> ATH79_ROUTERBOOT + select RLE_DECOMPRESS + ++config
> ATH79_MACH_RBSXTLITE ++ bool "MikroTik RouterBOARD SXT Lite" ++
> select SOC_AR934x ++ select ATH79_DEV_ETH ++ select ATH79_DEV_NFC
> ++ select ATH79_DEV_WMAC ++ select ATH79_ROUTERBOOT ++ + config
> ATH79_MACH_WNDAP360 + bool "NETGEAR WNDAP360 board support" +
> select SOC_AR71XX +--- a/arch/mips/ath79/machtypes.h 2014-05-21
> 20:25:24.801106234 +0000 ++++ b/arch/mips/ath79/machtypes.h
> 2014-05-21 20:30:04.829111865 +0000 +@@ -91,6 +91,8 @@ enum
> ath79_mach_type { + ATH79_MACH_RB_2011G, /* Mikrotik RouterBOARD
> 2011UAS-2HnD */ + ATH79_MACH_RB_2011L, /* Mikrotik RouterBOARD
> 2011L */ + ATH79_MACH_RB_2011US, /* Mikrotik RouterBOARD 2011UAS
> */ ++ ATH79_MACH_RB_SXTLITE2ND, /* Mikrotik RouterBOARD SXT Lite
> 2nD */ ++ ATH79_MACH_RB_SXTLITE5ND, /* Mikrotik RouterBOARD SXT
> Lite 5nD */ + ATH79_MACH_RW2458N, /* Redwave RW2458N */ +
> ATH79_MACH_TEW_632BRP, /* TRENDnet TEW-632BRP */ +
> ATH79_MACH_TEW_673GRU, /* TRENDnet TEW-673GRU */ +---
> a/arch/mips/ath79/Makefile 2014-05-21 20:25:24.801106234 +0000
> ++++ b/arch/mips/ath79/Makefile 2014-05-21 20:31:37.169113830 +0000
> +@@ -83,6 +83,7 @@ obj-$(CONFIG_ATH79_MACH_RB750) += mach- +
> obj-$(CONFIG_ATH79_MACH_RB91X) += mach-rb91x.o +
> obj-$(CONFIG_ATH79_MACH_RB95X) += mach-rb95x.o +
> obj-$(CONFIG_ATH79_MACH_RB2011) += mach-rb2011.o
> ++obj-$(CONFIG_ATH79_MACH_RBSXTLITE) += mach-rbsxtlite.o +
> obj-$(CONFIG_ATH79_MACH_RW2458N) += mach-rw2458n.o +
> obj-$(CONFIG_ATH79_MACH_TEW_632BRP) += mach-tew-632brp.o +
> obj-$(CONFIG_ATH79_MACH_TEW_673GRU) += mach-tew-673gru.o ---
> target/linux/ar71xx/files/arch/mips/ath79/mach-rbsxtlite.c
> 2014-05-12 18:49:06.902842033 +0000 +++
> target/linux/ar71xx/files/arch/mips/ath79/mach-rbsxtlite.c
> 2014-05-21 19:50:48.073064837 +0000 @@ -0,0 +1,238 @@ +/* + *
> MikroTik RouterBOARD SXT Lite support + * + * Copyright (C) 2012
> Stijn Tintel <stijn at linux-ipv6.be> + * Copyright (C) 2012 Gabor
> Juhos <juhosg at openwrt.org> + * Copyright (C) 2013 Vyacheslav
> Adamanov <adamanov 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. + */ + +#define pr_fmt(fmt)
> "sxtlite: " fmt + +#include <linux/phy.h> +#include <linux/delay.h>
> +#include <linux/platform_device.h> +#include
> <linux/ath9k_platform.h> +#include <linux/mtd/mtd.h> +#include
> <linux/mtd/nand.h> +#include <linux/mtd/partitions.h> +#include
> <linux/spi/spi.h> +#include <linux/spi/flash.h> +#include
> <linux/rle.h> +#include <linux/routerboot.h> +#include
> <linux/gpio.h> + +#include <asm/mach-ath79/ath79.h> +#include
> <asm/mach-ath79/ar71xx_regs.h> +#include "common.h" +#include
> "dev-ap9x-pci.h" +#include "dev-gpio-buttons.h" +#include
> "dev-leds-gpio.h" +#include "dev-eth.h" +#include "dev-m25p80.h"
> +#include "dev-nfc.h" +#include "dev-wmac.h" +#include "dev-usb.h"
> +#include "machtypes.h" +#include "routerboot.h" +#include
> <linux/ar8216_platform.h> + +#define SXTLITE_GPIO_NAND_NCE 14
> +#define SXTLITE_GPIO_LED_USER 3 +#define SXTLITE_GPIO_LED_1 13
> +#define SXTLITE_GPIO_LED_2 12 +#define SXTLITE_GPIO_LED_3 4
> +#define SXTLITE_GPIO_LED_4 21 +#define SXTLITE_GPIO_LED_5 18
> +#define SXTLITE_GPIO_LED_POWER 11 + +#define SXTLITE_GPIO_BUZZER
> 19 + +#define SXTLITE_GPIO_BTN_RESET 15 + +#define
> SXTLITE_KEYS_POLL_INTERVAL 20 +#define
> SXTLITE_KEYS_DEBOUNCE_INTERVAL (3 * SXTLITE_KEYS_POLL_INTERVAL) +
> +static struct mtd_partition rbsxtlite_nand_partitions[] = { + { +
> .name = "booter", + .offset = 0, + .size = (256 * 1024), +
> .mask_flags = MTD_WRITEABLE, + }, + { + .name = "kernel", +
> .offset = (256 * 1024), + .size = (4 * 1024 * 1024) - (256 *
> 1024), + }, + { + .name = "rootfs", + .offset =
> MTDPART_OFS_NXTBLK, + .size = MTDPART_SIZ_FULL, + }, +}; +
> +static struct gpio_led rbsxtlite_leds_gpio[] __initdata = { + { +
> .name = "rb:green:user", + .gpio = SXTLITE_GPIO_LED_USER, +
> .active_low = 1, + }, + { + .name = "rb:green:led1", + .gpio =
> SXTLITE_GPIO_LED_1, + .active_low = 1, + }, + { + .name =
> "rb:green:led2", + .gpio = SXTLITE_GPIO_LED_2, + .active_low =
> 1, + }, + { + .name = "rb:green:led3", + .gpio =
> SXTLITE_GPIO_LED_3, + .active_low = 1, + }, + { + .name =
> "rb:green:led4", + .gpio = SXTLITE_GPIO_LED_4, + .active_low =
> 1, + }, + { + .name = "rb:green:led5", + .gpio =
> SXTLITE_GPIO_LED_5, + .active_low = 1, + }, + { + .name =
> "rb:green:power", + .gpio = SXTLITE_GPIO_LED_POWER, + }, +}; +
> +static struct gpio_keys_button rbsxtlite_gpio_keys[] __initdata =
> { + { + .desc = "Reset button", + .type = EV_KEY, + .code =
> KEY_RESTART, + .debounce_interval =
> SXTLITE_KEYS_DEBOUNCE_INTERVAL, + .gpio = SXTLITE_GPIO_BTN_RESET,
> + .active_low = 0, + }, +}; + +static int __init
> rbsxtlite_rbinfo_init(void) +{ + const struct rb_info *info; + +
> info = rb_init_info((void *)(KSEG1ADDR(AR71XX_SPI_BASE)), 0x10000);
> + if (!info) + return -EINVAL; + return 0; + +} + +void __init
> rbsxtlite_wlan_init(void) +{ + char *art_buf; + u8
> wlan_mac[ETH_ALEN]; + + art_buf = rb_get_wlan_data(); + if (art_buf
> == NULL) + return; + + ath79_init_mac(wlan_mac, ath79_mac_base,
> 1); + ath79_register_wmac(art_buf + 0x1000, wlan_mac); + +
> kfree(art_buf); +} + +static void rbsxtlite_nand_select_chip(int
> chip_no) +{ + switch (chip_no) { + case 0: +
> gpio_set_value(SXTLITE_GPIO_NAND_NCE, 0); + break; + default: +
> gpio_set_value(SXTLITE_GPIO_NAND_NCE, 1); + break; + } +
> ndelay(500); +} + +static struct nand_ecclayout
> rbsxtlite_nand_ecclayout = { + .eccbytes = 6, + .eccpos = { 8, 9,
> 10, 13, 14, 15 }, + .oobavail = 9, + .oobfree = { { 0, 4 }, { 6, 2
> }, { 11, 2 }, { 4, 1 } } +}; + +static int
> rbsxtlite_nand_scan_fixup(struct mtd_info *mtd) +{ + struct
> nand_chip *chip = mtd->priv; + + if (mtd->writesize == 512) { + /*
> + * Use the OLD Yaffs-1 OOB layout, otherwise RouterBoot + * will
> not be able to find the kernel that we load. + */ +
> chip->ecc.layout = &rbsxtlite_nand_ecclayout; + } + + return 0; +}
> + +void __init rbsxtlite_gpio_init(void) +{ +
> gpio_request_one(SXTLITE_GPIO_NAND_NCE, GPIOF_OUT_INIT_HIGH, "NAND
> nCE"); +} + +void __init rbsxtlite_nand_init(void) +{ +
> ath79_nfc_set_scan_fixup(rbsxtlite_nand_scan_fixup); +
> ath79_nfc_set_parts(rbsxtlite_nand_partitions, +
> ARRAY_SIZE(rbsxtlite_nand_partitions)); +
> ath79_nfc_set_select_chip(rbsxtlite_nand_select_chip); +
> ath79_nfc_set_swap_dma(true); + ath79_register_nfc(); +} + +
> +static void __init rbsxtlite_setup(void) +{ +
> if(rbsxtlite_rbinfo_init()) + return; + rbsxtlite_nand_init(); +
> rbsxtlite_wlan_init(); + + ath79_register_leds_gpio(-1,
> ARRAY_SIZE(rbsxtlite_leds_gpio), + rbsxtlite_leds_gpio); +
> ath79_register_gpio_keys_polled(-1, SXTLITE_KEYS_POLL_INTERVAL, +
> ARRAY_SIZE(rbsxtlite_gpio_keys), + rbsxtlite_gpio_keys); + +
> ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_ONLY_MODE); + +
> ath79_register_mdio(1, 0x0); + + /* GMAC0 is left unused */ + + /*
> GMAC1 is connected to MAC0 on the internal switch */ + /* The
> ethernet port connects to PHY P0, which connects to MAC1 + on
> the internal switch */ + ath79_init_mac(ath79_eth1_data.mac_addr,
> ath79_mac_base, 0); + ath79_eth1_data.phy_if_mode =
> PHY_INTERFACE_MODE_GMII; + ath79_register_eth(1); + + +} + +
> +MIPS_MACHINE(ATH79_MACH_RB_SXTLITE2ND, "sxt2n", "Mikrotik
> RouterBOARD SXT Lite2", + rbsxtlite_setup); +
> +MIPS_MACHINE(ATH79_MACH_RB_SXTLITE5ND, "sxt5n", "Mikrotik
> RouterBOARD SXT Lite5", + rbsxtlite_setup); + ---
> target/linux/ar71xx/base-files/lib/ar71xx.sh 2014-05-21
> 19:59:33.077075183 +0000 +++
> target/linux/ar71xx/base-files/lib/ar71xx.sh 2014-05-21
> 20:38:40.797122100 +0000 @@ -451,6 +451,12 @@ ar71xx_board_detect()
> { *"RouterBOARD 2011UAS-2HnD") name="rb-2011uas-2hnd" ;; +
> *"RouterBOARD SXT Lite2") + name="rb-sxt2n" + ;; + *"RouterBOARD
> SXT Lite5") + name="rb-sxt5n" + ;; *"Rocket M") name="rocket-m" ;;
> --- target/linux/ar71xx/base-files/etc/uci-defaults/02_network
> 2014-05-21 19:59:33.121075184 +0000 +++
> target/linux/ar71xx/base-files/etc/uci-defaults/02_network
> 2014-05-21 20:39:41.449123331 +0000 @@ -245,6 +245,8 @@ eap7660d
> |\ mr600 |\ mr600v2 |\ rb-411 |\ +rb-sxt2n |\ +rb-sxt5n |\
> tl-mr10u |\ tl-mr11u |\ tl-mr13u |\ ---
> target/linux/ar71xx/config-3.10 2014-05-21 19:59:33.201075185 +0000
> +++ target/linux/ar71xx/config-3.10 2014-05-21 20:40:22.877124249
> +0000 @@ -70,6 +70,7 @@ CONFIG_ATH79_MACH_PB92=y #
> CONFIG_ATH79_MACH_RB750 is not set # CONFIG_ATH79_MACH_RB91X is
> not set # CONFIG_ATH79_MACH_RB95X is not set
> +CONFIG_ATH79_MACH_RBSXTLITE=y CONFIG_ATH79_MACH_RW2458N=y
> CONFIG_ATH79_MACH_TEW_632BRP=y CONFIG_ATH79_MACH_TEW_673GRU=y ---
> target/linux/ar71xx/base-files/etc/diag.sh 2014-06-11
> 20:57:03.325451764 +0000 +++
> target/linux/ar71xx/base-files/etc/diag.sh 2014-06-11
> 20:57:48.193452732 +0000 @@ -128,6 +128,10 @@ get_status_led() {
> rb-912uag-5hpnd) status_led="rb:green:user" ;; + rb-sxt2n|\ +
> rb-sxt5n) + status_led="rb:green:power" + ;; routerstation |
> routerstation-pro) status_led="ubnt:green:rf" ;;
> _______________________________________________ openwrt-devel
> mailing list openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
>
_______________________________________________
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