Subversion Repositories f9daq

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
19 f9daq 1
#ifndef __PCIIF_H__
2
//-----------------------------------------------------------------------
3
// Address definitions of PCI-VME interface designed by A.Rausch         
4
//                                                                       
5
// (c) 1999-2004 ARW Elektronik
6
//
7
// this source code is published under GPL (Open Source). You can use, redistrubute and 
8
// modify it unless this header   is not modified or deleted. No warranty is given that 
9
// this software will work like expected.
10
// This product is not authorized for use as critical component in life support systems
11
// wihout the express written approval of ARW Elektronik Germany.
12
//
13
// Please announce changes and hints to ARW Elektronik
14
//
15
// $Log: pciif.h,v $
16
// Revision 1.3  2004/07/24 07:07:26  klaus
17
// Update copyright to 2004
18
//
19
// Revision 1.2  2003/11/15 19:12:26  klaus
20
// Update copyright to 2003
21
//
22
// Revision 1.1.1.1  2003/11/14 23:16:33  klaus
23
// First put into repository
24
//
25
// Revision 1.3  2002/10/27 16:17:48  klaus
26
// Typing bug fixed caused at log addition
27
//
28
// Revision 1.2  2002/10/27 16:11:02  klaus
29
// Added CVS log into header
30
//
31
// what                                              who   when          
32
// first parts                                       AR    24.11.1997    
33
// converted to new address layout                   AR    18.05.1998    
34
// next address layout conversion                    AR    27.06.1998    
35
// no pointer usage at definitions                   AR    20.02.1999    
36
// first release                                     AR    20.02.1999    
37
// corrected global and local reset                  AR    18.04.1999
38
//
39
 
40
#include <vic.h>
41
 
42
/*-----------------------------------------------------------------------*/
43
/* all addresses relative to PCI-Window                                  */
44
 
45
/*------------- addresses of vmemm local devices ------------------------*/
46
#define CSR     (DWORD)0x0000 /* control status register                 */
47
#define VICRES  (DWORD)0x0004 /* VIC reset register / interrupt status   */
48
#define ADRHL   (DWORD)0x0008 /* AdrH and AdrL as long                   */
49
#define VICBASE (DWORD)0x0400 /* base of VIC68A                          */
50
#define VECBASE (DWORD)0x0800 /* base of vector registers                */
51
#define VMEBASE (DWORD)0x1000 /* base of 4k VME-BUS window               */
52
 
53
/*---------- parts of addresses derived from above ----------------------*/
54
#define IVEC1   (DWORD)(VECBASE + 3)    /* IACK 1 vector                 */
55
#define IVEC2   (DWORD)(VECBASE + 5)    /* IACK 2 vector                 */
56
#define IVEC3   (DWORD)(VECBASE + 7)    /* IACK 3 vector                 */
57
#define IVEC4   (DWORD)(VECBASE + 9)    /* IACK 4 vector                 */
58
#define IVEC5   (DWORD)(VECBASE + b)    /* IACK 5 vector                 */
59
#define IVEC6   (DWORD)(VECBASE + d)    /* IACK 6 vector                 */
60
#define IVEC7   (DWORD)(VECBASE + f)    /* IACK 7 vector                 */
61
 
62
#define ADRL    (DWORD)ADRHL            /* word access addr. VME-addr    */ 
63
#define ADRH    (DWORD)(ADRHL + 2)
64
 
65
/*--------- address mask ------------------------------------------------*/
66
#define VME_ADR_MASK (DWORD)0x00000FFF  /* masks lower part of address   */
67
 
68
/*--------- some masks in CSR -------------------------------------------*/
69
#define FLAG_RMC     (WORD)0x0001       /* set = next cycle is RMC       */
70
#define FLAG_BLT     (WORD)0x0002       /* don't use it. must be 0       */
71
#define FLAG_WORD    (WORD)0x0004       /* it is a word wide interface   */
72
#define FLAG_SYSCTL  (WORD)0x0008       /* the system contrl. is enabled */
73
#define MASK_MODNR   (WORD)0x00F0       /* the mask to get the module No */
74
#define MASK_FPGA    (WORD)0x0F00       /* the mask to get the FPGA rev. */
75
#define MASK_MODTYPE (WORD)0xF000       /* the mask to get type of module*/
76
 
77
/*---------- action commands in VICRES -----------------------------------*/
78
#define GLOBAL_RESET (WORD)0x000A       /* write this to reset the intrfc */
79
#define LOCAL_RESET  (WORD)0x0005       /* generate a local reset         */
80
 
81
/*---------- release und inhibit into 0x50 of PLX ------------------------*/
82
#define RELEASE_VMEMM (WORD)0x4180      /* write this to release access ..*/
83
#define INHIBIT_VMEMM (WORD)0x4080      /* write this to inhibit access ..*/
84
#define ENABLE_PCIADA_IRQS  (WORD)0x0049 /* enable PCIADA IRQs            */
85
#define DISABLE_PCIADA_IRQS (WORD)0x0009 /* disable PCIADA IRQs           */
86
 
87
#define __PCIIF_H__
88
#endif