3 address to populate slot member.
130 Understands PCI bus address, slot number, and/or instance number
133 @subsection ver27 2.7 (Jan. 2016)
135 @li configure: optionally include \$(TOP)/configure/RELEASE.local and \$(TOP)/../RELEASE.local.
136 \$(EPICS_BASE) is no longer defined by default in configure/RELEASE and must
137 be explicitly set in one of the possible RELEASE* files.
138 @li Fix compile failure on vxWorks (Eric Bjorklund)
139 @li Add missing extern "C" in epicsMMIO.h for vxWorks (Eric Bjorklund)
140 @li In epicsMMIODef.h replace 'inline' with 'static inline' for C compatibility.
141 @li RTEMS: handle BSPs with offset PCI addresses
142 @li pci/linux:
devPCIDebug>1 enables more debug output when searching/matching PCI devices.
143 @li pci/linux: fix error preventing use of uio devices other than uio0.
145 for debugging/development with VME devices.
147 @subsection ver26 2.6 (May 2015)
149 @li VCS repository moved to github.com
150 @li Increment API version to 1.2 (was 1.0)
151 @li epicsMMIO.h included in EPICS Base 3.15.1, not installed by this module.
153 Work by Andrew Johnson
155 @li Import support for vxWorks 5.5 on m68k and powerpc from EPICS Base.
157 Work by Till Straumann
159 @li Add PCI Config space access functions devPCIConfigRead
##() and devPCIConfigWrite##() 161 - Linux: invoke the UIO irqcontrol callback function with a 1 or 0.
162 - vxWorks: call intEnable or intDisable (enabled by default). (Dirk Zimoch)
166 @li Rework of the Linux PCI bus scan to support PCI domains.
167 Previously domain 0 was used implicitly.
168 @li Rework of the vxWorks/RTEMS PCI bus scan to allow wildcards in device search.
169 This allows
devPCIShow for all PCI devices like in Linux.
170 @li Fixes for 64 bit BARs.
171 @li vxWorks: use BAR address directly if sysBusToLocalAdrs does not support PCI.
172 @li Changes in
devPCIShow to get nicer output.
174 Work by Michael Davidsaver
178 which performs a consistency check on the size of the
devLibPCI structure.
179 @li provide
bswap16() and
bswap32() for RTEMS PPC targets. Previously omitted.
180 @li Change name format of Linux user "ISR" thread to include PCI BDF.
183 @subsection ver25 2.5 (May 2014)
185 @li Linux: possible
string corruption in vallocPrintf()
186 Found by Till Straumann
187 @li vxWorks: lookup symbols including sysBusToLocalAdrs at runtime.
188 Work by Eric and Dirk Zimoch
189 @li RTEMS: Select no-op MMIO implementation for m68k (no special handling required)
191 @subsection ver24 2.4 (Oct. 2012)
193 @li Remove C++ style comments from epicsMMIODef.h and devcsr.h
194 @li Fix Issue preventing Custom PCI bus implementation. (Found by Dan Eichel)
195 @li Linux "ISR" thread stack size not correct (Fixed by Till Straumann)
196 @li Linux: Previous versions expected Linux kernel modules to leave gaps for un-mappable PCI BARs (I/O Ports).
197 However, most existing kernel modules don't do this. Add a flag to
devPCIToLocalAddr() to specify
198 how a device's kernel module does mapping. The default is to map as in previous versions.
199 (New behavior by Till Straumann)
202 @subsection ver23 2.3 (Apr. 2012)
204 @li Include proper headers to enable memory barriers for vxWorks >= 6.6
205 @li Fallback to noop when vxWorks memory barriers are not available
206 @li Fix incorrect return code when connecting pci interrupts on vxWorks
208 @subsection ver22 2.2 (Sept. 2011)
210 @li linux: follow changes to /sys (needed for kernel >2.6.26)
211 @li pci: IOC shell functions added:
pciread()
212 @li pci: vxworks translate PCI addresses
213 @li Build on vxWorks 6.8 (Thanks to Andrew Johnson)
214 @li pci: Make operations reentrant on RTEMS and vxWorks (previously was not oops.)
215 @li pci: Fix bug with
devPCIBarLen on RTEMS and vxWorks.
217 @subsection ver21 2.1 (Jan. 2011)
219 @li Fix build issue with 3.14.12 with RTEMS pc386 (found by Jim Chen from Hytec)
220 @li Add notification of missed PCI interrupt events on Linux
221 @li Additional arguement 'count' for
vmeread() to show blocks of registers
222 @li Add section to PCI Usage on x86 Port I/O
223 @li Add section to PCI Access in Linux concerning hardware requirements
225 @subsection ver20 2.0 (Sept. 2010)
229 @author Michael Davidsaver <mdavidsaver@gmail.com>
230 @author Till Straumann <strauman@slac.stanford.edu>
231 @author Dirk Zimoch <dirk.zimoch@psi.ch>
232 @author Gabriel Fedel <gabriel.fedel@ess.eu>
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)