aos/devices/gic_v3_redist.dev
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

92 lines
4.0 KiB
Plaintext

/*
* Copyright (c) 2018, ETH Zurich. All rights reserved.
*
* This file is distributed under the terms in the attached LICENSE file.
* If you do not find this file, copies can be found by writing to:
* ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
*/
/*
* gic_v3.dev
*
* DESCRIPTION: GIC v3 architecture definitions
*
* See:
* GIC v3 Architecture Specification
*/
device gic_v3_redist msbfirst (addr redist) "GIC v3 Redistributor" {
register GICR_CTLR also addr(redist, 0x0000) "Redistributor Control Register" {
UWP 1 ro "Upstream Write Pending";
_ 4 mbz;
DPG1S 1 "Disable Processor selection for Group 1 Secure interrupts";
DPG1NS 1 "Disable Processor selection for Group 1 Non-secure interrupts";
DPG0 1 "Disable Processor selection for Group 0 interrupts";
_ 20 mbz;
RWP 1 "Register Write Pending";
_ 2 mbz;
Enable_LPIs 1 "LPI support is enabled";
};
register GICR_IIDR ro addr(redist, 0x0004) "Redistributor Implementer Identification Register" {
ProductID 8 "Product identifier";
_ 4 mbz;
Variant 4 "Variant number";
Revision 4 "Revision number";
Implementer 12 "JEP106 code of implementing company";
};
register GICR_TYPER ro addr(redist, 0x0008) "Redistributor Type Register" {
Affinity_Value 32 "The identity of the PE associated with this Redistributor";
_ 6 mbz;
CommonLPIAff 2 "The affinity level at which Redistributors share a LPI Configuration table";
Processor_Number 16 "A unique identifier for the PE";
_ 2 mbz;
DPGS 1 "Implementation supports LPIs";
Last 1 "Implementation supports LPIs";
DirectLPI 1 "Implementation supports LPIs";
_ 1 mbz;
VLPIS 1 "Implementation supports LPIs";
PLPIS 1 "Implementation supports LPIs";
};
register GICR_STATUSR addr(redist, 0x0010) "Error Reporting Status Register" {
_ 28 mbz;
WROD 1 "Write to RO location has been detected";
RWOD 1 "Read of WO location has been detected";
WRD 1 "Write to reserved location has been detected";
RRD 1 "Read to reserved location has been detected";
};
register GICR_WAKER addr(redist, 0x0014) "Redistributor Wake Register" {
IMP_DEF2 1 "Implementation Defined";
_ 28 mbz;
ChildrenAsleep 1 ro "Indicates whether the connected PE is quiescent";
ProcessorSleep 1 "Indicates whether the Redistributor can assert the WakeRequest signal";
IMP_DEF1 1 "Implementation Defined";
};
register GICR_IGROUPR0 addr(redist, 0x10080) "Interrupt Group Register 0" type(uint32);
register GICR_ISENABLER0 addr(redist, 0x10100) "Interrupt Set-Enable Register 0" type(uint32);
register GICR_ICENABLER0 addr(redist, 0x10180) "Interrupt Clear-Enable Register 0" type(uint32);
register GICR_ISPENDR0 addr(redist, 0x10200) "Interrupt Set-Pending Register 0" type(uint32);
register GICR_ICPENDR0 addr(redist, 0x10280) "Interrupt Clear-Pending Register 0" type(uint32);
register GICR_ISACTIVER0 addr(redist, 0x10300) "Interrupt Set-Active Register 0" type(uint32);
register GICR_ICACTIVER0 addr(redist, 0x10380) "Interrupt Clear-Active Register 0" type(uint32);
regarray GICR_IPRIORITYR0 addr(redist, 0x10400)[8] "Interrupt Priority Registers" type(uint32);
register GICR_ICFGR0 addr(redist, 0x10c00) "SGI Configuration Register" type(uint32);
register GICR_ICFGR1 addr(redist, 0x10c04) "PPI Configuration Register" type(uint32);
register GICR_IGRPMODR0 addr(redist, 0x10d00) "Interrupt Group Modifier Register 0" type(uint32);
register GICR_NSACR0 addr(redist, 0x10e00) "Non-secure Access Control Register" type(uint32);
};