Development Plan Proposal for Unifying Interrupt and PCI APIs

Joel Sherrill <joel@OARcorp.com> joel.sherrill at OARcorp.com
Fri Oct 22 19:50:41 UTC 2004


Hi,

Over the past few months, I have been trying to come up with a
plan for how to neatly, cleanly and efficiently merge the various
PCI and Interrupt APIs.  This is s thorn in all our sides and
difficult to explain at best.

There are a handful of problems to getting to the goal.

   + Defining a single API
   + Fixing everywhere the old API is used
   + Lack of universal knowledge on all CPUs and BSPs
   + It's intimidating :>

In short, no one is completely comfortable doing all the
work and it doesn't seem easy to subdivide or implement
incrementally.

This is what I think I have solved.  THese are the
steps I have defined so far.

+ Define name/location of universal PCI and interrupt
.h files.

+ At first structure the unified PCI and IRQ file so they are
like this:

... common stuff TBD ...

#if defined(x86)
... All of do it x86 way ...
#else another CPU
... All of do it CPU way...
#endif

Remove the old files and convert to using the single .h file.

Initiate Transition chapter in BSP Guide.

+ Next address one issue that is different in the existing
APIs.  Fix that and make it shared.  The file now looks
like this:

... common stuff defined so far...
#if defined(x86)
... Remaining part of do it x86 way ...
#else another CPU
... Remaining part of do it CPU way...
#endif

Fix all BSPs and drivers that this SINGLE action impacted

+ Rinse and repeat previous step until complete.

I believe that the PCI API should follow that in BSD as closely
as possible.

We can argue about individual issues one at a time along the way.

Comments?

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel at OARcorp.com                 On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
    Support Available             (256) 722-9985




More information about the users mailing list