History

irqchip/gic-v3: Add ESPI range support

Add the required support for the ESPI range, which behave exactly like the SPIs of old, only with new funky INTIDs.

Marc Zyngier committed 7 years ago

Commit 211bddd1 parent 86624652 files · +85 −17Browse files

Showing the changes to include/linux (1 of 2 files). Show all

Unified · Split

include/linux/irqchip/arm-gic-v3.h+16−1
@@ -30,10 +30,22 @@ · 29 unmodified lines
3030 #define GICD_ICFGR 0x0C00
3131 #define GICD_IGRPMODR 0x0D00
3232 #define GICD_NSACR 0x0E00
33+#define GICD_IGROUPRnE 0x1000
34+#define GICD_ISENABLERnE 0x1200
35+#define GICD_ICENABLERnE 0x1400
36+#define GICD_ISPENDRnE 0x1600
37+#define GICD_ICPENDRnE 0x1800
38+#define GICD_ISACTIVERnE 0x1A00
39+#define GICD_ICACTIVERnE 0x1C00
40+#define GICD_IPRIORITYRnE 0x2000
41+#define GICD_ICFGRnE 0x3000
3342 #define GICD_IROUTER 0x6000
43+#define GICD_IROUTERnE 0x8000
3444 #define GICD_IDREGS 0xFFD0
3545 #define GICD_PIDR2 0xFFE8
3646
47+#define ESPI_BASE_INTID 4096
48+
3749 /*
3850 * Those registers are actually from GICv2, but the spec demands that they
3951 * are implemented as RES0 if ARE is 1 (which we do in KVM's emulated GICv3).
@@ -69,10 +81,13 @@ · 29 unmodified lines
6981 #define GICD_TYPER_RSS (1U << 26)
7082 #define GICD_TYPER_LPIS (1U << 17)
7183 #define GICD_TYPER_MBIS (1U << 16)
84+#define GICD_TYPER_ESPI (1U << 8)
7285
7386 #define GICD_TYPER_ID_BITS(typer) ((((typer) >> 19) & 0x1f) + 1)
7487 #define GICD_TYPER_NUM_LPIS(typer) ((((typer) >> 11) & 0x1f) + 1)
75−#define GICD_TYPER_IRQS(typer) ((((typer) & 0x1f) + 1) * 32)
88+#define GICD_TYPER_SPIS(typer) ((((typer) & 0x1f) + 1) * 32)
89+#define GICD_TYPER_ESPIS(typer) \
90+ (((typer) & GICD_TYPER_ESPI) ? GICD_TYPER_SPIS((typer) >> 27) : 0)
7691
7792 #define GICD_IROUTER_SPI_MODE_ONE (0U << 31)
7893 #define GICD_IROUTER_SPI_MODE_ANY (1U << 31)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t