Linux and interrupts. How do they work?

Farm Dve farmdve at data.bg
Fri Feb 20 05:25:20 EST 2015


My question pertains interrupts in SoCs, smartphones etc.

I am examining some drivers and the code for the architecture in
arch/<arch> and I see code that defines a struct resource with .start
and .end members that are the same, with .flags = IORESOURCE_IRQ.

Where .start and .end is some value like 0x234, my question is if this
is an address of the phone's memory(RAM) or is it something else? I am
simply trying to figure out how various hardware issue interrupts, is
0x234 a memory address or a value that the CPU sees somehow(but from,
where?) and tries to find a handler for this specific interrupt.
My specific issue here is that I have a SoC that has an ARM cpu that
runs the Linux kernel and everything else, but the SoC also has
another chip that has a separate embedded arm CPU inside it running
some ARM code, which when it has some work to send it issues an
interrupt. And I am simply trying to understand how that works.
I apologize if my question is too generic and does not pertain to Linux at all.

Thank  you.



More information about the Kernelnewbies mailing list