ath79: add support for Netgear WNDR4300
[openwrt/staging/chunkeey.git] / target / linux / ath79 / image / nand.mk
index 979afd2b2bd3f17b7bf1ba08e223027da958bef7..0f7514060e2718f916ad8ab46cffb328ae8c0939 100644 (file)
-define Device/glinet_ar300m_nand
-  ATH_SOC := qca9533
-  DEVICE_TITLE := GL-AR300M (NAND)
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage kmod-usb-ledtrig-usbport
+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
+  ATH_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/glinet_gl-ar300m-nand
+  ATH_SOC := qca9531
+  DEVICE_VENDOR := GL.iNet
+  DEVICE_MODEL := GL-AR300M
+  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 sysupgrade.tar
-  IMAGE/sysupgrade.tar := sysupgrade-tar
+  IMAGES += factory.ubi
+  IMAGE/sysupgrade.bin := sysupgrade-tar
   IMAGE/factory.ubi := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
 endef
-TARGET_DEVICES += glinet_ar300m_nand
+TARGET_DEVICES += glinet_gl-ar300m-nand
+
+# 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 := 2048k
+  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_wndr4300
+  ATH_SOC := ar9344
+  DEVICE_MODEL := WNDR4300
+  NETGEAR_KERNEL_MAGIC := 0x33373033
+  NETGEAR_BOARD_ID := WNDR4300
+  NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
+  SUPPORTED_DEVICES += wndr4300
+  $(Device/netgear_ath79_nand)
+endef
+TARGET_DEVICES += netgear_wndr4300
+
+define Device/zyxel_nbg6716
+  ATH_SOC := qca9558
+  DEVICE_VENDOR := ZyXEL
+  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