Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
I am trying to get interrupts working on my operating system for ARMv8 on QEMU. But when I read the GICv3 memory mapped registers after writing, they are always 0.
Are you sure the GIC base is 0x8000000? Did you map it in as device nGnR(nE/E) memory (qemu doesn't really care but real hardware does care a lot)? Do you see any values at all? Try reading from GICD_IIDR, which is at offset 0x08 from the base of the distributor, and seeing if that also returns all 0s.