ramips: add support for D-Link DWR-116-A1/2
The DWR-116-A1/2 Wireless Router is based on the MT7620N SoC. Specification: MediaTek MT7620N (580 Mhz) 32 MB of RAM 8 MB of FLASH 802.11bgn radio 5x 10/100 Mbps Ethernet (1 WAN and 4 LAN) 2x external, non-detachable antennas UART (J1 in A1, JP1 in A2) header on PCB (57600 8n1) 6x LED (GPIO-controlled), 2x button JBOOT bootloader Known issues: WAN LED is drived by uartl tx pin. I decide to use this pin as uartlite tx pin. Installation: Apply factory image via http web-gui. Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
This commit is contained in:
parent
5323477184
commit
a5bd8de0bd
10 changed files with 175 additions and 1 deletions
|
@ -158,6 +158,7 @@ dir-615-h1)
|
||||||
set_wifi_led "rt2800pci-phy0::radio"
|
set_wifi_led "rt2800pci-phy0::radio"
|
||||||
;;
|
;;
|
||||||
dir-620-d1|\
|
dir-620-d1|\
|
||||||
|
dlink,dwr-116-a1|\
|
||||||
mzk-ex300np)
|
mzk-ex300np)
|
||||||
set_wifi_led "$boardname:green:wifi"
|
set_wifi_led "$boardname:green:wifi"
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -80,6 +80,7 @@ ramips_setup_interfaces()
|
||||||
dir-320-b1|\
|
dir-320-b1|\
|
||||||
dir-610-a1|\
|
dir-610-a1|\
|
||||||
dir-615-h1|\
|
dir-615-h1|\
|
||||||
|
dlink,dwr-116-a1|\
|
||||||
ew1200|\
|
ew1200|\
|
||||||
firewrt|\
|
firewrt|\
|
||||||
hc5661a|\
|
hc5661a|\
|
||||||
|
@ -428,6 +429,10 @@ ramips_setup_macs()
|
||||||
lan_mac=$(mtd_get_mac_ascii factory lanmac)
|
lan_mac=$(mtd_get_mac_ascii factory lanmac)
|
||||||
wan_mac=$(mtd_get_mac_ascii factory wanmac)
|
wan_mac=$(mtd_get_mac_ascii factory wanmac)
|
||||||
;;
|
;;
|
||||||
|
dlink,dwr-116-a1)
|
||||||
|
wan_mac=$(jboot_config_read -m -i $(find_mtd_part "config") -o 0xE000)
|
||||||
|
lan_mac=$(macaddr_add "$wan_mac" 1)
|
||||||
|
;;
|
||||||
e1700)
|
e1700)
|
||||||
wan_mac=$(mtd_get_mac_ascii config WAN_MAC_ADDR)
|
wan_mac=$(mtd_get_mac_ascii config WAN_MAC_ADDR)
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -93,6 +93,7 @@ get_status_led() {
|
||||||
dir-620-a1|\
|
dir-620-a1|\
|
||||||
dir-620-d1|\
|
dir-620-d1|\
|
||||||
dwr-512-b|\
|
dwr-512-b|\
|
||||||
|
dlink,dwr-116-a1|\
|
||||||
gb-pc1|\
|
gb-pc1|\
|
||||||
gnubee,gb-pc2|\
|
gnubee,gb-pc2|\
|
||||||
hpm|\
|
hpm|\
|
||||||
|
|
|
@ -19,6 +19,19 @@ rt2x00_eeprom_extract() {
|
||||||
rt2x00_eeprom_die "failed to extract from $mtd"
|
rt2x00_eeprom_die "failed to extract from $mtd"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jboot_eeprom_extract() {
|
||||||
|
local part=$1
|
||||||
|
local offset=$2
|
||||||
|
local mtd
|
||||||
|
|
||||||
|
mtd=$(find_mtd_part $part)
|
||||||
|
[ -n "$mtd" ] || \
|
||||||
|
rt2x00_eeprom_die "no mtd device found for partition $part"
|
||||||
|
|
||||||
|
jboot_config_read -i $mtd -o $offset -e /lib/firmware/$FIRMWARE 2>/dev/null || \
|
||||||
|
rt2x00_eeprom_die "failed to extract from $mtd"
|
||||||
|
}
|
||||||
|
|
||||||
rt2x00_eeprom_set_macaddr() {
|
rt2x00_eeprom_set_macaddr() {
|
||||||
local macaddr=$1
|
local macaddr=$1
|
||||||
|
|
||||||
|
@ -41,6 +54,12 @@ board=$(board_name)
|
||||||
case "$FIRMWARE" in
|
case "$FIRMWARE" in
|
||||||
"soc_wmac.eeprom")
|
"soc_wmac.eeprom")
|
||||||
case $board in
|
case $board in
|
||||||
|
dlink,dwr-116-a1)
|
||||||
|
wan_mac=$(jboot_config_read -m -i $(find_mtd_part "config") -o 0xE000)
|
||||||
|
wifi_mac=$(macaddr_add "$wan_mac" 1)
|
||||||
|
jboot_eeprom_extract "config" 0xE000
|
||||||
|
rt2x00_eeprom_set_macaddr $wifi_mac
|
||||||
|
;;
|
||||||
tiny-ac)
|
tiny-ac)
|
||||||
wifi_mac=$(mtd_get_mac_ascii u-boot-env INIC_MAC_ADDR)
|
wifi_mac=$(mtd_get_mac_ascii u-boot-env INIC_MAC_ADDR)
|
||||||
rt2x00_eeprom_extract "factory" 0 512
|
rt2x00_eeprom_extract "factory" 0 512
|
||||||
|
|
|
@ -270,6 +270,13 @@ platform_check_image() {
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
|
dlink,dwr-116-a1)
|
||||||
|
[ "$magic" != "0404242b" ] && {
|
||||||
|
echo "Invalid image type."
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
hc5962|\
|
hc5962|\
|
||||||
mir3g|\
|
mir3g|\
|
||||||
r6220|\
|
r6220|\
|
||||||
|
|
104
target/linux/ramips/dts/DWR-116-A1.dts
Normal file
104
target/linux/ramips/dts/DWR-116-A1.dts
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "mt7620n.dtsi"
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
compatible = "dlink,dwr-116-a1", "ralink,mt7620n-soc";
|
||||||
|
model = "D-Link DWR-116 A1/A2";
|
||||||
|
|
||||||
|
gpio-keys-polled {
|
||||||
|
compatible = "gpio-keys-polled";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
poll-interval = <20>;
|
||||||
|
|
||||||
|
wps {
|
||||||
|
label = "wps";
|
||||||
|
gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
|
||||||
|
linux,code = <KEY_WPS_BUTTON>;
|
||||||
|
};
|
||||||
|
|
||||||
|
reset {
|
||||||
|
label = "reset";
|
||||||
|
gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
|
||||||
|
linux,code = <KEY_RESTART>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio-leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
status {
|
||||||
|
label = "dwr-116-a1:green:status";
|
||||||
|
gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
wifi {
|
||||||
|
label = "dwr-116-a1:green:wifi";
|
||||||
|
gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio3 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
m25p80@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "jedec,spi-nor";
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <50000000>;
|
||||||
|
|
||||||
|
partition@0 {
|
||||||
|
label = "jboot";
|
||||||
|
reg = <0x0 0x10000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@10000 {
|
||||||
|
label = "firmware";
|
||||||
|
reg = <0x10000 0x7e0000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
config: partition@7f0000 {
|
||||||
|
label = "config";
|
||||||
|
reg = <0x7f0000 0x10000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&ehci {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ohci {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&pinctrl {
|
||||||
|
state_default: pinctrl0 {
|
||||||
|
default {
|
||||||
|
ralink,group = "i2c", "wled";
|
||||||
|
ralink,function = "gpio";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ðernet {
|
||||||
|
mediatek,portmap = "llllw";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&ephy_pins>;
|
||||||
|
};
|
|
@ -111,6 +111,26 @@ define Build/wrg-header
|
||||||
mv $@.new $@
|
mv $@.new $@
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
# combine kernel and rootfs into one image
|
||||||
|
# mkdlinkfw <type> <optional extra arguments to mkdlinkfw binary>
|
||||||
|
|
||||||
|
define Build/mkdlinkfw
|
||||||
|
-$(STAGING_DIR_HOST)/bin/mkdlinkfw \
|
||||||
|
-k $(IMAGE_KERNEL) \
|
||||||
|
-r $(IMAGE_ROOTFS) \
|
||||||
|
-o $@ \
|
||||||
|
-s $(DLINK_FIRMWARE_SIZE)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/mkdlinkfw-factory
|
||||||
|
-$(STAGING_DIR_HOST)/bin/mkdlinkfw \
|
||||||
|
-m $(DLINK_ROM_ID) -f $(DLINK_FAMILY_MEMBER) \
|
||||||
|
-F $@ \
|
||||||
|
-o $@.new \
|
||||||
|
-s $(DLINK_FIRMWARE_SIZE)
|
||||||
|
mv $@.new $@
|
||||||
|
endef
|
||||||
|
|
||||||
#
|
#
|
||||||
# The real magic happens inside these templates
|
# The real magic happens inside these templates
|
||||||
#
|
#
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
# MT7620A Profiles
|
# MT7620A Profiles
|
||||||
#
|
#
|
||||||
|
|
||||||
DEVICE_VARS += TPLINK_FLASHLAYOUT TPLINK_HWID TPLINK_HWREV TPLINK_HWREVADD TPLINK_HVERSION
|
DEVICE_VARS += TPLINK_FLASHLAYOUT TPLINK_HWID TPLINK_HWREV TPLINK_HWREVADD TPLINK_HVERSION \
|
||||||
|
DLINK_ROM_ID DLINK_FAMILY_MEMBER DLINK_FIRMWARE_SIZE
|
||||||
|
|
||||||
define Build/elecom-header
|
define Build/elecom-header
|
||||||
cp $@ $(KDIR)/v_0.0.0.bin
|
cp $@ $(KDIR)/v_0.0.0.bin
|
||||||
|
@ -147,6 +148,20 @@ define Device/dir-810l
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += dir-810l
|
TARGET_DEVICES += dir-810l
|
||||||
|
|
||||||
|
define Device/dlink_dwr-116-a1
|
||||||
|
DTS := DWR-116-A1
|
||||||
|
DEVICE_TITLE := D-Link DWR-116 A1/A2
|
||||||
|
DEVICE_PACKAGES := kmod-usb2 jboot-tools
|
||||||
|
DLINK_ROM_ID := DLK6E3803001
|
||||||
|
DLINK_FAMILY_MEMBER := 0x6E38
|
||||||
|
DLINK_FIRMWARE_SIZE := 0x7E0000
|
||||||
|
KERNEL := $(KERNEL_DTB)
|
||||||
|
IMAGES += factory.bin
|
||||||
|
IMAGE/sysupgrade.bin := mkdlinkfw | pad-rootfs | append-metadata
|
||||||
|
IMAGE/factory.bin := mkdlinkfw | pad-rootfs | mkdlinkfw-factory
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += dlink_dwr-116-a1
|
||||||
|
|
||||||
define Device/e1700
|
define Device/e1700
|
||||||
DTS := E1700
|
DTS := E1700
|
||||||
IMAGES += factory.bin
|
IMAGES += factory.bin
|
||||||
|
|
|
@ -164,6 +164,7 @@ CONFIG_MTD_SPI_NOR=y
|
||||||
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
|
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
|
||||||
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS_LIMIT=16384
|
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS_LIMIT=16384
|
||||||
CONFIG_MTD_SPLIT_FIRMWARE=y
|
CONFIG_MTD_SPLIT_FIRMWARE=y
|
||||||
|
CONFIG_MTD_SPLIT_JIMAGE_FW=y
|
||||||
CONFIG_MTD_SPLIT_SEAMA_FW=y
|
CONFIG_MTD_SPLIT_SEAMA_FW=y
|
||||||
CONFIG_MTD_SPLIT_TPLINK_FW=y
|
CONFIG_MTD_SPLIT_TPLINK_FW=y
|
||||||
CONFIG_MTD_SPLIT_UIMAGE_FW=y
|
CONFIG_MTD_SPLIT_UIMAGE_FW=y
|
||||||
|
|
|
@ -143,6 +143,7 @@ CONFIG_MTD_SPI_NOR=y
|
||||||
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
|
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
|
||||||
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS_LIMIT=16384
|
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS_LIMIT=16384
|
||||||
CONFIG_MTD_SPLIT_FIRMWARE=y
|
CONFIG_MTD_SPLIT_FIRMWARE=y
|
||||||
|
CONFIG_MTD_SPLIT_JIMAGE_FW=y
|
||||||
CONFIG_MTD_SPLIT_SEAMA_FW=y
|
CONFIG_MTD_SPLIT_SEAMA_FW=y
|
||||||
CONFIG_MTD_SPLIT_TPLINK_FW=y
|
CONFIG_MTD_SPLIT_TPLINK_FW=y
|
||||||
CONFIG_MTD_SPLIT_UIMAGE_FW=y
|
CONFIG_MTD_SPLIT_UIMAGE_FW=y
|
||||||
|
|
Loading…
Reference in a new issue