* vmeUniverse/README.porting, vmeUniverse/README.universe:
updated, added more information for BSP implementors.
* vmeUniverse/VMEDMA.h (added): VME DMA API definition.
* vmeUniverse/bspVmeDmaList.h (added), vmeUniverse/bspVmeDmaListP.h (added),
* vmeUniverse/bspVmeDmaList.c (added):
Driver-independent code for linked-list DMA (public + private headers,
implementation).
* vmeUniverse/vmeUniverseDMA.h (added), vmeUniverse/vmeTsi148DMA.h (added):
interface to new DMA features of drivers.
* vmeUniverse/vme_amd_defs.h: Added definition for data-width
hint bits (VME_MODE_DBWxx).
* vmeUniverse/vmeTsi148.c: added DMA support. Added support for
data-width hint/modifier bits.
* vmeUniverse/vmeUniverse.c, vmeUniverse/vmeUniverse.h:
Added support for data-width hint/modifier bits.
Added support for xxx_BLT, xxx_MBLT address modifiers.
Restrict DBW to 32 in non-MBLT modes (except single-beat;
a comment is in README.universe). Updated DMA support to
implement new VMEDMA.h API. Added support for non-incrementing
VME addresses. Restrict data width to 32 for single-beat AMs
when the universe would use MBLT for DMA.
* shared/vme/VMEConfig.h:
Added more comments about the semantics of the various
symbols BSPs should define in this file.
Removed declarations of BSP_VMEInit(), BSP_VMEIrqMgrInstall().
* shared/vme/vmeconfig.c: declare BSP_VMEInit(),
BSP_VMEIrqMgrInstall() here.
* Makefile.am, shared/vme/README,
* shared/vme/vme_universe_dma.c (added): Added glue code
implementing the VMEDMA.h API using the vmeUniverse driver.
* Makefile.am, preinstall.am,
* vme/vmeconfig.c (removed), vme/VMEConfig.h (added):
cleaned up vme support - use files from libbsp/powerpc/shared/vme
and define BSP specifica in VMEConfig.h.
Use VME DMA support implemented by vmeUniverse and
libbsp/powerpc/shared/vme/vme_universe_dma.c
* irq/irq.c, include/gen2.h:
removed _BSP_vme_bridge_irq variable and BSP_PIC_DO_EOI definition.
Support for VME IRQ software priorities was incomplete/incorrect
on this BSP.
Use VME DMA support implemented by vmeUniverse and
libbsp/powerpc/shared/vme/vme_universe_dma.c
Added explanation for use of BSP_PIC_DO_EOI by
BSP implementors who derive from this 'include/bsp.h'.
* vme/vmeconfig.c (removed), vme/VMEConfig.h (added):
cleaned up vme support - use files from libbsp/powerpc/shared/vme
and define BSP specifica in VMEConfig.h.
Use VME DMA support implemented by vmeUniverse and
libbsp/powerpc/shared/vme/vme_universe_dma.c
* vme/vmeconfig.c (removed), vme/VME.h (removed):
cleaned up vme support - use files from libbsp/powerpc/shared/vme
and define BSP specifica in VMEConfig.h.
Use VME DMA support implemented by vmeUniverse and
libbsp/powerpc/shared/vme/vme_universe_dma.c
* Makefile.am:
moved VME.h from libbsp/powerpc/shared/vme to
libbsp/shared/vmeUniverse; eventually, this (and other)
VME API headers should migrate to cpukit.
* Makefile.am:
moved VME.h from libbsp/powerpc/shared/vme to
libbsp/shared/vmeUniverse; eventually, this (and other)
VME API headers should migrate to cpukit.
the special handling of a 'FPGA interrupt' [this FPGA is *not*
present on the uC5282 module but is externally connected to
IRQ1 on Eric Norum's particular 'motherboard'] is only
activated when connecting to the special vectors > 192.
The change allows us ordinary users [:-)] to use IRQ1
normally, simply by connecting an ISR to vector 64+1...
Also, BSP_enable_irq_at_pic(), BSP_disable_irq_at_pic(),
BSP_irq_is_enabled_at_pic() were introduced (compat. with
some PPC BSPs).
* shared/vme/vmeconfig.c, shared/vme/vme_universe.c:
use symbolic flag instead of numerical value
(vmeUniverseInstallIrqMgrAlt()). Define __INSIDE_RTEMS_BSP__
before including <bsp/vmeUniverse.h>
flags for 2eSST and DBW16.
* vmeUniverse/vmeUniverse.h: Removed AM definitions and include vme_am_defs.h
instead. Declare new routine vmeUniverseMapCRG(). Export 'irq manager' API
only if __INSIDE_RTEMS_BSP__ defined. Renamed 'shared' argument to
vmeUniverseInstallIrqMgrAlt() to 'flags' since now more options are available.
Added new flag to install 'posted-write' workaround.
* vmeUniverse/vmeUniverse.c: Allow BSP to override BSP_PCI2LOCAL_ADDR()
macro. Data width of outbound port can now be restricted to 16-bit
(if new DBW16 flag set in address modifier). Added vmeUniverseMapCRG()
for mapping local registers onto VME. Interrupt manager now implements
a workaround (enabled at installation time) which flushes the write-fifo
after user ISR returns. This requires the universe's registers to be
accessible from VME (either CSR space or CRG mapped to A16/A24/A32),
though.
* vmeUniverse/vmeTsi148.h: vmeTsi148ClearVMEBusErrors() now returns
the fault address as a 32-bit address (not ulonglong anymore). The
driver only supports 32-bit addresses. Declare new routine vmeTsi148MapCRG().
Export 'irq manager' API only if __INSIDE_RTEMS_BSP__ defined.
Renamed 'shared' argument to vmeTsi148InstallIrqMgrAlt() to 'flags'
to allow more options to be supported. Added comments explaining the
'posted-write' workaround implemented by the interrupt manager.
* vmeUniverse/vmeTsi148.c: Clear 'SYSFAIL' during initialization.
Allow BSP to override BSP_PCI2LOCAL_ADDR() macro. Added support for
2eSST when configuring windows (untested - I have no 2eSST).
Added vmeTsi148MapCRG() for mapping local registers onto VME.
Implemented 'posted-write' workaround for interrupt manager
(consult source for details).
PR 1189/bsps
* console/outch.c: If you print a character with the code larger than
127 (extended ASCII) to the VGA console, then it blinks. The reason:
char == signed char, so such characters get represented by negative
numbers. The sign bit then goes to attribute byte, resulting in the
blinking.