ath79: add support for Alcatel HH40V
[openwrt/staging/dedeckeh.git] / target / linux / ath79 / image / nand.mk
index c11ff6a2574f74e04dd9ce1e5d2155e479e91aad..40c57d8b06f74c80011b7cfc655b2bfcdced1b79 100644 (file)
@@ -1,13 +1,25 @@
+define Build/dongwon-header
+       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
-        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
+define Build/zyxel-buildkerneljffs
+       mkdir -p $@.tmp/boot
+       cp $@ $@.tmp/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 $@.tmp
+       rm -rf $@.tmp
 endef
 
 define Build/zyxel-factory
@@ -26,8 +38,23 @@ define Build/zyxel-factory
                fi
 endef
 
+define Device/8dev_rambutan
+  SOC := qca9557
+  DEVICE_VENDOR := 8devices
+  DEVICE_MODEL := Rambutan
+  DEVICE_PACKAGES := kmod-usb2
+  BLOCKSIZE := 128k
+  PAGESIZE := 2048
+  KERNEL_SIZE := 4096k
+  KERNEL_IN_UBI := 1
+  IMAGES := factory.bin sysupgrade.tar
+  IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
+  IMAGE/factory.bin := append-ubi
+endef
+TARGET_DEVICES += 8dev_rambutan
+
 define Device/aerohive_hiveap-121
-  ATH_SOC := ar9344
+  SOC := ar9344
   DEVICE_VENDOR := Aerohive
   DEVICE_MODEL := HiveAP 121
   DEVICE_PACKAGES := kmod-usb2
@@ -38,44 +65,384 @@ define Device/aerohive_hiveap-121
   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/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
+       check-size
   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
 endef
 TARGET_DEVICES += aerohive_hiveap-121
 
-define Device/glinet_gl-ar300m-nand
-  ATH_SOC := qca9531
+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
+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) | dongwon-header
+  KERNEL_INITRAMFS := $$(KERNEL)
+  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
   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
-  DEVICE_PACKAGES := kmod-usb2 kmod-usb-storage kmod-usb-ledtrig-usbport
-  KERNEL_SIZE := 2048k
   BLOCKSIZE := 128k
