From 9ecb24840a0f74a9634d736f448094b31d216f90 Mon Sep 17 00:00:00 2001 From: yuejianjun Date: Sat, 5 Mar 2022 08:02:16 +0000 Subject: [PATCH] Build kernel for product Hi3751V350 Signed-off-by: yuejianjun Change-Id: I9a917559d20b43f6082bb312a24a49f85d305fab --- build_kernel.sh | 6 ++++++ kernel.mk | 21 ++++++++++++++++++++- kernel_module_build.sh | 4 ++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/build_kernel.sh b/build_kernel.sh index a131e59..7406e9e 100755 --- a/build_kernel.sh +++ b/build_kernel.sh @@ -28,7 +28,13 @@ rm -rf ${3}/../../../kernel.timestamp # it needs more adaptation if [ "$5" == "arm" ];then cp ${2}/kernel/OBJ/${8}/arch/arm/boot/uImage ${3}/uImage +if [ "$7" == "hi3751v350" ];then + cp ${2}/kernel/OBJ/${8}/arch/arm/boot/dts/hi3751v350.dtb ${3}/dtbo.img + cat ${2}/kernel/OBJ/${8}/arch/arm/boot/zImage-dtb ${3}/dtbo.img > ${3}/zImage-dtb +else cp ${2}/kernel/OBJ/${8}/arch/arm/boot/zImage-dtb ${3}/zImage-dtb +fi + elif [ "$5" == "arm64" ];then cp ${2}/kernel/OBJ/${8}/arch/arm64/boot/Image ${3}/Image fi diff --git a/kernel.mk b/kernel.mk index 08b1125..afa24ce 100755 --- a/kernel.mk +++ b/kernel.mk @@ -41,12 +41,22 @@ else ifeq ($(KERNEL_ARCH), arm64) endif KERNEL_CROSS_COMPILE := +ifeq ($(DEVICE_NAME), hi3751v350) +KERNEL_CROSS_COMPILE += COMFIG_MSP="y" +else KERNEL_CROSS_COMPILE += CC="$(CLANG_CC)" +endif KERNEL_CROSS_COMPILE += CROSS_COMPILE="$(KERNEL_TARGET_TOOLCHAIN_PREFIX)" +ifeq ($(DEVICE_NAME), hi3751v350) +KERNEL_MAKE := \ + PATH="$(BOOT_IMAGE_PATH):$(KERNEL_TARGET_TOOLCHAIN):$$PATH" \ + $(KERNEL_PREBUILT_MAKE) +else KERNEL_MAKE := \ PATH="$(BOOT_IMAGE_PATH):$$PATH" \ $(KERNEL_PREBUILT_MAKE) +endif ifneq ($(findstring $(BUILD_TYPE), small standard),) @@ -62,8 +72,14 @@ export KBUILD_OUTPUT=$(KERNEL_OBJ_TMP_PATH) $(KERNEL_IMAGE_FILE): $(hide) echo "build kernel..." +ifeq ($(DEVICE_NAME), hi3751v350) + $(hide) rm -rf $(KERNEL_SRC_TMP_PATH);mkdir -p $(KERNEL_SRC_TMP_PATH);cp -arfP $(KERNEL_SRC_PATH)/* $(KERNEL_SRC_TMP_PATH)/ + $(hide) cd $(KERNEL_SRC_TMP_PATH)/drivers && rm -rf common && ln -s $(SDK_SOURCE_DIR)/common/drv ./common && cd - + $(hide) cd $(KERNEL_SRC_TMP_PATH)/drivers && rm -rf msp && ln -s $(SDK_SOURCE_DIR)/msp/drv ./msp && cd - +else $(hide) rm -rf $(KERNEL_SRC_TMP_PATH);mkdir -p $(KERNEL_SRC_TMP_PATH);cp -arfL $(KERNEL_SRC_PATH)/* $(KERNEL_SRC_TMP_PATH)/ - $(hide) $(OHOS_BUILD_HOME)/drivers/adapter/khdf/linux/patch_hdf.sh $(OHOS_BUILD_HOME) $(KERNEL_SRC_TMP_PATH) $(HDF_PATCH_FILE) +endif + $(hide) $(OHOS_BUILD_HOME)/drivers/adapter/khdf/linux/patch_hdf.sh $(OHOS_BUILD_HOME) $(KERNEL_SRC_TMP_PATH) $(HDF_PATCH_FILE) ifeq ($(PRODUCT_PATH), vendor/hisilicon/watchos) $(hide) cd $(KERNEL_SRC_TMP_PATH) && patch -p1 < $(PRODUCT_PATCH_FILE) @@ -82,5 +98,8 @@ ifeq ($(KERNEL_VERSION), linux-5.10) endif $(hide) $(KERNEL_MAKE) -C $(KERNEL_SRC_TMP_PATH) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) -j64 $(KERNEL_IMAGE) endif +ifeq ($(DEVICE_NAME), hi3751v350) + $(hide) $(KERNEL_MAKE) -C $(KERNEL_SRC_TMP_PATH) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) dtbs +endif .PHONY: build-kernel build-kernel: $(KERNEL_IMAGE_FILE) diff --git a/kernel_module_build.sh b/kernel_module_build.sh index 51bcf3b..961b31b 100755 --- a/kernel_module_build.sh +++ b/kernel_module_build.sh @@ -42,6 +42,10 @@ fi export KERNEL_IMAGE=${kernel_image} LINUX_KERNEL_IMAGE_FILE=${LINUX_KERNEL_OBJ_OUT}/arch/${KERNEL_ARCH}/boot/${kernel_image} +if [ "$DEVICE_NAME" == "hi3751v350" ];then +export SDK_SOURCE_DIR=${OHOS_ROOT_PATH}/device/soc/hisilicon/${DEVICE_NAME}/sdk_linux/source +fi + make -f kernel.mk if [ -f "${LINUX_KERNEL_IMAGE_FILE}" ];then -- Gitee