# # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/image.mk DEVICE_VARS += TPLINK_HWID TPLINK_HWREV TPLINK_FLASHLAYOUT define rootfs_align $(patsubst %-256k,0x40000,$(patsubst %-128k,0x20000,$(patsubst %-64k,0x10000,$(patsubst squashfs%,0x4,$(patsubst root.%,%,$(1)))))) endef # combine kernel and rootfs into one image # mktplinkfw # is "sysupgrade" or "factory" # # -a align the rootfs start on an bytes boundary # -j add jffs2 end-of-filesystem markers # -s strip padding from end of the image # -X reserve bytes in the firmware image (hexval prefixed with 0x) define Build/mktplinkfw -$(STAGING_DIR_HOST)/bin/mktplinkfw \ -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) -N OpenWrt -V $(REVISION) \ -k $(IMAGE_KERNEL) \ -r $@ \ -o $@.new \ -j -X 0x40000 \ -a $(call rootfs_align,$(FILESYSTEM)) \ $(wordlist 2,$(words $(1)),$(1)) \ $(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv $@.new $@ || rm -f $@ endef define Device/Default PROFILES := Default DEVICE_DTS := $(1) KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts) KERNEL_ENTRY := 0x00000000 KERNEL_LOADADDR := 0x00000000 KERNEL := kernel-bin endef ifeq ($(SUBTARGET),generic) define Device/tl-wdr4900-v1 DEVICE_TITLE := TP-Link TL-WDR4900 DEVICE_PACKAGES := kmod-ath9k wpad-basic TPLINK_HWID := 0x49000001 TPLINK_HWREV := 1 TPLINK_FLASHLAYOUT := 16Mppc KERNEL_NAME := cuImage.tl-wdr4900-v1 KERNEL_INITRAMFS := SUPPORTED_DEVICES:=tl-wdr4900-v1 tplink,tl-wdr4900-v1 IMAGES := fdt.bin factory.bin sysupgrade.bin IMAGE/fdt.bin := append-dtb IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade | append-metadata IMAGE/factory.bin := append-rootfs | mktplinkfw factory endef TARGET_DEVICES += tl-wdr4900-v1 define Device/red-15w-rev1 DEVICE_TITLE := Sophos RED 15w Rev.1 DEVICE_PACKAGES := kmod-usb2 # Original firmware uses a dedicated DTB-partition. # The bootloader however supports FIT-images. KERNEL = kernel-bin | gzip | fit gzip $(KDIR)/image-$$(DEVICE_DTS).dtb SUPPORTED_DEVICES := sophos,red-15w-rev1 IMAGES := sysupgrade.bin IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata endef TARGET_DEVICES += red-15w-rev1 endif ifeq ($(SUBTARGET),p1020) define Device/hiveap-330 DEVICE_TITLE := Aerohive HiveAP-330 DEVICE_PACKAGES := kmod-ath9k wpad-basic kmod-tpm-i2c-atmel BLOCKSIZE := 128k KERNEL_NAME := zImage KERNEL_SIZE := 8m SUPPORTED_DEVICES := aerohive,hiveap-330 IMAGES := fdt.bin sysupgrade.bin IMAGE/fdt.bin := append-dtb IMAGE/sysupgrade.bin := append-dtb | pad-to 256k | check-size 256k | \ append-uImage-fakehdr ramdisk | pad-to 256k | check-size 512k | \ append-rootfs | pad-rootfs $$(BLOCKSIZE) | pad-to 41216k | check-size 41216k | \ append-kernel | append-metadata endef TARGET_DEVICES += hiveap-330 endif ifeq ($(SUBTARGET),p2020) define Device/p2020rdb DEVICE_TITLE := Freescale P2020RDB DEVICE_DTS_DIR := $(DTS_DIR)/fsl DEVICE_PACKAGES := kmod-hwmon-core kmod-hwmon-lm90 kmod-rtc-ds1307 \ kmod-gpio-pca953x kmod-eeprom-at24 BLOCKSIZE := 128k KERNEL := kernel-bin | gzip | \ fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb SUPPORTED_DEVICES := fsl,P2020RDB IMAGES := sysupgrade.bin IMAGE/sysupgrade.bin := append-kernel | append-rootfs | \ pad-rootfs $$(BLOCKSIZE) | append-metadata endef TARGET_DEVICES += p2020rdb endif $(eval $(call BuildImage))