Hi everyone. I'm trying to build my own OS for hobby, but I'm having some doubts about how the ARM processor and the SoC handle interrupts. I know that on the ARM the interrupt vector has only one line for a generic IRQ and one for the FIQ, and that the BCM2836 has an another vector for its interrupt. I don't get how they are related in order to write an handler for them. What I suppose is that the BCM interrupt is connected to the IRQ and FIQ line of the ARM, so if it's true I have to poll every peripheral interrupt register in order to find out who raises the interrupt? If instead this is not how all works, can anyone explain it to me please?
I have also another question: I think that if I use an USB keyboard with my Raspberry anytime I press a key the OS is noticed of that by an interrupt, but neither in the BCM2835 or in the BCM2836 manual I was able to find any interrupt line for the USB. They're telling me that I have to poll all the time the registers for getting a key?