* shared/vme/VMEConfig.h, shared/vme/vme_universe.c:
added support for Tsi148 bridge; BSP can define which
bridge driver to use from VMEConfig.h.
Added 'err' macro parameter to BSP_VME_INSTALL_IRQ_MGR(err)
macro so that an error status can be passed back.
* new-exceptions/bspsupport/, new-exceptions/bspsupport/ppc_exc.S,
new-exceptions/bspsupport/ppc_exc_test.c,
new-exceptions/bspsupport/vectors.h,
new-exceptions/bspsupport/vectors_init.c,
new-exceptions/bspsupport/irq.c,
new-exceptions/bspsupport/ppc_exc_bspsupp.h,
new-exceptions/bspsupport/ppc_exc_hdl.c,
new-exceptions/bspsupport/ppc_exc_asm_macros.h,
new-exceptions/bspsupport/nested_irq_test.c:
New files. Added 'middleware' code for helping BSPs implement
exception and interrupt handling and implementing the 'new'
RTEMS IRQ API (which I personally dislike).
* new-exceptions/e500_raw_exc_init.c, new-exceptions/raw_exception.c,
shared/include/cpuIdent.c, shared/include/cpuIdent.h:
Added different kinds of 'bookE' to the ppc_cpu_is_bookE feature
check; unfortunately...
* ep1a/irq/irq.c, gen5200/irq/irq.c, gen83xx/irq/irq_init.c,
mbx8xx/irq/irq.c, mpc8260ads/irq/irq.c, mvme5500/irq/irq.c,
psim/irq/no_pic.c, score603e/irq/irq.c, shared/irq/irq_supp.h,
shared/irq/openpic_i8259_irq.c, virtex/irq/irq_init.c:
let C_dispatch_irq_handler() return zero to indicate to
low-level exception handling code that the exception
was handled (not used yet).
* shared/irq/irq_asm.S, shared/vectors/vectors.S:
Replaced use of hardcoded PPC_EXC_MSR_BITS by a
run-time method to determine these bits (use settings
effective before exception occurred).
Replaced use of hardcoded ASM_VECTORS_CRITICAL by
'bsp_raw_vector_is_405_critical' variable.
* new-exceptions/raw_exception.c, new-exceptions/raw_exception.h:
Removed all #ifdef <cpu_flavor>. All exception vectors are now
always defined.
Changed implementation of <cpu>_vector_is_valid() from 'case'
statements to table lookup.
Replaced 'ASM_VECTORS_CRITICAL' by a variable
'bsp_raw_vector_is_405_critical' which is set at run-time.
Removed PPC_MSR_EXC_BITS. The exception handling code
(libbsp/shared/vectors/vectors.S and ../irq/irq_asm.S) now
has a run-time check for these bits.
Both files are now free of #if <cpu_flavor> constructs.
* Makefile.am, configure.ac, preinstall.am,
new-exceptions/e500_raw_exc_init.c: Started adding
support for e500 CPU. Most stuff is borrowed from mpc6xx.
* rtems/powerpc/powerpc.h: added a #ifdef __ppc_generic
branch. The goal is eventually to make this the starting
point for cleanup (remove as many branches as possible;
replace by run-time tests if necessary).
* shared/irq/irq_supp.h: removed stray '*/'. Removed
inclusion of <stdlib.h> which is unnecessary and broke
if_dc in an obscure way (due to malloc/free redefinition
in the networking code).
* shared/irq/irq_asm.S, shared/vectors/vectors.S,
shared/vectors/vectors.h, shared/vectors/vectors_init.c:
Converted exception vector names to new ones
(qualified by <cpu_type> if non-std ppc exceptions).
* new-exceptions/raw_exception.c, new-exceptions/raw_exception.h:
Qualified all exception vector symbols that are only defined
#ifdef <cpu_flavor> with <cpu_flavor> in the symbol name.
If the special flavor __ppc_generic is effective the ALL
vector symbols are available and ppc_vector_is_valid() works
for all supported CPUs (run-time check).
This is work towards a #ifdef <cpu_flavor> free libcpu and
exception framework.
* bootcard.c: Move interrupt_stack_size field from CPU Table to
Configuration Table. Eliminate CPU Table from all ports. Delete
references to CPU Table in all forms.
* include/bsp.h: Move interrupt_stack_size field from CPU Table to
Configuration Table. Eliminate CPU Table from all ports. Delete
references to CPU Table in all forms.
* include/bsp.h, startup/bspstart.c: Move interrupt_stack_size field
from CPU Table to Configuration Table. Eliminate CPU Table from all
ports. Delete references to CPU Table in all forms.
* shared/startup/bspstart.c: Move interrupt_stack_size field from CPU
Table to Configuration Table. Eliminate CPU Table from all ports.
Delete references to CPU Table in all forms.
* startup/bspstart.c: Move interrupt_stack_size field from CPU Table to
Configuration Table. Eliminate CPU Table from all ports. Delete
references to CPU Table in all forms.
* Makefile.am, include/bsp.h: Move interrupt_stack_size field from CPU
Table to Configuration Table. Eliminate CPU Table from all ports.
Delete references to CPU Table in all forms.
* startup/bspstart.c, startup/bspstart.c.nocache: Move
interrupt_stack_size field from CPU Table to Configuration Table.
Eliminate CPU Table from all ports. Delete references to CPU Table in
all forms.
* Makefile.am, include/bsp.h, startup/bspstart.c: Move
interrupt_stack_size field from CPU Table to Configuration Table.
Eliminate CPU Table from all ports. Delete references to CPU Table in
all forms.
* console/console.c, include/bsp.h, startup/bspstart.c: Move
interrupt_stack_size field from CPU Table to Configuration Table.
Eliminate CPU Table from all ports. Delete references to CPU Table in
all forms.
* shared/bspstart.c: Move interrupt_stack_size field from CPU Table to
Configuration Table. Eliminate CPU Table from all ports. Delete
references to CPU Table in all forms.
* amba/amba.c, clock/ckinit.c, console/console.c, include/bsp.h,
startup/bspstart.c, timer/timer.c: Move interrupt_stack_size field
from CPU Table to Configuration Table. Eliminate CPU Table from all
ports. Delete references to CPU Table in all forms.
* Makefile.am, startup/bspstart.c: Move interrupt_stack_size field from
CPU Table to Configuration Table. Eliminate CPU Table from all ports.
Delete references to CPU Table in all forms.
* startup/bspstart.c, startup/cpu.c: Move interrupt_stack_size field
from CPU Table to Configuration Table. Eliminate CPU Table from all
ports. Delete references to CPU Table in all forms.