diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/network b/target/linux/ar71xx/base-files/etc/uci-defaults/network index 3a5b704e7..ae4b88b7c 100755 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/network +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/network @@ -133,6 +133,7 @@ wzr-hp-g300nh) aw-nr580 |\ bullet-m |\ eap7660d |\ +ew-dorin |\ rb-411 |\ tl-mr11u |\ tl-mr3020 |\ @@ -186,7 +187,7 @@ wzr-hp-g450h) ucidef_add_switch_vlan "eth0" "2" "0t 1" ;; -ew-dorin) +ew-dorin-router) ucidef_set_interfaces_lan_wan "eth0" "eth1" ucidef_add_switch "eth0" "1" "1" ucidef_add_switch_vlan "eth0" "1" "0 2 3" diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index 2829d9f29..648cca8b5 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -399,6 +399,9 @@ ar71xx_board_detect() { *EmbWir-Dorin) name="ew-dorin" ;; + *EmbWir-Dorin-Router) + name="ew-dorin-router" + ;; esac case "$machine" in diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 0e086039c..fb5fe7318 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -94,13 +94,14 @@ platform_check_image() { } return 0 ;; - ew-dorin | \ ap81 | \ ap83 | \ dir-600-a1 | \ dir-615-c1 | \ dir-615-e4 | \ dir-825-b1 | \ + ew-dorin | \ + ew-dorin-router | \ mzk-w04nu | \ mzk-w300nh | \ tew-632brp | \ diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-ew-dorin.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-ew-dorin.c index dc052c486..47ed51b5d 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-ew-dorin.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-ew-dorin.c @@ -85,6 +85,42 @@ static void __init ew_dorin_setup(void) mac[3] |= 0x40; ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0); + ath79_register_mdio(0, 0x0); + + /* LAN ports */ + ath79_register_eth(1); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(dorin_leds_gpio), + dorin_leds_gpio); + ath79_register_gpio_keys_polled(-1, DORIN_KEYS_POLL_INTERVAL, + ARRAY_SIZE(dorin_gpio_keys), + dorin_gpio_keys); +} + +MIPS_MACHINE(ATH79_MACH_EW_DORIN, "EW-DORIN", "EmbWir-Dorin", + ew_dorin_setup); + + +static void __init ew_dorin_router_setup(void) +{ + u8 *art = (u8 *) KSEG1ADDR(0x1fff0000); + static u8 mac[6]; + + ath79_register_m25p80(NULL); + + ath79_register_usb(); + + if (ar93xx_wmac_read_mac_address(mac)) { + ath79_register_wmac(NULL, NULL); + } else { + ath79_register_wmac(art + DORIN_CALDATA_OFFSET, + art + DORIN_WMAC_MAC_OFFSET); + memcpy(mac, art + DORIN_WMAC_MAC_OFFSET, sizeof(mac)); + } + + mac[3] |= 0x40; + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0); + mac[3] &= 0x3F; ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); ath79_setup_ar933x_phy4_switch(true, true); @@ -104,5 +140,5 @@ static void __init ew_dorin_setup(void) dorin_gpio_keys); } -MIPS_MACHINE(ATH79_MACH_EW_DORIN, "EW-DORIN", "EmbWir-Dorin", - ew_dorin_setup); +MIPS_MACHINE(ATH79_MACH_EW_DORIN_ROUTER, "EW-DORIN-ROUTER", + "EmbWir-Dorin-Router", ew_dorin_router_setup); diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile index 6e6de706f..3897dd49b 100644 --- a/target/linux/ar71xx/image/Makefile +++ b/target/linux/ar71xx/image/Makefile @@ -682,9 +682,11 @@ define Image/Build/Profile/AP121MINI endef ew-dorin_cmdline=board=EW-DORIN console=ttyATH0,115200 +ew-dorin-router_cmdline=board=EW-DORIN-ROUTER console=ttyATH0,115200 ew-dorin_mtdlayout_4M=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env),1024k(kernel),2688k(rootfs),64k(art),3712k@0x50000(firmware) define Image/Build/Profile/EWDORIN $(call Image/Build/Template/$(fs_64k)/$(1),AthLzma,ew-dorin,$(ew-dorin_cmdline),$(ew-dorin_mtdlayout_4M),1048576,2752512,KRuImage) + $(call Image/Build/Template/$(fs_64k)/$(1),AthLzma,ew-dorin-router,$(ew-dorin-router_cmdline),$(ew-dorin_mtdlayout_4M),1048576,2752512,KRuImage) endef ap81_cmdline=board=AP81 console=ttyS0,115200 diff --git a/target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch index 6ef787124..4179681a2 100644 --- a/target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch +++ b/target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -16,18 +16,92 @@ +@@ -16,18 +16,93 @@ enum ath79_mach_type { ATH79_MACH_GENERIC = 0, @@ -22,6 +22,7 @@ + ATH79_MACH_DIR_615_E4, /* D-Link DIR-615 rev. E4 */ + ATH79_MACH_DIR_825_B1, /* D-Link DIR-825 rev. B1 */ + ATH79_MACH_EW_DORIN, /* embedded wireless Dorin Platform */ ++ ATH79_MACH_EW_DORIN_ROUTER, /* embedded wireless Dorin Router Platform */ + ATH79_MACH_EAP7660D, /* Senao EAP7660D */ + ATH79_MACH_JA76PF, /* jjPlus JA76PF */ + ATH79_MACH_JA76PF2, /* jjPlus JA76PF2 */