* irq/irq.h, irq/irq_init.c: Removed the definition
of ASM_IRQ_VECTOR_BASE; this symbol was only use to
initialize the irqBase member of the rtems_irq_global_settings
struct. However, irqBase is an rtems_irq_symbolic_name,
so using BSP_LOWEST_OFFSET is more appropriate.
* shared/irq/openpic_i8259_irq.c: New file.
* ChangeLog, Makefile.am, motorola_powerpc/ChangeLog,
motorola_powerpc/Makefile.am, shared/irq/irq.c, shared/irq/irq.h,
shared/irq/irq_asm.S, shared/irq/irq_init.c: Separated openpic/i8259
specifica from generic irq handling into openpic_i8259_irq.c; added
some compilation conditionals to help BSPs without ISA to omit ISA
interrupts and calling i8259 code.
* mvme5500/irq/irq.h, psim/irq/irq.h, shared/console/uart.c,
shared/irq/irq.h: Renamed BSP_ISA_UART_COMx_IRQ -> BSP_UART_COMx_IRQ
(uart driver is ISA independent).
Removed ugly #ifdef mvme2100. Added test for
BSP_UART_USE_SHARED_IRQS symbol which a BSP can define to request
that the serial interrupt be shared.
PR 405/bsps
* bootloader/pci.c: Added support for configuring devices for pci
busses > 0
* pci/pci.c, pci/pci.h: Added FixupPCI() to store vectors in the
INTERRUPT_LINE register of pci devices any # of hops away
from the host processor.
* motorola/motorola.c, motorola/motorola.h: Added interrupt
routing tables in support of FixupPCI. This is board-specific,
each board will have to supply information for FixupPCI() to do
anything for it.
* startup/bspstart.c: Extended bat2 to cover entire PCI address space.
* irq/irq.c, irq/irq.h: Added support for shared interrupts.
Existing single hander vectors are undisturbed, a new function
added to allow adding/removing handlers from a vector.
* bootloader/misc.c, console/Makefile.am, console/console.c,
console/consoleIo.h, console/inch.c, console/polled_io.c,
console/uart.c, console/uart.h, include/bsp.h, irq/Makefile.am,
irq/irq.c, irq/irq.h, irq/irq_init.c, openpic/openpic.c,
openpic/openpic.h, pci/Makefile.am, pci/pci.c, pci/pci.h,
residual/Makefile.am, start/start.S, startup/bspstart.c,
vectors/vectors.S, vectors/vectors.h, vectors/vectors_init.c:
Per PR216, "libbsp/powerpc/shared" BSP has been modified considerably
with the goal to make it more flexible and reusable by other
BSPs. The main strategies were:
- eliminate hardcoded base addresses; devices use offsets
and a BSP defined base address.
- separate functionality into different files (e.g. reboot from
inch.c to reboot.c) which can be overridden by a 'derived' BSP.
- separate initialization code into separate files (e.g. PCI
bridge detection/initialization was separated from the more
generic PCI access routines), also to make it easier for
'derived' BSPs to substitute their own initialization code.
There are also a couple of enhancements and fixes:
- IRQ handling code now has a hook for attaching a VME bridge.
- OpenPIC is now explicitely initialized (polarities, senses).
Eliminated the implicit assumption on the presence of an ISA PIC.
- UART and console driver now supports more than 1 port. The current
maximum of 2 can easily be extended by enlarging a table (it
would even be easier if the ISR API was not broken by design).
- fixed polled_io.c so it correctly supports console on COM2
- fixed TLB invalidation code (start.S).
- exception handler prints a stack backtrace.
- added BSP_pciFindDevice() to scan the pci bus for a particular
vendor/device/instance.