this is my first port in absolute in the forum, and I am a beginner in ARM developing.
I did read the ARM GICv3-v4 overview and the ARM GICv3-v4 software overview, together with the 900pages Generic Interrupt ControllerArchitecture Specification v3-4.
However, I have plenty of difficulties in implementing a simple project from scratch:
1- A gicv3
2- A simple timer which assert a IRQ each second.
Basically, the reading that I gave you doesn't give me a starting point/an example.
The only example I have is this one: https://github.com/NienfengYao/armv8-bare-metal but it is a GICv2! I am trying to convert it in GICv3 but I am failing to capture the IRQ..... this example runs in QEMU, virt, aarch64, cortexA-57.
Basically, I have some questions:
1- Do you have a coding example of a gicv3 I can use as a reference? The guides are not enough for me....
2- The Git example with GICv2 does not configure the redistributor.... only GICC and GICD, but not GICR. Is it normal?
3- In my process of conversion from GICv2 to GICv3, I have to write the code to enable the IRQs. So I set the REG_GIC_GICD_ISENABLER register for each IRQ number and I set the bit 0 of GIC_GICC_IGRPEN1_EL1 register. Do I miss something? I can't find nowhere a tutorial "how to enable IRQs in GICv3"....
Thanks for your help
First of all, I would suggest reading following document for starters,
Secondly, there are some good examples in arm DS installed folder, you could download arm DS here,
And then you can find the example here
C:\Program Files\ARM\Development Studio 2020.1\examples\Bare-metal_examples_Armv8.zip\startup_Armv8-A_AArch64_GCC\
View all questions in Cortex-A / A-Profile forum