Message ID | 20171019135600.3755-1-arne@nerdkeller.org |
---|---|
State | Changes Requested |
Headers | show |
Series | [LEDE-DEV] ar71xx: add support for Ubiquiti Litebeam M5 | expand |
Hi Arne, comments inline On 19/10/17 15:56, Arne Zachlod wrote: > Specification: > - SoC: Atheros AR9342 > - Flash: 8 MiB > - RAM: 64 MiB > - UART: 1x UART on PCB - 115200 8N1 > - Ethernet: 1 x 100 Mbit with passive PoE (24V/0.2A) > > Doesn't work: > * Flash via TFTP with Uiquiti Uboot > > Installation via vendor firmware: > - upload factory image via webinterface > > Signed-off-by: Arne Zachlod <arne@nerdkeller.org> > --- > target/linux/ar71xx/base-files/etc/board.d/01_leds | 5 ++ > .../linux/ar71xx/base-files/etc/board.d/02_network | 1 + > target/linux/ar71xx/base-files/etc/diag.sh | 3 ++ > target/linux/ar71xx/base-files/lib/ar71xx.sh | 3 ++ > .../ar71xx/base-files/lib/upgrade/platform.sh | 1 + > .../ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c | 58 ++++++++++++++++++++++ > .../linux/ar71xx/files/arch/mips/ath79/machtypes.h | 1 + > target/linux/ar71xx/image/ubnt.mk | 8 ++- > 8 files changed, 79 insertions(+), 1 deletion(-) > > diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds > index 80d195301b..4dd5503a58 100755 > --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds > +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds > @@ -148,6 +148,11 @@ rocket-m-ti) > ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "ubnt:green:link5" "wlan0" "76" "100" "-75" "13" > ucidef_set_led_rssi "rssiveryhigh" "RSSIVERYHIGH" "ubnt:green:link4" "wlan0" "76" "100" "-75" "13" > ;; > +lbe-m5) > + ucidef_set_led_wlan "wlan" "WLAN" "ubnt:green:wlan" "phy0tpt" > + ucidef_set_led_netdev "lan" "LAN" "ubnt:green:lan" "eth0" > + ucidef_set_led_default "sys" "SYS" "ubnt:green:sys" "1" > + ;; this entry does not follow alphabetic ordering > bxu2000n-2-a1) > ucidef_set_led_wlan "wlan" "WLAN" "bhu:green:wlan" "phy0tpt" > ;; > diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network > index d83835204a..807a396478 100755 > --- a/target/linux/ar71xx/base-files/etc/board.d/02_network > +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network > @@ -77,6 +77,7 @@ ar71xx_setup_interfaces() > fritz300e|\ > gl-usb150|\ > hiveap-121|\ > + lbe-m5|\ > loco-m-xw|\ > mr12|\ > mr16|\ > diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh > index ade726f726..d26d3f1e3e 100644 > --- a/target/linux/ar71xx/base-files/etc/diag.sh > +++ b/target/linux/ar71xx/base-files/etc/diag.sh > @@ -103,6 +103,9 @@ get_status_led() { > rocket-m-ti) > status_led="ubnt:green:link6" > ;; > + lbe-m5) > + status_led="ubnt:green:sys" > + ;; alphabetic ordering ... > bxu2000n-2-a1) > status_led="bhu:green:status" > ;; > diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh > index 835ced67f3..2ab2015bc0 100755 > --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh > +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh > @@ -702,6 +702,9 @@ ar71xx_board_detect() { > *"JWAP230") > name="jwap230" > ;; > + *"Litebeam M5"*) > + name="lbe-m5" > + ;; > *"Lima"*) > name="lima" > ;; > diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh > index 778faeda5a..836831020a 100755 > --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh > +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh > @@ -256,6 +256,7 @@ platform_check_image() { > hornet-ub-x2|\ > jwap230|\ > lima|\ > + lbe-m5|\ > loco-m-xw|\ > mzk-w04nu|\ > mzk-w300nh|\ > diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c > index 55cf52d19e..5271aa6516 100644 > --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c > +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c > @@ -12,6 +12,7 @@ > > #include <linux/init.h> > #include <linux/pci.h> > +#include <linux/gpio.h> > #include <linux/platform_device.h> > #include <linux/ath9k_platform.h> > #include <linux/etherdevice.h> > @@ -491,6 +492,60 @@ static struct mdio_board_info ubnt_loco_m_xw_mdio_info[] = { > }, > }; > > +#define UBNT_LBE_M5_GPIO_LED_WLAN 14 > +#define UBNT_LBE_M5_GPIO_LED_LAN 13 > +#define UBNT_LBE_M5_GPIO_LED_SYS 16 > + > +static struct gpio_led ubnt_lbe_m5_leds_gpio[] __initdata = { > + { > + .name = "ubnt:green:wlan", > + .gpio = UBNT_LBE_M5_GPIO_LED_WLAN, > + .active_low = 1, > + }, { > + .name = "ubnt:green:lan", > + .gpio = UBNT_LBE_M5_GPIO_LED_LAN, > + .active_low = 1, > + }, { > + .name = "ubnt:green:sys", > + .gpio = UBNT_LBE_M5_GPIO_LED_SYS, > + .active_low = 1, > + }, > +}; > + > +static void __init ubnt_lbe_m5_setup(void) > +{ > + u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff0000); > + > + ath79_register_m25p80(NULL); > + > + ath79_register_wmac(eeprom + UAP_PRO_WMAC_CALDATA_OFFSET, NULL); > + ap91_pci_init(eeprom + UAP_PRO_PCI_CALDATA_OFFSET, NULL); > + > + ath79_register_leds_gpio(-1, ARRAY_SIZE(ubnt_lbe_m5_leds_gpio), > + ubnt_lbe_m5_leds_gpio); > + ath79_register_gpio_keys_polled(-1, UBNT_XM_KEYS_POLL_INTERVAL, > + ARRAY_SIZE(ubnt_xm_gpio_keys), > + ubnt_xm_gpio_keys); > + > + ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_MII_GMAC0 | > + AR934X_ETH_CFG_MII_GMAC0_SLAVE); > + ath79_init_mac(ath79_eth0_data.mac_addr, > + eeprom + UAP_PRO_MAC0_OFFSET, 0); > + > + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; > + ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev; > + > + gpio_request_one(0, GPIOF_OUT_INIT_LOW | GPIOF_ACTIVE_LOW | > + GPIOF_EXPORT_DIR_FIXED, "SPI nWP"); > + > + mdiobus_register_board_info(ubnt_loco_m_xw_mdio_info, > + ARRAY_SIZE(ubnt_loco_m_xw_mdio_info)); > + > + ath79_register_mdio(0, ~BIT(1)); > + ath79_eth0_data.phy_mask = BIT(1); > + ath79_register_eth(0); > +} > + > static void __init ubnt_loco_m_xw_setup(void) > { > ubnt_xw_init(); > @@ -590,6 +645,9 @@ static void __init ubnt_rocket_m_ti_setup(void) > MIPS_MACHINE(ATH79_MACH_UBNT_NANO_M_XW, "UBNT-NM-XW", "Ubiquiti Nanostation M XW", > ubnt_nano_m_xw_setup); > > +MIPS_MACHINE(ATH79_MACH_UBNT_LBE_M5, "UBNT-LBE-M5", "Ubiquiti Litebeam M5", > + ubnt_lbe_m5_setup); > + > MIPS_MACHINE(ATH79_MACH_UBNT_LOCO_M_XW, "UBNT-LOCO-XW", "Ubiquiti Loco M XW", > ubnt_loco_m_xw_setup); > > diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h > index 756d406e11..c840fe2a64 100644 > --- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h > +++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h > @@ -276,6 +276,7 @@ enum ath79_mach_type { > ATH79_MACH_UBNT_AIRGWP, /* Ubiquiti AirGateway Pro */ > ATH79_MACH_UBNT_AIRROUTER, /* Ubiquiti AirRouter */ > ATH79_MACH_UBNT_BULLET_M, /* Ubiquiti Bullet M */ > + ATH79_MACH_UBNT_LBE_M5, /* Ubiquiti Litebeam M5 */ > ATH79_MACH_UBNT_LOCO_M_XW, /* Ubiquiti Loco M XW */ > ATH79_MACH_UBNT_LSSR71, /* Ubiquiti LS-SR71 */ > ATH79_MACH_UBNT_LSX, /* Ubiquiti LSX */ please also add the symbol as defined to target/linux/ar71xx/config-4.X and undefined to target/linux/ar71xx/{nand,mikrotik}/config-default John > diff --git a/target/linux/ar71xx/image/ubnt.mk b/target/linux/ar71xx/image/ubnt.mk > index f80f2f1b33..0cd8e6cef7 100644 > --- a/target/linux/ar71xx/image/ubnt.mk > +++ b/target/linux/ar71xx/image/ubnt.mk > @@ -148,6 +148,12 @@ define Device/ubnt-nano-m-xw > BOARDNAME := UBNT-NM-XW > endef > > +define Device/ubnt-lbe-m5 > + $(Device/ubnt-xw) > + DEVICE_TITLE := Ubiquiti Litebeam M5 > + BOARDNAME := UBNT-LBE-M5 > +endef > + > define Device/ubnt-loco-m-xw > $(Device/ubnt-xw) > DEVICE_TITLE := Ubiquiti Loco XW > @@ -166,7 +172,7 @@ define Device/ubnt-rocket-m-ti > BOARDNAME := UBNT-RM-TI > UBNT_TYPE := TI > endef > -TARGET_DEVICES += ubnt-nano-m-xw ubnt-loco-m-xw ubnt-rocket-m-xw ubnt-rocket-m-ti > +TARGET_DEVICES += ubnt-nano-m-xw ubnt-lbe-m5 ubnt-loco-m-xw ubnt-rocket-m-xw ubnt-rocket-m-ti > > define Device/ubnt-air-gateway > $(Device/ubnt-xm)
Hi John, thanks for the input, the alphabetic ordering part is no problem, will do that later this week. The part I don't quite understand is > please also add the symbol as defined to target/linux/ar71xx/config-4.X > and undefined to target/linux/ar71xx/{nand,mikrotik}/config-default I had a look at these and it seems like there are only symbols in the form of CONFIG_ATH79_xxx in there. These Symbols are then used in target/linux/ar71xx/files/arch/mips/ath79/Makefile as far as I understand, the ATH79_MACH_UBNT_LBE_M5 symbol I introduced doesn't belong in there then (since that doesn't produce a new obj-file while compiling). Can you please tell me if I understood this correctly or if I totally misinterpreted what you wanted? - Arne
diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds index 80d195301b..4dd5503a58 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds @@ -148,6 +148,11 @@ rocket-m-ti) ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "ubnt:green:link5" "wlan0" "76" "100" "-75" "13" ucidef_set_led_rssi "rssiveryhigh" "RSSIVERYHIGH" "ubnt:green:link4" "wlan0" "76" "100" "-75" "13" ;; +lbe-m5) + ucidef_set_led_wlan "wlan" "WLAN" "ubnt:green:wlan" "phy0tpt" + ucidef_set_led_netdev "lan" "LAN" "ubnt:green:lan" "eth0" + ucidef_set_led_default "sys" "SYS" "ubnt:green:sys" "1" + ;; bxu2000n-2-a1) ucidef_set_led_wlan "wlan" "WLAN" "bhu:green:wlan" "phy0tpt" ;; diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network index d83835204a..807a396478 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/02_network +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network @@ -77,6 +77,7 @@ ar71xx_setup_interfaces() fritz300e|\ gl-usb150|\ hiveap-121|\ + lbe-m5|\ loco-m-xw|\ mr12|\ mr16|\ diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index ade726f726..d26d3f1e3e 100644 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -103,6 +103,9 @@ get_status_led() { rocket-m-ti) status_led="ubnt:green:link6" ;; + lbe-m5) + status_led="ubnt:green:sys" + ;; bxu2000n-2-a1) status_led="bhu:green:status" ;; diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index 835ced67f3..2ab2015bc0 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -702,6 +702,9 @@ ar71xx_board_detect() { *"JWAP230") name="jwap230" ;; + *"Litebeam M5"*) + name="lbe-m5" + ;; *"Lima"*) name="lima" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 778faeda5a..836831020a 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -256,6 +256,7 @@ platform_check_image() { hornet-ub-x2|\ jwap230|\ lima|\ + lbe-m5|\ loco-m-xw|\ mzk-w04nu|\ mzk-w300nh|\ diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c index 55cf52d19e..5271aa6516 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c @@ -12,6 +12,7 @@ #include <linux/init.h> #include <linux/pci.h> +#include <linux/gpio.h> #include <linux/platform_device.h> #include <linux/ath9k_platform.h> #include <linux/etherdevice.h> @@ -491,6 +492,60 @@ static struct mdio_board_info ubnt_loco_m_xw_mdio_info[] = { }, }; +#define UBNT_LBE_M5_GPIO_LED_WLAN 14 +#define UBNT_LBE_M5_GPIO_LED_LAN 13 +#define UBNT_LBE_M5_GPIO_LED_SYS 16 + +static struct gpio_led ubnt_lbe_m5_leds_gpio[] __initdata = { + { + .name = "ubnt:green:wlan", + .gpio = UBNT_LBE_M5_GPIO_LED_WLAN, + .active_low = 1, + }, { + .name = "ubnt:green:lan", + .gpio = UBNT_LBE_M5_GPIO_LED_LAN, + .active_low = 1, + }, { + .name = "ubnt:green:sys", + .gpio = UBNT_LBE_M5_GPIO_LED_SYS, + .active_low = 1, + }, +}; + +static void __init ubnt_lbe_m5_setup(void) +{ + u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff0000); + + ath79_register_m25p80(NULL); + + ath79_register_wmac(eeprom + UAP_PRO_WMAC_CALDATA_OFFSET, NULL); + ap91_pci_init(eeprom + UAP_PRO_PCI_CALDATA_OFFSET, NULL); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(ubnt_lbe_m5_leds_gpio), + ubnt_lbe_m5_leds_gpio); + ath79_register_gpio_keys_polled(-1, UBNT_XM_KEYS_POLL_INTERVAL, + ARRAY_SIZE(ubnt_xm_gpio_keys), + ubnt_xm_gpio_keys); + + ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_MII_GMAC0 | + AR934X_ETH_CFG_MII_GMAC0_SLAVE); + ath79_init_mac(ath79_eth0_data.mac_addr, + eeprom + UAP_PRO_MAC0_OFFSET, 0); + + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev; + + gpio_request_one(0, GPIOF_OUT_INIT_LOW | GPIOF_ACTIVE_LOW | + GPIOF_EXPORT_DIR_FIXED, "SPI nWP"); + + mdiobus_register_board_info(ubnt_loco_m_xw_mdio_info, + ARRAY_SIZE(ubnt_loco_m_xw_mdio_info)); + + ath79_register_mdio(0, ~BIT(1)); + ath79_eth0_data.phy_mask = BIT(1); + ath79_register_eth(0); +} + static void __init ubnt_loco_m_xw_setup(void) { ubnt_xw_init(); @@ -590,6 +645,9 @@ static void __init ubnt_rocket_m_ti_setup(void) MIPS_MACHINE(ATH79_MACH_UBNT_NANO_M_XW, "UBNT-NM-XW", "Ubiquiti Nanostation M XW", ubnt_nano_m_xw_setup); +MIPS_MACHINE(ATH79_MACH_UBNT_LBE_M5, "UBNT-LBE-M5", "Ubiquiti Litebeam M5", + ubnt_lbe_m5_setup); + MIPS_MACHINE(ATH79_MACH_UBNT_LOCO_M_XW, "UBNT-LOCO-XW", "Ubiquiti Loco M XW", ubnt_loco_m_xw_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h index 756d406e11..c840fe2a64 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h +++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h @@ -276,6 +276,7 @@ enum ath79_mach_type { ATH79_MACH_UBNT_AIRGWP, /* Ubiquiti AirGateway Pro */ ATH79_MACH_UBNT_AIRROUTER, /* Ubiquiti AirRouter */ ATH79_MACH_UBNT_BULLET_M, /* Ubiquiti Bullet M */ + ATH79_MACH_UBNT_LBE_M5, /* Ubiquiti Litebeam M5 */ ATH79_MACH_UBNT_LOCO_M_XW, /* Ubiquiti Loco M XW */ ATH79_MACH_UBNT_LSSR71, /* Ubiquiti LS-SR71 */ ATH79_MACH_UBNT_LSX, /* Ubiquiti LSX */ diff --git a/target/linux/ar71xx/image/ubnt.mk b/target/linux/ar71xx/image/ubnt.mk index f80f2f1b33..0cd8e6cef7 100644 --- a/target/linux/ar71xx/image/ubnt.mk +++ b/target/linux/ar71xx/image/ubnt.mk @@ -148,6 +148,12 @@ define Device/ubnt-nano-m-xw BOARDNAME := UBNT-NM-XW endef +define Device/ubnt-lbe-m5 + $(Device/ubnt-xw) + DEVICE_TITLE := Ubiquiti Litebeam M5 + BOARDNAME := UBNT-LBE-M5 +endef + define Device/ubnt-loco-m-xw $(Device/ubnt-xw) DEVICE_TITLE := Ubiquiti Loco XW @@ -166,7 +172,7 @@ define Device/ubnt-rocket-m-ti BOARDNAME := UBNT-RM-TI UBNT_TYPE := TI endef -TARGET_DEVICES += ubnt-nano-m-xw ubnt-loco-m-xw ubnt-rocket-m-xw ubnt-rocket-m-ti +TARGET_DEVICES += ubnt-nano-m-xw ubnt-lbe-m5 ubnt-loco-m-xw ubnt-rocket-m-xw ubnt-rocket-m-ti define Device/ubnt-air-gateway $(Device/ubnt-xm)
Specification: - SoC: Atheros AR9342 - Flash: 8 MiB - RAM: 64 MiB - UART: 1x UART on PCB - 115200 8N1 - Ethernet: 1 x 100 Mbit with passive PoE (24V/0.2A) Doesn't work: * Flash via TFTP with Uiquiti Uboot Installation via vendor firmware: - upload factory image via webinterface Signed-off-by: Arne Zachlod <arne@nerdkeller.org> --- target/linux/ar71xx/base-files/etc/board.d/01_leds | 5 ++ .../linux/ar71xx/base-files/etc/board.d/02_network | 1 + target/linux/ar71xx/base-files/etc/diag.sh | 3 ++ target/linux/ar71xx/base-files/lib/ar71xx.sh | 3 ++ .../ar71xx/base-files/lib/upgrade/platform.sh | 1 + .../ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c | 58 ++++++++++++++++++++++ .../linux/ar71xx/files/arch/mips/ath79/machtypes.h | 1 + target/linux/ar71xx/image/ubnt.mk | 8 ++- 8 files changed, 79 insertions(+), 1 deletion(-)