The MikroTik RB5009UPr+S+IN is a multigig router based on the Marvell
Armada 7040 SoC, sharing the same hardware base as the RB5009UG+S+IN
with added PoE-out support on all ethernet ports.
Specification:
- SoC : Marvell Armada 7040 (88F7040), 4x Cortex-A72
- CPU frequency : 350-1400 MHz
- RAM : 1 GB
- Flash : 16 MB SPI NOR + 1 GB NAND
- Switch : Marvell MV88E6393X
- Ethernet : 1x 2.5G (p1, QCA8081), 7x 1G (p2-p8), 1x SFP+ 10G
- PoE-in : 802.3af/at on p1, 24-57V
- PoE-out : 802.3af/at on p1-p8, 130 W total
- Power : DC jack / 2-pin terminal / PoE-in, 24-57V
- USB : 1x USB 3.0 type A, max 1.5 A
- LEDs/Keys (GPIO): 4x/1x
- UART : MikroTik SPI/UART combo header (10-pin, 2.0mm pitch)
- assignment : GND Vcc Rx ? GND / CLK DO /CS Tx DI (top view)
- settings : 115200n8
Flash instruction using initramfs image:
RouterBOOT cannot boot the OpenWrt kernel directly. A U-Boot loader
(u-boot.elf) is installed as an intermediary: RouterBOOT loads
u-boot.elf, which then loads the OpenWrt initramfs image.
1. Rename the downloaded initramfs image, removing the version number,
to: openwrt-mvebu-cortexa72-mikrotik_rb5009-initramfs-uImage.itb
2. Set up a BOOTP/TFTP server serving u-boot.elf, with the renamed
initramfs image in the same directory
3. Power off the router, hold the reset button (front panel), power on
and keep holding until the initramfs image has been served, then
release
4. The router boots the initramfs image, reachable at 192.168.1.1
5. Log in via SSH, install U-Boot, wipe NAND and flash OpenWrt:
. /lib/functions.sh
yafut -d /dev/mtd$(find_mtd_index "YAFFS") -w -i /tmp/u-boot.elf -o kernel -T
ubiformat /dev/mtd$(find_mtd_index "ubi") -y
sysupgrade /tmp/openwrt-mvebu-cortexa72-mikrotik_rb5009upr-squashfs-sysupgrade.bin
Recovery:
Hold the reset button while U-Boot is booting to load the initramfs
image again. To return to RouterOS, use MikroTik Netinstall.
MAC Addresses:
MAC addresses are read from the RouterBOOT hard_config in NOR via the
macaddr_hard nvmem cell:
offset +0 p1 (2.5G, label-mac-device)
offset +1 p2
offset +2 p3
offset +3 p4
offset +4 p5
offset +5 p6
offset +6 p7
offset +7 p8
offset +8 sfp
Tested-by: Sm00shed <sm00shed@posteo.de> (RB5009UPr+S+IN, OpenWrt v25.12.4,
kernel 6.12.87, mtpoe fw 65.21)
Signed-off-by: Przemek Rudy <prudy@protonmail.com>
[carlo@common-net.org: refactor RB5009UPr+S+IN support and fix sysupgrade path]
Signed-off-by: Carlo Filippi <carlo@common-net.org>
[sm00shed@posteo.de: fix compatible indentation, remove mikrotik,rb5009, expand commit message]
Signed-off-by: Sm00shed <sm00shed@posteo.de>
Link: https://github.com/openwrt/openwrt/pull/23698
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
167 lines
5.0 KiB
Makefile
167 lines
5.0 KiB
Makefile
define Build/append-bootscript
|
|
cat $@-boot.scr >> $@
|
|
endef
|
|
|
|
define Device/UbiFit
|
|
KERNEL_IN_UBI := 1
|
|
IMAGES := factory.ubi sysupgrade.bin
|
|
IMAGE/factory.ubi := append-ubi
|
|
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
|
endef
|
|
|
|
define Device/checkpoint_v-80
|
|
$(call Device/Default-arm64)
|
|
DEVICE_VENDOR := Check Point
|
|
DEVICE_MODEL := V-80
|
|
SOC := armada-7040
|
|
BOOT_SCRIPT := v-80
|
|
IMAGES += sysupgrade.gz
|
|
IMAGE/sysupgrade.gz := boot-scr eMMC | append-bootscript | pad-to 2048 | \
|
|
append-kernel | \
|
|
sysupgrade-tar kernel=$$$$@ dtb=$$(KDIR)/image-$$(DEVICE_DTS).dtb | \
|
|
libdeflate-gzip | append-metadata
|
|
ARTIFACTS := initramfs.dtb initramfs.scr
|
|
ARTIFACT/initramfs.dtb := append-dtb
|
|
ARTIFACT/initramfs.scr := boot-scr INIT | append-bootscript
|
|
DEVICE_PACKAGES := kmod-dsa-mv88e6xxx kmod-hwmon-nct7802 kmod-rtc-ds1307
|
|
endef
|
|
TARGET_DEVICES += checkpoint_v-80
|
|
|
|
define Device/checkpoint_v-81
|
|
$(call Device/Default-arm64)
|
|
DEVICE_VENDOR := Check Point
|
|
DEVICE_MODEL := V-81
|
|
SOC := armada-8040
|
|
BOOT_SCRIPT := v-80
|
|
IMAGES += sysupgrade.gz
|
|
IMAGE/sysupgrade.gz := boot-scr eMMC | append-bootscript | pad-to 2048 | \
|
|
append-kernel | \
|
|
sysupgrade-tar kernel=$$$$@ dtb=$$(KDIR)/image-$$(DEVICE_DTS).dtb | \
|
|
libdeflate-gzip | append-metadata
|
|
ARTIFACTS := initramfs.dtb initramfs.scr
|
|
ARTIFACT/initramfs.dtb := append-dtb
|
|
ARTIFACT/initramfs.scr := boot-scr INIT | append-bootscript
|
|
DEVICE_PACKAGES := kmod-dsa-mv88e6xxx kmod-hwmon-nct7802 kmod-rtc-ds1307
|
|
endef
|
|
TARGET_DEVICES += checkpoint_v-81
|
|
|
|
define Device/globalscale_mochabin
|
|
$(call Device/Default-arm64)
|
|
DEVICE_VENDOR := Globalscale
|
|
DEVICE_MODEL := MOCHAbin
|
|
DEVICE_PACKAGES += kmod-dsa-mv88e6xxx
|
|
SOC := armada-7040
|
|
endef
|
|
TARGET_DEVICES += globalscale_mochabin
|
|
|
|
define Device/marvell_armada7040-db
|
|
$(call Device/Default-arm64)
|
|
DEVICE_VENDOR := Marvell
|
|
DEVICE_MODEL := Armada 7040 Development Board
|
|
DEVICE_DTS := armada-7040-db
|
|
IMAGE/sdcard.img.gz := boot-img-ext4 | sdcard-img-ext4 | libdeflate-gzip | append-metadata
|
|
endef
|
|
TARGET_DEVICES += marvell_armada7040-db
|
|
|
|
define Device/marvell_armada8040-db
|
|
$(call Device/Default-arm64)
|
|
DEVICE_VENDOR := Marvell
|
|
DEVICE_MODEL := Armada 8040 Development Board
|
|
DEVICE_DTS := armada-8040-db
|
|
IMAGE/sdcard.img.gz := boot-img-ext4 | sdcard-img-ext4 | libdeflate-gzip | append-metadata
|
|
endef
|
|
TARGET_DEVICES += marvell_armada8040-db
|
|
|
|
define Device/marvell_macchiatobin-doubleshot
|
|
$(call Device/Default-arm64)
|
|
DEVICE_VENDOR := SolidRun
|
|
DEVICE_MODEL := MACCHIATObin
|
|
DEVICE_VARIANT := Double Shot
|
|
DEVICE_ALT0_VENDOR := SolidRun
|
|
DEVICE_ALT0_MODEL := Armada 8040 Community Board
|
|
DEVICE_ALT0_VARIANT := Double Shot
|
|
DEVICE_PACKAGES += kmod-i2c-mux-pca954x
|
|
DEVICE_DTS := armada-8040-mcbin
|
|
SUPPORTED_DEVICES := marvell,armada8040-mcbin-doubleshot marvell,armada8040-mcbin
|
|
endef
|
|
TARGET_DEVICES += marvell_macchiatobin-doubleshot
|
|
|
|
define Device/marvell_macchiatobin-singleshot
|
|
$(call Device/Default-arm64)
|
|
DEVICE_VENDOR := SolidRun
|
|
DEVICE_MODEL := MACCHIATObin
|
|
DEVICE_VARIANT := Single Shot
|
|
DEVICE_ALT0_VENDOR := SolidRun
|
|
DEVICE_ALT0_MODEL := Armada 8040 Community Board
|
|
DEVICE_ALT0_VARIANT := Single Shot
|
|
DEVICE_PACKAGES += kmod-i2c-mux-pca954x
|
|
DEVICE_DTS := armada-8040-mcbin-singleshot
|
|
SUPPORTED_DEVICES := marvell,armada8040-mcbin-singleshot
|
|
endef
|
|
TARGET_DEVICES += marvell_macchiatobin-singleshot
|
|
|
|
define Device/mikrotik_rb5009
|
|
$(call Device/Default-arm64)
|
|
$(Device/NAND-128K)
|
|
$(call Device/FitImage)
|
|
$(call Device/UbiFit)
|
|
DEVICE_VENDOR := MikroTik
|
|
SOC := armada-7040
|
|
KERNEL_LOADADDR := 0x22000000
|
|
DEVICE_PACKAGES += kmod-i2c-gpio yafut kmod-dsa-mv88e6xxx
|
|
endef
|
|
|
|
define Device/mikrotik_rb5009ug
|
|
$(call Device/mikrotik_rb5009)
|
|
DEVICE_DTS := armada-7040-rb5009ug
|
|
DEVICE_MODEL := RB5009UG+S+IN
|
|
SUPPORTED_DEVICES += mikrotik,rb5009
|
|
endef
|
|
TARGET_DEVICES += mikrotik_rb5009ug
|
|
|
|
define Device/mikrotik_rb5009upr
|
|
$(call Device/mikrotik_rb5009)
|
|
DEVICE_DTS := armada-7040-rb5009upr
|
|
DEVICE_MODEL := RB5009UPr+S+IN
|
|
endef
|
|
TARGET_DEVICES += mikrotik_rb5009upr
|
|
|
|
define Device/marvell_clearfog-gt-8k
|
|
$(call Device/Default-arm64)
|
|
DEVICE_VENDOR := SolidRun
|
|
DEVICE_MODEL := Clearfog
|
|
DEVICE_VARIANT := GT-8K
|
|
DEVICE_PACKAGES += kmod-i2c-mux-pca954x kmod-crypto-hw-safexcel
|
|
DEVICE_DTS := armada-8040-clearfog-gt-8k
|
|
SUPPORTED_DEVICES := marvell,armada8040-clearfog-gt-8k
|
|
endef
|
|
TARGET_DEVICES += marvell_clearfog-gt-8k
|
|
|
|
define Device/iei_puzzle-m901
|
|
$(call Device/Default-arm64)
|
|
SOC := cn9131
|
|
DEVICE_VENDOR := iEi
|
|
DEVICE_MODEL := Puzzle-M901
|
|
DEVICE_PACKAGES += kmod-rtc-ds1307
|
|
endef
|
|
TARGET_DEVICES += iei_puzzle-m901
|
|
|
|
define Device/iei_puzzle-m902
|
|
$(call Device/Default-arm64)
|
|
SOC := cn9132
|
|
DEVICE_VENDOR := iEi
|
|
DEVICE_MODEL := Puzzle-M902
|
|
DEVICE_PACKAGES += kmod-rtc-ds1307
|
|
endef
|
|
TARGET_DEVICES += iei_puzzle-m902
|
|
|
|
define Device/solidrun_clearfog-pro
|
|
$(call Device/Default-arm64)
|
|
SOC := cn9130
|
|
DEVICE_VENDOR := SolidRun
|
|
DEVICE_MODEL := ClearFog Pro
|
|
DEVICE_PACKAGES += kmod-i2c-mux-pca954x kmod-dsa-mv88e6xxx
|
|
BOOT_SCRIPT := clearfog-pro
|
|
endef
|
|
TARGET_DEVICES += solidrun_clearfog-pro
|