Kernelite 0.1.0
Kernelite is a minimalist, educational operating system kernel built from scratch. The project aims to recreate core components of the Linux architecture to explore the fundamentals of operating system design and hardware-software interaction.
Loading...
Searching...
No Matches
Data Fields
gicd_typer_t Union Reference

GICv3 Distributor Type Register, GICD_TYPER (0x0004, RO). More...

Data Fields

uint32_t raw
 Raw 32-bit register value.
 
struct { 
 
   uint32_t   itlinesnumber: 5 
 (ITLinesNumber + 1) * 32 - 1 = highest SPI INTID supported.
 
   uint32_t   cpunumber: 3 
 Number of PEs visible with affinity routing disabled; unused once ARE is set.
 
   bool   espi: 1 
 1 if the extended SPI range is implemented.
 
   bool   nmi: 1 
 1 if Non-maskable Interrupt priorities are supported.
 
   bool   security_extn: 1 
 1 if the GIC implements two security states. Reads as 0 when GICD_CTLR.DS == 1.
 
   uint32_t   num_lpis: 5 
 Number of LPIs supported. 0: determined by idbits instead. Otherwise, 2^(num_lpis+1) LPIs.
 
   bool   mbis: 1 
 1 if message-based SPIs via GICD_SETSPI_NSR/CLRSPI_NSR are supported.
 
   bool   lpis: 1 
 1 if LPIs are supported.
 
   bool   dvis: 1 
 1 if direct injection of virtual LPIs is supported.
 
   uint32_t   idbits: 5 
 Number of physical interrupt identifier bits supported, minus 1.
 
   bool   a3v: 1 
 1 if non-zero values of affinity level 3 are supported.
 
   bool   no1n: 1 
 1 if 1-of-N SPI interrupt targeting is not supported.
 
   bool   rss: 1 
 1 if the Range Selector field is supported in GICD_IROUTER<n> and ICC_SGI*R_EL1.
 
   uint32_t   espi_range: 5 
 If espi == 1, (espi_range + 1) * 32 extended SPIs are supported beyond INTID 4095.
 
};  
 

Detailed Description

GICv3 Distributor Type Register, GICD_TYPER (0x0004, RO).

Bit layout per Arm IHI 0069. Fields relating to extended SPIs, LPIs, and the 1-of-N/range-selector extensions are decoded for completeness but are not exercised by this driver, which targets a single PE without an ITS.


The documentation for this union was generated from the following file: