From fc9532aeaaa73c49e50f1052f210adfda0d0c3ed Mon Sep 17 00:00:00 2001 From: John Crispin Date: Mon, 10 Jun 2013 08:24:56 +0000 Subject: [PATCH] ramips: add HAME MPR-A2 support This patch adds support for HAME MPR-A2 router using a DTS file. The platform is Ralink RT5350. http://wiki.openwrt.org/toh/hame/mpr-a2 Signed-off-by: Dmitry Shmygov SVN-Revision: 36898 --- target/linux/ramips/base-files/etc/diag.sh | 3 + .../etc/hotplug.d/firmware/10-rt2x00-eeprom | 1 + .../base-files/etc/uci-defaults/01_leds | 3 + .../base-files/etc/uci-defaults/02_network | 1 + .../base-files/lib/preinit/06_set_iface_mac | 1 + .../lib/preinit/07_set_preinit_iface_ramips | 12 ++ target/linux/ramips/base-files/lib/ramips.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/MPRA2.dts | 121 ++++++++++++++++++ target/linux/ramips/image/Makefile | 10 +- target/linux/ramips/rt305x/profiles/hame.mk | 21 +++ 11 files changed, 174 insertions(+), 3 deletions(-) create mode 100644 target/linux/ramips/dts/MPRA2.dts create mode 100644 target/linux/ramips/rt305x/profiles/hame.mk diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index be2fa56faf..894be0f5e6 100755 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -55,6 +55,9 @@ get_status_led() { mofi3500-3gn) status_led="mofi3500-3gn:green:status" ;; + mpr-a2) + status_led="mpr-a2:red:power" + ;; nbg-419n) status_led="nbg-419n:green:power" ;; diff --git a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom index 41dabd9f01..810dddfe86 100644 --- a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom +++ b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom @@ -77,6 +77,7 @@ case "$FIRMWARE" in freestation5 | \ hw550-3g | \ mofi3500-3gn | \ + mpr-a2 | \ pwh2004 | \ nbg-419n | \ nw718 | \ diff --git a/target/linux/ramips/base-files/etc/uci-defaults/01_leds b/target/linux/ramips/base-files/etc/uci-defaults/01_leds index ec031883ea..608816f195 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/01_leds +++ b/target/linux/ramips/base-files/etc/uci-defaults/01_leds @@ -94,6 +94,9 @@ case $board in mofi3500-3gn) set_usb_led "mofi3500-3gn:green:usb" ;; + mpr-a2) + set_wifi_led "mpr-a2:blue:system" + ;; mzk-w300nh2) set_wifi_led "mzkw300nh2:amber:wlan" ;; diff --git a/target/linux/ramips/base-files/etc/uci-defaults/02_network b/target/linux/ramips/base-files/etc/uci-defaults/02_network index fe81899e7b..b45b0ca25a 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/02_network +++ b/target/linux/ramips/base-files/etc/uci-defaults/02_network @@ -172,6 +172,7 @@ ramips_setup_macs() broadway | \ dir-620-d1 | \ f5d8235-v1 | \ + mpr-a2 | \ mzk-w300nh2 | \ nw718 | \ psr-680w | \ diff --git a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac index 022f72e240..bd1dac0dee 100644 --- a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac +++ b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac @@ -26,6 +26,7 @@ preinit_set_mac_address() { dir-620-a1 |\ esr-9753 |\ freestation5 |\ + mpr-a2 | \ nw718 |\ psr-680w |\ rt-n56u |\ diff --git a/target/linux/ramips/base-files/lib/preinit/07_set_preinit_iface_ramips b/target/linux/ramips/base-files/lib/preinit/07_set_preinit_iface_ramips index c8b7f2ad38..edc5a12e34 100644 --- a/target/linux/ramips/base-files/lib/preinit/07_set_preinit_iface_ramips +++ b/target/linux/ramips/base-files/lib/preinit/07_set_preinit_iface_ramips @@ -6,6 +6,18 @@ . /lib/ramips.sh ramips_set_preinit_iface() { + local board=$(ramips_board_name) + + case "$board" in + mpr-a2) + #TODO + # Ralink ethernet driver cannot re-open ethernet if it is opened during preinit and then closed. + # Looks like Ralink ethernet driver has a problem. + # Temporary solution is not to open ethernet during preinit. + return 0 + ;; + esac + ifname=eth0 } diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 03ae25bcb1..c5f216f780 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -115,6 +115,9 @@ ramips_board_detect() { *"MoFi Network MOFI3500-3GN") name="mofi3500-3gn" ;; + *"HAME MPR-A2") + name="mpr-a2" + ;; *"NBG-419N") name="nbg-419n" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 2d24f182d7..eaa7e64312 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -43,6 +43,7 @@ platform_check_image() { freestation5 | \ hw550-3g | \ mofi3500-3gn | \ + mpr-a2 | \ mzk-w300nh2 | \ nbg-419n | \ nw718 | \ diff --git a/target/linux/ramips/dts/MPRA2.dts b/target/linux/ramips/dts/MPRA2.dts new file mode 100644 index 0000000000..8fb226b748 --- /dev/null +++ b/target/linux/ramips/dts/MPRA2.dts @@ -0,0 +1,121 @@ +/dts-v1/; + +/include/ "rt5350.dtsi" + +/ { + compatible = "MPRA2", "ralink,rt5350-soc"; + model = "HAME MPR-A2"; + + memory@0 { + reg = <0x0 0x2000000>; + }; + + palmbus@10000000 { + sysc@0 { + ralink,pinmux = "i2c", "spi", "uartlite", "mdio", "sdram", "rgmii"; + ralink,gpiomux = "jtag"; + ralink,uartmux = "gpio"; + ralink,wdtmux = <1>; + }; + + gpio0: gpio@600 { + status = "okay"; + }; + + spi@b00 { + status = "okay"; + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "s25fl064k"; + reg = <0 0>; + linux,modalias = "m25p80", "s25fl064k"; + spi-max-frequency = <10000000>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x30000>; + read-only; + }; + + partition@30000 { + label = "u-boot-env"; + reg = <0x30000 0x10000>; + read-only; + }; + + factory: partition@40000 { + label = "factory"; + reg = <0x40000 0x10000>; + read-only; + }; + + partition@50000 { + label = "firmware"; + reg = <0x50000 0x7b0000>; + }; + }; + }; + }; + + ethernet@10100000 { + status = "okay"; + }; + + esw@10110000 { + status = "okay"; + ralink,portmap = <0x2f>; + }; + + wmac@10180000 { + status = "okay"; + }; + + ehci@101c0000 { + status = "okay"; + }; + + ohci@101c1000 { + status = "okay"; + }; + + gpio-leds { + compatible = "gpio-leds"; + system { + label = "mpr-a2:blue:system"; + gpios = <&gpio0 20 1>; + }; + power { + label = "mpr-a2:red:power"; + gpios = <&gpio0 17 1>; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + wps { + label = "reset"; + gpios = <&gpio0 0 1>; + linux,code = <0x198>; + }; + }; + + gpio_export { + compatible = "gpio-export"; + #size-cells = <0>; + + usb { + gpio-export,name = "usb"; + gpio-export,output = <1>; + gpios = <&gpio0 7 0>; + }; + root_hub { + gpio-export,name = "root_hub"; + gpio-export,output = <1>; + gpios = <&gpio0 12 0>; + }; + }; +}; diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index ed7932b705..f00eb6c1f4 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -93,7 +93,7 @@ define BuildFirmware/OF endef define BuildFirmware/OF/initramfs - $(call MkImageLzmaDtb,$(2),$(3)) + $(call MkImageLzmaDtb,$(2),$(3),$(4)) $(CP) $(KDIR)/vmlinux-$(2).uImage $(call imgname,$(1),$(2))-uImage.bin endef @@ -113,8 +113,8 @@ BuildFirmware/Default4M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$( # $(2) = lowercase board name # $(3) = dts file ralink_default_fw_size_8M=8060928 -BuildFirmware/Default8M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_8M)) -BuildFirmware/Default8M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3)) +BuildFirmware/Default8M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_8M),$(4)) +BuildFirmware/Default8M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4)) # Build images for a custom sized flash layout # $(1) = squashfs/initramfs @@ -334,6 +334,9 @@ Image/Build/Profile/FREESTATION5=$(call BuildFirmware/Default8M/$(1),$(1),freest Image/Build/Profile/MOFI3500-3GN=$(call BuildFirmware/Default8M/$(1),$(1),mofi3500-3gn,MOFI3500-3GN) +# Kernel name should be "Linux Kernel Image" to make the OpenWrt image installable from factory Web UI +Image/Build/Profile/MPRA2=$(call BuildFirmware/Default8M/$(1),$(1),mpr-a2,MPRA2,Linux Kernel Image) + Image/Build/Profile/NBG-419N=$(call BuildFirmware/Default4M/$(1),$(1),nbg-419n,NBG-419N) Image/Build/Profile/MZKW300NH2=$(call BuildFirmware/Edimax/$(1),$(1),mzk-w300nh2,MZK-W300NH2,$(mzkw300nh2_mtd_size),CSYS,RN52,0x50000,0xc0000) @@ -461,6 +464,7 @@ define Image/Build/Profile/Default $(call Image/Build/Profile/FREESTATION5,$(1)) $(call Image/Build/Profile/HW550-3G,$(1)) $(call Image/Build/Profile/MOFI3500-3GN,$(1)) + $(call Image/Build/Profile/MPRA2,$(1)) $(call Image/Build/Profile/MZKW300NH2,$(1)) $(call Image/Build/Profile/NBG-419N,$(1)) $(call Image/Build/Profile/NW718,$(1)) diff --git a/target/linux/ramips/rt305x/profiles/hame.mk b/target/linux/ramips/rt305x/profiles/hame.mk new file mode 100644 index 0000000000..1a85be7ba3 --- /dev/null +++ b/target/linux/ramips/rt305x/profiles/hame.mk @@ -0,0 +1,21 @@ +# +# Copyright (C) 2013 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/MPRA2 + NAME:=HAME MPR-A2 + PACKAGES:=\ + kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-netdev kmod-ledtrig-timer \ + kmod-usb-acm kmod-usb-net kmod-usb-net-asix kmod-usb-net-rndis kmod-usb-serial kmod-usb-serial-option \ + usb-modeswitch usb-modeswitch-data comgt +endef + +define Profile/MPRA2/Description + Package set for HAME MPR-A2 board +endef + +$(eval $(call Profile,MPRA2)) + -- 2.30.2