summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/shared/vmeUniverse/vmeUniverse.h
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2007-01-31 04:02:52 +0000
committerTill Straumann <strauman@slac.stanford.edu>2007-01-31 04:02:52 +0000
commitc1b34d5a9269ccdd35c581bc158acbe5888fec06 (patch)
tree482cc00ac4fba2706aa680b87eeebcc1c8de8df9 /c/src/lib/libbsp/shared/vmeUniverse/vmeUniverse.h
parent2007-01-29 Till Straumann <strauman@slac.stanford.edu> (diff)
downloadrtems-c1b34d5a9269ccdd35c581bc158acbe5888fec06.tar.bz2
2007-01-30 Till Straumann <strauman@slac.stanford.edu>
* vmeUniverse/README.porting, vmeUniverse/README.universe: updated, added more information for BSP implementors. * vmeUniverse/VMEDMA.h (added): VME DMA API definition. * vmeUniverse/bspVmeDmaList.h (added), vmeUniverse/bspVmeDmaListP.h (added), * vmeUniverse/bspVmeDmaList.c (added): Driver-independent code for linked-list DMA (public + private headers, implementation). * vmeUniverse/vmeUniverseDMA.h (added), vmeUniverse/vmeTsi148DMA.h (added): interface to new DMA features of drivers. * vmeUniverse/vme_amd_defs.h: Added definition for data-width hint bits (VME_MODE_DBWxx). * vmeUniverse/vmeTsi148.c: added DMA support. Added support for data-width hint/modifier bits. * vmeUniverse/vmeUniverse.c, vmeUniverse/vmeUniverse.h: Added support for data-width hint/modifier bits. Added support for xxx_BLT, xxx_MBLT address modifiers. Restrict DBW to 32 in non-MBLT modes (except single-beat; a comment is in README.universe). Updated DMA support to implement new VMEDMA.h API. Added support for non-incrementing VME addresses. Restrict data width to 32 for single-beat AMs when the universe would use MBLT for DMA.
Diffstat (limited to 'c/src/lib/libbsp/shared/vmeUniverse/vmeUniverse.h')
-rw-r--r--c/src/lib/libbsp/shared/vmeUniverse/vmeUniverse.h34
1 files changed, 21 insertions, 13 deletions
diff --git a/c/src/lib/libbsp/shared/vmeUniverse/vmeUniverse.h b/c/src/lib/libbsp/shared/vmeUniverse/vmeUniverse.h
index 83d5cdd44f..b788e2a10a 100644
--- a/c/src/lib/libbsp/shared/vmeUniverse/vmeUniverse.h
+++ b/c/src/lib/libbsp/shared/vmeUniverse/vmeUniverse.h
@@ -71,6 +71,9 @@
typedef unsigned long LERegister; /* emphasize contents are little endian */
+/****** NOTE: USE OF VmeUniverseDMAPacket IS DEPRECATED *********
+ ****** USE API IN VMEDMA.h INSTEAD *********/
+
/* NOTE: DMA packet descriptors MUST be 32 byte aligned */
typedef struct VmeUniverseDMAPacketRec_ {
LERegister dctl __attribute__((aligned(32)));
@@ -81,7 +84,7 @@ typedef struct VmeUniverseDMAPacketRec_ {
LERegister dummy2 __attribute__((packed));
LERegister dcpp __attribute__((packed));
LERegister dummy3 __attribute__((packed));
-} VmeUniverseDMAPacketRec, *VmeUniverseDMAPacket;
+} VmeUniverseDMAPacketRec, *VmeUniverseDMAPacket; /* DEPRECATED */
/* PCI CSR register */
#define UNIV_REGOFF_PCI_CSR 0x4
@@ -166,6 +169,7 @@ typedef struct VmeUniverseDMAPacketRec_ {
# define UNIV_DCTL_PGM (1<<14) /* VME PGM(1)/DATA(0) */
# define UNIV_DCTL_SUPER_MSK (3<<12) /* VME SUPER/USR mask 0x00003000 */
# define UNIV_DCTL_SUPER (1<<12) /* VME SUPER(1)/USR(0) */
+# define UNIV_DCTL_NO_VINC (1<<9) /* VME no VME address increment [Universe IIa/b ONLY */
# define UNIV_DCTL_VCT (1<<8) /* VME enable BLT */
# define UNIV_DCTL_LD64EN (1<<7) /* PCI 64 enable */
@@ -196,10 +200,11 @@ typedef struct VmeUniverseDMAPacketRec_ {
# define UNIV_DGCS_VON_DONE (0<<20) /* VON counter disabled (do until done) */
# define UNIV_DGCS_VON_256 (1<<20) /* VON yield bus after 256 bytes */
# define UNIV_DGCS_VON_512 (2<<20) /* VON yield bus after 512 bytes */
-# define UNIV_DGCS_VON_1024 (3<<20) /* VON yield bus after 512 bytes */
-# define UNIV_DGCS_VON_2048 (4<<20) /* VON yield bus after 1024 bytes */
+# define UNIV_DGCS_VON_1024 (3<<20) /* VON yield bus after 1024 bytes */
+# define UNIV_DGCS_VON_2048 (4<<20) /* VON yield bus after 2048 bytes */
# define UNIV_DGCS_VON_4096 (5<<20) /* VON yield bus after 4096 bytes */
# define UNIV_DGCS_VON_8192 (6<<20) /* VON yield bus after 8192 bytes */
+# define UNIV_DGCS_VON_16384 (7<<20) /* VON yield bus after 16384 bytes */
# define UNIV_DGCS_VOFF_MSK (15<<16) /* VOFF mask */
# define UNIV_DGCS_VOFF_0_US (0<<16) /* re-request VME master after 0 us */
# define UNIV_DGCS_VOFF_2_US (8<<16) /* re-request VME master after 2 us */
@@ -600,6 +605,9 @@ vmeUniverseSlavePortCfg(
unsigned long local_address,
unsigned long length);
+/****** NOTE: USE OF vmeUniverseStartDMA IS DEPRECATED *********
+ ****** USE API IN VMEDMA.h/vmeUniverseDMA.h INSTEAD *********/
+
/* start a (direct, not linked) DMA transfer
*
* NOTE: DCTL and DGCS must be set up
@@ -609,7 +617,15 @@ int
vmeUniverseStartDMA(
unsigned long local_addr,
unsigned long vme_addr,
- unsigned long count);
+ unsigned long count); /* DEPRECATED */
+
+int
+vmeUniverseStartDMAXX(
+ volatile LERegister *ubase,
+ unsigned long local_addr,
+ unsigned long vme_addr,
+ unsigned long count); /* DEPRECATED */
+
/* read a register in PCI memory space
* (offset being one of the declared constants)
@@ -696,13 +712,6 @@ void
vmeUniverseSlavePortsShowXX();
#endif
-int
-vmeUniverseStartDMAXX(
- volatile LERegister *ubase,
- unsigned long local_addr,
- unsigned long vme_addr,
- unsigned long count);
-
/* Raise a VME Interrupt at 'level' and respond with 'vector' to a
* handler on the VME bus. (The handler could be a different board
* or the universe itself - [only works with universe II]).
@@ -879,8 +888,7 @@ vmeUniverseIntIsEnabled(unsigned int level);
* line a given 'level' is using. By default,
* all 7 VME levels use the first wire (pin==0) and
* all internal sources use the (optional) second
- * wire (pin==1) [The driver doesn't support more than
- * to wires].
+ * wire (pin==1).
* This feature is useful if you want to make use of
* different hardware priorities of the PIC. Let's
* say you want to give IRQ level 7 the highest priority.