ramips: Add support for Mikrotik RouterBOARD RBM33g
This commit adds support for the Mikrotik RouterBOARD RBM33g. =Hardware= The RBM33g is a mt7621 based device featuring three gigabit ports, 2 miniPCIe slots with sim card sockets, 1 M.2 slot, 1 USB 3.0 port and a male onboard RS-232 serial port. Additionally there are a lot of accessible GPIO ports and additional buses like i2c, mdio, spi and uart. ==Switch== The three Ethernet ports are all connected to the internal switch of the mt7621 SoC: port 0: Ethernet Port next to barrel jack with PoE printed on it port 1: Innermost Ethernet Port on opposite side of RS-232 port port 2: Outermost Ethernet Port on opposite side of RS-232 port port 6: CPU ==Flash== The device has two spi flash chips. The first flash chips is rather small (512 kB), connected to CS0 by default and contains only the RouterBOOT bootloader and some factory information (e.g. mac address). The second chip has a size of 16 MB, is by default connected to CS1 and contains the firmware image. ==PCIe== The board features three PCIe-enabled slots. Two of them are miniPCIe slots (PCIe0, PCIe1) and one is a M.2 (Key M) slot (PCIe2). Each of the miniPCIe slots is connected to a dedicated mini SIM socket on the back of the board. Power to all three PCIe-enabled slots is controlled via GPIOs on the mt7621 SoC: PCIe0: GPIO9 PCIe1: GPIO10 PCIe2: GPIO11 ==USB== The board has one external USB 3.0 port at the rear. Additionally PCIe port 0 has a permanently enabled USB interface. PCIe slot 1 shares its USB interface with the rear USB port. Thus only either the rear USB port or the USB interface of PCIe slot 1 can be active at the same time. The jumper next to the rear USB port controls which one is active: open: USB on PCIe 1 is active closed: USB on rear USB port is active ==Power== The board can accept both, passive PoE and external power via a 2.1 mm barrel jack. The input voltage range is 11-32 V. =Installation= ==Prerequisites== A USB -> RS-232 Adapter and a null modem cable are required for installation. To install an OpenWRT image to the device two components must be built: 1. A openwrt initramfs image 2. A openwrt sysupgrade image ===initramfs & sysupgrade image=== Select target devices "Mikrotik RBM33G" in openwrt menuconfig and build the images. This will create the images "openwrt-ramips-mt7621-mikrotik_rbm33g-initramfs-kernel.bin" and "openwrt-ramips-mt7621-mikrotik_rbm33g-squashfs-sysupgrade.bin" in the output directory. ==Installing== **Make sure to back up your RouterOS license in case you do ever want to go back to RouterOS using "/system license output" and back up the created license file.** Serial settings: 115200 8N1 The installation is a two-step process. First the "openwrt-ramips-mt7621-mikrotik_rbm33g-initramfs-kernel.bin" must be booted via tftp: 1. Set up a dhcp server that points the bootfile to tftp server serving the "openwrt-ramips-mt7621-mikrotik_rbm33g-initramfs-kernel.bin" initramfs image 2. Connect to WAN port (left side, next to sys-LED and power indicator) 3. Connect to serial port of board 4. Power on board and enter RouterBOOT setup menu 5. Set boot device to "boot over ethernet" 6. Set boot protocol to "dhcp protocol" (can be omitted if DHCP server allows dynamic bootp) 6. Save config 7. Wait for board to boot via Ethernet On the serial port you should now be presented with the OpenWRT boot log. The next steps will install OpenWRT persistently. 1. Copy "openwrt-ramips-mt7621-mikrotik_rbm33g-squashfs-sysupgrade.bin" to the device using scp. 2. Write openwrt to flash using "sysupgrade openwrt-ramips-mt7621-mikrotik_rbm33g-squashfs-sysupgrade.bin" Once the flashing completes reboot the router and let it boot from flash. It should boot straight to OpenWRT. Signed-off-by: Tobias Schramm <tobleminer@gmail.com>
This commit is contained in:
parent
c0167abcb0
commit
5684d08741
7 changed files with 187 additions and 1 deletions
|
@ -199,6 +199,7 @@ ramips_setup_interfaces()
|
||||||
jhr-n805r|\
|
jhr-n805r|\
|
||||||
jhr-n825r|\
|
jhr-n825r|\
|
||||||
jhr-n926r|\
|
jhr-n926r|\
|
||||||
|
mikrotik,rbm33g|\
|
||||||
mzk-wdpr|\
|
mzk-wdpr|\
|
||||||
rb750gr3|\
|
rb750gr3|\
|
||||||
rt-n14u|\
|
rt-n14u|\
|
||||||
|
|
|
@ -207,6 +207,9 @@ get_status_led() {
|
||||||
m4-8M)
|
m4-8M)
|
||||||
status_led="m4:blue:status"
|
status_led="m4:blue:status"
|
||||||
;;
|
;;
|
||||||
|
mikrotik,rbm33g)
|
||||||
|
status_led="rbm33g:green:usr"
|
||||||
|
;;
|
||||||
miwifi-mini|\
|
miwifi-mini|\
|
||||||
zte-q7)
|
zte-q7)
|
||||||
status_led="$boardname:red:status"
|
status_led="$boardname:red:status"
|
||||||
|
|
|
@ -295,6 +295,7 @@ platform_check_image() {
|
||||||
nand_do_platform_check "$board" "$1"
|
nand_do_platform_check "$board" "$1"
|
||||||
return $?;
|
return $?;
|
||||||
;;
|
;;
|
||||||
|
mikrotik,rbm33g|\
|
||||||
re350-v1)
|
re350-v1)
|
||||||
[ "$magic" != "01000000" ] && {
|
[ "$magic" != "01000000" ] && {
|
||||||
echo "Invalid image type."
|
echo "Invalid image type."
|
||||||
|
@ -316,6 +317,16 @@ platform_check_image() {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
platform_pre_upgrade() {
|
||||||
|
local board=$(board_name)
|
||||||
|
|
||||||
|
case "$board" in
|
||||||
|
mikrotik,rbm33g)
|
||||||
|
[ -z "$(rootfs_type)" ] && mtd erase firmware
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
platform_nand_pre_upgrade() {
|
platform_nand_pre_upgrade() {
|
||||||
local board=$(board_name)
|
local board=$(board_name)
|
||||||
|
|
||||||
|
|
156
target/linux/ramips/dts/RBM33G.dts
Normal file
156
target/linux/ramips/dts/RBM33G.dts
Normal file
|
@ -0,0 +1,156 @@
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "mt7621.dtsi"
|
||||||
|
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
compatible = "mikrotik,rbm33g", "mediatek,mt7621-soc";
|
||||||
|
model = "MikroTik RBM33G";
|
||||||
|
|
||||||
|
memory@0 {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x0 0x10000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
bootargs = "console=ttyS0,115200";
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio-leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
usr {
|
||||||
|
label = "rbm33g:green:usr";
|
||||||
|
gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio-keys-polled {
|
||||||
|
compatible = "gpio-keys-polled";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
poll-interval = <20>;
|
||||||
|
|
||||||
|
res {
|
||||||
|
label = "res";
|
||||||
|
gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
|
||||||
|
linux,code = <KEY_RESTART>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pcie0_vcc_reg {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "pcie0_vcc";
|
||||||
|
|
||||||
|
regulator-min-microvolt = <3300000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>;
|
||||||
|
enable-active-high;
|
||||||
|
regulator-boot-on;
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
pcie1_vcc_reg {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "pcie1_vcc";
|
||||||
|
|
||||||
|
regulator-min-microvolt = <3300000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>;
|
||||||
|
enable-active-high;
|
||||||
|
regulator-boot-on;
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
pcie2_vcc_reg {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "pcie2_vcc";
|
||||||
|
|
||||||
|
regulator-min-microvolt = <3300000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
|
||||||
|
enable-active-high;
|
||||||
|
regulator-boot-on;
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
usb_vcc_reg {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "usb_vcc";
|
||||||
|
|
||||||
|
regulator-min-microvolt = <5000000>;
|
||||||
|
regulator-max-microvolt = <5000000>;
|
||||||
|
gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
|
||||||
|
enable-active-high;
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
w25q40@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "jedec,spi-nor";
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <3125000>;
|
||||||
|
|
||||||
|
partition@0 {
|
||||||
|
label = "routerboot";
|
||||||
|
reg = <0x0 0xf000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
factory: partition@f000 {
|
||||||
|
label = "factory";
|
||||||
|
reg = <0xf000 0x71000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
w25q128@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "jedec,spi-nor";
|
||||||
|
reg = <1>;
|
||||||
|
spi-max-frequency = <3125000>;
|
||||||
|
|
||||||
|
partition@40000 {
|
||||||
|
label = "firmware";
|
||||||
|
reg = <0x040000 0xFC0000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ðernet {
|
||||||
|
mtd-mac-address = <&factory 0x0010>;
|
||||||
|
mtd-mac-address-increment = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
&pinctrl {
|
||||||
|
state_default: pinctrl0 {
|
||||||
|
gpio {
|
||||||
|
ralink,group = "uart2", "wdt";
|
||||||
|
ralink,function = "gpio";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdhci {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&pcie {
|
||||||
|
status = "okay";
|
||||||
|
};
|
|
@ -233,6 +233,20 @@ define Device/rb750gr3
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += rb750gr3
|
TARGET_DEVICES += rb750gr3
|
||||||
|
|
||||||
|
define Device/mikrotik_rbm33g
|
||||||
|
DTS := RBM33G
|
||||||
|
BLOCKSIZE := 64k
|
||||||
|
IMAGE_SIZE := 16128k
|
||||||
|
DEVICE_TITLE := MikroTik RBM33G
|
||||||
|
DEVICE_PACKAGES := kmod-usb3
|
||||||
|
LOADER_TYPE := elf
|
||||||
|
PLATFORM := mt7621
|
||||||
|
KERNEL := kernel-bin | patch-dtb | lzma | loader-kernel
|
||||||
|
IMAGE/sysupgrade.bin := append-kernel | kernel2minor -s 1024 | pad-to $$$$(BLOCKSIZE) | \
|
||||||
|
append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += mikrotik_rbm33g
|
||||||
|
|
||||||
define Device/re350-v1
|
define Device/re350-v1
|
||||||
DTS := RE350
|
DTS := RE350
|
||||||
DEVICE_TITLE := TP-LINK RE350 v1
|
DEVICE_TITLE := TP-LINK RE350 v1
|
||||||
|
|
|
@ -172,6 +172,7 @@ CONFIG_MTD_NAND_ECC=y
|
||||||
CONFIG_MTD_PHYSMAP=y
|
CONFIG_MTD_PHYSMAP=y
|
||||||
CONFIG_MTD_SPI_NOR=y
|
CONFIG_MTD_SPI_NOR=y
|
||||||
CONFIG_MTD_SPLIT_FIRMWARE=y
|
CONFIG_MTD_SPLIT_FIRMWARE=y
|
||||||
|
CONFIG_MTD_SPLIT_MINOR_FW=y
|
||||||
CONFIG_MTD_SPLIT_SEAMA_FW=y
|
CONFIG_MTD_SPLIT_SEAMA_FW=y
|
||||||
CONFIG_MTD_SPLIT_TPLINK_FW=y
|
CONFIG_MTD_SPLIT_TPLINK_FW=y
|
||||||
CONFIG_MTD_SPLIT_TRX_FW=y
|
CONFIG_MTD_SPLIT_TRX_FW=y
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
SUBTARGET:=mt7621
|
SUBTARGET:=mt7621
|
||||||
BOARDNAME:=MT7621 based boards
|
BOARDNAME:=MT7621 based boards
|
||||||
FEATURES+=nand ramdisk rtc usb
|
FEATURES+=nand ramdisk rtc usb minor
|
||||||
CPU_TYPE:=24kc
|
CPU_TYPE:=24kc
|
||||||
|
|
||||||
define Target/Description
|
define Target/Description
|
||||||
|
|
Loading…
Reference in a new issue