3 address to populate slot member.
129 Understands PCI bus address, slot number, and/or instance number
132 @subsection ver27 2.7 (Jan. 2016)
134 @li configure: optionally include \$(TOP)/configure/RELEASE.local and \$(TOP)/../RELEASE.local.
135 \$(EPICS_BASE) is no longer defined by default in configure/RELEASE and must
136 be explicitly set in one of the possible RELEASE* files.
137 @li Fix compile failure on vxWorks (Eric Bjorklund)
138 @li Add missing extern "C" in epicsMMIO.h for vxWorks (Eric Bjorklund)
139 @li In epicsMMIODef.h replace 'inline' with 'static inline' for C compatibility.
140 @li RTEMS: handle BSPs with offset PCI addresses
141 @li pci/linux:
devPCIDebug>1 enables more debug output when searching/matching PCI devices.
142 @li pci/linux: fix error preventing use of uio devices other than uio0.
144 for debugging/development with VME devices.
146 @subsection ver26 2.6 (May 2015)
148 @li VCS repository moved to github.com
149 @li Increment API version to 1.2 (was 1.0)
150 @li epicsMMIO.h included in EPICS Base 3.15.1, not installed by this module.
152 Work by Andrew Johnson
154 @li Import support for vxWorks 5.5 on m68k and powerpc from EPICS Base.
156 Work by Till Straumann
158 @li Add PCI Config space access functions devPCIConfigRead
##() and devPCIConfigWrite##() 160 - Linux: invoke the UIO irqcontrol callback function with a 1 or 0.
161 - vxWorks: call intEnable or intDisable (enabled by default). (Dirk Zimoch)
165 @li Rework of the Linux PCI bus scan to support PCI domains.
166 Previously domain 0 was used implicitly.
167 @li Rework of the vxWorks/RTEMS PCI bus scan to allow wildcards in device search.
168 This allows
devPCIShow for all PCI devices like in Linux.
169 @li Fixes for 64 bit BARs.
170 @li vxWorks: use BAR address directly if sysBusToLocalAdrs does not support PCI.
171 @li Changes in
devPCIShow to get nicer output.
173 Work by Michael Davidsaver
177 which performs a consistency check on the size of the
devLibPCI structure.
178 @li provide
bswap16() and
bswap32() for RTEMS PPC targets. Previously omitted.
179 @li Change name format of Linux user "ISR" thread to include PCI BDF.
182 @subsection ver25 2.5 (May 2014)
184 @li Linux: possible
string corruption in vallocPrintf()
185 Found by Till Straumann
186 @li vxWorks: lookup symbols including sysBusToLocalAdrs at runtime.
187 Work by Eric and Dirk Zimoch
188 @li RTEMS: Select no-op MMIO implementation for m68k (no special handling required)
190 @subsection ver24 2.4 (Oct. 2012)
192 @li Remove C++ style comments from epicsMMIODef.h and devcsr.h
193 @li Fix Issue preventing Custom PCI bus implementation. (Found by Dan Eichel)
194 @li Linux "ISR" thread stack size not correct (Fixed by Till Straumann)
195 @li Linux: Previous versions expected Linux kernel modules to leave gaps for un-mappable PCI BARs (I/O Ports).
196 However, most existing kernel modules don't do this. Add a flag to
devPCIToLocalAddr() to specify
197 how a device's kernel module does mapping. The default is to map as in previous versions.
198 (New behavior by Till Straumann)
201 @subsection ver23 2.3 (Apr. 2012)
203 @li Include proper headers to enable memory barriers for vxWorks >= 6.6
204 @li Fallback to noop when vxWorks memory barriers are not available
205 @li Fix incorrect return code when connecting pci interrupts on vxWorks
207 @subsection ver22 2.2 (Sept. 2011)
209 @li linux: follow changes to /sys (needed for kernel >2.6.26)
210 @li pci: IOC shell functions added:
pciread()
211 @li pci: vxworks translate PCI addresses
212 @li Build on vxWorks 6.8 (Thanks to Andrew Johnson)
213 @li pci: Make operations reentrant on RTEMS and vxWorks (previously was not oops.)
214 @li pci: Fix bug with
devPCIBarLen on RTEMS and vxWorks.
216 @subsection ver21 2.1 (Jan. 2011)
218 @li Fix build issue with 3.14.12 with RTEMS pc386 (found by Jim Chen from Hytec)
219 @li Add notification of missed PCI interrupt events on Linux
220 @li Additional arguement 'count' for
vmeread() to show blocks of registers
221 @li Add section to PCI Usage on x86 Port I/O
222 @li Add section to PCI Access in Linux concerning hardware requirements
224 @subsection ver20 2.0 (Sept. 2010)
228 @author Michael Davidsaver <mdavidsaver@gmail.com>
229 @author Till Straumann <strauman@slac.stanford.edu>
230 @author Dirk Zimoch <dirk.zimoch@psi.ch>
void pciconfread(int dmod, int offset, int count)
void vmeirqattach(int level, int vector, const char *itype)
int devPCIEnableInterrupt(const epicsPCIDevice *dev)
Enable interrupts at the device.
INLINE epicsUInt32 bswap32(epicsUInt32 value)
void vmeread(int rawaddr, int amod, int dmod, int count)
int devPCIDisableInterrupt(const epicsPCIDevice *dev)
Enable interrupts at the device.
#define devLibPCIRegisterDriver(TPTR)
INLINE epicsUInt16 bswap16(epicsUInt16 value)
void vmeirq(int level, int act)
int devPCIToLocalAddr(const epicsPCIDevice *curdev, unsigned int bar, volatile void **ppLocalAddr, unsigned int opt)
Get pointer to PCI BAR.
int devLibPCIRegisterDriver2(devLibPCI *drv, size_t drvsize)
void devPCIShowMatch(int lvl, const char *spec, int vendor, int device)
int devPCIFindSpec(const epicsPCIID *idlist, const char *spec, const epicsPCIDevice **found, unsigned int opt)
PCI bus search by specification string.
void vmewrite(int rawaddr, int amod, int dmod, int rawvalue)
void devPCIShow(int lvl, int vendor, int device, int exact)
int devPCIBarLen(const epicsPCIDevice *curdev, unsigned int bar, epicsUInt32 *len)
Find the size of a BAR.
void pciread(int dmod, int offset, int count)