[PATCH 3/5] build: add UIMAGE_MAGIC to device variables
Sander Vanheule
sander at svanheule.net
Wed Nov 4 04:21:15 EST 2020
Allow a device recipe to specify a custom UIMAGE_MAGIC value, as used by
OpenWrt's -M flag for mkimage. This allows to automatically customize
the magic bytes in all calls to Build/uImage for this device, similar to
the behaviour of UIMAGE_NAME. Since the -M argument is inserted before
the user arguments, it can be overriden.
The following example would use 0x87654321 for the KERNEL image, but
0x12345678 for the KERNEL_INITRAMFS image:
define Device/MyDevice
UIMAGE_MAGIC := 0x87654321
KERNEL := ... | uImage lzma
KERNEL_INITRAMFS := ... | uImage lzma -M 0x12345678
...
endef
Fixes df8e6be59a "rtl838x: add new architecture" where UIMAGE_MAGIC was
not declared as a device variable.
Signed-off-by: Sander Vanheule <sander at svanheule.net>
---
include/image-commands.mk | 2 +-
include/image.mk | 4 +++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/include/image-commands.mk b/include/image-commands.mk
index a8faefbcff..fb3d596957 100644
--- a/include/image-commands.mk
+++ b/include/image-commands.mk
@@ -398,7 +398,7 @@ define Build/uImage
-O linux -T kernel \
-C $(word 1,$(1)) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
-n '$(if $(UIMAGE_NAME),$(UIMAGE_NAME),$(call toupper,$(LINUX_KARCH)) $(VERSION_DIST) Linux-$(LINUX_VERSION))' \
- $(wordlist 2,$(words $(1)),$(1)) -d $@ $@.new
+ $(if $(UIMAGE_MAGIC),-M $(UIMAGE_MAGIC)) $(wordlist 2,$(words $(1)),$(1)) -d $@ $@.new
mv $@.new $@
endef
diff --git a/include/image.mk b/include/image.mk
index de08d04aa4..bd4f8d8d6e 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -400,6 +400,7 @@ define Device/Init
SOC :=
BOARD_NAME :=
+ UIMAGE_MAGIC :=
UIMAGE_NAME :=
DEVICE_COMPAT_VERSION := 1.0
DEVICE_COMPAT_MESSAGE :=
@@ -419,7 +420,8 @@ DEFAULT_DEVICE_VARS := \
CMDLINE UBOOTENV_IN_UBI KERNEL_IN_UBI BLOCKSIZE PAGESIZE SUBPAGESIZE \
VID_HDR_OFFSET UBINIZE_OPTS UBINIZE_PARTS MKUBIFS_OPTS DEVICE_DTS \
DEVICE_DTS_CONFIG DEVICE_DTS_DIR DEVICE_FDT_NUM SOC BOARD_NAME \
- UIMAGE_NAME SUPPORTED_DEVICES IMAGE_METADATA KERNEL_ENTRY KERNEL_LOADADDR \
+ UIMAGE_MAGIC UIMAGE_NAME \
+ SUPPORTED_DEVICES IMAGE_METADATA KERNEL_ENTRY KERNEL_LOADADDR \
UBOOT_PATH IMAGE_SIZE \
DEVICE_COMPAT_VERSION DEVICE_COMPAT_MESSAGE \
DEVICE_VENDOR DEVICE_MODEL DEVICE_VARIANT \
--
2.28.0
More information about the openwrt-devel
mailing list