This patch enables OpenWRT to be ran on the RouterBOARD 951Ui-2HnD. GPIO 2 enables or disables the POE on port 5. By default we enable GPIO2. GPIO 20 controls the USB Power, by default it enables the USB port.
GPIO 20 is also exposed on the RouterBOARD 951G if anyone was curious. I did not include that in this patch. I need some assistance creating a proper patch for the RouterBOARD 951U. I have the RouterBOARD 951U working, and will include all of the code necessary. First the architecture: --- target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c +++ target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c @@ -37,6 +37,7 @@ #include "dev-wmac.h" #include "machtypes.h" #include "routerboot.h" +#include "dev-leds-gpio.h" #define RB95X_GPIO_NAND_NCE 14 @@ -86,6 +95,39 @@ + +static struct gpio_led rb951ui_leds_gpio[] __initdata = { + { + .name = "rb951ui:wlan", + .gpio = 11, + .active_low = 1, + }, { + .name = "rb951ui:act", + .gpio = 3, + .active_low = 1, + }, { + .name = "rb951ui:lan:port1", + .gpio = 13, + .active_low = 1, + }, { + .name = "rb951ui:lan:port2", + .gpio = 12, + .active_low = 1, + }, { + .name = "rb951ui:lan:port3", + .gpio = 4, + .active_low = 1, + }, { + .name = "rb951ui:lan:port4", + .gpio = 21, + .active_low = 1, + }, { + .name = "rb951ui:lan:port5", + .gpio = 16, + .active_low = 1, } }; @@ -212,3 +254,35 @@ MIPS_MACHINE(ATH79_MACH_RB_951G, "951G", "MikroTik RouterBOARD 951G-2HnD", rb951g_setup); + +static void __init rb951ui_setup(void) +{ + rb95x_gpio_init(); + rb95x_nand_init(); + + ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_ONLY_MODE); + + ath79_register_mdio(1, 0x0); + + ath79_init_mac(ath79_eth0_data.mac_addr, ath79_mac_base, 0); + ath79_init_mac(ath79_eth1_data.mac_addr, ath79_mac_base, 1); + + ath79_switch_data.phy4_mii_en = 1; + ath79_switch_data.phy_poll_mask = BIT(4); + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ath79_eth0_data.phy_mask = BIT(4); + ath79_eth0_data.mii_bus_dev = &ath79_mdio1_device.dev; + ath79_register_eth(0); + + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII; + ath79_register_eth(1); + + gpio_request_one(20, + GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_CHANGEABLE, + "USB power"); + + gpio_request_one(2, + GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_CHANGEABLE, + "POE power"); + + rb95x_wlan_init(); + ath79_register_usb(); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(rb951ui_leds_gpio), + rb951ui_leds_gpio); +} + +MIPS_MACHINE(ATH79_MACH_RB_951U, "951HnD", "MikroTik RouterBOARD 951Ui-2HnD", + rb951ui_setup); Here is the part I am confused on. There are two files "machtypes.h" and "prom.c". We need to add "ATH79_MACH_RB_951U" to "machtypes.h". I'm not sure where in the target directory "machtypes.h" is. It appears that both files are managed by a *.patch file in the patches directory. Does the PATCH submitted need to be a patch of a patch file? or a new patch? Should target/linux/ar71xx/ath79/patches/610-MIPS-ath79-openwrt-machines.patch be modified, or add a 612-MIPS-ath79-openwrt-rb951u.patch ? Here are the changes that need to happen: +++ machtypes.h @@ -74,6 +74,7 @@ ATH79_MACH_RB_751, /* MikroTik RouterBOARD 751 */ ATH79_MACH_RB_751G, /* Mikrotik RouterBOARD 751G */ ATH79_MACH_RB_951G, /* Mikrotik RouterBOARD 951G */ + ATH79_MACH_RB_951U, /* Mikrotik RouterBOARD 951U */ ATH79_MACH_RB_2011G, /* Mikrotik RouterBOARD 2011UAS-2HnD */ ATH79_MACH_RB_2011L, /* Mikrotik RouterBOARD 2011L */ ATH79_MACH_RB_2011US, /* Mikrotik RouterBOARD 2011UAS */ Now to enable serial: +++ prom.c @@ -183,6 +183,7 @@ if (strstr(arcs_cmdline, "board=750Gr3") || strstr(arcs_cmdline, "board=951G") || + strstr(arcs_cmdline, "board=951HnD") || strstr(arcs_cmdline, "board=2011L")) ath79_prom_append_cmdline("console", "ttyS0,115200"); } Signed-off-by: Davey Hutchison <dhutchi...@bluemesh.net> _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel