devLib2  2.11
mainpage.h
Go to the documentation of this file.
1 #ifndef MAINPAGE_H
2 #define MAINPAGE_H
3 address to populate slot member.
128 @li pci: Add function devPCIFindSpec() to search by text string.
129  Understands PCI bus address, slot number, and/or instance number
130 @li Add devPCIShowMatch() variant of devPCIShow() using devPCIFindSpec().
131 
132 @subsection ver27 2.7 (Jan. 2016)
133 
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.
143 @li vme: add vmewrite(), vmeirqattach(), and vmeirq() iocsh commands
144  for debugging/development with VME devices.
145 
146 @subsection ver26 2.6 (May 2015)
147 
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.
151 
152 Work by Andrew Johnson
153 
154 @li Import support for vxWorks 5.5 on m68k and powerpc from EPICS Base.
155 
156 Work by Till Straumann
157 
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)
162 
163 Work by Dirk Zimoch
164 
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.
172 
173 Work by Michael Davidsaver
174 
175 @li Add the pciconfread() iocsh function.
176 @li devLibPCIRegisterDriver() is now a macro wrapping devLibPCIRegisterDriver2()
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.
180 
181 
182 @subsection ver25 2.5 (May 2014)
183 
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)
189 
190 @subsection ver24 2.4 (Oct. 2012)
191 
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)
199  See documentation of devPCIToLocalAddr().
200 
201 @subsection ver23 2.3 (Apr. 2012)
202 
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
206 
207 @subsection ver22 2.2 (Sept. 2011)
208 
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.
215 
216 @subsection ver21 2.1 (Jan. 2011)
217 
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
223 
224 @subsection ver20 2.0 (Sept. 2010)
225 
226 @li Initial release.
227 
228 @author Michael Davidsaver <mdavidsaver@gmail.com>
229 @author Till Straumann <strauman@slac.stanford.edu>
230 @author Dirk Zimoch <dirk.zimoch@psi.ch>
231 
232 */
233 
234 #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