forked from openwrt/openwrt
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ath79: support Mikrotik RouterBOARD 2011-UiAS-2HnD
Mikrotik RouterBOARD 2011 series are AR9344-based wired routers, with optional 2,4GHz 802.11n 2x2:2 Wi-Fi radio, with desktop or rack-mount capability, featuring 5 gigabit Ethernet ports and 5 fast Ethernet ports. Different variants of the board are supported using a single image. Bare-bones RouterBOARD 2011LS is supported using the same image. Specification: - Power: 10-28V input via 5,5/2,1 DC barrel jack, or terminal block on some boards - CPU: AR9344 at 600 to 750MHz (configurable) - RAM: 128MB (64MB in early versions) DDR2 - Flash: 128MB (64MB in early versions) NAND flash - Gigabit Ethernet: 5 ports via AR8327 switch (eth1 to eth5) - Fast Ethernet: 5 ports via AR9344 built-in switch (eth6 to eth10) - SFP: single port through AR8327 switch (SGMII at port 6) - currently unsuppoorted - PoE in: passive input up to 28V at eth1 - PoE out: passive output up to 28V at eth10 - USB: optional micro-AB host port or type-A host port - Console: optional Cisco-style RS232 console at the back of the device, on budget devices available as 3.3V UART via testpoints - LCD: 2" touchscreen-equipped LCD (unsupported) Installation: - perform TFTP boot of initramfs image as for netinstall procedure typical for Mikrotik devices - when initramfs image boots, use sysupgrade to perform final installation. If upgrading from ar71xx, clean installation should be performed, as the devices now uses yafut to handle kernel image. TODO: - SFP port probes over I²C and gigabit link is possible, but currently the drivers lack support of handling link status information to userspace, including swconfig. Link will appear as always up. Currently, link status logging can detect something, but status both for ports 0 and 6 is logged simultaneously, but "swconfig dev switch0 show" will always show link up on port 6. - Unknown connection to display and touch panel, but some documentation is available (seemingly connected via SPI, according to Mikrotik's open source code at [1]) [1] https://github.com/robimarko/routeros-GPL Signed-off-by: Lech Perczak <[email protected]>
- Loading branch information
Showing
8 changed files
with
367 additions
and
0 deletions.
There are no files selected for viewing
317 changes: 317 additions & 0 deletions
317
target/linux/ath79/dts/ar9344_mikrotik_routerboard-2011uias-2hnd.dts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,317 @@ | ||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||
|
||
#include "ar9344.dtsi" | ||
|
||
#include <dt-bindings/gpio/gpio.h> | ||
#include <dt-bindings/input/input.h> | ||
|
||
/ { | ||
model = "MikroTik RouterBOARD 2011UiAS-2HnD"; | ||
compatible = "mikrotik,routerboard-2011uias-2hnd", "qca,ar9344"; | ||
|
||
aliases { | ||
led-boot = &led_user; | ||
led-failsafe = &led_user; | ||
led-running = &led_user; | ||
led-upgrade = &led_user; | ||
}; | ||
|
||
keys { | ||
compatible = "gpio-keys"; | ||
|
||
reset { | ||
label = "reset"; | ||
linux,code = <KEY_RESTART>; | ||
gpios = <&gpio 15 GPIO_ACTIVE_LOW>; | ||
debounce-interval = <60>; | ||
}; | ||
|
||
poe-in { | ||
label = "poe-in"; | ||
linux,input-type = <EV_SW>; | ||
linux,code = <BTN_1>; | ||
gpios = <&gpio 13 GPIO_ACTIVE_LOW>; | ||
debounce-interval = <60>; | ||
}; | ||
}; | ||
|
||
beeper { | ||
compatible = "gpio-beeper"; | ||
gpios = <&gpio 22 GPIO_ACTIVE_HIGH>; | ||
}; | ||
|
||
sfp_i2c: i2c-gpio { | ||
compatible = "i2c-gpio"; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
pictrl-names = "default"; | ||
pinctrl-0 = <&pmx_sfp_i2c>; | ||
|
||
sda-gpios = <&gpio 11 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | ||
scl-gpios = <&gpio 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | ||
i2c-gpio,delay-us = <2>; | ||
}; | ||
|
||
sfp { | ||
/* | ||
* SFP port attached throug AR8327 port 6 isn't functional for now | ||
* The module detects sucessfully, but lacks some GPIO definitions, | ||
* and proper SGMII configuration isn't known yet. | ||
*/ | ||
compatible = "sff,sfp"; | ||
i2c-bus = <&sfp_i2c>; | ||
los-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>; | ||
maximum-power-milliwatt = <1000>; | ||
}; | ||
|
||
leds { | ||
compatible = "gpio-leds"; | ||
|
||
led-0 { | ||
label = "green:wlan2g"; | ||
gpios = <&gpio 4 GPIO_ACTIVE_LOW>; | ||
linux,default-trigger = "phy0tpt"; | ||
}; | ||
}; | ||
}; | ||
|
||
&ref { | ||
clock-frequency = <25000000>; | ||
}; | ||
|
||
&gpio { | ||
nand-nce { | ||
gpio-hog; | ||
gpios = <14 GPIO_ACTIVE_LOW>; | ||
output-high; | ||
line-name = "nand-nce"; | ||
}; | ||
}; | ||
|
||
&nand { | ||
status = "okay"; | ||
|
||
nand-ecc-mode = "soft"; | ||
nand-ecc-step-size = <2048>; | ||
qca,nand-swap-dma; | ||
qca,nand-scan-fixup; | ||
|
||
partitions { | ||
compatible = "fixed-partitions"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
partition@0 { | ||
label = "booter"; | ||
reg = <0x0000000 0x0040000>; | ||
read-only; | ||
}; | ||
|
||
partition@40000 { | ||
label = "kernel"; | ||
reg = <0x0040000 0x03c0000>; | ||
}; | ||
|
||
partition@400000 { | ||
label = "ubi"; | ||
reg = <0x0400000 0x0>; | ||
}; | ||
}; | ||
}; | ||
|
||
&pinmux { | ||
pmx_sfp_i2c: pinmux_sfp_i2c { | ||
pinctrl-single,bits = <0x8 0x00000000 0xff000000>; /* set GPIO11 back as GPIO */ | ||
}; | ||
}; | ||
|
||
&spi { | ||
status = "okay"; | ||
|
||
flash@0 { | ||
compatible = "jedec,spi-nor"; | ||
reg = <0>; | ||
spi-max-frequency = <25000000>; | ||
|
||
partitions { | ||
compatible = "mikrotik,routerboot-partitions"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
partition@0 { | ||
label = "routerboot"; | ||
reg = <0x0 0x0>; | ||
read-only; | ||
}; | ||
|
||
hard_config { | ||
read-only; | ||
|
||
nvmem-layout { | ||
compatible = "fixed-layout"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
macaddr_hardconfig_10: macaddr@10 { | ||
compatible = "mac-base"; | ||
reg = <0x10 0x6>; | ||
#nvmem-cell-cells = <1>; | ||
}; | ||
}; | ||
}; | ||
|
||
bios { | ||
size = <0x1000>; | ||
read-only; | ||
}; | ||
|
||
soft_config { | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
&mdio0 { | ||
status = "okay"; | ||
phy0: ethernet-phy@0 { | ||
reg = <0>; | ||
phy-mode = "rgmii"; | ||
|
||
qca,ar8327-initvals = < | ||
0x04 0x07c00000 /* PORT0 PAD MODE CTRL: Mac0_rgmii_en | Mac0_rgmii_txclk_delay_en | Mac0_rgmii_rxclk_delay_en | Mac0_rgmii_txclk_delay_sel3 | Mac0_rgmii_rxclk_delay_sel0 */ | ||
0x0c 0x00000080 /* PORT6 PAD MODE CTRL: Mac6_sgmii_en */ | ||
0x10 0x81000000 /* PWS_REG: POWER_ON_STRAP | LED_OPEN_EN_CSR */ | ||
0x50 0xc731c731 /* LED_CTRL0 */ | ||
0x54 0x00000000 /* LED_CTRL1 */ | ||
0x58 0x00008000 /* LED_CTRL2: 5A: disable LCD power */ | ||
0x5c 0x0230c300 /* LED_CTRL3: 5C: enable SFP power */ | ||
0x7c 0x0000007e /* PORT0_STATUS: DUPLEX_MODE_0 | RX_FLOW_EN_0 | TX_FLOW_EN_0 | RXMAC_EN_0 | TXMAC_EN_0 | SPEED_0 1000M */ | ||
0x94 0x0000007e /* PORT6_STATUS: DUPLEX_MODE_0 | RX_FLOW_EN_0 | TX_FLOW_EN_0 | RXMAC_EN_0 | TXMAC_EN_0 | SPEED_0 1000M */ | ||
0xe0 0xc70167d0 /* SGMII_CTRL */ | ||
>; | ||
|
||
leds { | ||
led@0 { | ||
reg = <0>; | ||
label = "green:eth1"; | ||
qca,led_mode = <0>; | ||
}; | ||
|
||
led@1 { | ||
reg = <1>; | ||
label = "green:eth6"; | ||
qca,led_mode = <1>; | ||
}; | ||
|
||
led@2 { | ||
reg = <2>; | ||
label = "backlight"; | ||
linux,default-trigger = "backlight"; | ||
// active-low; // causes the kernel to crash in driver | ||
qca,led_mode = <1>; | ||
}; | ||
|
||
led@3 { | ||
reg = <3>; | ||
label = "green:eth2"; | ||
qca,led_mode = <0>; | ||
}; | ||
|
||
led@4 { | ||
reg = <4>; | ||
label = "green:eth7"; | ||
qca,led_mode = <1>; | ||
}; | ||
|
||
led@6 { | ||
reg = <6>; | ||
label = "green:eth3"; | ||
qca,led_mode = <0>; | ||
}; | ||
|
||
led@7 { | ||
reg = <7>; | ||
label = "green:eth8"; | ||
qca,led_mode = <1>; | ||
}; | ||
|
||
led@9 { | ||
reg = <9>; | ||
label = "green:eth4"; | ||
qca,led_mode = <0>; | ||
}; | ||
|
||
led@10 { | ||
reg = <10>; | ||
label = "green:eth9"; | ||
qca,led_mode = <1>; | ||
}; | ||
|
||
led@12 { | ||
reg = <12>; | ||
label = "green:eth5"; | ||
qca,led_mode = <0>; | ||
}; | ||
|
||
led@13 { | ||
reg = <13>; | ||
label = "green:eth10"; | ||
qca,led_mode = <1>; | ||
}; | ||
|
||
led_user: led@14 { | ||
reg = <14>; | ||
label = "green:user"; | ||
qca,led_mode = <1>; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
ð0 { | ||
status = "okay"; | ||
|
||
/* default for ar934x, except for 1000M */ | ||
pll-data = <0x6f000000 0x00000101 0x00001616>; | ||
|
||
phy-mode = "rgmii"; | ||
phy-handle = <&phy0>; | ||
|
||
nvmem-cells = <&macaddr_hardconfig_10 0>; | ||
nvmem-cell-names = "mac-address"; | ||
|
||
gmac-config { | ||
device = <&gmac>; | ||
rgmii-gmac0 = <1>; | ||
switch-phy-swap = <0>; | ||
switch-only-mode = <1>; | ||
rxd-delay = <1>; | ||
rxdv-delay = <1>; | ||
}; | ||
}; | ||
|
||
&builtin_switch { | ||
/delete-property/ qca,phy4-mii-enable; | ||
}; | ||
|
||
ð1 { | ||
status = "okay"; | ||
|
||
nvmem-cells = <&macaddr_hardconfig_10 5>; | ||
nvmem-cell-names = "mac-address"; | ||
}; | ||
|
||
&usb { | ||
status = "okay"; | ||
}; | ||
|
||
&usb_phy { | ||
status = "okay"; | ||
}; | ||
|
||
&wmac { | ||
status = "okay"; | ||
|
||
qca,no-eeprom; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
20 changes: 20 additions & 0 deletions
20
target/linux/ath79/mikrotik/base-files/etc/board.d/03_gpio_switches
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# | ||
# Copyright (C) 2025 OpenWrt.org | ||
# | ||
|
||
. /lib/functions/uci-defaults.sh | ||
|
||
board_config_update | ||
|
||
board=$(board_name) | ||
|
||
case "$board" in | ||
mikrotik,routerboard-2011uias-2hnd) | ||
ucidef_add_gpio_switch "usb_power_n" "USB host power" "532" "0" | ||
ucidef_add_gpio_switch "poe_port10_out_power" "PoE outuput on port 10" "514" "1" | ||
;; | ||
esac | ||
|
||
board_config_flush | ||
|
||
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.