From 443abb8ccd669db524317d8b797b0d6e4beebd6b Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Thu, 5 Oct 2017 14:26:23 +0200 Subject: [PATCH] ar71xx: add support for Mikrotik RB750P-PBr2 Specifications: - SoC: Qualcomm QCA9531 (650MHz) - RAM: 64MB - Storage: 16MB NOR SPI flash - Ethernet: 5x100M (1 PoE in, 4 PoE out) - Outdoor use ready This ethernet router is based on the same platform as the hEX PoE lite. Installation 1. login to the Mikrotik WebUI to backup your licence keys 2. setup a DHCP/BOOTP Server with: * DHCP-Option 66 (TFTP server name) pointing to a local TFTP Server within the same subnet of the DHCP range * DHCP-Option 67 (Bootfile-Name) matching the initramfs filename of the to be booted image 3. connect the port labled internet to your local network 4. keep the reset button pushed down and power on the board The board should load and start the initramfs image from the TFTP Server. Login as root/without password to the started LEDE via ssh listing on IPv4 address 192.168.1.1. Use sysupgrade to install LEDE. Revert to RouterOS Use the "rbcfg" package on in LEDE: * rbcfg set boot_protocol bootp * rbcfg set boot_device ethnand * rbcfg apply Open Netinstall and reboot routerboard. Now netinstall sees routerboard and you can install RouterOS. If NetInstall gets stuck on Sending offer just wait for it to timeout and then close and open Netinstall again. Click on install again. In order for RouterOS to function properly, you need to restore license for the device. You can do that by including license in NetInstall Signed-off-by: Robert Marko --- target/linux/ar71xx/base-files/etc/board.d/01_leds | 1 + target/linux/ar71xx/base-files/etc/board.d/02_network | 1 + .../linux/ar71xx/base-files/etc/board.d/03_gpio_switches | 3 +++ target/linux/ar71xx/base-files/etc/diag.sh | 1 + target/linux/ar71xx/base-files/lib/ar71xx.sh | 3 +++ target/linux/ar71xx/base-files/lib/upgrade/platform.sh | 2 ++ target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt | 1 + target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c | 8 +++++++- target/linux/ar71xx/image/mikrotik.mk | 2 +- 9 files changed, 20 insertions(+), 2 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 51d21ca917..80d195301b 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds @@ -267,6 +267,7 @@ rb-750) ucidef_set_led_switch "port5" "port5" "rb750:green:port5" "switch0" "0x02" ;; rb-750-r2|\ +rb-750p-pbr2|\ rb-750up-r2) ucidef_set_led_timer "user" "USER" "rb:green:user" "1000" "1000" ucidef_set_led_netdev "port1" "port1" "rb:green:port1" "eth0" 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 39e819fd3d..d83835204a 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/02_network +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network @@ -160,6 +160,7 @@ ar71xx_setup_interfaces() ucidef_set_interfaces_lan_wan "eth1" "eth0" ;; rb-750-r2|\ + rb-750p-pbr2|\ rb-750up-r2) ucidef_set_interfaces_lan_wan "eth1.1" "eth0" ucidef_add_switch "switch0" \ diff --git a/target/linux/ar71xx/base-files/etc/board.d/03_gpio_switches b/target/linux/ar71xx/base-files/etc/board.d/03_gpio_switches index add7e47e85..360a45f695 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/03_gpio_switches +++ b/target/linux/ar71xx/base-files/etc/board.d/03_gpio_switches @@ -32,6 +32,9 @@ rb-952ui-5ac2nd) ucidef_add_gpio_switch "usb_power_switch" "USB Power Switch" "45" "1" ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "14" ;; +rb-750p-pbr2) + ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "14" + ;; esac board_config_flush diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index 6794d89115..ade726f726 100644 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -316,6 +316,7 @@ get_status_led() { status_led="rb750:green:act" ;; rb-750-r2|\ + rb-750p-pbr2|\ rb-750up-r2|\ rb-911g-2hpnd|\ rb-911g-5hpacd|\ diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index 0bd96c0651..835ced67f3 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -911,6 +911,9 @@ ar71xx_board_detect() { *"RouterBOARD 750GL") name="rb-750gl" ;; + *"RouterBOARD 750P r2") + name="rb-750p-pbr2" + ;; *"RouterBOARD 750UP r2") name="rb-750up-r2" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 65d90d4009..778faeda5a 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -655,6 +655,7 @@ platform_check_image() { # these boards use metadata images fritz300e|\ rb-750-r2|\ + rb-750p-pbr2|\ rb-750up-r2|\ rb-941-2nd|\ rb-951ui-2nd|\ @@ -712,6 +713,7 @@ platform_pre_upgrade() { nand_do_upgrade "$1" ;; rb-750-r2|\ + rb-750p-pbr2|\ rb-750up-r2|\ rb-941-2nd|\ rb-951ui-2nd|\ diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt index 173de346f1..454aee6268 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt +++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt @@ -1008,6 +1008,7 @@ config ATH79_MACH_RBSPI MikroTik RouterBOARD hAP ac lite MikroTik RouterBOARD hEX PoE lite MikroTik RouterBOARD hEX lite + MikroTik RouterBOARD Powerbox MikroTik RouterBOARD LHG 5 MikroTik RouterBOARD cAP (EXPERIMENTAL) MikroTik RouterBOARD mAP (EXPERIMENTAL) 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 58e3138b5d..4cdc171de1 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c @@ -7,6 +7,7 @@ * - MikroTik RouterBOARD 952Ui-5ac2nD * - MikroTik RouterBOARD 962UiGS-5HacT2HnT * - MikroTik RouterBOARD 750UP r2 + * - MikroTik RouterBOARD 750P-PBr2 * - MikroTik RouterBOARD 750 r2 * - MikroTik RouterBOARD LHG 5nD * @@ -763,7 +764,8 @@ static void __init rb952_setup(void) * Init the hEX (PoE) lite hardware (QCA953x). * The 750UP r2 (hEX PoE lite) is nearly identical to the hAP, only without * WLAN. The 750 r2 (hEX lite) is nearly identical to the 750UP r2, only - * without USB and POE. It shares the same bootloader board identifier. + * without USB and POE. The 750P Pbr2 (Powerbox) is nearly identical to hEX PoE + * lite, only without USB. It shares the same bootloader board identifier. */ static void __init rb750upr2_setup(void) { @@ -776,6 +778,10 @@ static void __init rb750upr2_setup(void) if (strstr(mips_get_machine_name(), "750UP r2")) flags |= RBSPI_HAS_USB | RBSPI_HAS_POE; + /* differentiate the Powerbox from the hEX lite */ + else if (strstr(mips_get_machine_name(), "750P r2")) + flags |= RBSPI_HAS_POE; + rbspi_952_750r2_setup(flags); } diff --git a/target/linux/ar71xx/image/mikrotik.mk b/target/linux/ar71xx/image/mikrotik.mk index 9ba0f0f276..8f7d7cce98 100644 --- a/target/linux/ar71xx/image/mikrotik.mk +++ b/target/linux/ar71xx/image/mikrotik.mk @@ -30,7 +30,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-941-2nd rb-951ui-2nd rb-952ui-5ac2nd rb-962uigs-5hact2hnt rb-lhg-5nd rb-mapl-2nd + 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-mapl-2nd IMAGE/sysupgrade.bin := append-kernel | kernel2minor -s 1024 -e | pad-to $$$$(BLOCKSIZE) | \ append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) endef