We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello,
I've been reading through different reference manuals concerning FVP, Fast Models, Base Platform etc. and I can't seem to find compelling information on which GIC(-400/-500/-600) the Armv-A Base RevC AEM FVP implements. Does it even implement a specific version or more a generic GICv3 model? If so, which features of the GIC(-400/-500/-600) does it resemble?
Thankful for any information!
Greetings
Martin Schönstedt
The --list-params option of the FVP_Base_RevC-2xAEMvA lists out parameters which allow configuring the version of the GIC. Some of the options related to GIC configuration:
gicv3.gicv2-only=0 # (bool , init-time) default = '0' : When using the GICv3 model, pretend to be a GICv2 system. has-gicv4.1=0 # (bool , init-time) default = '0' : Enable GICv4.1 functionality; when false the component is inactive.
The interrupt controller node in the dts file for the platform should contain the required compatibility information. For e.g., on Linux:
gic: interrupt-controller@2f000000 { compatible = "arm,gic-v3"; #interrupt-cells = <3>; #address-cells = <2>; #size-cells = <2>; ranges; interrupt-controller; reg = <0x0 0x2f000000 0 0x10000>, // GICD <0x0 0x2f100000 0 0x200000>, // GICR <0x0 0x2c000000 0 0x2000>, // GICC <0x0 0x2c010000 0 0x2000>, // GICH <0x0 0x2c02f000 0 0x2000>; // GICV interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; its: msi-controller@2f020000 { #msi-cells = <1>; compatible = "arm,gic-v3-its"; reg = <0x0 0x2f020000 0x0 0x20000>; // GITS msi-controller; }; };
Another example from morello-fvp:
gic: interrupt-controller@2c010000 { compatible = "arm,gic-600", "arm,gic-v3"; #address-cells = <2>; #interrupt-cells = <3>; #size-cells = <2>; ranges; interrupt-controller; };
The FVP reference guide lists gic versions for some models: for e.g., its RD-N2 FVP model implements gic-700. The FVP reference manual lists several implementations of GIC, but I am not sure if there are all available, or how to enable them, on the free FVP versions.
Here, it highlights a major feature of gic-600, so perhaps one can look for the availability of such a feature in an implementation. The Arm TrustedFirmware source has the driver for gic-600; it may help in discovering its features, or how it is to be supported.