Development Plan Proposal for Unifying Interrupt and PCI APIs

Joel Sherrill <joel@OARcorp.com> joel.sherrill at OARcorp.com
Mon Oct 25 21:57:45 UTC 2004


Eric Valette wrote:
> Joel Sherrill <joel at OARcorp.com> wrote:
> 
>> I am not disputing the fact that there may be a base common API
>> and additions on some CPUs to take advantage of features. I just
>> know that there is a common ground we are missing.
> 
> 
> I do not argue that either. I just prefer to let the BSP connect the 
> handler to the IRQ because it knows things the common layer will never 
> know like the real vector or how to acknowledge the IRQ properly.
> 
> In your proposal how do you handle a ix86 BSP that connects timer to IRQ 
> 1 on a 8259 and the another ix86 BSP to IRQ 6 (and even possibly with a 
> different interrupt controller than the classical 8259 emulation)?

In this case, you are right the BSP does have to be aware of things.
I do not think it is perfect but the mips model is in the right 
direction to me.  It shares a LOT of assembly code with a
distinct point to insert a CPU model or BSP specific routine.

In the case above, the procedure to get from hardware ISR to
the handler for a particular x86 vector is well-defined.  It
is what happens at that vector which is BSP specific.

But again, I am not as concerned about the implementation as I am
about the relative small API used to attach interrupt handlers.

NOTE: I am concerned about the implementation but that is secondary
to having a more common API.  :-)

>  > The libchip
> 
>> use of indirect calls for register accesses is an
>> independent issue which has nothing to do with unifying the
>> interrupt and PCI APIs. 
> 
> 
> Right. It's no me that is trying to justify it. I just said that libchip 
> make questionnable design decision and that I hope that the same 
> architecture will not be used for IRQ... Having a driver library is fine 
> provided it is not the root cause of some of the problems by trying to 
> connect IRQ itself. Providing a routine that should be called with the 
> relevant parameter and precise definition of interrupt status (e.g 
> processor enabled, a set of other interrupts enabled, current IRQ 
> masked) is good enough.

I'm not as much trying to justify it as trying to keep any design
issues in how libchip does register access distract us.  I took off
my coder hat and put on the rarely used and very dusty project
management hat.  I just want to really make progress on the unified
API at this point and I am likely to politely redirect any conversation
that distracts from this.  That seems to be what happened every time
in the past -- we got side-tracked.

So the focus is on single issue at a time.

>> There are video addons but RTEMS does not have high end graphics 
>> support.  If you are happy with MicroWindows, PicoTk, etc. then
>> RTEMS meets your needs.
> 
> 
> Since when nobody checked that microwindows can compile with RTEMS?

I don't know what the magic is but it can't be that far off... this
product uses it

http://www.rtems.com/phpwiki/index.php/TCB-2

One of my goals for Bochs was to have a standard platform that we could
easily and regularly check out standard add-ons.

>> FWIW the same comments could have been made before there was networking,
>> any filesystem support, etc.  This is open source.  It evolves and 
>> grows.  Those functionalities will show up as people volunteer or
>> sponsor the work.  I would have an ulcer if I tried to worry about
>> those things. :)
> 
> 
> Yes but if the amount of work required to port it to a real device grows 
> too much, then alternatives may be chosen...
> 
>> I do want to get ISR(vector, void *context) before we are done.
> 
> 
> Fine you know I already submitted patches for Ix86 to have it at least 
> twice :-)

Did this get associated with a PR or are we depending on my nearly
infinite capacity Inbox? :)

It is time to dust it off again.  I am trying to be focused and
stubborn.  I think Till has this capability on the PPC.  With
some push, it can be spread across the others.

--joel



More information about the users mailing list