| Submitter | bruno schwander |
|---|---|
| Date | 2012-02-25 11:44:01 |
| Message ID | <20120225124246.H799@router.bschwand.net> |
| Download | mbox | patch |
| Permalink | /patch/1917/ |
| State | Accepted |
| Delegated to: | Gabor Juhos |
| Headers | show |
Comments
That router is made by Win-star I believe, its sold to anyone and everyone. On Sat, Feb 25, 2012 at 7:44 PM, bruno schwander <bruno@tinkerbox.org>wrote: > This patch adds support for routers using a PCB marked XDX-RN502J > V2.0, such as some unbranded routers like this: > > http://www.mediafire.com/?8acv87h6snn9fj6 > http://www.mediafire.com/?do7xonw7scor4kn > http://www.mediafire.com/?1ad49zvx3e7jyix > http://www.mediafire.com/?i46cqiq66maa197 > > > http://www.aliexpress.com/product-fm/516397994-Free-Shipping-300M-3G-WAN-Wireless-N-WiFi-USB-AP-Router-2-Antennas-wholesalers.html > > some reports also state the Aceex 22Y uses the same board. > > more information can be found in the following openwrt forum post > https://forum.openwrt.org/viewtopic.php?id=34878 > > the patch was made against OpenWrt svn rev 30708 > > Signed-off-by: bruno schwander <bruno@tinkerbox.org> > > > > Index: target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig > =================================================================== > --- target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig (revision > 30708) > +++ target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig (working > copy) > @@ -116,6 +116,11 @@ > select RALINK_DEV_GPIO_BUTTONS > select RALINK_DEV_GPIO_LEDS > > +config RT305X_MACH_XDX_RN502J > + bool "Unknown board XDX-RN502J" > + select RALINK_DEV_GPIO_BUTTONS > + select RALINK_DEV_GPIO_LEDS > + > endmenu > > endif > Index: target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile > =================================================================== > --- target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile (revision > 30708) > +++ target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile (working > copy) > @@ -34,3 +34,4 @@ > obj-$(CONFIG_RT305X_MACH_WL341V3) += mach-wl341v3.o > obj-$(CONFIG_RT305X_MACH_WL351) += mach-wl351.o > obj-$(CONFIG_RT305X_MACH_WR6202) += mach-wr6202.o > +obj-$(CONFIG_RT305X_MACH_XDX_RN502J) += mach-xdx-rn502j.o > Index: target/linux/ramips/files/arch/mips/ralink/rt305x/mach-xdx-rn502j.c > =================================================================== > --- target/linux/ramips/files/arch/mips/ralink/rt305x/mach-xdx-rn502j.c > (revision 0) > +++ target/linux/ramips/files/arch/mips/ralink/rt305x/mach-xdx-rn502j.c > (revision 0) > @@ -0,0 +1,79 @@ > +/* > + * Unknown router name/model, PCB marked with XDX-RN502J > + * > + * Copyright (C) 2011 Bruno Schwander bruno@tinkerbox.org > + * > + * This program is free software; you can redistribute it and/or modify > it > + * under the terms of the GNU General Public License version 2 as > published > + * by the Free Software Foundation. > + */ > + > +#include <linux/init.h> > +#include <linux/platform_device.h> > + > +#include <asm/mach-ralink/machine.h> > +#include <asm/mach-ralink/dev-gpio-buttons.h> > +#include <asm/mach-ralink/dev-gpio-leds.h> > +#include <asm/mach-ralink/rt305x.h> > +#include <asm/mach-ralink/rt305x_regs.h> > + > +#include "devices.h" > + > +#define XDXRN502J_GPIO_BUTTON_RESET 12 > +#define XDXRN502J_GPIO_LED_WIFI 7 > +#define XDXRN502J_GPIO_LED_POWER 9 > + > +#define XDXRN502J_BUTTONS_POLL_INTERVAL 20 > +#define XDXRN502J_BUTTONS_DEBOUNCE_INTERVAL (3 * > XDXRN502J_BUTTONS_POLL_INTERVAL) > + > + > +static struct gpio_led xdxrn502j_leds_gpio[] __initdata = { > + { > + .name = "xdxrn502j:green:wifi", > + .gpio = XDXRN502J_GPIO_LED_WIFI, > + .active_low = 1, > + }, { > + .name = "xdxrn502j:green:power", > + .gpio = XDXRN502J_GPIO_LED_POWER, > + .active_low = 1, > + } > +}; > + > +static struct gpio_keys_button xdxrn502j_gpio_buttons[] __initdata = { > + { > + .desc = "reset", > + .type = EV_KEY, > + .code = KEY_RESTART, > + .debounce_interval = XDXRN502J_BUTTONS_DEBOUNCE_INTERVAL, > + .gpio = XDXRN502J_GPIO_BUTTON_RESET, > + .active_low = 1, > + } > +}; > + > +#define XDXRN502J_GPIO_MODE \ > + ((RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT) | \ > + RT305X_GPIO_MODE_MDIO) > + > +static void __init xdxrn502j_init(void) > +{ > + rt305x_gpio_init(XDXRN502J_GPIO_MODE); > + > + rt305x_register_flash(0); > + > + rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_WLLLL; > + rt305x_register_ethernet(); > + > + ramips_register_gpio_leds(-1, ARRAY_SIZE(xdxrn502j_leds_gpio), > + xdxrn502j_leds_gpio); > + > + ramips_register_gpio_buttons(-1, XDXRN502J_BUTTONS_POLL_INTERVAL, > + ARRAY_SIZE(xdxrn502j_gpio_buttons), > + xdxrn502j_gpio_buttons); > + > + rt305x_register_wifi(); > + rt305x_register_wdt(); > + rt305x_register_usb(); > +} > + > +MIPS_MACHINE(RAMIPS_MACH_XDXRN502J, "XDXRN502J", "XDX RN502J", > + xdxrn502j_init); > Index: > target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h > =================================================================== > --- target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h > (revision 30708) > +++ target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h > (working copy) > @@ -48,6 +48,7 @@ > RAMIPS_MACH_WL351, /* Sitecom WL-351 v1 002 */ > RAMIPS_MACH_WR512_3GN, /* SH-WR512NU/WS-WR512N1-like 3GN*/ > RAMIPS_MACH_WR6202, /* Accton WR6202 */ > + RAMIPS_MACH_XDXRN502J, /* unknown XDX-RN502J */ > > /* RT3662 based machines */ > RAMIPS_MACH_RT_N56U, /* Asus RT-N56U */ > Index: target/linux/ramips/image/Makefile > =================================================================== > --- target/linux/ramips/image/Makefile (revision 30708) > +++ target/linux/ramips/image/Makefile (working copy) > @@ -241,6 +241,17 @@ > $(call > BuildFirmware/Buffalo2,$(1),wli-tx4-ag300n,WLI-TX4-AG300N,$(call > mkmtd/phys,$(mtdlayout_wlitx4ag300n)),917504,2883584) > endef > > + > > +mtdlayout_xdxrn502j=192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,1024k(kernel),2752k(rootfs),3776k@0x50000 > (firmware) > +define BuildFirmware/XDXRN502J > + $(call BuildFirmware/Generic,$(1),$(2),$(call > mkcmdline,$(3),$(4),$(5)) $(call > mkmtd/$(6),$(mtdlayout_xdxrn502j)),1048576,2818048) > +endef > + > +define BuildFirmware/XDXRN502J/initramfs > + $(call BuildFirmware/Generic/initramfs,$(1),$(2),$(call > mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_xdxrn502j))) > +endef > + > + > # > # Templates > # > @@ -378,6 +389,10 @@ > $(call > Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,wr6202,WR6202,ttyS1,115200,phys) > endef > > +define Image/Build/Profile/XDXRN502J > + $(call > Image/Build/Template/$(fs_squash)/$(1),XDXRN502J,xdxrn502j,XDXRN502J,ttyS1,57600,phys) > +endef > + > ifeq ($(CONFIG_RALINK_RT305X),y) > define Image/Build/Profile/Default > $(call Image/Build/Profile/ALL0256N,$(1)) > @@ -403,6 +418,7 @@ > $(call Image/Build/Profile/WL351,$(1)) > $(call Image/Build/Profile/WR5123GN,$(1)) > $(call Image/Build/Profile/WR6202,$(1)) > + $(call Image/Build/Profile/XDXRN502J,$(1)) > endef > endif > > Index: target/linux/ramips/rt305x/config-3.2 > =================================================================== > --- target/linux/ramips/rt305x/config-3.2 (revision 30708) > +++ target/linux/ramips/rt305x/config-3.2 (working copy) > @@ -116,6 +116,7 @@ > CONFIG_RT305X_MACH_WL351=y > CONFIG_RT305X_MACH_WR512_3GN=y > CONFIG_RT305X_MACH_WR6202=y > +CONFIG_RT305X_MACH_XDX_RN502J=y > # CONFIG_SCSI_DMA is not set > CONFIG_SERIAL_8250_NR_UARTS=4 > CONFIG_SERIAL_8250_RT288X=y > Index: target/linux/ramips/base-files/lib/ramips.sh > =================================================================== > --- target/linux/ramips/base-files/lib/ramips.sh (revision 30708) > +++ target/linux/ramips/base-files/lib/ramips.sh (working copy) > @@ -140,6 +140,9 @@ > *"AWB WR6202") > name="wr6202" > ;; > + *"XDX RN502J") > + name="xdxrn502j" > + ;; > *) > name="generic" > ;; > Index: target/linux/ramips/base-files/lib/preinit/06_set_iface_mac > =================================================================== > --- target/linux/ramips/base-files/lib/preinit/06_set_iface_mac (revision > 30708) > +++ target/linux/ramips/base-files/lib/preinit/06_set_iface_mac (working > copy) > @@ -28,6 +28,7 @@ > nbg-419n |\ > omni-emb |\ > w502u |\ > + xdxrn502j |\ > wr6202) > mac=$(ramips_get_mac_binary factory 40) > ifconfig eth0 hw ether $mac 2>/dev/null > @@ -36,6 +37,7 @@ > mac=$(ramips_get_mac_binary board-nvram 65440) > ifconfig eth0 hw ether $mac 2>/dev/null > ;; > + > esac > } > > Index: > target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom > =================================================================== > --- target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom > (revision 30708) > +++ target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom > (working copy) > @@ -69,7 +69,8 @@ > wl-351 | \ > wli-tx4-ag300n | \ > wr512-3gn | \ > - wr6202) > + wr6202 | \ > + xdxrn502j) > rt2x00_eeprom_extract "factory" 0 272 > ;; > > Index: target/linux/ramips/base-files/etc/diag.sh > =================================================================== > --- target/linux/ramips/base-files/etc/diag.sh (revision 30708) > +++ target/linux/ramips/base-files/etc/diag.sh (working copy) > @@ -96,6 +96,9 @@ > wr512-3gn) > status_led="wr512:green:wps" > ;; > + xdxrn502j) > + status_led="xdxrn502j:green:power" > + ;; > esac > } > > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/mailman/listinfo/openwrt-devel >
2012.02.25. 12:44 keltezéssel, bruno schwander írta: > This patch adds support for routers using a PCB marked XDX-RN502J > V2.0, such as some unbranded routers like this: > > http://www.mediafire.com/?8acv87h6snn9fj6 > http://www.mediafire.com/?do7xonw7scor4kn > http://www.mediafire.com/?1ad49zvx3e7jyix > http://www.mediafire.com/?i46cqiq66maa197 > > http://www.aliexpress.com/product-fm/516397994-Free-Shipping-300M-3G-WAN-Wireless-N-WiFi-USB-AP-Router-2-Antennas-wholesalers.html > > some reports also state the Aceex 22Y uses the same board. > > more information can be found in the following openwrt forum post > https://forum.openwrt.org/viewtopic.php?id=34878 > > the patch was made against OpenWrt svn rev 30708 > > Signed-off-by: bruno schwander <bruno@tinkerbox.org> Applied with minor changes. Thanks, Gabor
Patch
Index: target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig =================================================================== --- target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig (revision 30708) +++ target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig (working copy) @@ -116,6 +116,11 @@ select RALINK_DEV_GPIO_BUTTONS select RALINK_DEV_GPIO_LEDS +config RT305X_MACH_XDX_RN502J + bool "Unknown board XDX-RN502J" + select RALINK_DEV_GPIO_BUTTONS + select RALINK_DEV_GPIO_LEDS + endmenu endif Index: target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile =================================================================== --- target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile (revision 30708) +++ target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile (working copy) @@ -34,3 +34,4 @@ obj-$(CONFIG_RT305X_MACH_WL341V3) += mach-wl341v3.o obj-$(CONFIG_RT305X_MACH_WL351) += mach-wl351.o obj-$(CONFIG_RT305X_MACH_WR6202) += mach-wr6202.o +obj-$(CONFIG_RT305X_MACH_XDX_RN502J) += mach-xdx-rn502j.o Index: target/linux/ramips/files/arch/mips/ralink/rt305x/mach-xdx-rn502j.c =================================================================== --- target/linux/ramips/files/arch/mips/ralink/rt305x/mach-xdx-rn502j.c (revision 0) +++ target/linux/ramips/files/arch/mips/ralink/rt305x/mach-xdx-rn502j.c (revision 0) @@ -0,0 +1,79 @@ +/* + * Unknown router name/model, PCB marked with XDX-RN502J + * + * Copyright (C) 2011 Bruno Schwander bruno@tinkerbox.org + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. + */ + +#include <linux/init.h> +#include <linux/platform_device.h> + +#include <asm/mach-ralink/machine.h> +#include <asm/mach-ralink/dev-gpio-buttons.h> +#include <asm/mach-ralink/dev-gpio-leds.h> +#include <asm/mach-ralink/rt305x.h> +#include <asm/mach-ralink/rt305x_regs.h> + +#include "devices.h" + +#define XDXRN502J_GPIO_BUTTON_RESET 12 +#define XDXRN502J_GPIO_LED_WIFI 7 +#define XDXRN502J_GPIO_LED_POWER 9 + +#define XDXRN502J_BUTTONS_POLL_INTERVAL 20 +#define XDXRN502J_BUTTONS_DEBOUNCE_INTERVAL (3 * XDXRN502J_BUTTONS_POLL_INTERVAL) + + +static struct gpio_led xdxrn502j_leds_gpio[] __initdata = { + { + .name = "xdxrn502j:green:wifi", + .gpio = XDXRN502J_GPIO_LED_WIFI, + .active_low = 1, + }, { + .name = "xdxrn502j:green:power", + .gpio = XDXRN502J_GPIO_LED_POWER, + .active_low = 1, + } +}; + +static struct gpio_keys_button xdxrn502j_gpio_buttons[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = XDXRN502J_BUTTONS_DEBOUNCE_INTERVAL, + .gpio = XDXRN502J_GPIO_BUTTON_RESET, + .active_low = 1, + } +}; + +#define XDXRN502J_GPIO_MODE \ + ((RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT) | \ + RT305X_GPIO_MODE_MDIO) + +static void __init xdxrn502j_init(void) +{ + rt305x_gpio_init(XDXRN502J_GPIO_MODE); + + rt305x_register_flash(0); + + rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_WLLLL; + rt305x_register_ethernet(); + + ramips_register_gpio_leds(-1, ARRAY_SIZE(xdxrn502j_leds_gpio), + xdxrn502j_leds_gpio); + + ramips_register_gpio_buttons(-1, XDXRN502J_BUTTONS_POLL_INTERVAL, + ARRAY_SIZE(xdxrn502j_gpio_buttons), + xdxrn502j_gpio_buttons); + + rt305x_register_wifi(); + rt305x_register_wdt(); + rt305x_register_usb(); +} + +MIPS_MACHINE(RAMIPS_MACH_XDXRN502J, "XDXRN502J", "XDX RN502J", + xdxrn502j_init); Index: target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h =================================================================== --- target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h (revision 30708) +++ target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h (working copy) @@ -48,6 +48,7 @@ RAMIPS_MACH_WL351, /* Sitecom WL-351 v1 002 */ RAMIPS_MACH_WR512_3GN, /* SH-WR512NU/WS-WR512N1-like 3GN*/ RAMIPS_MACH_WR6202, /* Accton WR6202 */ + RAMIPS_MACH_XDXRN502J, /* unknown XDX-RN502J */ /* RT3662 based machines */ RAMIPS_MACH_RT_N56U, /* Asus RT-N56U */ Index: target/linux/ramips/image/Makefile =================================================================== --- target/linux/ramips/image/Makefile (revision 30708) +++ target/linux/ramips/image/Makefile (working copy) @@ -241,6 +241,17 @@ $(call BuildFirmware/Buffalo2,$(1),wli-tx4-ag300n,WLI-TX4-AG300N,$(call mkmtd/phys,$(mtdlayout_wlitx4ag300n)),917504,2883584) endef + +mtdlayout_xdxrn502j=192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,1024k(kernel),2752k(rootfs),3776k@0x50000(firmware) +define BuildFirmware/XDXRN502J + $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_xdxrn502j)),1048576,2818048) +endef + +define BuildFirmware/XDXRN502J/initramfs + $(call BuildFirmware/Generic/initramfs,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_xdxrn502j))) +endef + + # # Templates # @@ -378,6 +389,10 @@ $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,wr6202,WR6202,ttyS1,115200,phys) endef +define Image/Build/Profile/XDXRN502J + $(call Image/Build/Template/$(fs_squash)/$(1),XDXRN502J,xdxrn502j,XDXRN502J,ttyS1,57600,phys) +endef + ifeq ($(CONFIG_RALINK_RT305X),y) define Image/Build/Profile/Default $(call Image/Build/Profile/ALL0256N,$(1)) @@ -403,6 +418,7 @@ $(call Image/Build/Profile/WL351,$(1)) $(call Image/Build/Profile/WR5123GN,$(1)) $(call Image/Build/Profile/WR6202,$(1)) + $(call Image/Build/Profile/XDXRN502J,$(1)) endef endif Index: target/linux/ramips/rt305x/config-3.2 =================================================================== --- target/linux/ramips/rt305x/config-3.2 (revision 30708) +++ target/linux/ramips/rt305x/config-3.2 (working copy) @@ -116,6 +116,7 @@ CONFIG_RT305X_MACH_WL351=y CONFIG_RT305X_MACH_WR512_3GN=y CONFIG_RT305X_MACH_WR6202=y +CONFIG_RT305X_MACH_XDX_RN502J=y # CONFIG_SCSI_DMA is not set CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RT288X=y Index: target/linux/ramips/base-files/lib/ramips.sh =================================================================== --- target/linux/ramips/base-files/lib/ramips.sh (revision 30708) +++ target/linux/ramips/base-files/lib/ramips.sh (working copy) @@ -140,6 +140,9 @@ *"AWB WR6202") name="wr6202" ;; + *"XDX RN502J") + name="xdxrn502j" + ;; *) name="generic" ;; Index: target/linux/ramips/base-files/lib/preinit/06_set_iface_mac =================================================================== --- target/linux/ramips/base-files/lib/preinit/06_set_iface_mac (revision 30708) +++ target/linux/ramips/base-files/lib/preinit/06_set_iface_mac (working copy) @@ -28,6 +28,7 @@ nbg-419n |\ omni-emb |\ w502u |\ + xdxrn502j |\ wr6202) mac=$(ramips_get_mac_binary factory 40) ifconfig eth0 hw ether $mac 2>/dev/null @@ -36,6 +37,7 @@ mac=$(ramips_get_mac_binary board-nvram 65440) ifconfig eth0 hw ether $mac 2>/dev/null ;; + esac } Index: target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom =================================================================== --- target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom (revision 30708) +++ target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom (working copy) @@ -69,7 +69,8 @@ wl-351 | \ wli-tx4-ag300n | \ wr512-3gn | \ - wr6202) + wr6202 | \ + xdxrn502j) rt2x00_eeprom_extract "factory" 0 272 ;; Index: target/linux/ramips/base-files/etc/diag.sh =================================================================== --- target/linux/ramips/base-files/etc/diag.sh (revision 30708) +++ target/linux/ramips/base-files/etc/diag.sh (working copy) @@ -96,6 +96,9 @@ wr512-3gn) status_led="wr512:green:wps" ;; + xdxrn502j) + status_led="xdxrn502j:green:power" + ;; esac }
This patch adds support for routers using a PCB marked XDX-RN502J V2.0, such as some unbranded routers like this: http://www.mediafire.com/?8acv87h6snn9fj6 http://www.mediafire.com/?do7xonw7scor4kn http://www.mediafire.com/?1ad49zvx3e7jyix http://www.mediafire.com/?i46cqiq66maa197 http://www.aliexpress.com/product-fm/516397994-Free-Shipping-300M-3G-WAN-Wireless-N-WiFi-USB-AP-Router-2-Antennas-wholesalers.html some reports also state the Aceex 22Y uses the same board. more information can be found in the following openwrt forum post https://forum.openwrt.org/viewtopic.php?id=34878 the patch was made against OpenWrt svn rev 30708 Signed-off-by: bruno schwander <bruno@tinkerbox.org>