
Hi Stefan,
Hi Albert,
On 22.06.2013 11:58, Albert ARIBAUD wrote:
From time to time there is discussion about the need for proper interrupt support in U-Boot.
Right now, the only thing left in the source code which remotely looks like interrupt support is a few code sections compiled conditionally under CONFIG_USE_IRQ, and it does not constitute a good approach to interrupt support, if only for the following reasons:
- CONFIG_USE_IRQ is very general and imprecise as far as overall meaning goes. It does not say "allow drivers to use IRQs", or
"IRQs are provided by supporting this specific interrupt controller", or "this driver requires IRQs to work". It does not help us either that the option was never documented...
- CONFIG_USE_IRQ is, OTOH, very specific as far as interrupt types
go. IRQ is an acronym known in ARM for a specific type of interrupt, but ARM also knows FIQ. IRQ may have a different meaning for another architecture, and each platform has its own classification and attributes for interrupts.
- no API is defined for registering interrupt controller or
interrupt client drivers.
But the worst part is, CONFIG_USE_IRQ is never *ever* defined. :)
So I am tempted to start this RFC with a first question: do we *need* interrupts in the first place, and if we do, do we need an organized interrupts subsystem or do we keep an ad hoc approach?
I know that interrupts are currently used on PowerPC for the PPC4xx ethernet driver (emac). This could be reworked to of cause, but I just wanted to point this out.
I have no idea if interrupts are used on any ARM platform though.
For me it looks, like a fundamental decision to support interrupts on ARM. Do we need them - it's an open question. Does anyone have good use case for it?
On the other hand I remember that Marek was struggling to introduce new driver model. It was also a fundamental change and as fair as I know we don't have it yet finished.
Anyway it is a good discussion topic :-)
Thanks, Stefan
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot