[U-Boot] [PATCH 4/7] Rewrite i386 interrupt handling

Wolfgang Denk wd at denx.de
Tue Feb 24 23:33:02 CET 2009


Dear Graeme Russ,

In message <49A3C854.2030007 at gmail.com> you wrote:
> Rewrite interrupt handling functionality for the i386 port. Separated
> functionality into separate CPU and Architecture components.
> 
> Signed-off-by: Graeme Russ <graeme.russ at gmail.com>
> ---
> It appears as if the i386 interrupt handler functionality was intended
> to allow multiple handlers to be installed for a given interrupt.
> Unfortunately, this functionality was not fully implemented and also
> had the problem that irq_free_handler() does not allow the passing
> of the handler function pointer and therefore could never be used to
> free specific handlers that had been installed for a given IRQ.
> 
> There were also various issues with array bounds not being fully tested
> 
> I had two objectives in mind for the new implementation:
> 1) Keep the implementation as similar as possible to existing
>    implementations. To that end, I have used the leon2/3 implementations
>    as the reference
> 2) Seperate CPU and Architecture specific elements. All specific i386
>    interrupt functionality is now in cpu/i386/ with the high level API
>    and architecture specific code in lib_i386. Functionality specific
>    to the PC/AT architecture (i.e. cascaded i8259 PICs) has been further
>    split out into an individual file to allow for the implementation of
>    the PIC architecture of the SC520 CPU (supports more IRQs)
> ---
>  cpu/i386/Makefile              |    2 =
> 
>  cpu/i386/cpu.c                 |    4 =
> 
>  cpu/i386/exceptions.c          |  229 ++++++++++++++++++++++
>  cpu/i386/interrupts.c          |  422 ------------------------------------=
> ----
>  include/asm-i386/interrupt.h   |   48 ++++-
>  include/asm-i386/u-boot-i386.h |    6 +
>  include/configs/eNET.h         |    4 =
> 
>  include/configs/sc520_cdp.h    |    2 =
> 
>  include/configs/sc520_spunk.h  |    2 =
> 
>  lib_i386/Makefile              |    2 =
> 
>  lib_i386/interrupts.c          |  159 +++++++++++++++
>  lib_i386/pcat_interrupts.c     |  165 ++++++++++++++++
>  12 files changed, 623 insertions(+), 422 deletions(-)
>  create mode 100644 cpu/i386/exceptions.c
>  create mode 100644 lib_i386/interrupts.c
>  create mode 100644 lib_i386/pcat_interrupts.c

Applied to "next" branch.  Thanks.

Note that I decided to include your comment into the commit message -
I think it is pretty useful to explain the change.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Unix is like a toll road on which you have to stop every 50  feet  to
pay another nickel. But hey! You only feel 5 cents poorer each time.
                 - Larry Wall in <1992Aug13.192357.15731 at netlabs.com>


More information about the U-Boot mailing list