difos/target/linux/ath79/image/nand.mk
WeiDong Jia 643cab4f31 ath79: add support for DomyWifi DW33D
This commit ports the device from ar71xx to the ath79 target and
modifies the partition layout.
1. Firmware is installed to nand flash.
2. Modify the uboot-env parameter to boot from the nand flash.
3. The kernel size is extended to 5M.
4.nor flash retains the oem firmware.

oem partition layout
dev:    size   erasesize  name
mtd0: 00040000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00e30000 00010000 "rootfs"
mtd3: 00170000 00010000 "kernel"
mtd4: 00010000 00010000 "art"
mtd5: 00f90000 00010000 "firmware"
mtd6: 06000000 00020000 "rootfs_data"
mtd7: 02000000 00020000 "backup"

new partition layout
dev:    size   erasesize  name
mtd0: 00040000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00fa0000 00010000 "oem-firmware"
mtd3: 00010000 00010000 "art"
mtd4: 00500000 00020000 "kernel"
mtd5: 05b00000 00020000 "ubi"
mtd6: 02000000 00020000 "oem-backup"

MAC address overview:
All mac addresses are stored in the art partition.
eth0: 0x0
eth1: 0x6
ath9k: 0xc
ath10k: 0x12
No valid addresses in 0x1002 and 0x5006. All addresses match the OEM
firmware.

Install from oem firmware.
Enable ssh service:
Connect to the router web, click professional, click system-startup,
and add dropbear in the local startup input box. Click
system-administration, delete ssh-key, and replace your ssh pub key.
Restart the router.
1.Upload openwrt firmware to the device
scp openwrt-snapshot-r11365-df60a0852c-ath79-nand-domywifi_dw33d-\
squashfs-factory.bin root@192.168.10.1:/tmp
2.modify uboot-env.
ssh login to the device:
fw_setenv bootcmd 'nboot 0x8050000 0;bootm || bootm 0x9fe80000'
Run the fw_printenv command to check if the settings are correct.
3.Write openwrt firmware.
ssh login to the device:
mtd -r write /tmp/openwrt-snapshot-r11365-df60a0852c-ath79-nand-\
domywifi_dw33d-squashfs-factory.bin /dev/mtd6
The device will restart automatically and the openwrt firmware
installation is complete.

Restore oem firmware.just erase the kernel partition and the ubi
partition.
ssh login to the device:
mtd erase /dev/mtd4
mtd -r erase /dev/mtd5
Reboot the device

Signed-off-by: WeiDong Jia <jwdsccd@gmail.com>
[alter flash instruction in commit message]
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-03-07 11:02:13 +08:00

233 lines
7.1 KiB
Makefile

