mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 22:23:27 +00:00
576c69938b
Currently, the image creation process for the TP-Link tl-wdr4900-v1 needs a fixed sized kernel and places the rootfs partition at a fixed offset. With the upcoming move to 4.19 the kernel will no longer fit into the existing allocated space for the kernel partition. This patch converts the device to utilize the established tplink,firmware mtdsplitter, which can deal with a dynamic kernel/rootfs size. Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [reworded commit]
83 lines
2.5 KiB
Makefile
83 lines
2.5 KiB
Makefile
#
|
|
# 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 <type> <optional extra arguments to mktplinkfw binary>
|
|
# <type> is "sysupgrade" or "factory"
|
|
#
|
|
# -a align the rootfs start on an <align> bytes boundary
|
|
# -j add jffs2 end-of-filesystem markers
|
|
# -s strip padding from end of the image
|
|
# -X reserve <size> 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
|
|
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
|
|
|
|
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
|
|
|
|
$(eval $(call BuildImage))
|