.. | .. |
---|
1 | | -// SPDX-License-Identifier: GPL-2.0 |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0 */ |
---|
2 | 2 | // Copyright (C) 2005-2017 Andes Technology Corporation |
---|
3 | 3 | |
---|
4 | 4 | #ifndef __NDS32_BITFIELD_H__ |
---|
.. | .. |
---|
250 | 250 | |
---|
251 | 251 | #define ITYPE_mskSTYPE ( 0xF << ITYPE_offSTYPE ) |
---|
252 | 252 | #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 */ |
---|
253 | 258 | |
---|
254 | 259 | #define NDS32_VECTOR_mskNONEXCEPTION 0x78 |
---|
255 | 260 | #define NDS32_VECTOR_offEXCEPTION 8 |
---|
.. | .. |
---|
735 | 740 | #define N13MISC_CTL_offRTP 1 /* Disable Return Target Predictor */ |
---|
736 | 741 | #define N13MISC_CTL_offPTEPF 2 /* Disable HPTWK L2 PTE pefetch */ |
---|
737 | 742 | #define N13MISC_CTL_offSP_SHADOW_EN 4 /* Enable shadow stack pointers */ |
---|
| 743 | +#define MISC_CTL_offHWPRE 11 /* Enable HardWare PREFETCH */ |
---|
738 | 744 | /* bit 6, 9:31 reserved */ |
---|
739 | 745 | |
---|
740 | 746 | #define N13MISC_CTL_makBTB ( 0x1 << N13MISC_CTL_offBTB ) |
---|
741 | 747 | #define N13MISC_CTL_makRTP ( 0x1 << N13MISC_CTL_offRTP ) |
---|
742 | 748 | #define N13MISC_CTL_makPTEPF ( 0x1 << N13MISC_CTL_offPTEPF ) |
---|
743 | 749 | #define N13MISC_CTL_makSP_SHADOW_EN ( 0x1 << N13MISC_CTL_offSP_SHADOW_EN ) |
---|
| 750 | +#define MISC_CTL_makHWPRE_EN ( 0x1 << MISC_CTL_offHWPRE ) |
---|
744 | 751 | |
---|
| 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 |
---|
745 | 755 | #define MISC_init (N13MISC_CTL_makBTB|N13MISC_CTL_makRTP|N13MISC_CTL_makSP_SHADOW_EN) |
---|
| 756 | +#endif |
---|
746 | 757 | |
---|
747 | 758 | /****************************************************************************** |
---|
748 | 759 | * PRUSR_ACC_CTL (Privileged Resource User Access Control Registers) |
---|
.. | .. |
---|
926 | 937 | #define FPCSR_mskDNIT ( 0x1 << FPCSR_offDNIT ) |
---|
927 | 938 | #define FPCSR_mskRIT ( 0x1 << FPCSR_offRIT ) |
---|
928 | 939 | #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) |
---|
929 | 941 | #define FPCSR_mskALLE (FPCSR_mskIVOE | FPCSR_mskDBZE | FPCSR_mskOVFE | FPCSR_mskUDFE | FPCSR_mskIEXE) |
---|
930 | 942 | #define FPCSR_mskALLT (FPCSR_mskIVOT | FPCSR_mskDBZT | FPCSR_mskOVFT | FPCSR_mskUDFT | FPCSR_mskIEXT |FPCSR_mskDNIT | FPCSR_mskRIT) |
---|
931 | 943 | |
---|
.. | .. |
---|
946 | 958 | #define FPCFG_mskIMVER ( 0x1F << FPCFG_offIMVER ) |
---|
947 | 959 | #define FPCFG_mskAVER ( 0x1F << FPCFG_offAVER ) |
---|
948 | 960 | |
---|
| 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 | + |
---|
949 | 970 | /****************************************************************************** |
---|
950 | 971 | * fucpr: FUCOP_CTL (FPU and Coprocessor Enable Control Register) |
---|
951 | 972 | *****************************************************************************/ |
---|