-  PAGESIZE := 2048
-  VID_HDR_OFFSET := 512
-  IMAGES += factory.ubi
-  IMAGE/sysupgrade.bin := sysupgrade-tar
-  IMAGE/factory.ubi := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
+  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
+  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
+  IMAGE_SIZE := 16000k
+endef
+
+define Device/glinet_gl-ar750s-nor-nand
+  $(Device/glinet_gl-ar750s-common)
+  DEVICE_VARIANT := NOR/NAND
+  KERNEL_SIZE := 4096k
+  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
+  SUPPORTED_DEVICES += gl-ar750s glinet,gl-ar750s glinet,gl-ar750s-nor-nand
+endef
+TARGET_DEVICES += glinet_gl-ar750s-nor
+
+define Device/glinet_gl-e750
+  SOC := qca9531
+  DEVICE_VENDOR := GL.iNet
+  DEVICE_MODEL := GL-E750
+  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct kmod-usb2
+  SUPPORTED_DEVICES += gl-e750
+  KERNEL_SIZE := 4096k
+  IMAGE_SIZE := 131072k
+  PAGESIZE := 2048
+  VID_HDR_OFFSET := 2048
+  BLOCKSIZE := 128k
+  IMAGES += factory.img
+  IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+endef
+TARGET_DEVICES += glinet_gl-e750
+
+define Device/glinet_gl-xe300
+  SOC := qca9531
+  DEVICE_VENDOR := GL.iNet
+  DEVICE_MODEL := GL-XE300
+  DEVICE_PACKAGES := kmod-usb2 block-mount kmod-usb-serial-ch341 \
+       kmod-usb-net-qmi-wwan uqmi
+  KERNEL_SIZE := 4096k
+  IMAGE_SIZE := 131072k
+  PAGESIZE := 2048
+  VID_HDR_OFFSET := 2048
+  BLOCKSIZE := 128k
+  IMAGES += factory.img
+  IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+endef
+TARGET_DEVICES += glinet_gl-xe300
+
+define Device/glinet_gl-x1200-common
+  SOC := qca9563
+  DEVICE_VENDOR := GL.iNet
+  DEVICE_MODEL := GL-X1200
+  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct-htt kmod-usb2 \
+       kmod-usb-storage block-mount kmod-usb-net-qmi-wwan uqmi
+  IMAGE_SIZE := 16000k
+endef
+
+define Device/glinet_gl-x1200-nor-nand
+  $(Device/glinet_gl-x1200-common)
+  DEVICE_VARIANT := NOR/NAND
+  KERNEL_SIZE := 4096k
+  IMAGE_SIZE := 131072k
+  PAGESIZE := 2048
+  VID_HDR_OFFSET := 2048
+  BLOCKSIZE := 128k
+  IMAGES += factory.img
+  IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+endef
+TARGET_DEVICES += glinet_gl-x1200-nor-nand
+
+define Device/glinet_gl-x1200-nor
+  $(Device/glinet_gl-x1200-common)
+  DEVICE_VARIANT := NOR
+endef
+TARGET_DEVICES += glinet_gl-x1200-nor
+
+define Device/linksys_ea4500-v3
+  SOC := qca9558
+  DEVICE_VENDOR := Linksys
+  DEVICE_MODEL := EA4500
+  DEVICE_VARIANT := v3
+  DEVICE_PACKAGES := kmod-usb2
+  BLOCKSIZE := 128k
+  PAGESIZE := 2048
+  KERNEL_SIZE := 4096k
+  IMAGE_SIZE := 81920k
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+  LINKSYS_HWNAME := EA4500V3
+  IMAGES += factory.img
+  IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | \
+       append-ubi | check-size | linksys-image type=$$$$(LINKSYS_HWNAME)
+  UBINIZE_OPTS := -E 5
+endef
+TARGET_DEVICES += linksys_ea4500-v3
+
+# fake rootfs is mandatory, pad-offset 64 equals (1 * uimage_header)
+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 | uImage lzma | \
+       pad-offset $$(BLOCKSIZE) 64 | append-uImage-fakehdr filesystem $$(UIMAGE_MAGIC)
+  IMAGES := sysupgrade.bin factory.img
+  IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | \
+       append-ubi | check-size | netgear-dni
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+  UBINIZE_OPTS := -E 5
+endef
+
+define Device/netgear_pgzng1
+  SOC := ar9344
+  DEVICE_MODEL := PGZNG1
+  DEVICE_VENDOR := NETGEAR
+  DEVICE_ALT0_MODEL := Pulse Gateway
+  DEVICE_ALT0_VENDOR := ADT
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-i2c-gpio \
+    kmod-leds-pca955x kmod-rtc-isl1208 kmod-spi-dev
+  KERNEL_SIZE := 5120k
+  IMAGE_SIZE := 83968k
+  PAGESIZE := 2048
+  BLOCKSIZE := 128k
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+endef
+TARGET_DEVICES += netgear_pgzng1
+
+define Device/netgear_r6100
+  SOC := ar9344
+  DEVICE_MODEL := R6100
+  UIMAGE_MAGIC := 0x36303030
+  NETGEAR_BOARD_ID := R6100
+  NETGEAR_HW_ID := 29764434+0+128+128+2x2+2x2
+  $(Device/netgear_ath79_nand)
+  DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct
+endef
+TARGET_DEVICES += netgear_r6100
+
+define Device/netgear_wndr3700-v4
+  SOC := ar9344
+  DEVICE_MODEL := WNDR3700
+  DEVICE_VARIANT := v4
+  UIMAGE_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
+  UIMAGE_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_wndr4300sw
+  SOC := ar9344
+  DEVICE_MODEL := WNDR4300SW
+  UIMAGE_MAGIC := 0x33373033
+  NETGEAR_BOARD_ID := WNDR4300SW
+  NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
+  $(Device/netgear_ath79_nand)
+endef
+TARGET_DEVICES += netgear_wndr4300sw
+
+define Device/netgear_wndr4300tn
+  SOC := ar9344
+  DEVICE_MODEL := WNDR4300TN
+  UIMAGE_MAGIC := 0x33373033
+  NETGEAR_BOARD_ID := WNDR4300TN
+  NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
+  $(Device/netgear_ath79_nand)
+endef
+TARGET_DEVICES += netgear_wndr4300tn
+
+define Device/netgear_wndr4300-v2
+  SOC := qca9563
+  DEVICE_MODEL := WNDR4300
+  DEVICE_VARIANT := v2
+  UIMAGE_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
+  UIMAGE_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/zte_mf28x_common
+  SOC := qca9563
+  DEVICE_VENDOR := ZTE
+  DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct
+  BLOCKSIZE := 128k
+  PAGESIZE := 2048
+  KERNEL_SIZE := 4096k
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+endef
+
+define Device/zte_mf281
+  $(Device/zte_mf28x_common)
+  DEVICE_MODEL := MF281
+  KERNEL_SIZE := 6144k
+  IMAGE_SIZE := 29696k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
+       check-size
+  DEVICE_PACKAGES += ath10k-firmware-qca9888-ct kmod-usb-net-rndis \
+       kmod-usb-acm comgt-ncm
+endef
+TARGET_DEVICES += zte_mf281
+
+define Device/zte_mf286
+  $(Device/zte_mf28x_common)
+  DEVICE_MODEL := MF286
+  DEVICE_PACKAGES += ath10k-firmware-qca988x-ct kmod-usb-net-qmi-wwan \
+       kmod-usb-serial-option uqmi
+endef
+TARGET_DEVICES += zte_mf286
+
+define Device/zte_mf286a
+  $(Device/zte_mf28x_common)
+  DEVICE_MODEL := MF286A
+  DEVICE_PACKAGES += ath10k-firmware-qca9888-ct kmod-usb-net-qmi-wwan \
+       kmod-usb-serial-option uqmi
+endef
+TARGET_DEVICES += zte_mf286a
+
+define Device/zte_mf286r
+  $(Device/zte_mf28x_common)
+  DEVICE_MODEL := MF286R
+  DEVICE_PACKAGES += ath10k-firmware-qca9888-ct kmod-usb-net-rndis kmod-usb-acm \
+       comgt-ncm
+endef
+TARGET_DEVICES += zte_mf286r
+
 define Device/zyxel_nbg6716
-  ATH_SOC := qca9558
+  SOC := qca9558
   DEVICE_VENDOR := ZyXEL
-  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct
+  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 | \
+  LOADER_TYPE := bin
+  KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | 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
+  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
+
+define Device/zyxel_emg2926_q10a
+  $(Device/zyxel_nbg6716)
+  DEVICE_MODEL := EMG2926-Q10A
+  RAS_BOARD := AAVK-EMG2926Q10A
+endef
+TARGET_DEVICES += zyxel_emg2926_q10a