[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