diff --git a/BUILD.gn b/BUILD.gn index 856b92a7d65400df08e6bb4ae64f11b49de95f2d..c6b884a73e3e93461e687c57fcecddf88b6af21e 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -29,6 +29,8 @@ if (target_cpu == "arm") { kernel_image = "Image" } else if (target_cpu == "x86_64") { kernel_image = "bzImage" +} else if (target_cpu == "loongarch64") { + kernel_image = "vmlinuz.efi" } if (os_level == "mini" || os_level == "small") { diff --git a/build_kernel.sh b/build_kernel.sh index bd4a9b55c285ba62aaafcc550b4974f173a2fb26..f4adddc593cd8220c2fa3bf76fd77c8c4cdd24d2 100755 --- a/build_kernel.sh +++ b/build_kernel.sh @@ -41,6 +41,9 @@ elif [ "$5" == "arm64" ];then elif [ "$5" == "riscv64" ];then cp ${2}/kernel/OBJ/${8}/arch/riscv/boot/Image ${3}/Image +elif [ "$5" == "loongarch64" ];then + cp ${2}/kernel/OBJ/${8}/vmlinuz.efi ${3}/vmlinuz.efi + elif [ "$5" == "x86_64" ];then cp ${2}/kernel/OBJ/${8}/arch/x86/boot/bzImage ${3}/bzImage fi diff --git a/kernel.mk b/kernel.mk index 5cbda863fa0c08df89fcc111e514368663bee6bc..34d4740d41fbca25783c0bf811e4ad49181954be 100644 --- a/kernel.mk +++ b/kernel.mk @@ -49,13 +49,19 @@ else ifeq ($(KERNEL_ARCH), riscv64) else ifeq ($(KERNEL_ARCH), x86_64) KERNEL_TARGET_TOOLCHAIN := gcc KERNEL_TARGET_TOOLCHAIN_PREFIX := +else ifeq ($(KERNEL_ARCH), loongarch64) + KERNEL_TARGET_TOOLCHAIN := $(PREBUILTS_GCC_DIR)/linux-x86/loongarch64/gcc-loongarch64-linux-gnu/bin + KERNEL_TARGET_TOOLCHAIN_PREFIX := $(KERNEL_TARGET_TOOLCHAIN)/loongarch64-unknown-linux-gnu- + KERNEL_ARCH := loongarch endif ifeq ($(DEVICE_NAME), hispark_phoenix) KERNEL_CROSS_COMPILE += CONFIG_MSP="y" endif +ifneq ($(KERNEL_ARCH), loongarch) KERNEL_CROSS_COMPILE += CC="$(CLANG_CC)" +endif ifneq ($(KERNEL_ARCH), x86_64) KERNEL_CROSS_COMPILE += CROSS_COMPILE="$(KERNEL_TARGET_TOOLCHAIN_PREFIX)" diff --git a/kernel_module_build.sh b/kernel_module_build.sh index daefe1ffd65390ddca3a24e240b9b9315d6a7380..91c5693dde18ca04f25f97d9f6518ca386060751 100755 --- a/kernel_module_build.sh +++ b/kernel_module_build.sh @@ -38,11 +38,15 @@ elif [ "$KERNEL_ARCH" == "arm64" ];then kernel_image="Image" elif [ "$KERNEL_ARCH" == "x86_64" ];then kernel_image="bzImage" +elif [ "$KERNEL_ARCH" == "loongarch64" ];then + kernel_image="vmlinuz.efi" fi export KERNEL_IMAGE=${kernel_image} if [ "$KERNEL_ARCH" == "riscv64" ];then LINUX_KERNEL_IMAGE_FILE=${LINUX_KERNEL_OBJ_OUT}/arch/riscv/boot/Image +elif [ "$KERNEL_ARCH" == "loongarch64" ];then + LINUX_KERNEL_IMAGE_FILE=${LINUX_KERNEL_OBJ_OUT}/${kernel_image} else LINUX_KERNEL_IMAGE_FILE=${LINUX_KERNEL_OBJ_OUT}/arch/${KERNEL_ARCH}/boot/${kernel_image} fi