universe.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * (C) Copyright 2003 Stefan Roese, stefan.roese@esd-electronics.com
  4. */
  5. #ifndef _universe_h
  6. #define _universe_h
  7. typedef struct _UNIVERSE UNIVERSE;
  8. typedef struct _SLAVE_IMAGE SLAVE_IMAGE;
  9. typedef struct _TDMA_CMD_PACKET TDMA_CMD_PACKET;
  10. struct _SLAVE_IMAGE {
  11. unsigned int ctl; /* Control */
  12. unsigned int bs; /* Base */
  13. unsigned int bd; /* Bound */
  14. unsigned int to; /* Translation */
  15. unsigned int reserved;
  16. };
  17. struct _UNIVERSE {
  18. unsigned int pci_id;
  19. unsigned int pci_csr;
  20. unsigned int pci_class;
  21. unsigned int pci_misc0;
  22. unsigned int pci_bs;
  23. unsigned int spare0[10];
  24. unsigned int pci_misc1;
  25. unsigned int spare1[48];
  26. SLAVE_IMAGE lsi[4];
  27. unsigned int spare2[8];
  28. unsigned int scyc_ctl;
  29. unsigned int scyc_addr;
  30. unsigned int scyc_en;
  31. unsigned int scyc_cmp;
  32. unsigned int scyc_swp;
  33. unsigned int lmisc;
  34. unsigned int slsi;
  35. unsigned int l_cmderr;
  36. unsigned int laerr;
  37. unsigned int spare3[27];
  38. unsigned int dctl;
  39. unsigned int dtbc;
  40. unsigned int dla;
  41. unsigned int spare4[1];
  42. unsigned int dva;
  43. unsigned int spare5[1];
  44. unsigned int dcpp;
  45. unsigned int spare6[1];
  46. unsigned int dgcs;
  47. unsigned int d_llue;
  48. unsigned int spare7[54];
  49. unsigned int lint_en;
  50. unsigned int lint_stat;
  51. unsigned int lint_map0;
  52. unsigned int lint_map1;
  53. unsigned int vint_en;
  54. unsigned int vint_stat;
  55. unsigned int vint_map0;
  56. unsigned int vint_map1;
  57. unsigned int statid;
  58. unsigned int vx_statid[7];
  59. unsigned int spare8[48];
  60. unsigned int mast_ctl;
  61. unsigned int misc_ctl;
  62. unsigned int misc_stat;
  63. unsigned int user_am;
  64. unsigned int spare9[700];
  65. SLAVE_IMAGE vsi[4];
  66. unsigned int spare10[8];
  67. unsigned int vrai_ctl;
  68. unsigned int vrai_bs;
  69. unsigned int spare11[2];
  70. unsigned int vcsr_ctl;
  71. unsigned int vcsr_to;
  72. unsigned int v_amerr;
  73. unsigned int vaerr;
  74. unsigned int spare12[25];
  75. unsigned int vcsr_clr;
  76. unsigned int vcsr_set;
  77. unsigned int vcsr_bs;
  78. };
  79. #define IRQ_VOWN 0x0001
  80. #define IRQ_VIRQ1 0x0002
  81. #define IRQ_VIRQ2 0x0004
  82. #define IRQ_VIRQ3 0x0008
  83. #define IRQ_VIRQ4 0x0010
  84. #define IRQ_VIRQ5 0x0020
  85. #define IRQ_VIRQ6 0x0040
  86. #define IRQ_VIRQ7 0x0080
  87. #define IRQ_DMA 0x0100
  88. #define IRQ_LERR 0x0200
  89. #define IRQ_VERR 0x0400
  90. #define IRQ_res 0x0800
  91. #define IRQ_IACK 0x1000
  92. #define IRQ_SWINT 0x2000
  93. #define IRQ_SYSFAIL 0x4000
  94. #define IRQ_ACFAIL 0x8000
  95. struct _TDMA_CMD_PACKET {
  96. unsigned int dctl; /* DMA Control */
  97. unsigned int dtbc; /* Transfer Byte Count */
  98. unsigned int dlv; /* PCI Address */
  99. unsigned int res1; /* Reserved */
  100. unsigned int dva; /* Vme Address */
  101. unsigned int res2; /* Reserved */
  102. unsigned int dcpp; /* Pointer to Numed Cmd Packet with rPN */
  103. unsigned int res3; /* Reserved */
  104. };
  105. #define VME_AM_A16 0x01
  106. #define VME_AM_A24 0x02
  107. #define VME_AM_A32 0x03
  108. #define VME_AM_Axx 0x03
  109. #define VME_AM_SUP 0x04
  110. #define VME_AM_DATA 0x10
  111. #define VME_AM_PROG 0x20
  112. #define VME_AM_Mxx 0x30
  113. #define VME_FLAG_D8 0x01
  114. #define VME_FLAG_D16 0x02
  115. #define VME_FLAG_D32 0x03
  116. #define VME_FLAG_Dxx 0x03
  117. #define PCI_MS_MEM 0x01
  118. #define PCI_MS_IO 0x02
  119. #define PCI_MS_CONFIG 0x03
  120. #define PCI_MS_Mxx 0x03
  121. #endif