add support to GIC ITS, and the MSI service base on it
[lunaix-os.git] / lunaix-os / arch / aarch64 / includes / asm / aa64_gic.h
index ea9f691f7d15fb7b9d63a28deb967b4a10635023..a0f3532005fe9bca3459e05a908c13877fd76dd0 100644 (file)
@@ -45,6 +45,7 @@ typedef unsigned long gicreg64_t;
 #define GICD_CTLR            REG_INDEX(0x0000)
 #define GICD_TYPER           REG_INDEX(0x0004)
 #define GICD_IIDR            REG_INDEX(0x0008)
 #define GICD_CTLR            REG_INDEX(0x0000)
 #define GICD_TYPER           REG_INDEX(0x0004)
 #define GICD_IIDR            REG_INDEX(0x0008)
+#define GICD_SETSPI_NSR      REG_INDEX(0x0040)
 
 #define GICD_IGROUPRn        REG_INDEX(0x0080)
 #define GICD_ISENABLER       REG_INDEX(0x0100)
 
 #define GICD_IGROUPRn        REG_INDEX(0x0080)
 #define GICD_ISENABLER       REG_INDEX(0x0100)
@@ -58,6 +59,12 @@ typedef unsigned long gicreg64_t;
 #define GICR_TYPER           REG_INDEX(0x0008)
 #define GICR_PROPBASER       REG_INDEX(0x0070)
 #define GICR_PENDBASER       REG_INDEX(0x0078)
 #define GICR_TYPER           REG_INDEX(0x0008)
 #define GICR_PROPBASER       REG_INDEX(0x0070)
 #define GICR_PENDBASER       REG_INDEX(0x0078)
+#define GICR_SETLPIR         REG_INDEX(0x0040)
+
+#define GITS_CTLR            REG_INDEX(0x0000)
+#define GITS_TYPER           REG_INDEX(0x0004)
+#define GITS_CBASER          REG_INDEX(0x0080)
+#define GITS_BASER           REG_INDEX(0x0100)
 
 #define GICD_CTLR_G1SEN      BITFLAG(2)
 #define GICD_CTLR_G1NSEN     BITFLAG(1)
 
 #define GICD_CTLR_G1SEN      BITFLAG(2)
 #define GICD_CTLR_G1NSEN     BITFLAG(1)
@@ -82,4 +89,31 @@ typedef unsigned long gicreg64_t;
 #define GICR_PROPBASER_IDbits\
                              BITFIELD(4,  0)
 
 #define GICR_PROPBASER_IDbits\
                              BITFIELD(4,  0)
 
+#define GICR_CTLR_RWP        BITFLAG(31)
+#define GICR_CTLR_EnLPI      BITFLAG(0)
+
+#define GITS_CTLR_QS         BITFLAG(31)
+#define GITS_CTLR_EN         BITFLAG(0)
+
+#define GITS_TYPER_CIL       BITFLAG(36)
+#define GITS_TYPER_CIDbits   BITFIELD(35, 32)
+#define GITS_TYPER_HCC       BITFIELD(31, 24)
+#define GITS_TYPER_PTA       BITFLAG(19)
+#define GITS_TYPER_Devbits   BITFIELD(17, 13)
+#define GITS_TYPER_ID_bits   BITFIELD(12, 8)
+#define GITS_TYPER_ITTe_sz   BITFIELD(7, 4)
+
+#define GITS_BASER_VALID     BITFLAG(63)
+#define GITS_BASER_ICACHE    BITFIELD(61, 59)
+#define GITS_BASER_OCACHE    BITFIELD(55, 53)
+#define GITS_BASER_PA        BITFIELD(47, 12)
+#define GITS_BASER_SHARE     BITFIELD(11, 10)
+#define GITS_BASER_SIZE      BITFIELD(7, 0)
+
+#define GITS_BASERn_TYPE     BITFIELD(58, 56)
+#define GITS_BASERn_EntSz    BITFIELD(52, 48)
+#define GITS_BASERn_PGSZ     BITFIELD(9, 8)
+
+#define GITS_CWRRD_OFF       BITFIELD(19, 5)
+
 #endif /* __LUNAIX_AA64_GIC_H */
 #endif /* __LUNAIX_AA64_GIC_H */