Skip to content

Commit

Permalink
[WIP] ath79: support Mikrotik RouterBOARD 2011-UiAS-2HnD
Browse files Browse the repository at this point in the history
TODO:
- SFP probes but no link status or link establishment
- Unknown connection to display and touch panel, but some documentation
  is available (connected via bitbanged SPI)

Cobbled-up-by: Lech Perczak <[email protected]>
  • Loading branch information
Leo-PL committed Oct 24, 2024
1 parent 220620e commit de7541d
Show file tree
Hide file tree
Showing 7 changed files with 360 additions and 0 deletions.
311 changes: 311 additions & 0 deletions target/linux/ath79/dts/ar9344_mikrotik_routerboard-2011uias-2hnd.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,311 @@
// 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>;
};
};

beeper {
compatible = "gpio-beeper";
gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
};

sfp_i2c: i2c-gpio {
compatible = "i2c-gpio";
#address-cells = <1>;
#size-cells = <0>;

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_port: sfp {
compatible = "sff,sfp";
i2c-bus = <&sfp_i2c>;
los-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <1000>;
};

gpio-export {
compatible = "gpio-export";

gpio_poe_status {
gpio-export,name = "poe:status";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
};

gpio_usb_power {
gpio-export,name = "usb:power";
gpio-export,output = <0>;
gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
};

gpio_poe_out {
gpio-export,name = "poe:power";
gpio-export,output = <1>;
gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
};
};
};

&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>;
};
};
};

&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 */
0x0C 0x00000080 /* PORT6 PAD MODE CTRL */
0x10 0x80000080 /* POWER_ON_STRAP */
0x50 0xc731c731 /* LED_CTRL0 */
0x54 0x00000000 /* LED_CTRL1 */
0x58 0x00000000 /* LED_CTRL2 */
0x5c 0x0030c300 /* LED_CTRL3 */
0x7c 0x0000007e /* PORT0_STATUS */
0x94 0x0000007e /* PORT6_STATUS */
0xE0 0xc70167d0 /* SGMII_CTRL */
>;

sfp_phy: ethernet-phy@6 {
reg = <6>;
sfp = <&sfp_port>;
};

leds {
led@0 {
reg = <0>;
label = "green:eth1";
qca,led_mode = <0>;
};

led@1 {
reg = <1>;
label = "green:eth6";
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>;
};
};
};
};

&eth0 {
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>;
};

port@6 {
compatible = "swconfig,port";
phy-handle = <&sfp_phy>;
reg = <6>;
swconfig,segment = "lan";
swconfig,portmap = <7 7>;
};
};

&builtin_switch {
/delete-property/ qca,phy4-mii-enable;
};

&eth1 {
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;
};
11 changes: 11 additions & 0 deletions target/linux/ath79/image/mikrotik.mk
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
include ./common-mikrotik.mk

define Device/mikrotik_routerboard-2011uias-2hnd
$(Device/mikrotik_nand)
SOC := ar9344
DEVICE_MODEL := RouterBOARD 2011UiAS-2HnD
DEVICE_PACKAGES += kmod-usb2 kmod-i2c-gpio kmod-sfp kmod-gpio-beeper
SUPPORTED_DEVICES += rb-2011l rb-2011il rb-2011ils \
rb-2011uas rb-2011uas-2hnd rb-2011uias \
rb-2011uias-2hnd rb-2011uias-2hnd-r2
endef
TARGET_DEVICES += mikrotik_routerboard-2011uias-2hnd

define Device/mikrotik_routerboard-493g
$(Device/mikrotik_nand)
SOC := ar7161
Expand Down
7 changes: 7 additions & 0 deletions target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@ board_config_update
board=$(board_name)

case "$board" in
mikrotik,routerboard-2011uias-2hnd)
ucidef_set_led_switch "eth6" "eth6" "green:eth6" "switch1" "0x20"
ucidef_set_led_switch "eth7" "eth7" "green:eth7" "switch1" "0x10"
ucidef_set_led_switch "eth8" "eth8" "green:eth8" "switch1" "0x08"
ucidef_set_led_switch "eth9" "eth9" "green:eth9" "switch1" "0x04"
ucidef_set_led_switch "eth10" "eth10" "green:eth10" "switch1" "0x02"
;;
mikrotik,routerboard-911-lite|\
mikrotik,routerboard-lhg-5nd)
ucidef_set_led_netdev "lan" "lan" "green:lan" "eth0"
Expand Down
7 changes: 7 additions & 0 deletions target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ ath79_setup_interfaces()
local board="$1"

case "$board" in
mikrotik,routerboard-2011uias-2hnd)
ucidef_add_switch "switch0" \
"0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "6:lan" "1:wan"
ucidef_add_switch "switch1" \
"0@eth1" "1:lan:5" "2:lan:4" "3:lan:3" "4:lan:2" "5:lan:1"
;;
mikrotik,routerboard-493g)
ucidef_set_interfaces_lan_wan "eth0.1 eth1.1" "eth0.2"
ucidef_add_switch "switch0" \
Expand Down Expand Up @@ -76,6 +82,7 @@ ath79_setup_macs()
label_mac="$mac_base"
lan_mac="$mac_base"
;;
mikrotik,routerboard-2011uias-2hnd|\
mikrotik,routerboard-921gs-5hpacd-15s|\
mikrotik,routerboard-922uags-5hpacd)
label_mac="$mac_base"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#
# Copyright (C) 2023 OpenWrt.org
#

. /lib/functions/uci-defaults.sh

board_config_update

board=$(board_name)

case "$board" in
mikrotik,routerboar-2011uias-2hnd)
ucidef_add_gpio_switch "usb_power" "USB host power" "20" "1"
ucidef_add_gpio_switch "poe_port10_out_power" "PoE outuput on port 10" "2" "0"
;;
esac

board_config_flush

exit 0
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ board=$(board_name)
case "$FIRMWARE" in
"ath9k-eeprom-ahb-18100000.wmac.bin")
case $board in
mikrotik,routerboard-2011uias-2hnd)
caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" 11)
;;
mikrotik,routerboard-911-lite|\
mikrotik,routerboard-911g-xhpnd|\
mikrotik,routerboard-912uag-2hpnd|\
Expand Down
Loading

0 comments on commit de7541d

Please sign in to comment.