From fb44dd731484765163205affc2fd8895f76a5316 Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Tue, 24 Sep 2024 18:50:01 +0800 Subject: [PATCH] ramips: introduce TP-Link v1 header OKLI image recipe It can be used to workaround the booting stuck issue caused by the u-boot LZMA decompression error. The new kernel image structure: +------+------------------+------------------+---------------+-----------------+ | name | tplink-v1 header | OKLI lzma-loader | uImage header | lzma kernel+dtb | +------+------------------+------------------+---------------+-----------------+ | size | 0x200 | 0xe00 | 0x40 | dynamic | +------+------------------+------------------+---------------+-----------------+ Signed-off-by: Shiji Yang Link: https://github.com/openwrt/openwrt/pull/16473 Signed-off-by: Hauke Mehrtens (cherry picked from commit 08eecec3558d9adf351e03b58309e69a77de1a36) --- target/linux/ramips/image/common-tp-link.mk | 25 +++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/target/linux/ramips/image/common-tp-link.mk b/target/linux/ramips/image/common-tp-link.mk index cb26275960..665b8f7971 100644 --- a/target/linux/ramips/image/common-tp-link.mk +++ b/target/linux/ramips/image/common-tp-link.mk @@ -1,6 +1,19 @@ DEVICE_VARS += TPLINK_FLASHLAYOUT TPLINK_HWID TPLINK_HWREV TPLINK_HWREVADD DEVICE_VARS += TPLINK_HVERSION TPLINK_BOARD_ID TPLINK_HEADER_VERSION +define Build/tplink-v1-okli-image + cp $(IMAGE_KERNEL) $(IMAGE_ROOTFS).$(word 2,$(1)) + cat $(IMAGE_ROOTFS) >> $(IMAGE_ROOTFS).$(word 2,$(1)) + -$(STAGING_DIR_HOST)/bin/mktplinkfw \ + -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) \ + -N "$(VERSION_DIST)" -V $(REVISION) -m $(TPLINK_HEADER_VERSION) \ + -k "$(KDIR)/loader-$(word 1,$(1)).$(LOADER_TYPE)" -E $(KERNEL_LOADADDR) \ + -r $(IMAGE_ROOTFS).$(word 2,$(1)) -o $@.new -j -X 0x40000 \ + -a $(call rootfs_align,$(FILESYSTEM)) $(wordlist 3,$(words $(1)),$(1)) \ + $(if $(findstring sysupgrade,$(word 2,$(1))),-s) && mv $@.new $@ || rm -f $@ + rm -f $(IMAGE_ROOTFS).$(word 2,$(1)) +endef + define Build/uImage-tplink-c9 mkimage \ -A $(LINUX_KARCH) \ @@ -28,6 +41,18 @@ define Device/tplink-v1 append-metadata endef +define Device/tplink-v1-okli + $(Device/tplink-v1) + LOADER_TYPE := bin + LOADER_FLASH_OFFS := 0x21000 + COMPILE := loader-$(1).bin + COMPILE/loader-$(1).bin := loader-okli-compile | pad-to 64k | lzma | pad-to 3584 + KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 + IMAGE/factory.bin := tplink-v1-okli-image $(1) factory -e -O + IMAGE/sysupgrade.bin := tplink-v1-okli-image $(1) sysupgrade -e -O | check-size | \ + append-metadata +endef + define Device/tplink-v2 DEVICE_VENDOR := TP-Link TPLINK_FLASHLAYOUT := -- 2.30.2