include ./common-mikrotik.mk
include ./common-netgear.mk # for netgear-uImage
# attention: only zlib compression is allowed for the boot fs
define Build/zyxel-buildkerneljffs
rm -rf $(KDIR_TMP)/zyxelnbg6716
mkdir -p $(KDIR_TMP)/zyxelnbg6716/image/boot
cp $@ $(KDIR_TMP)/zyxelnbg6716/image/boot/vmlinux.lzma.uImage
$(STAGING_DIR_HOST)/bin/mkfs.jffs2 \
--big-endian --squash-uids -v -e 128KiB -q -f -n -x lzma -x rtime \
-o $@ \
-d $(KDIR_TMP)/zyxelnbg6716/image
rm -rf $(KDIR_TMP)/zyxelnbg6716
endef
define Build/zyxel-factory
let \
maxsize="$(subst k,* 1024,$(RAS_ROOTFS_SIZE))"; \
let size="$$(stat -c%s $@)"; \
if [ $$size -lt $$maxsize ]; then \
$(STAGING_DIR_HOST)/bin/mkrasimage \
-b $(RAS_BOARD) \
-v $(RAS_VERSION) \
-r $@ \
-s $$maxsize \
-o $@.new \
-l 131072 \
&& mv $@.new $@ ; \
fi
endef
define Device/aerohive_hiveap-121
SOC := ar9344
DEVICE_VENDOR := Aerohive
DEVICE_MODEL := HiveAP 121
DEVICE_PACKAGES := kmod-usb2
BLOCKSIZE := 128k
PAGESIZE := 2048
IMAGE_SIZE := 116m
KERNEL_SIZE := 5120k
UBINIZE_OPTS := -E 5
SUPPORTED_DEVICES += hiveap-121
IMAGES += factory.bin
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
check-size $$$$(IMAGE_SIZE)
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
endef
TARGET_DEVICES += aerohive_hiveap-121
define Device/domywifi_dw33d
SOC := qca9558
DEVICE_VENDOR := DomyWifi
DEVICE_MODEL := DW33D
DEVICE_PACKAGES := kmod-usb2 kmod-usb-storage kmod-usb-ledtrig-usbport \
kmod-ath10k-ct ath10k-firmware-qca988x-ct
KERNEL_SIZE := 5120k
IMAGE_SIZE := 98304k
BLOCKSIZE := 128k
PAGESIZE := 2048
UBINIZE_OPTS := -E 5
IMAGES += factory.bin
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
check-size $$$$(IMAGE_SIZE)
endef
TARGET_DEVICES += domywifi_dw33d
define Device/glinet_gl-ar300m-common-nand
SOC := qca9531
DEVICE_VENDOR := GL.iNet
DEVICE_MODEL := GL-AR300M
DEVICE_PACKAGES := kmod-usb2
KERNEL_SIZE := 4096k
IMAGE_SIZE := 16000k
PAGESIZE := 2048
VID_HDR_OFFSET := 2048
endef
define Device/glinet_gl-ar300m-nand
$(Device/glinet_gl-ar300m-common-nand)
DEVICE_VARIANT := NAND
BLOCKSIZE := 128k
IMAGES += factory.img
IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
SUPPORTED_DEVICES += glinet,gl-ar300m-nor
endef
TARGET_DEVICES += glinet_gl-ar300m-nand
define Device/glinet_gl-ar300m-nor
$(Device/glinet_gl-ar300m-common-nand)
DEVICE_VARIANT := NOR
BLOCKSIZE := 64k
SUPPORTED_DEVICES += glinet,gl-ar300m-nand gl-ar300m
endef
TARGET_DEVICES += glinet_gl-ar300m-nor
define Device/glinet_gl-ar750s-common
SOC := qca9563
DEVICE_VENDOR := GL.iNet
DEVICE_MODEL := GL-AR750S
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct kmod-usb2 \
kmod-usb-storage block-mount
KERNEL_SIZE := 2048k
IMAGE_SIZE := 16000k
PAGESIZE := 2048
VID_HDR_OFFSET := 2048
endef
# NB: The kernel size is intentionally restricted at this time; see commit message
define Device/glinet_gl-ar750s-nor-nand
$(Device/glinet_gl-ar750s-common)
DEVICE_VARIANT := NOR/NAND
BLOCKSIZE := 128k
GL_UBOOT_UBI_OFFSET := 2048k
IMAGES += factory.img
IMAGE/factory.img := append-kernel | pad-to $$$$(GL_UBOOT_UBI_OFFSET) | \
append-ubi | check-kernel-size $$$$(GL_UBOOT_UBI_OFFSET)
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
SUPPORTED_DEVICES += glinet,gl-ar750s-nor
endef
TARGET_DEVICES += glinet_gl-ar750s-nor-nand
define Device/glinet_gl-ar750s-nor
$(Device/glinet_gl-ar750s-common)
DEVICE_VARIANT := NOR
BLOCKSIZE := 64k
SUPPORTED_DEVICES += gl-ar750s glinet,gl-ar750s glinet,gl-ar750s-nor-nand
endef
TARGET_DEVICES += glinet_gl-ar750s-nor
define Device/mikrotik_routerboard-922uags-5hpacd
$(Device/mikrotik)
SOC := qca9558
DEVICE_MODEL := RouterBOARD 922UAGS-5HPacD
BOARD_NAME := routerboard
IMAGE/sysupgrade.bin = append-kernel | kernel2minor -s 2048 -e -c | \
sysupgrade-tar kernel=$$$$@ | append-metadata
DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct \
kmod-usb2 nand-utils
SUPPORTED_DEVICES += rb-922uags-5hpacd
endef
TARGET_DEVICES += mikrotik_routerboard-922uags-5hpacd
# fake rootfs is mandatory, pad-offset 129 equals (2 * uimage_header + 0xff)
define Device/netgear_ath79_nand
DEVICE_VENDOR := NETGEAR
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
KERNEL_SIZE := 4096k
BLOCKSIZE := 128k
PAGESIZE := 2048
IMAGE_SIZE := 25600k
KERNEL := kernel-bin | append-dtb | lzma -d20 | \
pad-offset $$(KERNEL_SIZE) 129 | netgear-uImage lzma | \
append-string -e '\xff' | \
append-uImage-fakehdr filesystem $$(NETGEAR_KERNEL_MAGIC)
KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma -d20 | netgear-uImage lzma
IMAGES := sysupgrade.bin factory.img
IMAGE/factory.img := append-kernel | append-ubi | netgear-dni | \
check-size $$$$(IMAGE_SIZE)
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata | \
check-size $$$$(IMAGE_SIZE)
UBINIZE_OPTS := -E 5
endef
define Device/netgear_wndr3700-v4
SOC := ar9344
DEVICE_MODEL := WNDR3700
DEVICE_VARIANT := v4
NETGEAR_KERNEL_MAGIC := 0x33373033
NETGEAR_BOARD_ID := WNDR3700v4
NETGEAR_HW_ID := 29763948+128+128
$(Device/netgear_ath79_nand)
endef
TARGET_DEVICES += netgear_wndr3700-v4
define Device/netgear_wndr4300
SOC := ar9344
DEVICE_MODEL := WNDR4300
NETGEAR_KERNEL_MAGIC := 0x33373033
NETGEAR_BOARD_ID := WNDR4300
NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
$(Device/netgear_ath79_nand)
endef
TARGET_DEVICES += netgear_wndr4300
define Device/netgear_wndr4300-v2
SOC := qca9563
DEVICE_MODEL := WNDR4300
DEVICE_VARIANT := v2
NETGEAR_KERNEL_MAGIC := 0x27051956
NETGEAR_BOARD_ID := WNDR4500series
NETGEAR_HW_ID := 29764821+2+128+128+3x3+3x3+5508012175
$(Device/netgear_ath79_nand)
endef
TARGET_DEVICES += netgear_wndr4300-v2
define Device/netgear_wndr4500-v3
SOC := qca9563
DEVICE_MODEL := WNDR4500
DEVICE_VARIANT := v3
NETGEAR_KERNEL_MAGIC := 0x27051956
NETGEAR_BOARD_ID := WNDR4500series
NETGEAR_HW_ID := 29764821+2+128+128+3x3+3x3+5508012173
$(Device/netgear_ath79_nand)
endef
TARGET_DEVICES += netgear_wndr4500-v3
define Device/zyxel_nbg6716
SOC := qca9558
DEVICE_VENDOR := ZyXEL
DEVICE_MODEL := NBG6716
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
ath10k-firmware-qca988x-ct
RAS_BOARD := NBG6716
RAS_ROOTFS_SIZE := 29696k
RAS_VERSION := "OpenWrt Linux-$(LINUX_VERSION)"
KERNEL_SIZE := 4096k
BLOCKSIZE := 128k
PAGESIZE := 2048
KERNEL := kernel-bin | append-dtb | uImage none | zyxel-buildkerneljffs | \
check-size 4096k
IMAGES := sysupgrade.tar sysupgrade-4M-Kernel.bin factory.bin
IMAGE/sysupgrade.tar/squashfs := append-rootfs | pad-to $$$$(BLOCKSIZE) | \
sysupgrade-tar rootfs=$$$$@ | append-metadata
IMAGE/sysupgrade-4M-Kernel.bin/squashfs := append-kernel | \
pad-to $$$$(KERNEL_SIZE) | append-ubi | pad-to 263192576 | gzip
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
zyxel-factory
UBINIZE_OPTS := -E 5
endef
TARGET_DEVICES += zyxel_nbg6716
DEVICE_VARS += RAS_ROOTFS_SIZE RAS_BOARD RAS_VERSION