From 84451173f08e7af9e47c85c1a0cd8e041f4ec568 Mon Sep 17 00:00:00 2001 From: Jihoon Han Date: Fri, 1 Oct 2021 14:53:06 +0900 Subject: ath79: add support for Dongwon T&I DW02-412H Dongwon T&I DW02-412H is a 2.4/5GHz band 11ac (WiFi-5) router, based on Qualcomm Atheros QCA9557. Specifications -------------- - SoC: Qualcomm Atheros QCA9557-AT4A - RAM: DDR2 128MB - Flash: SPI NOR 2MB (Winbond W25Q16DVSSIG / ESMT F25L16PA(2S)) + NAND 64/128MB - WiFi: - 2.4GHz: QCA9557 WMAC - 5GHz: QCA9882-BR4A - Ethernet: 5x 10/100/1000Mbps - Switch: QCA8337N-AL3C - USB: 1x USB 2.0 - UART: - JP2: 3.3V, TX, RX, GND (3.3V is the square pad) / 115200 8N1 Installation -------------- 1. Connect a serial interface to UART header and interrupt the autostart of kernel. 2. Transfer the factory image via TFTP and write it to the NAND flash. 3. Update U-Boot environment variable. > tftpboot 0x81000000 -factory.img > nand erase 0x1000000 > nand write 0x81000000 0x1000000 ${filesize} > setenv bootpart 2 > saveenv Revert to stock firmware -------------- 1. Revert to stock U-Boot environment variable. > setenv bootpart 1 > saveenv MAC addresses as verified by OEM firmware -------------- WAN: *:XX (label) LAN: *:XX + 1 2.4G: *:XX + 3 5G: *:XX + 4 The label MAC address was found in art 0x0. Credits -------------- Credit goes to the @manatails who first developed how to port OpenWRT to this device and had a significant impact on this patch. And thanks to @adschm and @mans0n for guiding me to revise the code in many ways. Signed-off-by: Jihoon Han Reviewed-by: Sungbo Eo Tested-by: Sungbo Eo --- target/linux/ath79/image/nand.mk | 48 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'target/linux/ath79/image') diff --git a/target/linux/ath79/image/nand.mk b/target/linux/ath79/image/nand.mk index 8d3d2ce5b2..b34e796ac3 100644 --- a/target/linux/ath79/image/nand.mk +++ b/target/linux/ath79/image/nand.mk @@ -1,3 +1,16 @@ +define Build/dw-headers + head -c 4 $@ >> $@.tmp && \ + head -c 8 /dev/zero >> $@.tmp && \ + tail -c +9 $@ >> $@.tmp && \ + ( \ + header_crc="$$(head -c 68 $@.tmp | gzip -c | \ + tail -c 8 | od -An -N4 -tx4 --endian little | tr -d ' \n')"; \ + printf "$$(echo $$header_crc | sed 's/../\\x&/g')" | \ + dd of=$@.tmp bs=4 count=1 seek=1 conv=notrunc \ + ) + mv $@.tmp $@ +endef + # attention: only zlib compression is allowed for the boot fs define Build/zyxel-buildkerneljffs mkdir -p $@.tmp/boot @@ -76,6 +89,41 @@ define Device/domywifi_dw33d endef TARGET_DEVICES += domywifi_dw33d +define Device/dongwon_dw02-412h + SOC := qca9557 + DEVICE_VENDOR := Dongwon T&I + DEVICE_MODEL := DW02-412H + DEVICE_ALT0_VENDOR := KT + DEVICE_ALT0_MODEL := GiGA WiFi home + DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct + KERNEL_SIZE := 8192k + BLOCKSIZE := 128k + PAGESIZE := 2048 + KERNEL := kernel-bin | append-dtb | lzma | uImage lzma | dw-headers + KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | uImage lzma | dw-headers + UBINIZE_OPTS := -E 5 + IMAGES += factory.img + IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \ + check-size + IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata +endef + +define Device/dongwon_dw02-412h-64m + $(Device/dongwon_dw02-412h) + DEVICE_VARIANT := (64M) + DEVICE_ALT0_VARIANT := (64M) + IMAGE_SIZE := 49152k +endef +TARGET_DEVICES += dongwon_dw02-412h-64m + +define Device/dongwon_dw02-412h-128m + $(Device/dongwon_dw02-412h) + DEVICE_VARIANT := (128M) + DEVICE_ALT0_VARIANT := (128M) + IMAGE_SIZE := 114688k +endef +TARGET_DEVICES += dongwon_dw02-412h-128m + define Device/glinet_gl-ar300m-common-nand SOC := qca9531 DEVICE_VENDOR := GL.iNet -- cgit v1.2.3