# LoongArch CPU choice prompt "Target Architecture Variant" default BR2_loongarch64_generic if BR2_ARCH_IS_64 config BR2_loongarch64_generic bool "Generic LoongArch 64-bit" depends on BR2_ARCH_IS_64 help Generic LoongArch 64-bit processor. config BR2_loongarch64_v1_0 bool "LoongArch64 ISA version 1.0" depends on BR2_ARCH_IS_64 select BR2_ARCH_NEEDS_GCC_AT_LEAST_14 help LoongArch64 ISA version 1.0 processor. config BR2_loongarch64_v1_1 bool "LoongArch64 ISA version 1.1" depends on BR2_ARCH_IS_64 select BR2_ARCH_NEEDS_GCC_AT_LEAST_14 help LoongArch64 ISA version 1.1 processor. endchoice choice prompt "FPU Type" default BR2_LOONGARCH_FPU_64 config BR2_LOONGARCH_FPU_64 bool "64" help Allow the use of hardware floating-point instructions for 32-bit and 64-bit operations. config BR2_LOONGARCH_FPU_32 bool "32" # Only supported by lp64s and lp64f ABIs which are marked as broken depends on BR2_BROKEN help Allow the use of hardware floating-point instructions for 32-bit operations only. config BR2_LOONGARCH_FPU_NONE bool "none" # Only supported by lp64s ABI which is marked as broken depends on BR2_BROKEN help Prevent the use of hardware floating-point instructions. endchoice choice prompt "SIMD Type" default BR2_LOONGARCH_SIMD_NONE config BR2_LOONGARCH_SIMD_NONE bool "none" help Prevent the use of hardware SIMD instructions. config BR2_LOONGARCH_SIMD_LSX bool "LSX" depends on BR2_LOONGARCH_FPU_64 help Enable generating instructions from the 128-bit LoongArch SIMD Extension (LSX). config BR2_LOONGARCH_SIMD_LASX bool "LASX" depends on BR2_LOONGARCH_FPU_64 help Enable generating instructions from the 256-bit LoongArch Advanced SIMD Extension (LASX) and the 128-bit LoongArch SIMD Extension (LSX). endchoice choice prompt "Target ABI" default BR2_LOONGARCH_ABI_LP64D if BR2_ARCH_IS_64 && BR2_LOONGARCH_FPU_64 default BR2_LOONGARCH_ABI_LP64F if BR2_ARCH_IS_64 && BR2_LOONGARCH_FPU_32 default BR2_LOONGARCH_ABI_LP64S if BR2_ARCH_IS_64 && BR2_LOONGARCH_SIMD_NONE config BR2_LOONGARCH_ABI_LP64D bool "lp64d" depends on BR2_ARCH_IS_64 depends on BR2_LOONGARCH_FPU_64 config BR2_LOONGARCH_ABI_LP64F bool "lp64f" depends on BR2_ARCH_IS_64 # Failed to build host GCC initial, pending investigation depends on BR2_BROKEN depends on BR2_LOONGARCH_FPU_64 || BR2_LOONGARCH_FPU_32 config BR2_LOONGARCH_ABI_LP64S bool "lp64s" depends on BR2_ARCH_IS_64 # GCC can't find libraries, pending investigation depends on BR2_BROKEN endchoice config BR2_ARCH default "loongarch64" if BR2_ARCH_IS_64 config BR2_NORMALIZED_ARCH default "loongarch" config BR2_ENDIAN default "LITTLE" config BR2_GCC_TARGET_ARCH default "loongarch64" if BR2_loongarch64_generic default "la64v1.0" if BR2_loongarch64_v1_0 default "la64v1.1" if BR2_loongarch64_v1_1 config BR2_GCC_TARGET_FPU default "64" if BR2_LOONGARCH_FPU_64 default "32" if BR2_LOONGARCH_FPU_32 default "none" if BR2_LOONGARCH_FPU_NONE config BR2_GCC_TARGET_SIMD default "lasx" if BR2_LOONGARCH_SIMD_LASX default "lsx" if BR2_LOONGARCH_SIMD_LSX default "none" if BR2_LOONGARCH_FPU_NONE config BR2_GCC_TARGET_ABI default "lp64d" if BR2_LOONGARCH_ABI_LP64D default "lp64f" if BR2_LOONGARCH_ABI_LP64F default "lp64s" if BR2_LOONGARCH_ABI_LP64S config BR2_READELF_ARCH_NAME default "LoongArch" # vim: ft=kconfig # -*- mode:kconfig; -*-