svn commit: r362273 - head/sys/arm64/include
Andrew Turner
andrew at FreeBSD.org
Wed Jun 17 11:56:11 UTC 2020
Author: andrew
Date: Wed Jun 17 11:56:10 2020
New Revision: 362273
URL: https://svnweb.freebsd.org/changeset/base/362273
Log:
Add all the TCR_EL1 fields
These will be used when adding support for new Armv8 extensions.
Sponsored by: Innovate UK
Modified:
head/sys/arm64/include/armreg.h
Modified: head/sys/arm64/include/armreg.h
==============================================================================
--- head/sys/arm64/include/armreg.h Wed Jun 17 11:14:54 2020 (r362272)
+++ head/sys/arm64/include/armreg.h Wed Jun 17 11:56:10 2020 (r362273)
@@ -736,61 +736,108 @@
#define PSR_FLAGS 0xf0000000
/* TCR_EL1 - Translation Control Register */
-#define TCR_HD_SHIFT 40
-#define TCR_HD (0x1UL << TCR_HD_SHIFT)
-#define TCR_HA_SHIFT 39
-#define TCR_HA (0x1UL << TCR_HA_SHIFT)
+/* Bits 63:59 are reserved */
+#define TCR_TCMA1_SHIFT 58
+#define TCR_TCMA1 (1UL << TCR_TCMA1_SHIFT)
+#define TCR_TCMA0_SHIFT 57
+#define TCR_TCMA0 (1UL << TCR_TCMA0_SHIFT)
+#define TCR_E0PD1_SHIFT 56
+#define TCR_E0PD1 (1UL << TCR_E0PD1_SHIFT)
+#define TCR_E0PD0_SHIFT 55
+#define TCR_E0PD0 (1UL << TCR_E0PD0_SHIFT)
+#define TCR_NFD1_SHIFT 54
+#define TCR_NFD1 (1UL << TCR_NFD1_SHIFT)
+#define TCR_NFD0_SHIFT 53
+#define TCR_NFD0 (1UL << TCR_NFD0_SHIFT)
+#define TCR_TBID1_SHIFT 52
+#define TCR_TBID1 (1UL << TCR_TBID1_SHIFT)
+#define TCR_TBID0_SHIFT 51
+#define TCR_TBID0 (1UL << TCR_TBID0_SHIFT)
+#define TCR_HWU162_SHIFT 50
+#define TCR_HWU162 (1UL << TCR_HWU162_SHIFT)
+#define TCR_HWU161_SHIFT 49
+#define TCR_HWU161 (1UL << TCR_HWU161_SHIFT)
+#define TCR_HWU160_SHIFT 48
+#define TCR_HWU160 (1UL << TCR_HWU160_SHIFT)
+#define TCR_HWU159_SHIFT 47
+#define TCR_HWU159 (1UL << TCR_HWU159_SHIFT)
+#define TCR_HWU1 \
+ (TCR_HWU159 | TCR_HWU160 | TCR_HWU161 | TCR_HWU162)
+#define TCR_HWU062_SHIFT 46
+#define TCR_HWU062 (1UL << TCR_HWU062_SHIFT)
+#define TCR_HWU061_SHIFT 45
+#define TCR_HWU061 (1UL << TCR_HWU061_SHIFT)
+#define TCR_HWU060_SHIFT 44
+#define TCR_HWU060 (1UL << TCR_HWU060_SHIFT)
+#define TCR_HWU059_SHIFT 43
+#define TCR_HWU059 (1UL << TCR_HWU059_SHIFT)
+#define TCR_HWU0 \
+ (TCR_HWU059 | TCR_HWU060 | TCR_HWU061 | TCR_HWU062)
+#define TCR_HPD1_SHIFT 42
+#define TCR_HPD1 (1UL << TCR_HPD1_SHIFT)
+#define TCR_HPD0_SHIFT 41
+#define TCR_HPD0 (1UL << TCR_HPD0_SHIFT)
+#define TCR_HD_SHIFT 40
+#define TCR_HD (1UL << TCR_HD_SHIFT)
+#define TCR_HA_SHIFT 39
+#define TCR_HA (1UL << TCR_HA_SHIFT)
+#define TCR_TBI1_SHIFT 38
+#define TCR_TBI1 (1UL << TCR_TBI1_SHIFT
+#define TCR_TBI0_SHIFT 37
+#define TCR_TBI0 (1U << TCR_TBI0_SHIFT)
+#define TCR_ASID_SHIFT 36
+#define TCR_ASID_WIDTH 1
+#define TCR_ASID_16 (1UL << TCR_ASID_SHIFT)
+/* Bit 35 is reserved */
+#define TCR_IPS_SHIFT 32
+#define TCR_IPS_WIDTH 3
+#define TCR_IPS_32BIT (0UL << TCR_IPS_SHIFT)
+#define TCR_IPS_36BIT (1UL << TCR_IPS_SHIFT)
+#define TCR_IPS_40BIT (2UL << TCR_IPS_SHIFT)
+#define TCR_IPS_42BIT (3UL << TCR_IPS_SHIFT)
+#define TCR_IPS_44BIT (4UL << TCR_IPS_SHIFT)
+#define TCR_IPS_48BIT (5UL << TCR_IPS_SHIFT)
+#define TCR_TG1_SHIFT 30
+#define TCR_TG1_16K (1UL << TCR_TG1_SHIFT)
+#define TCR_TG1_4K (2UL << TCR_TG1_SHIFT)
+#define TCR_TG1_64K (3UL << TCR_TG1_SHIFT)
+#define TCR_SH1_SHIFT 28
+#define TCR_SH1_IS (3UL << TCR_SH1_SHIFT)
+#define TCR_ORGN1_SHIFT 26
+#define TCR_ORGN1_WBWA (1UL << TCR_ORGN1_SHIFT)
+#define TCR_IRGN1_SHIFT 24
+#define TCR_IRGN1_WBWA (1UL << TCR_IRGN1_SHIFT)
+#define TCR_EPD1_SHIFT 23
+#define TCR_EPD1 (1UL << TCR_EPD1_SHIFT)
+#define TCR_A1_SHIFT 22
+#define TCR_A1 (0x1UL << TCR_A1_SHIFT)
+#define TCR_T1SZ_SHIFT 16
+#define TCR_T1SZ(x) ((x) << TCR_T1SZ_SHIFT)
+#define TCR_TG0_SHIFT 14
+#define TCR_TG0_16K (1UL << TCR_TG0_SHIFT)
+#define TCR_TG0_4K (2UL << TCR_TG0_SHIFT)
+#define TCR_TG0_64K (3UL << TCR_TG0_SHIFT)
+#define TCR_SH0_SHIFT 12
+#define TCR_SH0_IS (3UL << TCR_SH0_SHIFT)
+#define TCR_ORGN0_SHIFT 10
+#define TCR_ORGN0_WBWA (1UL << TCR_ORGN0_SHIFT)
+#define TCR_IRGN0_SHIFT 8
+#define TCR_IRGN0_WBWA (1UL << TCR_IRGN0_SHIFT)
+#define TCR_EPD0_SHIFT 7
+#define TCR_EPD0 (1UL << TCR_EPD1_SHIFT)
+/* Bit 6 is reserved */
+#define TCR_T0SZ_SHIFT 0
+#define TCR_T0SZ_MASK 0x3f
+#define TCR_T0SZ(x) ((x) << TCR_T0SZ_SHIFT)
+#define TCR_TxSZ(x) (TCR_T1SZ(x) | TCR_T0SZ(x))
-#define TCR_ASID_SHIFT 36
-#define TCR_ASID_WIDTH 1
-#define TCR_ASID_16 (0x1UL << TCR_ASID_SHIFT)
-
-#define TCR_IPS_SHIFT 32
-#define TCR_IPS_WIDTH 3
-#define TCR_IPS_32BIT (0 << TCR_IPS_SHIFT)
-#define TCR_IPS_36BIT (1 << TCR_IPS_SHIFT)
-#define TCR_IPS_40BIT (2 << TCR_IPS_SHIFT)
-#define TCR_IPS_42BIT (3 << TCR_IPS_SHIFT)
-#define TCR_IPS_44BIT (4 << TCR_IPS_SHIFT)
-#define TCR_IPS_48BIT (5 << TCR_IPS_SHIFT)
-
-#define TCR_TG1_SHIFT 30
-#define TCR_TG1_16K (1 << TCR_TG1_SHIFT)
-#define TCR_TG1_4K (2 << TCR_TG1_SHIFT)
-#define TCR_TG1_64K (3 << TCR_TG1_SHIFT)
-
-#define TCR_TG0_MASK 0x000000000000c000
-
-#define TCR_SH1_SHIFT 28
-#define TCR_SH1_IS (0x3UL << TCR_SH1_SHIFT)
-#define TCR_ORGN1_SHIFT 26
-#define TCR_ORGN1_WBWA (0x1UL << TCR_ORGN1_SHIFT)
-#define TCR_IRGN1_SHIFT 24
-#define TCR_IRGN1_WBWA (0x1UL << TCR_IRGN1_SHIFT)
-#define TCR_A1_SHIFT 22
-#define TCR_A1 (0x1UL << TCR_A1_SHIFT)
-#define TCR_SH0_SHIFT 12
-#define TCR_SH0_IS (0x3UL << TCR_SH0_SHIFT)
-#define TCR_ORGN0_SHIFT 10
-#define TCR_ORGN0_WBWA (0x1UL << TCR_ORGN0_SHIFT)
-#define TCR_IRGN0_SHIFT 8
-#define TCR_IRGN0_WBWA (0x1UL << TCR_IRGN0_SHIFT)
-
#define TCR_CACHE_ATTRS ((TCR_IRGN0_WBWA | TCR_IRGN1_WBWA) |\
(TCR_ORGN0_WBWA | TCR_ORGN1_WBWA))
-
#ifdef SMP
#define TCR_SMP_ATTRS (TCR_SH0_IS | TCR_SH1_IS)
#else
#define TCR_SMP_ATTRS 0
#endif
-
-#define TCR_T1SZ_SHIFT 16
-#define TCR_T0SZ_SHIFT 0
-#define TCR_T0SZ_MASK 0x3f
-#define TCR_T1SZ(x) ((x) << TCR_T1SZ_SHIFT)
-#define TCR_T0SZ(x) ((x) << TCR_T0SZ_SHIFT)
-#define TCR_TxSZ(x) (TCR_T1SZ(x) | TCR_T0SZ(x))
/* Saved Program Status Register */
#define DBG_SPSR_SS (0x1 << 21)
More information about the svn-src-head
mailing list