48#ifndef TARGET_CPU_MASK
49#define TARGET_CPU_MASK 0x01010101
52#define GIC_REV_MASK 0xF0
53#define GIC_REV_OFFSET 0x4
55#define GICD_CTLR (GICD_OFFSET + 0x000)
56#define GICD_TYPER (GICD_OFFSET + 0x004)
57#define GICD_IIDR (GICD_OFFSET + 0x008)
58#define GICD_IGROUPR(n) (GICD_OFFSET + 0x080 + (n) * 4)
59#define GICD_ISENABLER(n) (GICD_OFFSET + 0x100 + (n) * 4)
60#define GICD_ICENABLER(n) (GICD_OFFSET + 0x180 + (n) * 4)
61#define GICD_ISPENDR(n) (GICD_OFFSET + 0x200 + (n) * 4)
62#define GICD_ICPENDR(n) (GICD_OFFSET + 0x280 + (n) * 4)
63#define GICD_ISACTIVER(n) (GICD_OFFSET + 0x300 + (n) * 4)
64#define GICD_ICACTIVER(n) (GICD_OFFSET + 0x380 + (n) * 4)
65#define GICD_IPRIORITYR(n) (GICD_OFFSET + 0x400 + (n) * 4)
66#define GICD_ITARGETSR(n) (GICD_OFFSET + 0x800 + (n) * 4)
67#define GICD_ICFGR(n) (GICD_OFFSET + 0xc00 + (n) * 4)
68#define GICD_SGIR (GICD_OFFSET + 0xf00)
69#define GICD_CPENDSGIR(n) (GICD_OFFSET + 0xf10 + (n) * 4)
70#define GICD_SPENDSGIR(n) (GICD_OFFSET + 0xf20 + (n) * 4)
71#define GICD_PIDR2V2 (GICD_OFFSET + 0xfe8)
72#define GICD_PIDR2V3 (GICD_OFFSET + 0xffe8)
74#ifdef LOSCFG_ARM_GIC_V3
75#define GICD_IGRPMODR(n) (GICD_OFFSET + 0x0d00 + (n) * 4)
76#define GICD_IROUTER(n) (GICD_OFFSET + 0x6000 + (n) * 8)
79#define GIC_REG_8(reg) (*(volatile UINT8 *)((UINTPTR)(GIC_BASE_ADDR + (reg))))
80#define GIC_REG_32(reg) (*(volatile UINT32 *)((UINTPTR)(GIC_BASE_ADDR + (reg))))
81#define GIC_REG_64(reg) (*(volatile UINT64 *)((UINTPTR)(GIC_BASE_ADDR + (reg))))
83#define GICR_INT_DEF_PRI 0xa0U
84#define GICD_INT_DEF_PRI 0xa0U
85#define GICD_INT_DEF_PRI_X4 (((UINT32)GICD_INT_DEF_PRI << 24) | \
86 ((UINT32)GICD_INT_DEF_PRI << 16) | \
87 ((UINT32)GICD_INT_DEF_PRI << 8) | \
88 (UINT32)GICD_INT_DEF_PRI)
90#define GIC_MIN_SPI_NUM 32
92#define INT_COUNTS_4_PER_REG 4U
93#define INT_COUNTS_16_PER_REG 16U
94#define INT_COUNTS_32_PER_REG 32U
@ GICV3
Definition gic_common.h:44
@ GICV1
Definition gic_common.h:42
@ GICV4
Definition gic_common.h:45
@ GICV2
Definition gic_common.h:43