Old style exception processing?

Joel Sherrill joel.sherrill at OARcorp.com
Mon Mar 31 20:02:06 UTC 2008


André Keller Abadie wrote:
> Hi guys
>
> I'm working with the smc91111 NIC driver and I found this message:
>
> /*
>  *  This driver currently only supports architectures with the old style
>  *  exception processing.  The following checks try to keep this
>  *  from being compiled on systems which can't support this driver.
>  *
>  *  NOTE: As of 28 September 2005, this has only been tested on the SPARC,
>  *        so that is all it is enabled for.
>  */
>
> What does 'old style exception processing' mean? What are the
> differences to the new one?
>   
Boy I wish the terms old and new exception processing
had never entered the RTEMS vocabulary.  <sigh>

Depending upon the CPU architecture, RTEMS supports
two style of interrupt registration and vectoring.

Simple vectored is what is called old exception processing.
It is used on CPU architectures that have plenty of vectors
supported by the CPU itself and do not usually have a
programmable interrupt controller.  Think m68k.

PIC vectored is "new exception processing."  It is found
on CPU architectures where the CPU itself often has
very few interrupt vectors and the hardware usually
includes a PIC which is BSP dependent.  The vectoring
is done more in software in a BSP dependent order.
Think PowerPC or x86 as implemented in the PC.

RTEMS started life on simple vectored CPUs and this
was the model originally ported to the PowerPC and x86.
Since these ports were rewritten years ago to be PIC
vectored, the association with the words old and new.
We are a conservative project and kept both models
in place on the PowerPC until early this year when we
removed the last BSP which had not been converted.
The tree actually said old and new because we had
no better names at the time.

Stinks and stinks and stinks but that's what happened.

The APIs are different.  The simple vectored uses
rtems_interrupt_catch and the BSP defines set_vector.
The PIC vectored has a number of more routines
which are technically implemented by the bsp.  These
have names like rtems_irq_XXX

It is possible to write a facade that makes the
PIC vectored model look like the simple vectored
if you ignore the more powerful capabilities but
no one has ever done this in the tree.

Usually drivers like this just end up with ifdef's
where it matters based upon architecture.

In the case of a libchip NIC adapter, it probably
should just rely on the BSP to install the ISR handler
and work hard to ignore the issue. :-D
> Thanks in advance,
>
> André--
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.com
> http://rtems.rtems.org/mailman/listinfo/rtems-users
>   


-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill 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