arm64: Move ICH_ sysreg bits from arm-gic-v3.h to sysreg.h
authorHector Martin <marcan@marcan.st>
Mon, 1 Mar 2021 03:36:24 +0000 (12:36 +0900)
committerHector Martin <marcan@marcan.st>
Thu, 8 Apr 2021 11:18:41 +0000 (20:18 +0900)
These definitions are in arm-gic-v3.h for historical reasons which no
longer apply. Move them to sysreg.h so the AIC driver can use them, as
it needs to peek into vGIC registers to deal with the GIC maintentance
interrupt.

Acked-by: Marc Zyngier <maz@kernel.org>
Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
arch/arm64/include/asm/sysreg.h
include/linux/irqchip/arm-gic-v3.h

index d4a5fca..609dc42 100644 (file)
 #define TRFCR_ELx_ExTRE                        BIT(1)
 #define TRFCR_ELx_E0TRE                        BIT(0)
 
+
+/* GIC Hypervisor interface registers */
+/* ICH_MISR_EL2 bit definitions */
+#define ICH_MISR_EOI           (1 << 0)
+#define ICH_MISR_U             (1 << 1)
+
+/* ICH_LR*_EL2 bit definitions */
+#define ICH_LR_VIRTUAL_ID_MASK ((1ULL << 32) - 1)
+
+#define ICH_LR_EOI             (1ULL << 41)
+#define ICH_LR_GROUP           (1ULL << 60)
+#define ICH_LR_HW              (1ULL << 61)
+#define ICH_LR_STATE           (3ULL << 62)
+#define ICH_LR_PENDING_BIT     (1ULL << 62)
+#define ICH_LR_ACTIVE_BIT      (1ULL << 63)
+#define ICH_LR_PHYS_ID_SHIFT   32
+#define ICH_LR_PHYS_ID_MASK    (0x3ffULL << ICH_LR_PHYS_ID_SHIFT)
+#define ICH_LR_PRIORITY_SHIFT  48
+#define ICH_LR_PRIORITY_MASK   (0xffULL << ICH_LR_PRIORITY_SHIFT)
+
+/* ICH_HCR_EL2 bit definitions */
+#define ICH_HCR_EN             (1 << 0)
+#define ICH_HCR_UIE            (1 << 1)
+#define ICH_HCR_NPIE           (1 << 3)
+#define ICH_HCR_TC             (1 << 10)
+#define ICH_HCR_TALL0          (1 << 11)
+#define ICH_HCR_TALL1          (1 << 12)
+#define ICH_HCR_EOIcount_SHIFT 27
+#define ICH_HCR_EOIcount_MASK  (0x1f << ICH_HCR_EOIcount_SHIFT)
+
+/* ICH_VMCR_EL2 bit definitions */
+#define ICH_VMCR_ACK_CTL_SHIFT 2
+#define ICH_VMCR_ACK_CTL_MASK  (1 << ICH_VMCR_ACK_CTL_SHIFT)
+#define ICH_VMCR_FIQ_EN_SHIFT  3
+#define ICH_VMCR_FIQ_EN_MASK   (1 << ICH_VMCR_FIQ_EN_SHIFT)
+#define ICH_VMCR_CBPR_SHIFT    4
+#define ICH_VMCR_CBPR_MASK     (1 << ICH_VMCR_CBPR_SHIFT)
+#define ICH_VMCR_EOIM_SHIFT    9
+#define ICH_VMCR_EOIM_MASK     (1 << ICH_VMCR_EOIM_SHIFT)
+#define ICH_VMCR_BPR1_SHIFT    18
+#define ICH_VMCR_BPR1_MASK     (7 << ICH_VMCR_BPR1_SHIFT)
+#define ICH_VMCR_BPR0_SHIFT    21
+#define ICH_VMCR_BPR0_MASK     (7 << ICH_VMCR_BPR0_SHIFT)
+#define ICH_VMCR_PMR_SHIFT     24
+#define ICH_VMCR_PMR_MASK      (0xffUL << ICH_VMCR_PMR_SHIFT)
+#define ICH_VMCR_ENG0_SHIFT    0
+#define ICH_VMCR_ENG0_MASK     (1 << ICH_VMCR_ENG0_SHIFT)
+#define ICH_VMCR_ENG1_SHIFT    1
+#define ICH_VMCR_ENG1_MASK     (1 << ICH_VMCR_ENG1_SHIFT)
+
+/* ICH_VTR_EL2 bit definitions */
+#define ICH_VTR_PRI_BITS_SHIFT 29
+#define ICH_VTR_PRI_BITS_MASK  (7 << ICH_VTR_PRI_BITS_SHIFT)
+#define ICH_VTR_ID_BITS_SHIFT  23
+#define ICH_VTR_ID_BITS_MASK   (7 << ICH_VTR_ID_BITS_SHIFT)
+#define ICH_VTR_SEIS_SHIFT     22
+#define ICH_VTR_SEIS_MASK      (1 << ICH_VTR_SEIS_SHIFT)
+#define ICH_VTR_A3V_SHIFT      21
+#define ICH_VTR_A3V_MASK       (1 << ICH_VTR_A3V_SHIFT)
+
 #ifdef __ASSEMBLY__
 
        .irp    num,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30
