include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
+DEVICE_VARS += RAS_BOARD RAS_ROOTFS_SIZE RAS_VERSION
+
define Device/Default
PROFILES := Default
KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
KERNEL_NAME := Image
endef
+define Device/FitzImage
+ KERNEL_SUFFIX := -fit-zImage.itb
+ KERNEL = kernel-bin | fit none $$(DTS_DIR)/$$(DEVICE_DTS).dtb
+ KERNEL_NAME := zImage
+endef
+
define Device/UbiFit
KERNEL_IN_UBI := 1
IMAGES := nand-factory.ubi nand-sysupgrade.bin
NETGEAR_BOARD_ID :=
NETGEAR_HW_ID :=
IMAGES := factory.img sysupgrade.bin
- IMAGE/factory.img := append-kernel | pad-offset 64k 64 | append-uImage-fakehdr filesystem | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | netgear-dni
- IMAGE/sysupgrade.bin := append-kernel | pad-offset 64k 64 | append-uImage-fakehdr filesystem | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | append-metadata
+ IMAGE/factory.img := append-kernel | pad-offset 64k 64 | append-uImage-fakehdr filesystem | append-rootfs | pad-rootfs | netgear-dni
+ IMAGE/sysupgrade.bin := append-kernel | pad-offset 64k 64 | append-uImage-fakehdr filesystem | append-rootfs | pad-rootfs | append-metadata
endef
DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
BOARD_NAME := fritz4040
DEVICE_TITLE := AVM Fritz!Box 4040
IMAGE_SIZE := 29753344
- IMAGES = sysupgrade.bin
+ UBOOT_PATH := $(STAGING_DIR_IMAGE)/uboot-fritz4040.bin
+ UBOOT_PARTITION_SIZE := 524288
+ IMAGES = eva.bin sysupgrade.bin
+ IMAGE/eva.bin := append-uboot | pad-to $$$$(UBOOT_PARTITION_SIZE) | append-kernel | append-rootfs | pad-rootfs
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
- DEVICE_PACKAGES := fritz-tffs fritz-caldata u-boot-fritz4040
+ DEVICE_PACKAGES := fritz-tffs fritz-caldata
endef
TARGET_DEVICES += avm_fritzbox-4040
endef
TARGET_DEVICES += compex_wpj428
+define Device/engenius_eap1300
+ $(call Device/FitImage)
+ DEVICE_TITLE := EnGenius EAP1300
+ DEVICE_DTS_CONFIG := config@4
+ BOARD_NAME := eap1300
+ DEVICE_DTS := qcom-ipq4018-eap1300
+ KERNEL_SIZE := 5120k
+ IMAGE_SIZE := 25344k
+ IMAGES := sysupgrade.bin
+ IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
+ DEVICE_PACKAGES := ipq-wifi-engenius_eap1300
+endef
+TARGET_DEVICES += engenius_eap1300
+
define Device/glinet_gl-b1300
$(call Device/FitImage)
DEVICE_TITLE := GL.iNet GL-B1300
endef
TARGET_DEVICES += glinet_gl-b1300
+define Device/linksys_ea6350v3
+ # The Linksys EA6350v3 has a uboot bootloader that does not
+ # support either booting lzma kernel images nor booting UBI
+ # partitions. This uboot, however, supports raw kernel images and
+ # gzipped images.
+ #
+ # As for the time of writing this, the device will boot the kernel
+ # from a fixed address with a fixed length of 3MiB. Also, the
+ # device has a hard-coded kernel command line that requieres the
+ # rootfs and alt_rootfs to be in mtd11 and mtd13 respectively.
+ # Oh... and the kernel partition overlaps with the rootfs
+ # partition (the same for alt_kernel and alt_rootfs).
+ #
+ # If you are planing re-partitioning the device, you may want to
+ # keep those details in mind:
+ # 1. The kernel adresses you should honor are 0x00000000 and
+ # 0x02800000 respectively.
+ # 2. The kernel size (plus the dtb) cannot exceed 3.00MiB in size.
+ # 3. You can use 'zImage', but not a raw 'Image' packed with lzma.
+ # 4. The kernel command line from uboot is harcoded to boot with
+ # rootfs either in mtd11 or mtd13.
+ $(call Device/FitzImage)
+ DEVICE_TITLE := Linksys EA6350v3
+ DEVICE_DTS := qcom-ipq4018-ea6350v3
+ BLOCKSIZE := 128k
+ PAGESIZE := 2048
+ KERNEL_SIZE := 3145728
+ IMAGE_SIZE := 38797312
+ UBINIZE_OPTS := -E 5
+ IMAGES := factory.bin sysupgrade.bin
+ IMAGE/factory.bin := append-kernel | append-uImage-fakehdr filesystem | pad-to $$$${KERNEL_SIZE} | append-ubi | linksys-image type=EA6350v3
+ DEVICE_PACKAGES := ipq-wifi-linksys_ea6350v3 uboot-envtools
+endef
+TARGET_DEVICES += linksys_ea6350v3
+
define Device/meraki_mr33
$(call Device/FitImage)
DEVICE_DTS := qcom-ipq4029-mr33
PAGESIZE := 2048
DEVICE_TITLE := Cisco Meraki MR33
IMAGES = sysupgrade.bin
- DEVICE_PACKAGES := -swconfig ath10k-firmware-qca9887
+ DEVICE_PACKAGES := -swconfig ath10k-firmware-qca9887-ct
endef
TARGET_DEVICES += meraki_mr33
define Device/netgear_ex61x0v2
$(call Device/DniImage)
- KERNEL_SIZE := 3080192
DEVICE_DTS_CONFIG := config@4
NETGEAR_BOARD_ID := EX6150v2series
NETGEAR_HW_ID := 29765285+16+0+128+2x2
IMAGES = factory.bin sysupgrade.bin
IMAGE/factory.bin := append-rootfs | pad-rootfs | openmesh-image ce_type=A62
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata
- DEVICE_PACKAGES := ath10k-firmware-qca9888 uboot-envtools
+ DEVICE_PACKAGES := ath10k-firmware-qca9888-ct uboot-envtools
endef
TARGET_DEVICES += openmesh_a62
endef
TARGET_DEVICES += qcom_ap-dk04.1-c1
+define Device/zyxel_nbg6617
+ $(call Device/FitImageLzma)
+ DEVICE_DTS := qcom-ipq4018-nbg6617
+ DEVICE_TITLE := ZyXEL NBG6617
+ ROOTFS_SIZE := 24960k
+ RAS_BOARD := NBG6617
+ RAS_ROOTFS_SIZE := 19840k
+ RAS_VERSION := "$(VERSION_DIST) $(REVISION)"
+ IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
+ IMAGES := sysupgrade.bin factory.bin
+# The ZyXEL firmware allows flashing thru the web-gui only when the rootfs is
+# at least as large as the one of the initial firmware image (not the current
+# one on the device). This only applies to the Web-UI, the bootlaoder ignores
+# this minimum-size. However, the larger image can be flashed both ways.
+ IMAGE/factory.bin := append-rootfs | pad-rootfs | pad-to 64k | check-size $$$$(ROOTFS_SIZE) | zyxel-ras-image separate-kernel
+ IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-rootfs | check-size $$$$(ROOTFS_SIZE) | sysupgrade-tar rootfs=$$$$@ | append-metadata
+ DEVICE_PACKAGES := uboot-envtools kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += zyxel_nbg6617
+
+define Device/zyxel_wre6606
+ $(call Device/FitImage)
+ DEVICE_TITLE := ZyXEL WRE6606
+ DEVICE_DTS_CONFIG := config@4
+ DEVICE_DTS := qcom-ipq4018-wre6606
+ IMAGES := sysupgrade.bin
+ IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
+endef
+TARGET_DEVICES += zyxel_wre6606
+
$(eval $(call BuildImage))