devLib2  2.12
mainpage.h
Go to the documentation of this file.
1 #ifndef MAINPAGE_H
2 #define MAINPAGE_H
3 address to populate slot member.
129 @li pci: Add function devPCIFindSpec() to search by text string.
130  Understands PCI bus address, slot number, and/or instance number
131 @li Add devPCIShowMatch() variant of devPCIShow() using devPCIFindSpec().
132 
133 @subsection ver27 2.7 (Jan. 2016)
134 
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.
144 @li vme: add vmewrite(), vmeirqattach(), and vmeirq() iocsh commands
145  for debugging/development with VME devices.
146 
147 @subsection ver26 2.6 (May 2015)
148 
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.
152 
153 Work by Andrew Johnson
154 
155 @li Import support for vxWorks 5.5 on m68k and powerpc from EPICS Base.
156 
157 Work by Till Straumann
158 
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)
163 
164 Work by Dirk Zimoch
165 
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.
173 
174 Work by Michael Davidsaver
175 
176 @li Add the pciconfread() iocsh function.
177 @li devLibPCIRegisterDriver() is now a macro wrapping devLibPCIRegisterDriver2()
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.
181 
182 
183 @subsection ver25 2.5 (May 2014)
184 
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)
190 
191 @subsection ver24 2.4 (Oct. 2012)
192 
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)
200  See documentation of devPCIToLocalAddr().
201 
202 @subsection ver23 2.3 (Apr. 2012)
203 
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
207 
208 @subsection ver22 2.2 (Sept. 2011)
209 
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.
216 
217 @subsection ver21 2.1 (Jan. 2011)
218 
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
224 
225 @subsection ver20 2.0 (Sept. 2010)
226 
227 @li Initial release.
228 
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>
233 
234 */
235 
236 #endif // MAINPAGE_H
void pciconfread(int dmod, int offset, int count)
Definition: pcish.c:178
void vmeirqattach(int level, int vector, const char *itype)
Definition: vmesh.c:215
int devPCIEnableInterrupt(const epicsPCIDevice *dev)
Enable interrupts at the device.
Definition: devLibPCI.c:640
INLINE epicsUInt32 bswap32(epicsUInt32 value)
Definition: epicsMMIODef.h:102
void vmeread(int rawaddr, int amod, int dmod, int count)
Definition: vmesh.c:84
int devPCIDisableInterrupt(const epicsPCIDevice *dev)
Enable interrupts at the device.
Definition: devLibPCI.c:649
#define devLibPCIRegisterDriver(TPTR)
Definition: devLibPCIImpl.h:72
INLINE epicsUInt16 bswap16(epicsUInt16 value)
Definition: epicsMMIODef.h:94
int devPCIDebug
Definition: devLibPCI.c:48
void vmeirq(int level, int act)
Definition: vmesh.c:262
int devPCIToLocalAddr(const epicsPCIDevice *curdev, unsigned int bar, volatile void **ppLocalAddr, unsigned int opt)
Get pointer to PCI BAR.
Definition: devLibPCI.c:431
int devLibPCIRegisterDriver2(devLibPCI *drv, size_t drvsize)
Definition: devLibPCI.c:70
void devPCIShowMatch(int lvl, const char *spec, int vendor, int device)
Definition: devLibPCI.c:522
int devPCIFindSpec(const epicsPCIID *idlist, const char *spec, const epicsPCIDevice **found, unsigned int opt)
PCI bus search by specification string.
Definition: devLibPCI.c:267
void vmewrite(int rawaddr, int amod, int dmod, int rawvalue)
Definition: vmesh.c:143
void devPCIShow(int lvl, int vendor, int device, int exact)
Definition: devLibPCI.c:504
int devPCIBarLen(const epicsPCIDevice *curdev, unsigned int bar, epicsUInt32 *len)
Find the size of a BAR.
Definition: devLibPCI.c:449
void pciread(int dmod, int offset, int count)
Definition: pcish.c:143