ath79: add support for ELECOM WRC-300GHBK2-I
ELECOM WRC-300GHBK2-I is a 2.4 GHz wireless router, based on Qualcomm Atheros QCA9563. Specification: - Qualcomm Atheros QCA9563 - 64 MB of RAM (DDR2) - 8 MB of Flash (SPI-NOR) - 2T2R 2.4 GHz wifi - SoC internal - 5x 10/100/1000 Mbps Ethernet - 3x LEDs, 4x keys(connected to GPIO: 3x) - UART header on PCB - TX, GND, RX, Vcc from ethernet port side - 115200n8 Flash instruction using factory image: 1. Boot the WRC-300GHBK2-I normaly and connect the computer to its LAN port 2. Access to "http://192.168.2.1/" and open firmware update page ("ファームウェア更新 手動更新(アップデート)") 3. Select the OpenWrt factory image and click apply ("適用") button to perform firmware update 4. On the (initramfs) factory image, execute "mtd erase firmware" to erase stock firmware and execute sysupgrade with squashfs-sysupgrade image for WRC-300GHBK2-I 5. Wait ~150 seconds to complete flashing Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
This commit is contained in:
parent
7a67b437e7
commit
7768f11534
3 changed files with 202 additions and 0 deletions
|
@ -40,6 +40,10 @@ ath79_setup_interfaces()
|
|||
ucidef_add_switch "switch0" \
|
||||
"0:lan" "1:lan" "2:lan" "3:lan" "5@eth0"
|
||||
;;
|
||||
elecom,wrc-300ghbk2-i)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan:4" "3:lan:3" "4:lan:2" "5:lan:1" "1:wan"
|
||||
;;
|
||||
embeddedwireless,dorin)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:wan" "2:lan:3" "3:lan:2"
|
||||
|
@ -177,6 +181,9 @@ ath79_setup_macs()
|
|||
lan_mac=$(mtd_get_mac_text "caldata" 65440)
|
||||
wan_mac=$(mtd_get_mac_text "caldata" 65460)
|
||||
;;
|
||||
elecom,wrc-300ghbk2-i)
|
||||
wan_mac=$(macaddr_add "$(mtd_get_mac_binary ART 4098)" -2)
|
||||
;;
|
||||
iodata,etg3-r)
|
||||
lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
|
||||
wan_mac=$(macaddr_add "$lan_mac" -1)
|
||||
|
|
160
target/linux/ath79/dts/qca9563_elecom_wrc-300ghbk2-i.dts
Normal file
160
target/linux/ath79/dts/qca9563_elecom_wrc-300ghbk2-i.dts
Normal file
|
@ -0,0 +1,160 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "qca956x.dtsi"
|
||||
|
||||
/ {
|
||||
model = "ELECOM WRC-300GHBK2-I";
|
||||
compatible = "elecom,wrc-300ghbk2-i", "qca,qca9563";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200n8";
|
||||
};
|
||||
|
||||
aliases {
|
||||
led-boot = &power;
|
||||
led-failsafe = &power;
|
||||
led-running = &power;
|
||||
led-upgrade = &power;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
power: power {
|
||||
label = "wrc-300ghbk2-i:white:power";
|
||||
gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "on";
|
||||
};
|
||||
|
||||
wlan2g {
|
||||
label = "wrc-300ghbk2-i:white:wlan2g";
|
||||
gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
linux,default-trigger = "phy0tpt";
|
||||
};
|
||||
|
||||
wps {
|
||||
label = "wrc-300ghbk2-i:red:wps";
|
||||
gpios = <&gpio 9 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
|
||||
button_wps {
|
||||
label = "wps";
|
||||
gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
|
||||
ap {
|
||||
label = "ap";
|
||||
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <BTN_0>;
|
||||
linux,input-type = <EV_SW>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&spi {
|
||||
status = "okay";
|
||||
num-cs = <1>;
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <25000000>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "u-boot";
|
||||
reg = <0x000000 0x040000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x040000 0x010000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@50000 {
|
||||
label = "nvram";
|
||||
reg = <0x050000 0x020000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@70000 {
|
||||
label = "firmware";
|
||||
reg = <0x070000 0x770000>;
|
||||
};
|
||||
|
||||
partition@7e0000 {
|
||||
label = "hwconfig";
|
||||
reg = <0x7e0000 0x010000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
ART: partition@7f0000 {
|
||||
label = "ART";
|
||||
reg = <0x7f0000 0x010000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
status = "okay";
|
||||
|
||||
phy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
phy-mode = "sgmii";
|
||||
|
||||
qca,ar8327-initvals = <
|
||||
0x04 0x00000080 /* PORT0 PAD MODE CTRL */
|
||||
0x50 0xcf37cf37 /* LED_CTRL0 */
|
||||
0x54 0x00000000 /* LED_CTRL1 */
|
||||
0x58 0x00000000 /* LED_CTRL2 */
|
||||
0x5c 0x03ffff00 /* LED_CTRL3 */
|
||||
0x7c 0x0000007e /* PORT0_STATUS */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&ART 0x1002>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
phy-mode = "sgmii";
|
||||
phy-handle = <&phy0>;
|
||||
};
|
||||
|
||||
&uart {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&wmac {
|
||||
status = "okay";
|
||||
mtd-cal-data = <&ART 0x1000>;
|
||||
};
|
|
@ -17,6 +17,31 @@ define Build/addpattern
|
|||
-mv "$@.new" "$@"
|
||||
endef
|
||||
|
||||
define Build/elecom-header
|
||||
$(eval fw_size=$(word 1,$(1)))
|
||||
$(eval edimax_model=$(word 2,$(1)))
|
||||
$(eval product=$(word 3,$(1)))
|
||||
$(eval factory_bin=$(word 4,$(1)))
|
||||
if [ -e $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) -a "$$(stat -c%s $@)" -lt "$(fw_size)" ]; then \
|
||||
$(CP) $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) $(factory_bin); \
|
||||
$(STAGING_DIR_HOST)/bin/mkedimaximg \
|
||||
-b -s CSYS -m $(edimax_model) \
|
||||
-f 0x70000 -S 0x01100000 \
|
||||
-i $(factory_bin) -o $(factory_bin).new; \
|
||||
mv $(factory_bin).new $(factory_bin); \
|
||||
( \
|
||||
echo -n -e "ELECOM\x00\x00$(product)" | dd bs=40 count=1 conv=sync; \
|
||||
echo -n "0.00" | dd bs=16 count=1 conv=sync; \
|
||||
dd if=$(factory_bin); \
|
||||
) > $(factory_bin).new; \
|
||||
mv $(factory_bin).new $(factory_bin); \
|
||||
$(CP) $(factory_bin) $(BIN_DIR)/; \
|
||||
else \
|
||||
echo "WARNING: initramfs kernel image too big, cannot generate factory image" >&2; \
|
||||
fi
|
||||
|
||||
endef
|
||||
|
||||
define Device/avm_fritz300e
|
||||
ATH_SOC := ar7242
|
||||
DEVICE_TITLE := AVM FRITZ!WLAN Repeater 300E
|
||||
|
@ -62,6 +87,16 @@ define Device/dlink_dir-825-b1
|
|||
endef
|
||||
TARGET_DEVICES += dlink_dir-825-b1
|
||||
|
||||
define Device/elecom_wrc-300ghbk2-i
|
||||
ATH_SOC := qca9563
|
||||
DEVICE_TITLE := ELECOM WRC-300GHBK2-I
|
||||
IMAGE_SIZE := 7616k
|
||||
KERNEL_INITRAMFS := $$(KERNEL) | pad-to 2 | \
|
||||
elecom-header 7798706 RN51 WRC-300GHBK2-I \
|
||||
$(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.bin
|
||||
endef
|
||||
TARGET_DEVICES += elecom_wrc-300ghbk2-i
|
||||
|
||||
define Device/embeddedwireless_dorin
|
||||
ATH_SOC := ar9331
|
||||
DEVICE_TITLE := Embedded Wireless Dorin
|
||||
|
|
Loading…
Reference in a new issue