From 09cec7d3666620c484bc4c1f0645ce2d63d60a93 Mon Sep 17 00:00:00 2001 From: zhouxl Date: Wed, 13 Mar 2024 19:23:47 +0800 Subject: [PATCH] more flexable configuration for image itb build Change-Id: I16a819e627d987374f20808242dbefbcfc5fd603 --- arch/riscv/boot/Makefile | 25 ++++++++++++++++++++++--- arch/riscv/generic/Image.its.S | 6 +++--- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/arch/riscv/boot/Makefile b/arch/riscv/boot/Makefile index 63d8b66b9700..7e4697f6fcd4 100644 --- a/arch/riscv/boot/Makefile +++ b/arch/riscv/boot/Makefile @@ -70,6 +70,21 @@ $(obj)/Image.zst: $(obj)/Image FORCE $(obj)/loader.bin: $(obj)/loader FORCE $(call if_changed,objcopy) +ifdef CONFIG_32BIT +ADDR_BITS := 32 +ADDR_CELLS := 1 +else +ADDR_BITS := 64 +ADDR_CELLS := 2 +endif + +IMAGE_LOAD_ADDRESS := $(CONFIG_IMAGE_LOAD_OFFSET) +IMAGE_ENTRY_ADDRESS := $(CONFIG_IMAGE_LOAD_OFFSET) + +IMAGE_ALGO := crc32 +IMAGE_COMPRESS := none +IMAGE_SOURCE_FILE := Image + quiet_cmd_its_cat = CAT $@ cmd_its_cat = cat $(real-prereqs) >$@ @@ -79,12 +94,16 @@ $(obj)/Image.its.S: $(addprefix $(srctree)/arch/riscv/generic/,$(ITS_INPUTS)) FO quiet_cmd_cpp_its_S = ITS $@ cmd_cpp_its_S = $(CPP) -P -C -o $@ $< \ -DKERNEL_NAME="\"Linux $(KERNELRELEASE)\"" \ - -DIMAGE_BINARY="\"$(4)\"" \ -DIMAGE_COMPRESSION="\"$(2)\"" \ - -DIMAGE_CHECK_ALGORITHM="\"$(3)\"" + -DIMAGE_CHECK_ALGORITHM="\"$(3)\"" \ + -DIMAGE_BINARY="\"$(4)\"" \ + -DIMAGE_LOAD_ADDRESS=$(IMAGE_LOAD_ADDRESS) \ + -DIMAGE_ENTRY_ADDRESS=$(IMAGE_ENTRY_ADDRESS) \ + -DADDR_BITS=$(ADDR_BITS) \ + -DADDR_CELLS=$(ADDR_CELLS) $(obj)/Image.its: $(obj)/Image.its.S $(obj)/Image FORCE - $(call if_changed,cpp_its_S,none,crc32,Image) + $(call if_changed,cpp_its_S,$(IMAGE_COMPRESS),$(IMAGE_ALGO),$(IMAGE_SOURCE_FILE)) quiet_cmd_itb-image = ITB $@ cmd_itb-image = \ diff --git a/arch/riscv/generic/Image.its.S b/arch/riscv/generic/Image.its.S index 4891bc36ba18..77525701a852 100644 --- a/arch/riscv/generic/Image.its.S +++ b/arch/riscv/generic/Image.its.S @@ -3,7 +3,7 @@ / { description = KERNEL_NAME; - #address-cells = <2>; + #address-cells = ; images { kernel { @@ -13,8 +13,8 @@ arch = "riscv"; os = "linux"; compression = IMAGE_COMPRESSION; - load = <0x0 0x1400000>; - entry = <0x0 0x1400000>; + load = /bits/ ADDR_BITS ; + entry = /bits/ ADDR_BITS ; hash { algo = IMAGE_CHECK_ALGORITHM; };