On 26/06/2014 21:47, 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 v4 refreshes the patch > against r41353 and fixes the patch path issue to make git am work > correctly > > Signed-off-by: Matthew Reeve <mre...@tenxnetworks.com> >
Hi, while trying to merge this i noticed that this router board is not part of the mikrotik profile. why is this so ? looking at the platform code, you do register a nand driver so the generic profile seems incorrect John > --- > trunk/target/linux/ar71xx/patches-3.10/713-MIPS-ath79-add-RBSXTLite-support.patch > 2014-05-12 18:49:06.902842033 +0000 +++ > trunk/target/linux/ar71xx/patches-3.10/713-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 +@@ > -462,6 +462,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 +@@ -93,6 +93,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 +@@ > -85,6 +85,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 --- > trunk/target/linux/ar71xx/files/arch/mips/ath79/mach-rbsxtlite.c > 2014-05-12 18:49:06.902842033 +0000 +++ > trunk/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 <st...@linux-ipv6.be> + * Copyright (C) 2012 Gabor > Juhos <juh...@openwrt.org> + * Copyright (C) 2013 Vyacheslav > Adamanov <adama...@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); + --- > trunk/target/linux/ar71xx/base-files/lib/ar71xx.sh 2014-05-21 > 19:59:33.077075183 +0000 +++ > trunk/target/linux/ar71xx/base-files/lib/ar71xx.sh 2014-05-21 > 20:38:40.797122100 +0000 @@ -466,6 +466,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" ;; --- > trunk/target/linux/ar71xx/base-files/etc/uci-defaults/02_network > 2014-05-21 19:59:33.121075184 +0000 +++ > trunk/target/linux/ar71xx/base-files/etc/uci-defaults/02_network > 2014-05-21 20:39:41.449123331 +0000 @@ -259,6 +259,8 @@ eap7660d > |\ mr600 |\ mr600v2 |\ rb-411 |\ +rb-sxt2n |\ +rb-sxt5n |\ tl-mr10u > |\ tl-mr11u |\ tl-mr13u |\ --- > trunk/target/linux/ar71xx/config-3.10 2014-05-21 19:59:33.201075185 > +0000 +++ trunk/target/linux/ar71xx/config-3.10 2014-05-21 > 20:40:22.877124249 +0000 @@ -72,6 +72,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 --- > trunk/target/linux/ar71xx/base-files/etc/diag.sh 2014-06-11 > 20:57:03.325451764 +0000 +++ > trunk/target/linux/ar71xx/base-files/etc/diag.sh 2014-06-11 > 20:57:48.193452732 +0000 @@ -135,6 +135,10 @@ get_status_led() { > rb-951ui-2hnd) status_led="rb:green:act" ;; + rb-sxt2n|\ + > rb-sxt5n) + status_led="rb:green:power" + ;; > routerstation | > routerstation-pro) status_led="ubnt:green:rf" ;; > _______________________________________________ openwrt-devel > mailing list openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel > _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel