13Z014-90 - Linux device driver (MEN) for PCI-to-VME bridge on A12, A13, A14, A15, A17, A19, A20, A21B/A21C and B11
Linux device driver (MEN) for PCI-to-VME bridge on A12, A13, A14, A15, A17, A19, A20, A21B/A21C and B11
Download 13z014-90_02_11.zipiVME4LX Driver for PCI-to-VME bridge on A12, A13, A14, A15, A17, A19, A20 and B11 -----[ Release-2.11 ]-----
[ 2009-07-09 16:10:24 by rt ]
R: 1.) All: Large zero-copy DMAs (>64k at PLDZ002; >408k at TSI148)
read/write wrong data.
2.) All: "Kernel access of bad area" may occur if VME4L_Read/Write() is
used with size>0x80000.
3.) All: System may freeze if kernel is compiled with CONFIG_SMP set.
4.) All: Not compilable with kernel 2.5.3..2.6.9 or >2.6.21.
5.) All: Example tool for system controller functions is missing in
MDIS wizard.
6.) TSI148: Access to slave window register space is not working anymore
if another slave window is requested.
7.) TSI148: VME system reset not working at A19/A20.
8.a) TSI148: 8/16 bit RMW cycles not working.
b) TSI148: RMW - Values read are swapped.
9.) TSI148: Make driver more save against race conditions.
10.) TSI148: Not all memory resources are freed if module is unloaded.
11.) TSI148: Support for last address in A64 space.
12.) TSI148: Adjust default minimal window size for outbound windows.
13.) TSI148: VME4L_Map() does not support addresses > 0xFFFFFFFF
M: 1.) Changed vmeAddr parameter to pointer to vmeAddr in dmaSetup().
2.) Determination of useSize in vme4l_make_ioremap_region() fixed.
3.) Dead lock in vme4l_discard_adrswin removed.
4.a) VME4L_REMAP macro changed.
b) Switch for module_param changed.
c) Switch for send_sig changed.
d) Add switch for pci_module_init.
5.) VME4L_CTRL added to 13z01490.xml.
6.) Added inUse parameter to VME4L_RESRC.
7.) A19/A20 do not reset themselfes if VME reset is activated, so we
have to release VME reset after >200 ms.
8.a) Shift RMW mask depending on access width.
b) Swap values read.
9.) Some small changes to spin locks (disable IRQs more often...).
10.) Rename vmeOut to vmeIn for freeing inbound windows resources.
11.) Changed maxSize to spcEnd in VME4L_SPACE_ENT.
12.) Reduce size for A32/D32 and A64/D32 from 256 MB to 128 MB.
13.) Note added to ducumentation.
-----[ Beta-2.10 ]-----
[ 2009-06-03 20:14:18 by rt ]
R: 1.) Support for TSI148 increased:
1.a) Example program for TSI148 location monitor missing.
1.b) TSI148 needs physical Address to perform RMW cycle
1.c) Make timing/arbitration adjustable.
1.d) Inbound window for TSI148 register access missing.
1.e) No DMA support.
1.f) Incomplete bus error support.
1.g) No Requester mode support.
1.h) No RMW support.
1.i) No mailbox support.
1.j) No location monitor support.
1.k) Address violation if an open inbound window is set-up with same
size but different VME addr.
2.) Not compilable with kernel > 2.6.19
3.) Example programs do not support VME addresses > 0xFFFFFFFF
4.) Some example programs do not work with newer kernels.
M: 1.a) VME4L_TSI148_LOCMON added.
1.b) physAddr parameter added to rmwCycle()
1.c) TSI148_VMCTRL, TSI148_VCTRL, TSI148_BLT_DCTL, TSI148_VMEFL
and TSI148_PCIXCAP added.
1.d) TSI148_SLVX... defines added.
1.e) Tsi148_DmaSetup, Tsi148_DmaStart, Tsi148_DmaStop, Tsi148_DmaStatus
implemented.
1.f) Tsi148_BusErrGet implemented.
1.g) Tsi148_RequesterModeGet and Tsi148_RequesterModeSet implemented.
1.h) Tsi148_RmwCycle implemented.
1.i) Tsi148_MboxRead and Tsi148_MboxWrite implemented.
1.j) Tsi148_LocMonRegRead and Tsi148_LocMonRegWrite implemented.
1.k) Use old physical address in this case.
2.) regs parameter removed from PldZ002Irq for kernel > 2.6.19
3.) Use strtoull for VME address.
4.) Use SIGRTMIN to determine signal no.
-----[ Beta-2.9 ]-----
[ 2009-04-30 22:33:48 by rt ]
R: 1) New VME boards A17, A19 and A20.
2) Support for kernel versions > 2.6.18.
3) Wrong debug messages.
M: 1a) Add support for Tundra TSI148 VME bridge.
b) VME4L_M99IRQ_TSI148 example added.
c) New address spaces added.
d) SMP support fixed.
e) Enhanced example tools (support for A203N...).
2a) Removed parameter from IRQ handler.
b) Fixed permissions parameter at module_param call.
c) AUTOCONF_INCLUDED switch added.
d) pci_module_init renamed.
3) Debug messages reformated, arguments added/removed.
-----[ Release-2.2 ]-----
[ 2004-10-27 13:17:55 by kp ]
adapted to A13/A15 PLDZ002 Rev 18 (decimal).
Support bus master DMA into main memory.
-----[ Release-2.2-Alpha ]-----
[ 2004-07-27 08:06:49 by kp ]
Alpha version introducing support for
- mailboxes
- location monitor
- slave windows
- bus master DMA (if PLD supports it)
- Linux 2.6 kernels
-----[ Release-2.1 ]-----
[ 2004-06-09 11:01:50 by kp ]
Added packagedesc file (for mdis wizard)
small changes in pldz002.h
INSTALL_VME4L.txt:
updated for use with mdiswiz and MDIS system package 3.0
-----[ Release-2.0 ]-----
[ 2003-12-16 12:23:05 by kp ]
Completely rewritten to support new VME PLDZ002 (A13/A15).
New userland API.
Still supports old VME4L API.
-----[ Revision 1.4 ]-----
[ 2003-09-18 16:33:35 by UFranke ]
- A32/D32 support
-----[ Revision 1.3 ]-----
[ 2003-05-12 09:09:05 by UFranke ]
bugfix
- compiler error with enabled CONFIG_DEVFS_FS
-----[ Revision 1.2 ]-----
[ 2002-08-14 09:48:00 by UFranke ]
optimization for VME4L_IO_BUS_PROBE:
- replace read/modify/write by vmeMstrShadow
- if define VME4L_MAP_VME_SPACE_AT_INIT
bugfix:
- replaced write/read b/w() by corresponding __raw_ routines
- ioctl VME4L_IO_BUS_PROBE, wrong addresses for word access
-----[ Revision 1.1 ]-----
[ 2002-07-19 12:15:35 by UFranke ]
Initial Revision
Download 13z014-90_02_13.zipiVME4LX Driver for PCI-to-VME bridge on A12, A13, A14, A15, A17, A19, A20 and B11 -----[ Release-2.13 ]-----
[ 2010-10-22 14:45:52 by rt ]
R: 1) DMA may not work if user space buffer is in highmem (check
/proc/meminfo for HighTotal>0).
2) After unloading the VME4L module a subsequent modprobe may fail.
3) Cosmetics.
4) Not compilable for kernel version > 2.6.26.
5) DMA mode is not supported by Non-BLT spaces.
M: 1) Replaced page_address()/virt_to_bus().
2) Removed
3) Some register debug prints were swapped at little endian machines.
4) Support new location of semaphore.h.
5) Added note to documentation.
-----[ Release-2.12 ]-----
[ 2009-09-25 14:42:29 by CRuff ]
R: MDIS5 for linux release
M: a) fix compiler warnings on kernel 2.6.28
b) replace deprecated function cli()
-----[ Release-2.11 ]-----
[ 2009-07-09 16:10:24 by rt ]
R: 1.) All: Large zero-copy DMAs (>64k at PLDZ002; >408k at TSI148)
read/write wrong data.
2.) All: "Kernel access of bad area" may occur if VME4L_Read/Write() is
used with size>0x80000.
3.) All: System may freeze if kernel is compiled with CONFIG_SMP set.
4.) All: Not compilable with kernel 2.5.3..2.6.9 or >2.6.21.
5.) All: Example tool for system controller functions is missing in
MDIS wizard.
6.) TSI148: Access to slave window register space is not working anymore
if another slave window is requested.
7.) TSI148: VME system reset not working at A19/A20.
8.a) TSI148: 8/16 bit RMW cycles not working.
b) TSI148: RMW - Values read are swapped.
9.) TSI148: Make driver more save against race conditions.
10.) TSI148: Not all memory resources are freed if module is unloaded.
11.) TSI148: Support for last address in A64 space.
12.) TSI148: Adjust default minimal window size for outbound windows.
13.) TSI148: VME4L_Map() does not support addresses > 0xFFFFFFFF
M: 1.) Changed vmeAddr parameter to pointer to vmeAddr in dmaSetup().
2.) Determination of useSize in vme4l_make_ioremap_region() fixed.
3.) Dead lock in vme4l_discard_adrswin removed.
4.a) VME4L_REMAP macro changed.
b) Switch for module_param changed.
c) Switch for send_sig changed.
d) Add switch for pci_module_init.
5.) VME4L_CTRL added to 13z01490.xml.
6.) Added inUse parameter to VME4L_RESRC.
7.) A19/A20 do not reset themselfes if VME reset is activated, so we
have to release VME reset after >200 ms.
8.a) Shift RMW mask depending on access width.
b) Swap values read.
9.) Some small changes to spin locks (disable IRQs more often...).
10.) Rename vmeOut to vmeIn for freeing inbound windows resources.
11.) Changed maxSize to spcEnd in VME4L_SPACE_ENT.
12.) Reduce size for A32/D32 and A64/D32 from 256 MB to 128 MB.
13.) Note added to ducumentation.
-----[ 2.10 ]-----
[ 2009-06-03 20:14:18 by rt ]
d
R: 1.) Support for TSI148 increased:
1.a) Example program for TSI148 location monitor missing.
1.b) TSI148 needs physical Address to perform RMW cycle
1.c) Make timing/arbitration adjustable.
1.d) Inbound window for TSI148 register access missing.
1.e) No DMA support.
1.f) Incomplete bus error support.
1.g) No Requester mode support.
1.h) No RMW support.
1.i) No mailbox support.
1.j) No location monitor support.
1.k) Address violation if an open inbound window is set-up with same
size but different VME addr.
2.) Not compilable with kernel > 2.6.19
3.) Example programs do not support VME addresses > 0xFFFFFFFF
4.) Some example programs do not work with newer kernels.
M: 1.a) VME4L_TSI148_LOCMON added.
1.b) physAddr parameter added to rmwCycle()
1.c) TSI148_VMCTRL, TSI148_VCTRL, TSI148_BLT_DCTL, TSI148_VMEFL
and TSI148_PCIXCAP added.
1.d) TSI148_SLVX... defines added.
1.e) Tsi148_DmaSetup, Tsi148_DmaStart, Tsi148_DmaStop, Tsi148_DmaStatus
implemented.
1.f) Tsi148_BusErrGet implemented.
1.g) Tsi148_RequesterModeGet and Tsi148_RequesterModeSet implemented.
1.h) Tsi148_RmwCycle implemented.
1.i) Tsi148_MboxRead and Tsi148_MboxWrite implemented.
1.j) Tsi148_LocMonRegRead and Tsi148_LocMonRegWrite implemented.
1.k) Use old physical address in this case.
2.) regs parameter removed from PldZ002Irq for kernel > 2.6.19
3.) Use strtoull for VME address.
4.) Use SIGRTMIN to determine signal no.
-----[ Release-2.9 ]-----
[ 2009-04-30 22:33:48 by rt ]
R: 1) New VME boards A17, A19 and A20.
2) Support for kernel versions > 2.6.18.
3) Wrong debug messages.
M: 1a) Add support for Tundra TSI148 VME bridge.
b) VME4L_M99IRQ_TSI148 example added.
c) New address spaces added.
d) SMP support fixed.
e) Enhanced example tools (support for A203N...).
2a) Removed parameter from IRQ handler.
b) Fixed permissions parameter at module_param call.
c) AUTOCONF_INCLUDED switch added.
d) pci_module_init renamed.
3) Debug messages reformated, arguments added/removed.
-----[ Release-2.8 ]-----
[ 2007-12-10 12:09:03 by ts ]
*** CHANGED FILES ***
vme4l-core.h
define VERSION_CODE_NEW_IRQFLAGS added for new IRQ handler Flags
vme4l-pldz002.c
use new Irq handler Flags (IRQF_xxx) from 2.6.20 on
-----[ Release-2.7 ]-----
[ 2007-05-11 15:39:17 by ts ]
*** CHANGED FILES ***
pldz002.h
PLDZ002_MAILBOX(mbx) macro fixed
vme4l-core.c
Bugfix: Make devfs functions usage depending on CONFIG_DEVFS_FS
vme4l-core.h
Bugfix: Include <linux/devfs_fs_kernel.h> only when CONFIG_DEVFS_FS is set
-----[ Release-2.6 ]-----
[ 2007-03-28 16:58:41 by ts ]
vme4l-core.c
added vme4l_send_sig() to avoid sending to nonexistent tasks
-----[ Release-2.5 ]-----
[ 2006-12-15 14:35:57 by ts ]
*** CHANGED FILES ***
File /_CVS_/COM/INCLUDE/pldz002.h RCS 2.10 -> RCS 2.13
added
+ SLV32 defines
added
+ SLV32 defines
added defines
+ PLDZ002_SLV24_SIZE_XXXX
File /_CVS_/COM/PACKAGE_DESC/13z01490.xml RCS 1.7 -> RCS 1.8
new Revision 2.5
File /_CVS_/LINUX/DRIVERS/VME4LX/DRIVER_K24/vme4l-core.c RCS 1.5 -> RCS 1.7
adapted for either classic RTAI or Xenomai usage
removed remap_page_range()
remap_page_range is removed in 2.6.11 and up
-----[ Release-2.4 ]-----
[ 2005-08-11 17:13:06 by ts ]
*** CHANGED FILES ***
File /_CVS_/LINUX/DRIVERS/VME4LX/DRIVER_K24/vme4l-core.h RCS 1.5 -> RCS 1.6
define CONFIG_MEN_VME_RTAI_KERNELIF if (MDIS_RTAI_SUPPORT &&
CONFIG_MEN_VME_KERNELIF) defined
File /_CVS_/LINUX/INCLUDE/NATIVE/MEN/men_vme_kernelif.h RCS 1.4 -> RCS 1.5
leave declarations for vme_rt_xxx inside unconditional
(AUTOCI) Checkin due to new revision Release-2.4 of fileset ART/13Z014-90/13Z014-90
-----[ Release-2.3 ]-----
[ 2005-01-31 16:18:05 by ts ]
*** CHANGED FILES ***
File /_CVS_/COM/PACKAGE_DESC/13z01490.xml RCS 1.5 -> RCS 1.6
new Revision 2.3 (MDIS RTAI support)
File /_CVS_/LINUX/DRIVERS/VME4LX/DRIVER_K24/INSTALL_VME4L.txt RCS 1.4 -> RCS 1.5
the text file is now only reference to the PDF
File /_CVS_/LINUX/DRIVERS/VME4LX/DRIVER_K24/vme4l-core.c RCS 1.2 -> RCS 1.5
corrected DEVFS registering bug under Kernel 2.6
several bugs corrected, RTAI IRQs are processed properly now.
added VME RTAI support
File /_CVS_/LINUX/DRIVERS/VME4LX/DRIVER_K24/vme4l-core.h RCS 1.3 -> RCS 1.5
reordered some includes from RTAI
added VME RTAI support
File /_CVS_/LINUX/DRIVERS/VME4LX/DRIVER_K24/vme4l-pldz002.c RCS 1.5 -> RCS 1.7
Name of called IRQ sharing functions changed
added VME RTAI support
File /_CVS_/LINUX/INCLUDE/NATIVE/MEN/men_vme_kernelif.h RCS 1.2 -> RCS 1.4
Changed parameter type of passed handler
changes for VME RTAI support
-----[ Release-2.2 ]-----
[ 2004-10-27 13:17:55 by kp ]
adapted to A13/A15 PLDZ002 Rev 18 (decimal).
Support bus master DMA into main memory.
-----[ Release-2.2-Alpha ]-----
[ 2004-07-27 08:06:49 by kp ]
Alpha version introducing support for
- mailboxes
- location monitor
- slave windows
- bus master DMA (if PLD supports it)
- Linux 2.6 kernels
-----[ Release-2.1 ]-----
[ 2004-06-09 11:01:50 by kp ]
Added packagedesc file (for mdis wizard)
small changes in pldz002.h
INSTALL_VME4L.txt:
updated for use with mdiswiz and MDIS system package 3.0
-----[ Release-2.0 ]-----
[ 2003-12-16 12:23:05 by kp ]
Completely rewritten to support new VME PLDZ002 (A13/A15).
New userland API.
Still supports old VME4L API.
-----[ Revision 1.4 ]-----
[ 2003-09-18 16:33:35 by UFranke ]
- A32/D32 support
-----[ Revision 1.3 ]-----
[ 2003-05-12 09:09:05 by UFranke ]
bugfix
- compiler error with enabled CONFIG_DEVFS_FS
-----[ Revision 1.2 ]-----
[ 2002-08-14 09:48:00 by UFranke ]
optimization for VME4L_IO_BUS_PROBE:
- replace read/modify/write by vmeMstrShadow
- if define VME4L_MAP_VME_SPACE_AT_INIT
bugfix:
- replaced write/read b/w() by corresponding __raw_ routines
- ioctl VME4L_IO_BUS_PROBE, wrong addresses for word access
-----[ Revision 1.1 ]-----
[ 2002-07-19 12:15:35 by UFranke ]
Initial Revision
Licensing Information
[ 2009-07-09 16:10:24 by rt ]
R: 1.) All: Large zero-copy DMAs (>64k at PLDZ002; >408k at TSI148)
read/write wrong data.
2.) All: "Kernel access of bad area" may occur if VME4L_Read/Write() is
used with size>0x80000.
3.) All: System may freeze if kernel is compiled with CONFIG_SMP set.
4.) All: Not compilable with kernel 2.5.3..2.6.9 or >2.6.21.
5.) All: Example tool for system controller functions is missing in
MDIS wizard.
6.) TSI148: Access to slave window register space is not working anymore
if another slave window is requested.
7.) TSI148: VME system reset not working at A19/A20.
8.a) TSI148: 8/16 bit RMW cycles not working.
b) TSI148: RMW - Values read are swapped.
9.) TSI148: Make driver more save against race conditions.
10.) TSI148: Not all memory resources are freed if module is unloaded.
11.) TSI148: Support for last address in A64 space.
12.) TSI148: Adjust default minimal window size for outbound windows.
13.) TSI148: VME4L_Map() does not support addresses > 0xFFFFFFFF
M: 1.) Changed vmeAddr parameter to pointer to vmeAddr in dmaSetup().
2.) Determination of useSize in vme4l_make_ioremap_region() fixed.
3.) Dead lock in vme4l_discard_adrswin removed.
4.a) VME4L_REMAP macro changed.
b) Switch for module_param changed.
c) Switch for send_sig changed.
d) Add switch for pci_module_init.
5.) VME4L_CTRL added to 13z01490.xml.
6.) Added inUse parameter to VME4L_RESRC.
7.) A19/A20 do not reset themselfes if VME reset is activated, so we
have to release VME reset after >200 ms.
8.a) Shift RMW mask depending on access width.
b) Swap values read.
9.) Some small changes to spin locks (disable IRQs more often...).
10.) Rename vmeOut to vmeIn for freeing inbound windows resources.
11.) Changed maxSize to spcEnd in VME4L_SPACE_ENT.
12.) Reduce size for A32/D32 and A64/D32 from 256 MB to 128 MB.
13.) Note added to ducumentation.
-----[ Beta-2.10 ]-----
[ 2009-06-03 20:14:18 by rt ]
R: 1.) Support for TSI148 increased:
1.a) Example program for TSI148 location monitor missing.
1.b) TSI148 needs physical Address to perform RMW cycle
1.c) Make timing/arbitration adjustable.
1.d) Inbound window for TSI148 register access missing.
1.e) No DMA support.
1.f) Incomplete bus error support.
1.g) No Requester mode support.
1.h) No RMW support.
1.i) No mailbox support.
1.j) No location monitor support.
1.k) Address violation if an open inbound window is set-up with same
size but different VME addr.
2.) Not compilable with kernel > 2.6.19
3.) Example programs do not support VME addresses > 0xFFFFFFFF
4.) Some example programs do not work with newer kernels.
M: 1.a) VME4L_TSI148_LOCMON added.
1.b) physAddr parameter added to rmwCycle()
1.c) TSI148_VMCTRL, TSI148_VCTRL, TSI148_BLT_DCTL, TSI148_VMEFL
and TSI148_PCIXCAP added.
1.d) TSI148_SLVX... defines added.
1.e) Tsi148_DmaSetup, Tsi148_DmaStart, Tsi148_DmaStop, Tsi148_DmaStatus
implemented.
1.f) Tsi148_BusErrGet implemented.
1.g) Tsi148_RequesterModeGet and Tsi148_RequesterModeSet implemented.
1.h) Tsi148_RmwCycle implemented.
1.i) Tsi148_MboxRead and Tsi148_MboxWrite implemented.
1.j) Tsi148_LocMonRegRead and Tsi148_LocMonRegWrite implemented.
1.k) Use old physical address in this case.
2.) regs parameter removed from PldZ002Irq for kernel > 2.6.19
3.) Use strtoull for VME address.
4.) Use SIGRTMIN to determine signal no.
-----[ Beta-2.9 ]-----
[ 2009-04-30 22:33:48 by rt ]
R: 1) New VME boards A17, A19 and A20.
2) Support for kernel versions > 2.6.18.
3) Wrong debug messages.
M: 1a) Add support for Tundra TSI148 VME bridge.
b) VME4L_M99IRQ_TSI148 example added.
c) New address spaces added.
d) SMP support fixed.
e) Enhanced example tools (support for A203N...).
2a) Removed parameter from IRQ handler.
b) Fixed permissions parameter at module_param call.
c) AUTOCONF_INCLUDED switch added.
d) pci_module_init renamed.
3) Debug messages reformated, arguments added/removed.
-----[ Release-2.2 ]-----
[ 2004-10-27 13:17:55 by kp ]
adapted to A13/A15 PLDZ002 Rev 18 (decimal).
Support bus master DMA into main memory.
-----[ Release-2.2-Alpha ]-----
[ 2004-07-27 08:06:49 by kp ]
Alpha version introducing support for
- mailboxes
- location monitor
- slave windows
- bus master DMA (if PLD supports it)
- Linux 2.6 kernels
-----[ Release-2.1 ]-----
[ 2004-06-09 11:01:50 by kp ]
Added packagedesc file (for mdis wizard)
small changes in pldz002.h
INSTALL_VME4L.txt:
updated for use with mdiswiz and MDIS system package 3.0
-----[ Release-2.0 ]-----
[ 2003-12-16 12:23:05 by kp ]
Completely rewritten to support new VME PLDZ002 (A13/A15).
New userland API.
Still supports old VME4L API.
-----[ Revision 1.4 ]-----
[ 2003-09-18 16:33:35 by UFranke ]
- A32/D32 support
-----[ Revision 1.3 ]-----
[ 2003-05-12 09:09:05 by UFranke ]
bugfix
- compiler error with enabled CONFIG_DEVFS_FS
-----[ Revision 1.2 ]-----
[ 2002-08-14 09:48:00 by UFranke ]
optimization for VME4L_IO_BUS_PROBE:
- replace read/modify/write by vmeMstrShadow
- if define VME4L_MAP_VME_SPACE_AT_INIT
bugfix:
- replaced write/read b/w() by corresponding __raw_ routines
- ioctl VME4L_IO_BUS_PROBE, wrong addresses for word access
-----[ Revision 1.1 ]-----
[ 2002-07-19 12:15:35 by UFranke ]
Initial Revision
Download 13z014-90_02_13.zipiVME4LX Driver for PCI-to-VME bridge on A12, A13, A14, A15, A17, A19, A20 and B11 -----[ Release-2.13 ]-----
[ 2010-10-22 14:45:52 by rt ]
R: 1) DMA may not work if user space buffer is in highmem (check
/proc/meminfo for HighTotal>0).
2) After unloading the VME4L module a subsequent modprobe may fail.
3) Cosmetics.
4) Not compilable for kernel version > 2.6.26.
5) DMA mode is not supported by Non-BLT spaces.
M: 1) Replaced page_address()/virt_to_bus().
2) Removed
3) Some register debug prints were swapped at little endian machines.
4) Support new location of semaphore.h.
5) Added note to documentation.
-----[ Release-2.12 ]-----
[ 2009-09-25 14:42:29 by CRuff ]
R: MDIS5 for linux release
M: a) fix compiler warnings on kernel 2.6.28
b) replace deprecated function cli()
-----[ Release-2.11 ]-----
[ 2009-07-09 16:10:24 by rt ]
R: 1.) All: Large zero-copy DMAs (>64k at PLDZ002; >408k at TSI148)
read/write wrong data.
2.) All: "Kernel access of bad area" may occur if VME4L_Read/Write() is
used with size>0x80000.
3.) All: System may freeze if kernel is compiled with CONFIG_SMP set.
4.) All: Not compilable with kernel 2.5.3..2.6.9 or >2.6.21.
5.) All: Example tool for system controller functions is missing in
MDIS wizard.
6.) TSI148: Access to slave window register space is not working anymore
if another slave window is requested.
7.) TSI148: VME system reset not working at A19/A20.
8.a) TSI148: 8/16 bit RMW cycles not working.
b) TSI148: RMW - Values read are swapped.
9.) TSI148: Make driver more save against race conditions.
10.) TSI148: Not all memory resources are freed if module is unloaded.
11.) TSI148: Support for last address in A64 space.
12.) TSI148: Adjust default minimal window size for outbound windows.
13.) TSI148: VME4L_Map() does not support addresses > 0xFFFFFFFF
M: 1.) Changed vmeAddr parameter to pointer to vmeAddr in dmaSetup().
2.) Determination of useSize in vme4l_make_ioremap_region() fixed.
3.) Dead lock in vme4l_discard_adrswin removed.
4.a) VME4L_REMAP macro changed.
b) Switch for module_param changed.
c) Switch for send_sig changed.
d) Add switch for pci_module_init.
5.) VME4L_CTRL added to 13z01490.xml.
6.) Added inUse parameter to VME4L_RESRC.
7.) A19/A20 do not reset themselfes if VME reset is activated, so we
have to release VME reset after >200 ms.
8.a) Shift RMW mask depending on access width.
b) Swap values read.
9.) Some small changes to spin locks (disable IRQs more often...).
10.) Rename vmeOut to vmeIn for freeing inbound windows resources.
11.) Changed maxSize to spcEnd in VME4L_SPACE_ENT.
12.) Reduce size for A32/D32 and A64/D32 from 256 MB to 128 MB.
13.) Note added to ducumentation.
-----[ 2.10 ]-----
[ 2009-06-03 20:14:18 by rt ]
d
R: 1.) Support for TSI148 increased:
1.a) Example program for TSI148 location monitor missing.
1.b) TSI148 needs physical Address to perform RMW cycle
1.c) Make timing/arbitration adjustable.
1.d) Inbound window for TSI148 register access missing.
1.e) No DMA support.
1.f) Incomplete bus error support.
1.g) No Requester mode support.
1.h) No RMW support.
1.i) No mailbox support.
1.j) No location monitor support.
1.k) Address violation if an open inbound window is set-up with same
size but different VME addr.
2.) Not compilable with kernel > 2.6.19
3.) Example programs do not support VME addresses > 0xFFFFFFFF
4.) Some example programs do not work with newer kernels.
M: 1.a) VME4L_TSI148_LOCMON added.
1.b) physAddr parameter added to rmwCycle()
1.c) TSI148_VMCTRL, TSI148_VCTRL, TSI148_BLT_DCTL, TSI148_VMEFL
and TSI148_PCIXCAP added.
1.d) TSI148_SLVX... defines added.
1.e) Tsi148_DmaSetup, Tsi148_DmaStart, Tsi148_DmaStop, Tsi148_DmaStatus
implemented.
1.f) Tsi148_BusErrGet implemented.
1.g) Tsi148_RequesterModeGet and Tsi148_RequesterModeSet implemented.
1.h) Tsi148_RmwCycle implemented.
1.i) Tsi148_MboxRead and Tsi148_MboxWrite implemented.
1.j) Tsi148_LocMonRegRead and Tsi148_LocMonRegWrite implemented.
1.k) Use old physical address in this case.
2.) regs parameter removed from PldZ002Irq for kernel > 2.6.19
3.) Use strtoull for VME address.
4.) Use SIGRTMIN to determine signal no.
-----[ Release-2.9 ]-----
[ 2009-04-30 22:33:48 by rt ]
R: 1) New VME boards A17, A19 and A20.
2) Support for kernel versions > 2.6.18.
3) Wrong debug messages.
M: 1a) Add support for Tundra TSI148 VME bridge.
b) VME4L_M99IRQ_TSI148 example added.
c) New address spaces added.
d) SMP support fixed.
e) Enhanced example tools (support for A203N...).
2a) Removed parameter from IRQ handler.
b) Fixed permissions parameter at module_param call.
c) AUTOCONF_INCLUDED switch added.
d) pci_module_init renamed.
3) Debug messages reformated, arguments added/removed.
-----[ Release-2.8 ]-----
[ 2007-12-10 12:09:03 by ts ]
*** CHANGED FILES ***
vme4l-core.h
define VERSION_CODE_NEW_IRQFLAGS added for new IRQ handler Flags
vme4l-pldz002.c
use new Irq handler Flags (IRQF_xxx) from 2.6.20 on
-----[ Release-2.7 ]-----
[ 2007-05-11 15:39:17 by ts ]
*** CHANGED FILES ***
pldz002.h
PLDZ002_MAILBOX(mbx) macro fixed
vme4l-core.c
Bugfix: Make devfs functions usage depending on CONFIG_DEVFS_FS
vme4l-core.h
Bugfix: Include <linux/devfs_fs_kernel.h> only when CONFIG_DEVFS_FS is set
-----[ Release-2.6 ]-----
[ 2007-03-28 16:58:41 by ts ]
vme4l-core.c
added vme4l_send_sig() to avoid sending to nonexistent tasks
-----[ Release-2.5 ]-----
[ 2006-12-15 14:35:57 by ts ]
*** CHANGED FILES ***
File /_CVS_/COM/INCLUDE/pldz002.h RCS 2.10 -> RCS 2.13
added
+ SLV32 defines
added
+ SLV32 defines
added defines
+ PLDZ002_SLV24_SIZE_XXXX
File /_CVS_/COM/PACKAGE_DESC/13z01490.xml RCS 1.7 -> RCS 1.8
new Revision 2.5
File /_CVS_/LINUX/DRIVERS/VME4LX/DRIVER_K24/vme4l-core.c RCS 1.5 -> RCS 1.7
adapted for either classic RTAI or Xenomai usage
removed remap_page_range()
remap_page_range is removed in 2.6.11 and up
-----[ Release-2.4 ]-----
[ 2005-08-11 17:13:06 by ts ]
*** CHANGED FILES ***
File /_CVS_/LINUX/DRIVERS/VME4LX/DRIVER_K24/vme4l-core.h RCS 1.5 -> RCS 1.6
define CONFIG_MEN_VME_RTAI_KERNELIF if (MDIS_RTAI_SUPPORT &&
CONFIG_MEN_VME_KERNELIF) defined
File /_CVS_/LINUX/INCLUDE/NATIVE/MEN/men_vme_kernelif.h RCS 1.4 -> RCS 1.5
leave declarations for vme_rt_xxx inside unconditional
(AUTOCI) Checkin due to new revision Release-2.4 of fileset ART/13Z014-90/13Z014-90
-----[ Release-2.3 ]-----
[ 2005-01-31 16:18:05 by ts ]
*** CHANGED FILES ***
File /_CVS_/COM/PACKAGE_DESC/13z01490.xml RCS 1.5 -> RCS 1.6
new Revision 2.3 (MDIS RTAI support)
File /_CVS_/LINUX/DRIVERS/VME4LX/DRIVER_K24/INSTALL_VME4L.txt RCS 1.4 -> RCS 1.5
the text file is now only reference to the PDF
File /_CVS_/LINUX/DRIVERS/VME4LX/DRIVER_K24/vme4l-core.c RCS 1.2 -> RCS 1.5
corrected DEVFS registering bug under Kernel 2.6
several bugs corrected, RTAI IRQs are processed properly now.
added VME RTAI support
File /_CVS_/LINUX/DRIVERS/VME4LX/DRIVER_K24/vme4l-core.h RCS 1.3 -> RCS 1.5
reordered some includes from RTAI
added VME RTAI support
File /_CVS_/LINUX/DRIVERS/VME4LX/DRIVER_K24/vme4l-pldz002.c RCS 1.5 -> RCS 1.7
Name of called IRQ sharing functions changed
added VME RTAI support
File /_CVS_/LINUX/INCLUDE/NATIVE/MEN/men_vme_kernelif.h RCS 1.2 -> RCS 1.4
Changed parameter type of passed handler
changes for VME RTAI support
-----[ Release-2.2 ]-----
[ 2004-10-27 13:17:55 by kp ]
adapted to A13/A15 PLDZ002 Rev 18 (decimal).
Support bus master DMA into main memory.
-----[ Release-2.2-Alpha ]-----
[ 2004-07-27 08:06:49 by kp ]
Alpha version introducing support for
- mailboxes
- location monitor
- slave windows
- bus master DMA (if PLD supports it)
- Linux 2.6 kernels
-----[ Release-2.1 ]-----
[ 2004-06-09 11:01:50 by kp ]
Added packagedesc file (for mdis wizard)
small changes in pldz002.h
INSTALL_VME4L.txt:
updated for use with mdiswiz and MDIS system package 3.0
-----[ Release-2.0 ]-----
[ 2003-12-16 12:23:05 by kp ]
Completely rewritten to support new VME PLDZ002 (A13/A15).
New userland API.
Still supports old VME4L API.
-----[ Revision 1.4 ]-----
[ 2003-09-18 16:33:35 by UFranke ]
- A32/D32 support
-----[ Revision 1.3 ]-----
[ 2003-05-12 09:09:05 by UFranke ]
bugfix
- compiler error with enabled CONFIG_DEVFS_FS
-----[ Revision 1.2 ]-----
[ 2002-08-14 09:48:00 by UFranke ]
optimization for VME4L_IO_BUS_PROBE:
- replace read/modify/write by vmeMstrShadow
- if define VME4L_MAP_VME_SPACE_AT_INIT
bugfix:
- replaced write/read b/w() by corresponding __raw_ routines
- ioctl VME4L_IO_BUS_PROBE, wrong addresses for word access
-----[ Revision 1.1 ]-----
[ 2002-07-19 12:15:35 by UFranke ]
Initial Revision
Licensing Information
Supported MEN Standard Products
Supported Kernel Versions
- Linux 2.4.18 to 3.4.18
- This driver currently has been tested under Linux 2.4.18 to 3.4.18 under the following distributions:
- SLIND Clydesdale/PPC (2.6.24)
- Ubuntu 8.04/i686 (2.6.24), including SMP kernel
- ELinOS 2.1/PPC (2.4.18)
- ELinOS 2.2/X86 (2.4.18), including preemptible kernel
- ELinOS 3.0/PPC (2.4.25), including preemptible kernel
- ELinOS 4.2/PPC (2.4.31)
- SuSE 8.2/i386 (2.4.20)
- SuSE 9.0/i386 (2.4.21)
- SuSE 9.1/i386 (2.6.4)
- ELDK (3.4.18)
Build Environment
- ELinOS 2.1/2.2/3.0/4.2
- Standard distributions (SuSE, RedHat)
Included Documentation
- DRIVERS/VME4LX/DRIVER_K24/README_VME4L.txt - General Notes
- DRIVERS/VME4LX/DRIVER_K24/INSTALL_VME4L.txt - Installation Instructions
- LIBSRC/VME4L_API/DOC/html/index.html - VME4L userland API
Notes
- This driver can be built using the Linux kernel build system. However, it is recommended to use the MDIS system package build environment instead (13MD05-90).
- Please note that on A17 this driver needs to be compiled into the kernel statically.
- Please refer to the VME 4 Linux installation instructions for more detailed information!
- For all features on A13/A15, a recent VME PLD for A13/A15 is required.
Licensing Information
This article is free of charge.
Ordering Information & Downloads
Main Software
13Z014-90
Linux device driver (MEN) for PCI-to-VME bridge on A12, A13, A14, A15, A17, A19, A20, A21B/A21C and B11
13MD05-90
MDIS5 System (and Device Driver) Package (MEN) for Linux. This software package includes most standard device drivers available from MEN.
Requires a compatible MDIS system package.
Related Software
10EM09-91
General Linux BSP for A17, EM9, EM9A, EK9, F50C, F50P and XM50