diff --git a/build_kernel.sh b/build_kernel.sh index a131e59d38f8193c4758a1003c9af5a4095f6a31..4655e63aed767bd3d7720caafd555c59fb0f3674 100755 --- a/build_kernel.sh +++ b/build_kernel.sh @@ -28,7 +28,12 @@ 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 +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 08b11251303bd049bbf42c5cf885a1525c8f0b4d..63b3fe6bb8c1f3b2a5e3c3e2eac57d056a7d558b 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) + $(hide) $(OHOS_BUILD_HOME)/drivers/adapter/khdf/linux/patch_hdf.sh $(OHOS_BUILD_HOME) $(KERNEL_SRC_TMP_PATH) $(HDF_PATCH_FILE) +endif 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) dbts +endif .PHONY: build-kernel build-kernel: $(KERNEL_IMAGE_FILE) diff --git a/kernel_module_build.sh b/kernel_module_build.sh index 51bcf3bf53697f159941e6a4deacedfb5b75971b..961b31bec7e8bd9e5182be8f3540baf2d356177e 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