Subversion Repositories f9daq

Rev

Rev 19 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  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
  89.