hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
kernel/arch/nds32/include/asm/bitfield.h
....@@ -1,4 +1,4 @@
1
-// SPDX-License-Identifier: GPL-2.0
1
+/* SPDX-License-Identifier: GPL-2.0 */
22 // Copyright (C) 2005-2017 Andes Technology Corporation
33
44 #ifndef __NDS32_BITFIELD_H__
....@@ -250,6 +250,11 @@
250250
251251 #define ITYPE_mskSTYPE ( 0xF << ITYPE_offSTYPE )
252252 #define ITYPE_mskCPID ( 0x3 << ITYPE_offCPID )
253
+
254
+/* Additional definitions of ITYPE register for FPU */
255
+#define FPU_DISABLE_EXCEPTION (0x1 << ITYPE_offSTYPE)
256
+#define FPU_EXCEPTION (0x2 << ITYPE_offSTYPE)
257
+#define FPU_CPID 0 /* FPU Co-Processor ID is 0 */
253258
254259 #define NDS32_VECTOR_mskNONEXCEPTION 0x78
255260 #define NDS32_VECTOR_offEXCEPTION 8
....@@ -735,14 +740,20 @@
735740 #define N13MISC_CTL_offRTP 1 /* Disable Return Target Predictor */
736741 #define N13MISC_CTL_offPTEPF 2 /* Disable HPTWK L2 PTE pefetch */
737742 #define N13MISC_CTL_offSP_SHADOW_EN 4 /* Enable shadow stack pointers */
743
+#define MISC_CTL_offHWPRE 11 /* Enable HardWare PREFETCH */
738744 /* bit 6, 9:31 reserved */
739745
740746 #define N13MISC_CTL_makBTB ( 0x1 << N13MISC_CTL_offBTB )
741747 #define N13MISC_CTL_makRTP ( 0x1 << N13MISC_CTL_offRTP )
742748 #define N13MISC_CTL_makPTEPF ( 0x1 << N13MISC_CTL_offPTEPF )
743749 #define N13MISC_CTL_makSP_SHADOW_EN ( 0x1 << N13MISC_CTL_offSP_SHADOW_EN )
750
+#define MISC_CTL_makHWPRE_EN ( 0x1 << MISC_CTL_offHWPRE )
744751
752
+#ifdef CONFIG_HW_PRE
753
+#define MISC_init (N13MISC_CTL_makBTB|N13MISC_CTL_makRTP|N13MISC_CTL_makSP_SHADOW_EN|MISC_CTL_makHWPRE_EN)
754
+#else
745755 #define MISC_init (N13MISC_CTL_makBTB|N13MISC_CTL_makRTP|N13MISC_CTL_makSP_SHADOW_EN)
756
+#endif
746757
747758 /******************************************************************************
748759 * PRUSR_ACC_CTL (Privileged Resource User Access Control Registers)
....@@ -926,6 +937,7 @@
926937 #define FPCSR_mskDNIT ( 0x1 << FPCSR_offDNIT )
927938 #define FPCSR_mskRIT ( 0x1 << FPCSR_offRIT )
928939 #define FPCSR_mskALL (FPCSR_mskIVO | FPCSR_mskDBZ | FPCSR_mskOVF | FPCSR_mskUDF | FPCSR_mskIEX)
940
+#define FPCSR_mskALLE_NO_UDF_IEXE (FPCSR_mskIVOE | FPCSR_mskDBZE | FPCSR_mskOVFE)
929941 #define FPCSR_mskALLE (FPCSR_mskIVOE | FPCSR_mskDBZE | FPCSR_mskOVFE | FPCSR_mskUDFE | FPCSR_mskIEXE)
930942 #define FPCSR_mskALLT (FPCSR_mskIVOT | FPCSR_mskDBZT | FPCSR_mskOVFT | FPCSR_mskUDFT | FPCSR_mskIEXT |FPCSR_mskDNIT | FPCSR_mskRIT)
931943
....@@ -946,6 +958,15 @@
946958 #define FPCFG_mskIMVER ( 0x1F << FPCFG_offIMVER )
947959 #define FPCFG_mskAVER ( 0x1F << FPCFG_offAVER )
948960
961
+/* 8 Single precision or 4 double precision registers are available */
962
+#define SP8_DP4_reg 0
963
+/* 16 Single precision or 8 double precision registers are available */
964
+#define SP16_DP8_reg 1
965
+/* 32 Single precision or 16 double precision registers are available */
966
+#define SP32_DP16_reg 2
967
+/* 32 Single precision or 32 double precision registers are available */
968
+#define SP32_DP32_reg 3
969
+
949970 /******************************************************************************
950971 * fucpr: FUCOP_CTL (FPU and Coprocessor Enable Control Register)
951972 *****************************************************************************/