index f6d092f..81cbf85 100644 (file)
 #define ICC_SRE_EL1_DFB                        (1U << 1)
 #define ICC_SRE_EL1_SRE                        (1U << 0)
 
-/*
- * Hypervisor interface registers (SRE only)
- */
-#define ICH_LR_VIRTUAL_ID_MASK         ((1ULL << 32) - 1)
-
-#define ICH_LR_EOI                     (1ULL << 41)
-#define ICH_LR_GROUP                   (1ULL << 60)
-#define ICH_LR_HW                      (1ULL << 61)
-#define ICH_LR_STATE                   (3ULL << 62)
-#define ICH_LR_PENDING_BIT             (1ULL << 62)
-#define ICH_LR_ACTIVE_BIT              (1ULL << 63)
-#define ICH_LR_PHYS_ID_SHIFT           32
-#define ICH_LR_PHYS_ID_MASK            (0x3ffULL << ICH_LR_PHYS_ID_SHIFT)
-#define ICH_LR_PRIORITY_SHIFT          48
-#define ICH_LR_PRIORITY_MASK           (0xffULL << ICH_LR_PRIORITY_SHIFT)
-
 /* These are for GICv2 emulation only */
 #define GICH_LR_VIRTUALID              (0x3ffUL << 0)
 #define GICH_LR_PHYSID_CPUID_SHIFT     (10)
 #define GICH_LR_PHYSID_CPUID           (7UL << GICH_LR_PHYSID_CPUID_SHIFT)
 
-#define ICH_MISR_EOI                   (1 << 0)
-#define ICH_MISR_U                     (1 << 1)
-
-#define ICH_HCR_EN                     (1 << 0)
-#define ICH_HCR_UIE                    (1 << 1)
-#define ICH_HCR_NPIE                   (1 << 3)
-#define ICH_HCR_TC                     (1 << 10)
-#define ICH_HCR_TALL0                  (1 << 11)
-#define ICH_HCR_TALL1                  (1 << 12)
-#define ICH_HCR_EOIcount_SHIFT         27
-#define ICH_HCR_EOIcount_MASK          (0x1f << ICH_HCR_EOIcount_SHIFT)
-
-#define ICH_VMCR_ACK_CTL_SHIFT         2
-#define ICH_VMCR_ACK_CTL_MASK          (1 << ICH_VMCR_ACK_CTL_SHIFT)
-#define ICH_VMCR_FIQ_EN_SHIFT          3
-#define ICH_VMCR_FIQ_EN_MASK           (1 << ICH_VMCR_FIQ_EN_SHIFT)
-#define ICH_VMCR_CBPR_SHIFT            4
-#define ICH_VMCR_CBPR_MASK             (1 << ICH_VMCR_CBPR_SHIFT)
-#define ICH_VMCR_EOIM_SHIFT            9
-#define ICH_VMCR_EOIM_MASK             (1 << ICH_VMCR_EOIM_SHIFT)
-#define ICH_VMCR_BPR1_SHIFT            18
-#define ICH_VMCR_BPR1_MASK             (7 << ICH_VMCR_BPR1_SHIFT)
-#define ICH_VMCR_BPR0_SHIFT            21
-#define ICH_VMCR_BPR0_MASK             (7 << ICH_VMCR_BPR0_SHIFT)
-#define ICH_VMCR_PMR_SHIFT             24
-#define ICH_VMCR_PMR_MASK              (0xffUL << ICH_VMCR_PMR_SHIFT)
-#define ICH_VMCR_ENG0_SHIFT            0
-#define ICH_VMCR_ENG0_MASK             (1 << ICH_VMCR_ENG0_SHIFT)
-#define ICH_VMCR_ENG1_SHIFT            1
-#define ICH_VMCR_ENG1_MASK             (1 << ICH_VMCR_ENG1_SHIFT)
-
-#define ICH_VTR_PRI_BITS_SHIFT         29
-#define ICH_VTR_PRI_BITS_MASK          (7 << ICH_VTR_PRI_BITS_SHIFT)
-#define ICH_VTR_ID_BITS_SHIFT          23
-#define ICH_VTR_ID_BITS_MASK           (7 << ICH_VTR_ID_BITS_SHIFT)
-#define ICH_VTR_SEIS_SHIFT             22
-#define ICH_VTR_SEIS_MASK              (1 << ICH_VTR_SEIS_SHIFT)
-#define ICH_VTR_A3V_SHIFT              21
-#define ICH_VTR_A3V_MASK               (1 << ICH_VTR_A3V_SHIFT)
-
 #define ICC_IAR1_EL1_SPURIOUS          0x3ff
 
 #define ICC_SRE_EL2_SRE                        (1 << 0)