IPAC Driver Release Notes
Andrew Johnson
This document describes the changes which have been made to my vxWorks/EPICS
IndustryPack driver as it has evolved since first release. The earliest
version appears at the bottom, with more recent releases above it.
Version 2.3
Added:
- Recognition of high-speed (32 MHz) IP modules in ipmCheck; these have
an ID prom that starts 'IPAH' rather than the usual 'IPAC'. Carrier drivers
that can change a slot's clock speed in software must scan the ID proms for
their slots at 8MHz and then switch any that can run at 32 MHz.
NB: I don't actually know of any carriers that can do this; the IPIC
chip on the MVME162/172 has an IP Clock Register, but this only controls cycle
synchronization logic - the IP clock rate is set using jumpers on the CPU
board (and appears to affect all the IP slots together).
- Added warning message to VIPC610 and VIPC616 drivers whenever a Level 7
interrupt is enabled, as the connected ISR should not call any vxWorks
routines. Usually it is a mistake to use this, but unfortunately the boards
are delivered with slot D IRQ0 wired for this level. Also put an explanatory
note in the carrier board documentation.
- Added a driver for the VIPC616-01 option, which isn't subject the the
problems in the previous bullet point.
- Brought the index.html file for the ipac module home page into the software
distribution and reorganized the links so they work even when viewed from the
a local <ipac>/html install directory.
- New 'R' configuration parameter to the ipMv162 carrier driver which gives
all slots a hardware reset pulse on startup. If used, this must be the first
character of the string.
Changed:
- Removed CANbus-specific comments from the IPAC Release Notes.
Version 2.2
Added:
- Two new commands ipac_statActive and ipac_statUnused for
irqCommand which a module or carrier driver can use to enable and disable LEDs
showing the activity status of a particular slot. Only the VIPC664 carrier
driver (not provided with IPAC) supports these at present, other drivers will
return the usual S_IPAC_notImplemented response.
Changed:
- Copyright and license terms. IPAC (and drvTip810) is now licensed under
the GNU Lesser General Public License (LGPL), which enables it to be used in
commercial software, although any binary distribution containing it or a
derivative of it must make the source code available under the LGPL terms.
- Various other small modifications to fix compiler warnings and such under
EPICS Release 3.13.2.
Version 2.1
Added:
- Jeff Hill's driver for the GreenSpring ATC40 ISAbus carrier board,
including the changes to the main drvIpac software and the other carrier
drivers which are necessary to support little-endian architectures. These
were:
- Make all accesses to the IP module registers & ID-Prom use short
(16-bit) read/writes, so the endian problem disappears. Adjust various
internal routines to allow for this.
- Provide a new function pointer (optional, may be NULL) in the carrier table
which is called by ipmIntConnect. Module drivers should use ipmIntConnect
instead of vxWorks' intConnect routine to attach their interrupt routine. This
makes it possible to use identical module driver code on both VME and ISA bus,
although the module driver may have to be modified as discussed above to
resolve the endian issue.
- Some printf()s in ipacAddCarrier so failures can be seen without
having to look at the return value.
- SRCS.c entries to Makefile.Vx so gnumake depends works.
Bug fixed:
- Finally tested the MVME162 carrier driver myself - this also works on the
MVME172. Changed the checking of m= addresses to use unsigned
arithmetic.
Version 2.0
The software is now restructured as an EPICS R3.13.1 <supporttop>
application. CANbus (drvTip810) and other drivers can be built in separate
application directories inside this <supporttop>.
Added:
- Peregrine McGehee's GreenSpring Octal Serial Driver from CFHT.
Bug fixed:
- Gcc compilation warnings attended to.
Version 1.1c
Final release from the RGO. CVS repository transferred to APS.
No changes to drvIpac
Version 1.1b
Added:
Version 1.1a
Bugs fixed:
- VIPC616 carrier driver address parameter handling fixed, changes courtesy
of Christoper Estes.
Version 1.1
Added:
- IPAC Prom structure declared volatile to prevent gcc optimiser from
generating long word accesses to it. Only affected some carrier boards.
- Separate support for both the GreenSpring VIPC610 and VIPC610-01 carrier
boards, which have different interrupt levels for the different slot
interrupts. From now on the correct carrier table vipc610 or
vipc610_01 should be used.
- Support for the the GreenSpring VIPC616 carrier board, table name
vipc616.
- HTML Documentation distributed in the release.
Version 1.0
First full release.