[openwrt/openwrt] malta: convert to Device macro image building

LEDE Commits lede-commits at lists.infradead.org
Tue Feb 10 15:08:47 PST 2026


aparcar pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/8dfa38b82c3cd2bbf6b1b6d2bdac74c560629c61

commit 8dfa38b82c3cd2bbf6b1b6d2bdac74c560629c61
Author: Paul Spooren <mail at aparcar.org>
AuthorDate: Sun Feb 8 19:50:34 2026 +0100

    malta: convert to Device macro image building
    
    Convert the malta target from the legacy Image/BuildKernel and
    Image/Build pattern to the modern Device macro system. This is the
    last target still using the legacy pattern.
    
    The Device macro system automatically generates per-image JSON
    metadata files which get aggregated into profiles.json, enabling
    firmware selector and other tooling support for all malta subtargets
    (be, le, be64, le64).
    
    The kernel ELF is produced via KERNEL_NAME := vmlinux.elf (matching
    octeon), uImage artifacts are built using the standard Build/lzma,
    Build/gzip and Build/uImage commands with the existing load address
    0x80100000, and rootfs images use append-rootfs with optional gzip
    compression.
    
    The device is named 'generic' following the convention used by other
    virtual/emulated targets (x86, armsr, octeon).
    
    Signed-off-by: Paul Spooren <mail at aparcar.org>
---
 target/linux/malta/image/Makefile | 66 ++++++++++++++-------------------------
 1 file changed, 23 insertions(+), 43 deletions(-)

diff --git a/target/linux/malta/image/Makefile b/target/linux/malta/image/Makefile
index 514ff58427..690adee1ce 100644
--- a/target/linux/malta/image/Makefile
+++ b/target/linux/malta/image/Makefile
@@ -5,48 +5,28 @@
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/image.mk
 
-define CompressLzma
-  $(STAGING_DIR_HOST)/bin/lzma e $(1) -lc1 -lp2 -pb2 $(2)
-endef
-
-define CompressGzip
-	gzip -9n -c $(1) > $(2)
-endef
-
-define MkuImage
-	mkimage -A mips -O linux -T kernel -a 0x80100000 -C $(1) $(2) \
-		-e 0x80100000 -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
-		-d $(3) $(4)
-endef
-
-define Image/Prepare
-	$(call CompressLzma,$(KDIR)/vmlinux,$(KDIR)/vmlinux.bin.lzma)
-	$(call MkuImage,lzma,,$(KDIR)/vmlinux.bin.lzma,$(KDIR)/uImage.lzma)
-	$(call CompressGzip,$(KDIR)/vmlinux,$(KDIR)/vmlinux.bin.gz)
-	$(call MkuImage,gzip,,$(KDIR)/vmlinux.bin.gz,$(KDIR)/uImage.gz)
-endef
-
-define Image/BuildKernel
-	cp $(KDIR)/vmlinux.elf $(BIN_DIR)/$(IMG_PREFIX)-vmlinux.elf
-	cp $(KDIR)/uImage.lzma $(BIN_DIR)/$(IMG_PREFIX)-uImage-lzma
-	cp $(KDIR)/uImage.gz $(BIN_DIR)/$(IMG_PREFIX)-uImage-gzip
-endef
-
-define Image/Build/Initramfs
-	cp $(KDIR)/vmlinux-initramfs.elf $(BIN_DIR)/$(IMG_PREFIX)-vmlinux-initramfs.elf
-	cp $(KDIR)/vmlinux-initramfs $(BIN_DIR)/$(IMG_PREFIX)-vmlinux-initramfs.bin
-endef
-
-define Image/Build/gzip
-	gzip -f9n $(BIN_DIR)/$(IMG_ROOTFS)-$(1).img
-endef
-
-$(eval $(call Image/gzip-ext4-padded-squashfs))
-
-define Image/Build
-	$(call Image/Build/$(1))
-	$(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_ROOTFS)-$(1).img
-	$(call Image/Build/gzip/$(1))
-endef
+KERNEL_LOADADDR := 0x80100000
+
+define Device/Default
+  PROFILES := Default
+  KERNEL_NAME := vmlinux.elf
+  KERNEL_INITRAMFS_NAME := vmlinux-initramfs.elf
+  KERNEL := kernel-bin
+  KERNEL_INSTALL := 1
+  FILESYSTEMS := ext4 squashfs
+  IMAGES := rootfs.img rootfs.img.gz
+  IMAGE/rootfs.img := append-rootfs | pad-to $(ROOTFS_PARTSIZE)
+  IMAGE/rootfs.img.gz := append-rootfs | pad-to $(ROOTFS_PARTSIZE) | gzip
+  ARTIFACTS := uImage-lzma uImage-gzip
+  ARTIFACT/uImage-lzma := kernel-bin | lzma | uImage lzma
+  ARTIFACT/uImage-gzip := kernel-bin | gzip | uImage gzip
+  SUPPORTED_DEVICES :=
+endef
+
+define Device/generic
+  DEVICE_VENDOR := MIPS
+  DEVICE_MODEL := Malta CoreLV board (QEMU)
+endef
+TARGET_DEVICES += generic
 
 $(eval $(call BuildImage))




More information about the lede-commits mailing list