From f7d93fda7049ec7fccb8cbb38858a82231e23f91 Mon Sep 17 00:00:00 2001 From: chenjinxiang3 Date: Thu, 21 May 2026 02:21:17 +0000 Subject: [PATCH 1/5] [qemu-arm64-linux-min] Add KVM fix patch application in kernel.mk Add KVM_FIX_PATCH_FILE variable and patch application logic. Fixes kvm_iodevice_destructor visibility issue in coalesced_mmio.c on ARM64 architecture where the static function cannot be called from another translation unit. Co-Authored-By: Agent Signed-off-by: chenjinxiang3 Change-Id: I83555585fc1af8f83c47e3d6d8908484243556b2 --- kernel.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kernel.mk b/kernel.mk index 8950623..198247f 100644 --- a/kernel.mk +++ b/kernel.mk @@ -91,6 +91,7 @@ HIDEADDR_PATCH_FILE := ${OHOS_BUILD_HOME}/kernel/linux/common_modules/memory_sec OHOE_HEADERS_FILE := ${OHOS_BUILD_HOME}/kernel/linux/common_modules/ohoe_headers/apply_ohoe_headers.sh WATCHDOG_PATCH_FILE := ${DEVICE_PATCH_DIR}/watchdog.patch OH_HEADERS_PATCH_FILE := ${DEVICE_PATCH_DIR}/oh_headers.patch +KVM_FIX_PATCH_FILE := ${DEVICE_PATCH_DIR}/kvm_fix.patch export KBUILD_OUTPUT=$(KERNEL_OBJ_TMP_PATH) @@ -141,6 +142,10 @@ endif ifeq ($(WATCHDOG_PATCH_FILE), $(wildcard $(WATCHDOG_PATCH_FILE))) $(hide) cd $(KERNEL_SRC_TMP_PATH) && patch -p1 < $(WATCHDOG_PATCH_FILE) endif +# Apply KVM fix patch (fixes kvm_iodevice_destructor visibility issue) +ifeq ($(KVM_FIX_PATCH_FILE), $(wildcard $(KVM_FIX_PATCH_FILE))) + $(hide) cd $(KERNEL_SRC_TMP_PATH) && patch -p1 < $(KVM_FIX_PATCH_FILE) +endif endif $(hide) cp -rf $(KERNEL_CONFIG_PATH)/. $(KERNEL_SRC_TMP_PATH)/ $(hide) $(KERNEL_MAKE) -C $(KERNEL_SRC_TMP_PATH) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) distclean From f979b4753d5ccfb4273ced777a95b10a801440ef Mon Sep 17 00:00:00 2001 From: chenjinxiang3 Date: Thu, 21 May 2026 03:23:26 +0000 Subject: [PATCH 2/5] #125 Isolate LOADADDR config to qemu-arm-linux-min product only Remove unconditional KERNEL_LOADADDR from ARM arch block. Add product-specific KERNEL_LOADADDR only for qemu-arm-linux-min. Make LOADADDR conditional in KERNEL_MAKE via ifdef. Co-Authored-By: Agent Signed-off-by: chenjinxiang3 Change-Id: I3ce30e4fd317622835446690f161db0a77d2171f --- kernel.mk | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/kernel.mk b/kernel.mk index 198247f..cf8f1dc 100644 --- a/kernel.mk +++ b/kernel.mk @@ -37,8 +37,6 @@ KERNEL_CROSS_COMPILE := ifeq ($(KERNEL_ARCH), arm) KERNEL_TARGET_TOOLCHAIN := $(PREBUILTS_GCC_DIR)/linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi/bin KERNEL_TARGET_TOOLCHAIN_PREFIX := $(KERNEL_TARGET_TOOLCHAIN)/arm-linux-gnueabi- - # Set LOADADDR for uImage generation (required for ARM) - KERNEL_LOADADDR := 0x40008000 else ifeq ($(KERNEL_ARCH), arm64) KERNEL_TARGET_TOOLCHAIN := $(PREBUILTS_GCC_DIR)/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin KERNEL_TARGET_TOOLCHAIN_PREFIX := $(KERNEL_TARGET_TOOLCHAIN)/aarch64-linux-gnu- @@ -61,6 +59,10 @@ ifeq ($(DEVICE_NAME), hispark_phoenix) KERNEL_CROSS_COMPILE += CONFIG_MSP="y" endif +ifeq ($(PRODUCT_NAME), qemu-arm-linux-min) +KERNEL_LOADADDR := 0x40008000 +endif + ifneq ($(KERNEL_ARCH), loongarch) KERNEL_CROSS_COMPILE += CC="$(CLANG_CC)" endif @@ -71,9 +73,12 @@ endif KERNEL_MAKE := \ PATH="$(BOOT_IMAGE_PATH):$$PATH" \ - LOADADDR="$(KERNEL_LOADADDR)" \ $(KERNEL_PREBUILT_MAKE) +ifdef KERNEL_LOADADDR +KERNEL_MAKE += LOADADDR="$(KERNEL_LOADADDR)" +endif + ifneq ($(findstring $(BUILD_TYPE), small standard),) DEVICE_PATCH_DIR := $(OHOS_BUILD_HOME)/kernel/linux/patches/${KERNEL_VERSION}/$(DEVICE_NAME)_patch From 1f6666e2088a18aa10ba042da050cf1b20fd0cfc Mon Sep 17 00:00:00 2001 From: chenjinxiang3 Date: Thu, 21 May 2026 11:27:19 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E4=BB=B6=20kern?= =?UTF-8?q?el.mk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chenjinxiang3 --- kernel.mk | 5 ----- 1 file changed, 5 deletions(-) diff --git a/kernel.mk b/kernel.mk index cf8f1dc..1a11c47 100644 --- a/kernel.mk +++ b/kernel.mk @@ -96,7 +96,6 @@ HIDEADDR_PATCH_FILE := ${OHOS_BUILD_HOME}/kernel/linux/common_modules/memory_sec OHOE_HEADERS_FILE := ${OHOS_BUILD_HOME}/kernel/linux/common_modules/ohoe_headers/apply_ohoe_headers.sh WATCHDOG_PATCH_FILE := ${DEVICE_PATCH_DIR}/watchdog.patch OH_HEADERS_PATCH_FILE := ${DEVICE_PATCH_DIR}/oh_headers.patch -KVM_FIX_PATCH_FILE := ${DEVICE_PATCH_DIR}/kvm_fix.patch export KBUILD_OUTPUT=$(KERNEL_OBJ_TMP_PATH) @@ -147,10 +146,6 @@ endif ifeq ($(WATCHDOG_PATCH_FILE), $(wildcard $(WATCHDOG_PATCH_FILE))) $(hide) cd $(KERNEL_SRC_TMP_PATH) && patch -p1 < $(WATCHDOG_PATCH_FILE) endif -# Apply KVM fix patch (fixes kvm_iodevice_destructor visibility issue) -ifeq ($(KVM_FIX_PATCH_FILE), $(wildcard $(KVM_FIX_PATCH_FILE))) - $(hide) cd $(KERNEL_SRC_TMP_PATH) && patch -p1 < $(KVM_FIX_PATCH_FILE) -endif endif $(hide) cp -rf $(KERNEL_CONFIG_PATH)/. $(KERNEL_SRC_TMP_PATH)/ $(hide) $(KERNEL_MAKE) -C $(KERNEL_SRC_TMP_PATH) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) distclean From 09e681c3c1d9a8973931e04f8979b5611f9635d8 Mon Sep 17 00:00:00 2001 From: chenjinxiang3 Date: Thu, 21 May 2026 11:46:39 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E4=BB=B6=20kern?= =?UTF-8?q?el.mk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chenjinxiang3 --- kernel.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel.mk b/kernel.mk index 1a11c47..442ce46 100644 --- a/kernel.mk +++ b/kernel.mk @@ -59,7 +59,7 @@ ifeq ($(DEVICE_NAME), hispark_phoenix) KERNEL_CROSS_COMPILE += CONFIG_MSP="y" endif -ifeq ($(PRODUCT_NAME), qemu-arm-linux-min) +ifeq ($(BUILD_TYPE), standard) KERNEL_LOADADDR := 0x40008000 endif From 2062aa4a12ca9d5104baa299138e6229b2fe2e44 Mon Sep 17 00:00:00 2001 From: chenjinxiang3 Date: Thu, 21 May 2026 11:58:00 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E4=BB=B6=20kern?= =?UTF-8?q?el.mk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chenjinxiang3 --- kernel.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel.mk b/kernel.mk index 442ce46..187cca5 100644 --- a/kernel.mk +++ b/kernel.mk @@ -88,6 +88,7 @@ SMALL_PATCH_FILE := $(DEVICE_PATCH_DIR)/$(DEVICE_NAME)_$(BUILD_TYPE).patch KERNEL_IMAGE_FILE := $(KERNEL_SRC_TMP_PATH)/arch/$(KERNEL_ARCH)/boot/$(KERNEL_IMAGE) DEFCONFIG_FILE := $(DEVICE_NAME)_$(BUILD_TYPE)_defconfig UNIFIED_COLLECTION_PATCH_FILE := ${OHOS_BUILD_HOME}/kernel/linux/common_modules/ucollection/apply_ucollection.sh +ifeq ($(BUILD_TYPE), standard) CED_PATCH_FILE := ${OHOS_BUILD_HOME}/kernel/linux/common_modules/container_escape_detection/apply_ced.sh XPM_PATCH_FILE := ${OHOS_BUILD_HOME}/kernel/linux/common_modules/xpm/apply_xpm.sh DEC_PATCH_FILE := ${OHOS_BUILD_HOME}/kernel/linux/common_modules/dec/apply_dec.sh @@ -96,6 +97,7 @@ HIDEADDR_PATCH_FILE := ${OHOS_BUILD_HOME}/kernel/linux/common_modules/memory_sec OHOE_HEADERS_FILE := ${OHOS_BUILD_HOME}/kernel/linux/common_modules/ohoe_headers/apply_ohoe_headers.sh WATCHDOG_PATCH_FILE := ${DEVICE_PATCH_DIR}/watchdog.patch OH_HEADERS_PATCH_FILE := ${DEVICE_PATCH_DIR}/oh_headers.patch +endif export KBUILD_OUTPUT=$(KERNEL_OBJ_TMP_PATH)