/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
 *
 * Derived from MIPS:
 * Copyright (C) 2003, 2004 Ralf Baechle
 * Copyright (C) 2004  Maciej W. Rozycki
 */
#ifndef __ASM_CPU_FEATURES_H
#define __ASM_CPU_FEATURES_H

#include <asm/cpu.h>
#include <asm/cpu-info.h>

#define cpu_opt(opt)			(cpu_data[0].options & (opt))
#define cpu_has(feat)			(cpu_data[0].options & BIT_ULL(feat))

#define cpu_has_loongarch		(cpu_has_loongarch32 | cpu_has_loongarch64)
#define cpu_has_loongarch32		(cpu_data[0].isa_level & LOONGARCH_CPU_ISA_32BIT)
#define cpu_has_loongarch64		(cpu_data[0].isa_level & LOONGARCH_CPU_ISA_64BIT)

#ifdef CONFIG_32BIT
# define cpu_has_64bits			(cpu_data[0].isa_level & LOONGARCH_CPU_ISA_64BIT)
# define cpu_vabits			31
# define cpu_pabits			31
#endif

#ifdef CONFIG_64BIT
# define cpu_has_64bits			1
# define cpu_vabits			cpu_data[0].vabits
# define cpu_pabits			cpu_data[0].pabits
# define __NEED_ADDRBITS_PROBE
#endif

/*
 * SMP assumption: Options of CPU 0 are a superset of all processors.
 * This is true for all known LoongArch systems.
 */
#define cpu_has_cpucfg		cpu_opt(LOONGARCH_CPU_CPUCFG)
#define cpu_has_lam		cpu_opt(LOONGARCH_CPU_LAM)
#define cpu_has_ual		cpu_opt(LOONGARCH_CPU_UAL)
#define cpu_has_fpu		cpu_opt(LOONGARCH_CPU_FPU)
#define cpu_has_lsx		cpu_opt(LOONGARCH_CPU_LSX)
#define cpu_has_lasx		cpu_opt(LOONGARCH_CPU_LASX)
#define cpu_has_crc32		cpu_opt(LOONGARCH_CPU_CRC32)
#define cpu_has_complex		cpu_opt(LOONGARCH_CPU_COMPLEX)
#define cpu_has_crypto		cpu_opt(LOONGARCH_CPU_CRYPTO)
#define cpu_has_lvz		cpu_opt(LOONGARCH_CPU_LVZ)
#define cpu_has_lbt_x86		cpu_opt(LOONGARCH_CPU_LBT_X86)
#define cpu_has_lbt_arm		cpu_opt(LOONGARCH_CPU_LBT_ARM)
#define cpu_has_lbt_mips	cpu_opt(LOONGARCH_CPU_LBT_MIPS)
#define cpu_has_lbt		(cpu_has_lbt_x86|cpu_has_lbt_arm|cpu_has_lbt_mips)
#define cpu_has_csr		cpu_opt(LOONGARCH_CPU_CSR)
#define cpu_has_iocsr		cpu_opt(LOONGARCH_CPU_IOCSR)
#define cpu_has_tlb		cpu_opt(LOONGARCH_CPU_TLB)
#define cpu_has_watch		cpu_opt(LOONGARCH_CPU_WATCH)
#define cpu_has_vint		cpu_opt(LOONGARCH_CPU_VINT)
#define cpu_has_csripi		cpu_opt(LOONGARCH_CPU_CSRIPI)
#define cpu_has_extioi		cpu_opt(LOONGARCH_CPU_EXTIOI)
#define cpu_has_prefetch	cpu_opt(LOONGARCH_CPU_PREFETCH)
#define cpu_has_pmp		cpu_opt(LOONGARCH_CPU_PMP)
#define cpu_has_perf		cpu_opt(LOONGARCH_CPU_PMP)
#define cpu_has_scalefreq	cpu_opt(LOONGARCH_CPU_SCALEFREQ)
#define cpu_has_flatmode	cpu_opt(LOONGARCH_CPU_FLATMODE)
#define cpu_has_eiodecode	cpu_opt(LOONGARCH_CPU_EIODECODE)
#define cpu_has_guestid		cpu_opt(LOONGARCH_CPU_GUESTID)
#define cpu_has_hypervisor	cpu_opt(LOONGARCH_CPU_HYPERVISOR)
#define cpu_has_ptw		cpu_opt(LOONGARCH_CPU_PTW)
#define cpu_has_lspw		cpu_opt(LOONGARCH_CPU_LSPW)
#define cpu_has_avecint		cpu_opt(LOONGARCH_CPU_AVECINT)

#endif /* __ASM_CPU_FEATURES_H */
