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,
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
Joe22 said:I am a beginner in ARM developing
Do you have any experience in any other field(s) of developing?
A 64-bit processor is never going to be simple - going bare metal is not a beginner's project.
Perhaps it would make more sense to learn on something simpler?