diff options
11 files changed, 123 insertions, 3 deletions
diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds index fb1f29dcfa..ecd3723c6a 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds @@ -292,6 +292,10 @@ rb-750up-r2) ucidef_set_led_switch "port4" "port3" "rb:green:port4" "switch0" "0x04" ucidef_set_led_switch "port5" "port5" "rb:green:port5" "switch0" "0x02" ;; +rb-911-2hn|\ +rb-911-5hn) + ucidef_set_led_netdev "eth" "ETH" "rb:green:eth" "eth0" + ;; rb-941-2nd) ucidef_set_led_timer "user" "USR/ACT" "rb:green:user" "1000" "1000" ;; diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network index 5a10a9f486..b0755c44dd 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/02_network +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network @@ -93,6 +93,8 @@ ar71xx_setup_interfaces() pqi-air-pen|\ rb-411|\ rb-411u|\ + rb-911-2hn|\ + rb-911-5hn|\ rb-911g-2hpnd|\ rb-911g-5hpacd|\ rb-911g-5hpnd|\ diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index 2720288e3d..4f4a73ce06 100644 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -319,6 +319,8 @@ get_status_led() { rb-750-r2|\ rb-750p-pbr2|\ rb-750up-r2|\ + rb-911-2hn|\ + rb-911-5hn|\ rb-911g-2hpnd|\ rb-911g-5hpacd|\ rb-911g-5hpnd|\ diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index b6642495de..73bdce5853 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -941,6 +941,12 @@ ar71xx_board_detect() { *"RouterBOARD 751G") name="rb-751g" ;; + *"RouterBOARD 911-2Hn") + name="rb-911-2hn" + ;; + *"RouterBOARD 911-5Hn") + name="rb-911-5hn" + ;; *"RouterBOARD 911G-2HPnD") name="rb-911g-2hpnd" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 3d7b1593e1..1f9ed76fc3 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -660,6 +660,8 @@ platform_check_image() { rb-750-r2|\ rb-750p-pbr2|\ rb-750up-r2|\ + rb-911-2hn|\ + rb-911-5hn|\ rb-941-2nd|\ rb-951ui-2nd|\ rb-952ui-5ac2nd|\ @@ -723,6 +725,8 @@ platform_pre_upgrade() { rb-750-r2|\ rb-750p-pbr2|\ rb-750up-r2|\ + rb-911-2hn|\ + rb-911-5hn|\ rb-941-2nd|\ rb-951ui-2nd|\ rb-952ui-5ac2nd|\ diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt index 3ca77550bc..caaaf97792 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt +++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt @@ -1054,6 +1054,8 @@ config ATH79_MACH_RBSPI select ATH79_ROUTERBOOT help Say 'Y' here if you want your kernel to support the + MikroTik ROuterBOARD 911-2Hn (911 Lite2) + MikroTik ROuterBOARD 911-5Hn (911 Lite5) MikroTik RouterBOARD mAP MikroTik RouterBOARD mAP lite MikroTik RouterBOARD hAP lite diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c index 25e920f593..f7f3b028f4 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c @@ -3,6 +3,8 @@ * * - MikroTik RouterBOARD mAP 2nD * - MikroTik RouterBOARD mAP L-2nD + * - MikroTik RouterBOARD 911-2Hn (911 Lite2) + * - MikroTik RouterBOARD 911-5Hn (911 Lite5) * - MikroTik RouterBOARD 941L-2nD * - MikroTik RouterBOARD 951Ui-2nD * - MikroTik RouterBOARD 952Ui-5ac2nD @@ -509,6 +511,56 @@ static struct platform_device rbwapgsc_phy_device = { }, }; +/* RB911L GPIOs */ +#define RB911L_GPIO_BTN_RESET 15 +#define RB911L_GPIO_LED_1 13 +#define RB911L_GPIO_LED_2 12 +#define RB911L_GPIO_LED_3 4 +#define RB911L_GPIO_LED_4 21 +#define RB911L_GPIO_LED_5 18 +#define RB911L_GPIO_LED_ETH 20 +#define RB911L_GPIO_LED_POWER 11 +#define RB911L_GPIO_LED_USER 3 +#define RB911L_GPIO_PIN_HOLE 14 /* for reference */ + +static struct gpio_led rb911l_leds[] __initdata = { + { + .name = "rb:green:eth", + .gpio = RB911L_GPIO_LED_ETH, + .active_low = 1, + }, { + .name = "rb:green:led1", + .gpio = RB911L_GPIO_LED_1, + .active_low = 1, + }, { + .name = "rb:green:led2", + .gpio = RB911L_GPIO_LED_2, + .active_low = 1, + }, { + .name = "rb:green:led3", + .gpio = RB911L_GPIO_LED_3, + .active_low = 1, + }, { + .name = "rb:green:led4", + .gpio = RB911L_GPIO_LED_4, + .active_low = 1, + }, { + .name = "rb:green:led5", + .gpio = RB911L_GPIO_LED_5, + .active_low = 1, + }, { + .name = "rb:green:power", + .gpio = RB911L_GPIO_LED_POWER, + .default_state = LEDS_GPIO_DEFSTATE_ON, + .open_drain = 1, + }, { + .name = "rb:green:user", + .gpio = RB911L_GPIO_LED_USER, + .active_low = 1, + .open_drain = 1, + }, +}; + static struct gen_74x164_chip_platform_data rbspi_ssr_data = { .base = RBSPI_SSR_GPIO_BASE, .num_registers = 1, @@ -1015,8 +1067,53 @@ static void __init rbwapgsc_setup(void) rbwapgsc_leds); } +/* + * Setup the 911L hardware (AR9344). + */ +static void __init rb911l_setup(void) +{ + const struct rb_info *info; + + info = rbspi_platform_setup(); + if (!info) + return; + + if (!rb_has_hw_option(info, RB_HW_OPT_NO_NAND)) { + /* + * Old hardware revisions might be equipped with a NAND flash + * chip instead of the 16MiB SPI NOR device. Those boards are + * not supported at the moment, so throw a warning and skip + * the peripheral setup to avoid messing up the data in the + * flash chip. + */ + WARN(1, "The NAND flash on this board is not supported.\n"); + } else { + rbspi_peripherals_setup(0); + } + + ath79_register_mdio(1, 0x0); + + ath79_init_mac(ath79_eth1_data.mac_addr, ath79_mac_base, 0); + + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII; + ath79_eth1_data.speed = SPEED_1000; + ath79_eth1_data.duplex = DUPLEX_FULL; + + ath79_register_eth(1); + + rbspi_wlan_init(0, 1); + + rbspi_register_reset_button(RB911L_GPIO_BTN_RESET); + + /* Make the eth LED controllable by software. */ + ath79_gpio_output_select(RB911L_GPIO_LED_ETH, AR934X_GPIO_OUT_GPIO); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(rb911l_leds), rb911l_leds); +} + MIPS_MACHINE_NONAME(ATH79_MACH_RB_MAPL, "map-hb", rbmapl_setup); MIPS_MACHINE_NONAME(ATH79_MACH_RB_941, "H951L", rbhapl_setup); +MIPS_MACHINE_NONAME(ATH79_MACH_RB_911L, "911L", rb911l_setup); MIPS_MACHINE_NONAME(ATH79_MACH_RB_952, "952-hb", rb952_setup); MIPS_MACHINE_NONAME(ATH79_MACH_RB_962, "962", rb962_setup); MIPS_MACHINE_NONAME(ATH79_MACH_RB_750UPR2, "750-hb", rb750upr2_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h index a621fe2c90..394be00c99 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h +++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h @@ -190,6 +190,7 @@ enum ath79_mach_type { ATH79_MACH_RB_750UPR2, /* MikroTik RouterBOARD 750UP r2 */ ATH79_MACH_RB_751, /* MikroTik RouterBOARD 751 */ ATH79_MACH_RB_751G, /* Mikrotik RouterBOARD 751G */ + ATH79_MACH_RB_911L, /* Mikrotik RouterBOARD 911-2Hn/911-5Hn boards */ ATH79_MACH_RB_922GS, /* Mikrotik RouterBOARD 911/922GS boards */ ATH79_MACH_RB_941, /* MikroTik RouterBOARD 941-2nD */ ATH79_MACH_RB_951G, /* Mikrotik RouterBOARD 951G */ diff --git a/target/linux/ar71xx/image/mikrotik.mk b/target/linux/ar71xx/image/mikrotik.mk index 403bcb08b5..f381f85ae2 100644 --- a/target/linux/ar71xx/image/mikrotik.mk +++ b/target/linux/ar71xx/image/mikrotik.mk @@ -40,7 +40,7 @@ define Device/rb-nor-flash-16M LOADER_TYPE := elf KERNEL_INSTALL := 1 KERNEL := kernel-bin | lzma | loader-kernel - SUPPORTED_DEVICES := rb-750-r2 rb-750up-r2 rb-750p-pbr2 rb-941-2nd rb-951ui-2nd rb-952ui-5ac2nd rb-962uigs-5hact2hnt rb-lhg-5nd rb-map-2nd rb-mapl-2nd rb-wap-2nd + SUPPORTED_DEVICES := rb-750-r2 rb-750up-r2 rb-750p-pbr2 rb-911-2hn rb-911-5hn rb-941-2nd rb-951ui-2nd rb-952ui-5ac2nd rb-962uigs-5hact2hnt rb-lhg-5nd rb-map-2nd rb-mapl-2nd rb-wap-2nd IMAGE/sysupgrade.bin := append-kernel | kernel2minor -s 1024 -e | pad-to $$$$(BLOCKSIZE) | \ append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) endef diff --git a/target/linux/ar71xx/patches-4.4/701-MIPS-ath79-add-routerboard-detection.patch b/target/linux/ar71xx/patches-4.4/701-MIPS-ath79-add-routerboard-detection.patch index 625bb19ba5..64c7e881a7 100644 --- a/target/linux/ar71xx/patches-4.4/701-MIPS-ath79-add-routerboard-detection.patch +++ b/target/linux/ar71xx/patches-4.4/701-MIPS-ath79-add-routerboard-detection.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/prom.c +++ b/arch/mips/ath79/prom.c -@@ -136,6 +136,30 @@ void __init prom_init(void) +@@ -136,6 +136,31 @@ void __init prom_init(void) initrd_end = initrd_start + fw_getenvl("initrd_size"); } #endif @@ -26,6 +26,7 @@ + strstr(arcs_cmdline, "board=2011L") || + strstr(arcs_cmdline, "board=2011r") || + strstr(arcs_cmdline, "board=711Gr100") || ++ strstr(arcs_cmdline, "board=911L") || + strstr(arcs_cmdline, "board=922gs")) + ath79_prom_append_cmdline("console", "ttyS0,115200"); } diff --git a/target/linux/ar71xx/patches-4.9/701-MIPS-ath79-add-routerboard-detection.patch b/target/linux/ar71xx/patches-4.9/701-MIPS-ath79-add-routerboard-detection.patch index 625bb19ba5..64c7e881a7 100644 --- a/target/linux/ar71xx/patches-4.9/701-MIPS-ath79-add-routerboard-detection.patch +++ b/target/linux/ar71xx/patches-4.9/701-MIPS-ath79-add-routerboard-detection.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/prom.c +++ b/arch/mips/ath79/prom.c -@@ -136,6 +136,30 @@ void __init prom_init(void) +@@ -136,6 +136,31 @@ void __init prom_init(void) initrd_end = initrd_start + fw_getenvl("initrd_size"); } #endif @@ -26,6 +26,7 @@ + strstr(arcs_cmdline, "board=2011L") || + strstr(arcs_cmdline, "board=2011r") || + strstr(arcs_cmdline, "board=711Gr100") || ++ strstr(arcs_cmdline, "board=911L") || + strstr(arcs_cmdline, "board=922gs")) + ath79_prom_append_cmdline("console", "ttyS0,115200"); } |