uv_mmrs.h 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874
  1. /*
  2. * This file is subject to the terms and conditions of the GNU General Public
  3. * License. See the file "COPYING" in the main directory of this archive
  4. * for more details.
  5. *
  6. * SGI UV MMR definitions
  7. *
  8. * Copyright (C) 2007-2008 Silicon Graphics, Inc. All rights reserved.
  9. */
  10. #ifndef __ASM_X86_UV_MMRS__
  11. #define __ASM_X86_UV_MMRS__
  12. #define UV_MMR_ENABLE (1UL << 63)
  13. /* ========================================================================= */
  14. /* UVH_BAU_DATA_CONFIG */
  15. /* ========================================================================= */
  16. #define UVH_BAU_DATA_CONFIG 0x61680UL
  17. #define UVH_BAU_DATA_CONFIG_32 0x0450
  18. #define UVH_BAU_DATA_CONFIG_VECTOR_SHFT 0
  19. #define UVH_BAU_DATA_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  20. #define UVH_BAU_DATA_CONFIG_DM_SHFT 8
  21. #define UVH_BAU_DATA_CONFIG_DM_MASK 0x0000000000000700UL
  22. #define UVH_BAU_DATA_CONFIG_DESTMODE_SHFT 11
  23. #define UVH_BAU_DATA_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  24. #define UVH_BAU_DATA_CONFIG_STATUS_SHFT 12
  25. #define UVH_BAU_DATA_CONFIG_STATUS_MASK 0x0000000000001000UL
  26. #define UVH_BAU_DATA_CONFIG_P_SHFT 13
  27. #define UVH_BAU_DATA_CONFIG_P_MASK 0x0000000000002000UL
  28. #define UVH_BAU_DATA_CONFIG_T_SHFT 15
  29. #define UVH_BAU_DATA_CONFIG_T_MASK 0x0000000000008000UL
  30. #define UVH_BAU_DATA_CONFIG_M_SHFT 16
  31. #define UVH_BAU_DATA_CONFIG_M_MASK 0x0000000000010000UL
  32. #define UVH_BAU_DATA_CONFIG_APIC_ID_SHFT 32
  33. #define UVH_BAU_DATA_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  34. union uvh_bau_data_config_u {
  35. unsigned long v;
  36. struct uvh_bau_data_config_s {
  37. unsigned long vector_ : 8; /* RW */
  38. unsigned long dm : 3; /* RW */
  39. unsigned long destmode : 1; /* RW */
  40. unsigned long status : 1; /* RO */
  41. unsigned long p : 1; /* RO */
  42. unsigned long rsvd_14 : 1; /* */
  43. unsigned long t : 1; /* RO */
  44. unsigned long m : 1; /* RW */
  45. unsigned long rsvd_17_31: 15; /* */
  46. unsigned long apic_id : 32; /* RW */
  47. } s;
  48. };
  49. /* ========================================================================= */
  50. /* UVH_IPI_INT */
  51. /* ========================================================================= */
  52. #define UVH_IPI_INT 0x60500UL
  53. #define UVH_IPI_INT_32 0x0360
  54. #define UVH_IPI_INT_VECTOR_SHFT 0
  55. #define UVH_IPI_INT_VECTOR_MASK 0x00000000000000ffUL
  56. #define UVH_IPI_INT_DELIVERY_MODE_SHFT 8
  57. #define UVH_IPI_INT_DELIVERY_MODE_MASK 0x0000000000000700UL
  58. #define UVH_IPI_INT_DESTMODE_SHFT 11
  59. #define UVH_IPI_INT_DESTMODE_MASK 0x0000000000000800UL
  60. #define UVH_IPI_INT_APIC_ID_SHFT 16
  61. #define UVH_IPI_INT_APIC_ID_MASK 0x0000ffffffff0000UL
  62. #define UVH_IPI_INT_SEND_SHFT 63
  63. #define UVH_IPI_INT_SEND_MASK 0x8000000000000000UL
  64. union uvh_ipi_int_u {
  65. unsigned long v;
  66. struct uvh_ipi_int_s {
  67. unsigned long vector_ : 8; /* RW */
  68. unsigned long delivery_mode : 3; /* RW */
  69. unsigned long destmode : 1; /* RW */
  70. unsigned long rsvd_12_15 : 4; /* */
  71. unsigned long apic_id : 32; /* RW */
  72. unsigned long rsvd_48_62 : 15; /* */
  73. unsigned long send : 1; /* WP */
  74. } s;
  75. };
  76. /* ========================================================================= */
  77. /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST */
  78. /* ========================================================================= */
  79. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST 0x320050UL
  80. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_32 0x009f0
  81. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_ADDRESS_SHFT 4
  82. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_ADDRESS_MASK 0x000007fffffffff0UL
  83. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_NODE_ID_SHFT 49
  84. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_NODE_ID_MASK 0x7ffe000000000000UL
  85. union uvh_lb_bau_intd_payload_queue_first_u {
  86. unsigned long v;
  87. struct uvh_lb_bau_intd_payload_queue_first_s {
  88. unsigned long rsvd_0_3: 4; /* */
  89. unsigned long address : 39; /* RW */
  90. unsigned long rsvd_43_48: 6; /* */
  91. unsigned long node_id : 14; /* RW */
  92. unsigned long rsvd_63 : 1; /* */
  93. } s;
  94. };
  95. /* ========================================================================= */
  96. /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST */
  97. /* ========================================================================= */
  98. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST 0x320060UL
  99. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_32 0x009f8
  100. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_ADDRESS_SHFT 4
  101. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_ADDRESS_MASK 0x000007fffffffff0UL
  102. union uvh_lb_bau_intd_payload_queue_last_u {
  103. unsigned long v;
  104. struct uvh_lb_bau_intd_payload_queue_last_s {
  105. unsigned long rsvd_0_3: 4; /* */
  106. unsigned long address : 39; /* RW */
  107. unsigned long rsvd_43_63: 21; /* */
  108. } s;
  109. };
  110. /* ========================================================================= */
  111. /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL */
  112. /* ========================================================================= */
  113. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL 0x320070UL
  114. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_32 0x00a00
  115. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_ADDRESS_SHFT 4
  116. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_ADDRESS_MASK 0x000007fffffffff0UL
  117. union uvh_lb_bau_intd_payload_queue_tail_u {
  118. unsigned long v;
  119. struct uvh_lb_bau_intd_payload_queue_tail_s {
  120. unsigned long rsvd_0_3: 4; /* */
  121. unsigned long address : 39; /* RW */
  122. unsigned long rsvd_43_63: 21; /* */
  123. } s;
  124. };
  125. /* ========================================================================= */
  126. /* UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE */
  127. /* ========================================================================= */
  128. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE 0x320080UL
  129. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_32 0x0aa0
  130. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_0_SHFT 0
  131. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_0_MASK 0x0000000000000001UL
  132. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_1_SHFT 1
  133. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_1_MASK 0x0000000000000002UL
  134. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_2_SHFT 2
  135. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_2_MASK 0x0000000000000004UL
  136. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_3_SHFT 3
  137. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_3_MASK 0x0000000000000008UL
  138. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_4_SHFT 4
  139. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_4_MASK 0x0000000000000010UL
  140. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_5_SHFT 5
  141. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_5_MASK 0x0000000000000020UL
  142. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_6_SHFT 6
  143. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_6_MASK 0x0000000000000040UL
  144. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_7_SHFT 7
  145. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_7_MASK 0x0000000000000080UL
  146. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_0_SHFT 8
  147. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_0_MASK 0x0000000000000100UL
  148. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_1_SHFT 9
  149. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_1_MASK 0x0000000000000200UL
  150. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_2_SHFT 10
  151. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_2_MASK 0x0000000000000400UL
  152. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_3_SHFT 11
  153. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_3_MASK 0x0000000000000800UL
  154. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_4_SHFT 12
  155. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_4_MASK 0x0000000000001000UL
  156. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_5_SHFT 13
  157. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_5_MASK 0x0000000000002000UL
  158. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_6_SHFT 14
  159. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_6_MASK 0x0000000000004000UL
  160. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_7_SHFT 15
  161. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_7_MASK 0x0000000000008000UL
  162. union uvh_lb_bau_intd_software_acknowledge_u {
  163. unsigned long v;
  164. struct uvh_lb_bau_intd_software_acknowledge_s {
  165. unsigned long pending_0 : 1; /* RW, W1C */
  166. unsigned long pending_1 : 1; /* RW, W1C */
  167. unsigned long pending_2 : 1; /* RW, W1C */
  168. unsigned long pending_3 : 1; /* RW, W1C */
  169. unsigned long pending_4 : 1; /* RW, W1C */
  170. unsigned long pending_5 : 1; /* RW, W1C */
  171. unsigned long pending_6 : 1; /* RW, W1C */
  172. unsigned long pending_7 : 1; /* RW, W1C */
  173. unsigned long timeout_0 : 1; /* RW, W1C */
  174. unsigned long timeout_1 : 1; /* RW, W1C */
  175. unsigned long timeout_2 : 1; /* RW, W1C */
  176. unsigned long timeout_3 : 1; /* RW, W1C */
  177. unsigned long timeout_4 : 1; /* RW, W1C */
  178. unsigned long timeout_5 : 1; /* RW, W1C */
  179. unsigned long timeout_6 : 1; /* RW, W1C */
  180. unsigned long timeout_7 : 1; /* RW, W1C */
  181. unsigned long rsvd_16_63: 48; /* */
  182. } s;
  183. };
  184. /* ========================================================================= */
  185. /* UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS */
  186. /* ========================================================================= */
  187. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS 0x0000000000320088UL
  188. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS_32 0x0aa8
  189. /* ========================================================================= */
  190. /* UVH_LB_BAU_SB_ACTIVATION_CONTROL */
  191. /* ========================================================================= */
  192. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL 0x320020UL
  193. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_32 0x009d8
  194. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INDEX_SHFT 0
  195. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INDEX_MASK 0x000000000000003fUL
  196. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_PUSH_SHFT 62
  197. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_PUSH_MASK 0x4000000000000000UL
  198. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INIT_SHFT 63
  199. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INIT_MASK 0x8000000000000000UL
  200. union uvh_lb_bau_sb_activation_control_u {
  201. unsigned long v;
  202. struct uvh_lb_bau_sb_activation_control_s {
  203. unsigned long index : 6; /* RW */
  204. unsigned long rsvd_6_61: 56; /* */
  205. unsigned long push : 1; /* WP */
  206. unsigned long init : 1; /* WP */
  207. } s;
  208. };
  209. /* ========================================================================= */
  210. /* UVH_LB_BAU_SB_ACTIVATION_STATUS_0 */
  211. /* ========================================================================= */
  212. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0 0x320030UL
  213. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_32 0x009e0
  214. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_STATUS_SHFT 0
  215. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_STATUS_MASK 0xffffffffffffffffUL
  216. union uvh_lb_bau_sb_activation_status_0_u {
  217. unsigned long v;
  218. struct uvh_lb_bau_sb_activation_status_0_s {
  219. unsigned long status : 64; /* RW */
  220. } s;
  221. };
  222. /* ========================================================================= */
  223. /* UVH_LB_BAU_SB_ACTIVATION_STATUS_1 */
  224. /* ========================================================================= */
  225. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1 0x320040UL
  226. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_32 0x009e8
  227. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_STATUS_SHFT 0
  228. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_STATUS_MASK 0xffffffffffffffffUL
  229. union uvh_lb_bau_sb_activation_status_1_u {
  230. unsigned long v;
  231. struct uvh_lb_bau_sb_activation_status_1_s {
  232. unsigned long status : 64; /* RW */
  233. } s;
  234. };
  235. /* ========================================================================= */
  236. /* UVH_LB_BAU_SB_DESCRIPTOR_BASE */
  237. /* ========================================================================= */
  238. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE 0x320010UL
  239. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_32 0x009d0
  240. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_SHFT 12
  241. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_MASK 0x000007fffffff000UL
  242. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_SHFT 49
  243. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_MASK 0x7ffe000000000000UL
  244. union uvh_lb_bau_sb_descriptor_base_u {
  245. unsigned long v;
  246. struct uvh_lb_bau_sb_descriptor_base_s {
  247. unsigned long rsvd_0_11 : 12; /* */
  248. unsigned long page_address : 31; /* RW */
  249. unsigned long rsvd_43_48 : 6; /* */
  250. unsigned long node_id : 14; /* RW */
  251. unsigned long rsvd_63 : 1; /* */
  252. } s;
  253. };
  254. /* ========================================================================= */
  255. /* UVH_LB_MCAST_AOERR0_RPT_ENABLE */
  256. /* ========================================================================= */
  257. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE 0x50b20UL
  258. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_OBESE_MSG_SHFT 0
  259. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_OBESE_MSG_MASK 0x0000000000000001UL
  260. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_DATA_SB_ERR_SHFT 1
  261. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_DATA_SB_ERR_MASK 0x0000000000000002UL
  262. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_NACK_BUFF_PARITY_SHFT 2
  263. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_NACK_BUFF_PARITY_MASK 0x0000000000000004UL
  264. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_TIMEOUT_SHFT 3
  265. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_TIMEOUT_MASK 0x0000000000000008UL
  266. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_INACTIVE_REPLY_SHFT 4
  267. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_INACTIVE_REPLY_MASK 0x0000000000000010UL
  268. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_UPGRADE_ERROR_SHFT 5
  269. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_UPGRADE_ERROR_MASK 0x0000000000000020UL
  270. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_REG_COUNT_UNDERFLOW_SHFT 6
  271. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_REG_COUNT_UNDERFLOW_MASK 0x0000000000000040UL
  272. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_REP_OBESE_MSG_SHFT 7
  273. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_REP_OBESE_MSG_MASK 0x0000000000000080UL
  274. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REQ_RUNT_MSG_SHFT 8
  275. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REQ_RUNT_MSG_MASK 0x0000000000000100UL
  276. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REQ_OBESE_MSG_SHFT 9
  277. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REQ_OBESE_MSG_MASK 0x0000000000000200UL
  278. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REQ_DATA_SB_ERR_SHFT 10
  279. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REQ_DATA_SB_ERR_MASK 0x0000000000000400UL
  280. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_RUNT_MSG_SHFT 11
  281. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_RUNT_MSG_MASK 0x0000000000000800UL
  282. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_OBESE_MSG_SHFT 12
  283. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_OBESE_MSG_MASK 0x0000000000001000UL
  284. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_DATA_SB_ERR_SHFT 13
  285. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_DATA_SB_ERR_MASK 0x0000000000002000UL
  286. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_COMMAND_ERR_SHFT 14
  287. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_COMMAND_ERR_MASK 0x0000000000004000UL
  288. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_PEND_TIMEOUT_SHFT 15
  289. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_PEND_TIMEOUT_MASK 0x0000000000008000UL
  290. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REQ_RUNT_MSG_SHFT 16
  291. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REQ_RUNT_MSG_MASK 0x0000000000010000UL
  292. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REQ_OBESE_MSG_SHFT 17
  293. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REQ_OBESE_MSG_MASK 0x0000000000020000UL
  294. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REQ_DATA_SB_ERR_SHFT 18
  295. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REQ_DATA_SB_ERR_MASK 0x0000000000040000UL
  296. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REP_RUNT_MSG_SHFT 19
  297. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REP_RUNT_MSG_MASK 0x0000000000080000UL
  298. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REP_OBESE_MSG_SHFT 20
  299. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REP_OBESE_MSG_MASK 0x0000000000100000UL
  300. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REP_DATA_SB_ERR_SHFT 21
  301. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REP_DATA_SB_ERR_MASK 0x0000000000200000UL
  302. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_TIMEOUT_SHFT 22
  303. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_TIMEOUT_MASK 0x0000000000400000UL
  304. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_SPURIOUS_EVENT_SHFT 23
  305. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_SPURIOUS_EVENT_MASK 0x0000000000800000UL
  306. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_IOH_DESTINATION_TABLE_PARITY_SHFT 24
  307. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_IOH_DESTINATION_TABLE_PARITY_MASK 0x0000000001000000UL
  308. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_GET_HAD_ERROR_REPLY_SHFT 25
  309. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_GET_HAD_ERROR_REPLY_MASK 0x0000000002000000UL
  310. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_GET_TIMEOUT_SHFT 26
  311. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_GET_TIMEOUT_MASK 0x0000000004000000UL
  312. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_LOCK_MANAGER_HAD_ERROR_REPLY_SHFT 27
  313. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_LOCK_MANAGER_HAD_ERROR_REPLY_MASK 0x0000000008000000UL
  314. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_PUT_HAD_ERROR_REPLY_SHFT 28
  315. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_PUT_HAD_ERROR_REPLY_MASK 0x0000000010000000UL
  316. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_PUT_TIMEOUT_SHFT 29
  317. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_PUT_TIMEOUT_MASK 0x0000000020000000UL
  318. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_SB_ACTIVATION_OVERRUN_SHFT 30
  319. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_SB_ACTIVATION_OVERRUN_MASK 0x0000000040000000UL
  320. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_COMPLETED_GB_ACTIVATION_HAD_ERROR_REPLY_SHFT 31
  321. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_COMPLETED_GB_ACTIVATION_HAD_ERROR_REPLY_MASK 0x0000000080000000UL
  322. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_COMPLETED_GB_ACTIVATION_TIMEOUT_SHFT 32
  323. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_COMPLETED_GB_ACTIVATION_TIMEOUT_MASK 0x0000000100000000UL
  324. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_DESCRIPTOR_BUFFER_0_PARITY_SHFT 33
  325. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_DESCRIPTOR_BUFFER_0_PARITY_MASK 0x0000000200000000UL
  326. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_DESCRIPTOR_BUFFER_1_PARITY_SHFT 34
  327. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_DESCRIPTOR_BUFFER_1_PARITY_MASK 0x0000000400000000UL
  328. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_SOCKET_DESTINATION_TABLE_PARITY_SHFT 35
  329. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_SOCKET_DESTINATION_TABLE_PARITY_MASK 0x0000000800000000UL
  330. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_BAU_REPLY_PAYLOAD_CORRUPTION_SHFT 36
  331. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_BAU_REPLY_PAYLOAD_CORRUPTION_MASK 0x0000001000000000UL
  332. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_IO_PORT_DESTINATION_TABLE_PARITY_SHFT 37
  333. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_IO_PORT_DESTINATION_TABLE_PARITY_MASK 0x0000002000000000UL
  334. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INTD_SOFT_ACK_TIMEOUT_SHFT 38
  335. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INTD_SOFT_ACK_TIMEOUT_MASK 0x0000004000000000UL
  336. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INT_REP_OBESE_MSG_SHFT 39
  337. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INT_REP_OBESE_MSG_MASK 0x0000008000000000UL
  338. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INT_REP_COMMAND_ERR_SHFT 40
  339. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INT_REP_COMMAND_ERR_MASK 0x0000010000000000UL
  340. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INT_TIMEOUT_SHFT 41
  341. #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INT_TIMEOUT_MASK 0x0000020000000000UL
  342. union uvh_lb_mcast_aoerr0_rpt_enable_u {
  343. unsigned long v;
  344. struct uvh_lb_mcast_aoerr0_rpt_enable_s {
  345. unsigned long mcast_obese_msg : 1; /* RW */
  346. unsigned long mcast_data_sb_err : 1; /* RW */
  347. unsigned long mcast_nack_buff_parity : 1; /* RW */
  348. unsigned long mcast_timeout : 1; /* RW */
  349. unsigned long mcast_inactive_reply : 1; /* RW */
  350. unsigned long mcast_upgrade_error : 1; /* RW */
  351. unsigned long mcast_reg_count_underflow : 1; /* RW */
  352. unsigned long mcast_rep_obese_msg : 1; /* RW */
  353. unsigned long ucache_req_runt_msg : 1; /* RW */
  354. unsigned long ucache_req_obese_msg : 1; /* RW */
  355. unsigned long ucache_req_data_sb_err : 1; /* RW */
  356. unsigned long ucache_rep_runt_msg : 1; /* RW */
  357. unsigned long ucache_rep_obese_msg : 1; /* RW */
  358. unsigned long ucache_rep_data_sb_err : 1; /* RW */
  359. unsigned long ucache_rep_command_err : 1; /* RW */
  360. unsigned long ucache_pend_timeout : 1; /* RW */
  361. unsigned long macc_req_runt_msg : 1; /* RW */
  362. unsigned long macc_req_obese_msg : 1; /* RW */
  363. unsigned long macc_req_data_sb_err : 1; /* RW */
  364. unsigned long macc_rep_runt_msg : 1; /* RW */
  365. unsigned long macc_rep_obese_msg : 1; /* RW */
  366. unsigned long macc_rep_data_sb_err : 1; /* RW */
  367. unsigned long macc_timeout : 1; /* RW */
  368. unsigned long macc_spurious_event : 1; /* RW */
  369. unsigned long ioh_destination_table_parity : 1; /* RW */
  370. unsigned long get_had_error_reply : 1; /* RW */
  371. unsigned long get_timeout : 1; /* RW */
  372. unsigned long lock_manager_had_error_reply : 1; /* RW */
  373. unsigned long put_had_error_reply : 1; /* RW */
  374. unsigned long put_timeout : 1; /* RW */
  375. unsigned long sb_activation_overrun : 1; /* RW */
  376. unsigned long completed_gb_activation_had_error_reply : 1; /* RW */
  377. unsigned long completed_gb_activation_timeout : 1; /* RW */
  378. unsigned long descriptor_buffer_0_parity : 1; /* RW */
  379. unsigned long descriptor_buffer_1_parity : 1; /* RW */
  380. unsigned long socket_destination_table_parity : 1; /* RW */
  381. unsigned long bau_reply_payload_corruption : 1; /* RW */
  382. unsigned long io_port_destination_table_parity : 1; /* RW */
  383. unsigned long intd_soft_ack_timeout : 1; /* RW */
  384. unsigned long int_rep_obese_msg : 1; /* RW */
  385. unsigned long int_rep_command_err : 1; /* RW */
  386. unsigned long int_timeout : 1; /* RW */
  387. unsigned long rsvd_42_63 : 22; /* */
  388. } s;
  389. };
  390. /* ========================================================================= */
  391. /* UVH_LOCAL_INT0_CONFIG */
  392. /* ========================================================================= */
  393. #define UVH_LOCAL_INT0_CONFIG 0x61000UL
  394. #define UVH_LOCAL_INT0_CONFIG_VECTOR_SHFT 0
  395. #define UVH_LOCAL_INT0_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  396. #define UVH_LOCAL_INT0_CONFIG_DM_SHFT 8
  397. #define UVH_LOCAL_INT0_CONFIG_DM_MASK 0x0000000000000700UL
  398. #define UVH_LOCAL_INT0_CONFIG_DESTMODE_SHFT 11
  399. #define UVH_LOCAL_INT0_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  400. #define UVH_LOCAL_INT0_CONFIG_STATUS_SHFT 12
  401. #define UVH_LOCAL_INT0_CONFIG_STATUS_MASK 0x0000000000001000UL
  402. #define UVH_LOCAL_INT0_CONFIG_P_SHFT 13
  403. #define UVH_LOCAL_INT0_CONFIG_P_MASK 0x0000000000002000UL
  404. #define UVH_LOCAL_INT0_CONFIG_T_SHFT 15
  405. #define UVH_LOCAL_INT0_CONFIG_T_MASK 0x0000000000008000UL
  406. #define UVH_LOCAL_INT0_CONFIG_M_SHFT 16
  407. #define UVH_LOCAL_INT0_CONFIG_M_MASK 0x0000000000010000UL
  408. #define UVH_LOCAL_INT0_CONFIG_APIC_ID_SHFT 32
  409. #define UVH_LOCAL_INT0_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  410. union uvh_local_int0_config_u {
  411. unsigned long v;
  412. struct uvh_local_int0_config_s {
  413. unsigned long vector_ : 8; /* RW */
  414. unsigned long dm : 3; /* RW */
  415. unsigned long destmode : 1; /* RW */
  416. unsigned long status : 1; /* RO */
  417. unsigned long p : 1; /* RO */
  418. unsigned long rsvd_14 : 1; /* */
  419. unsigned long t : 1; /* RO */
  420. unsigned long m : 1; /* RW */
  421. unsigned long rsvd_17_31: 15; /* */
  422. unsigned long apic_id : 32; /* RW */
  423. } s;
  424. };
  425. /* ========================================================================= */
  426. /* UVH_LOCAL_INT0_ENABLE */
  427. /* ========================================================================= */
  428. #define UVH_LOCAL_INT0_ENABLE 0x65000UL
  429. #define UVH_LOCAL_INT0_ENABLE_LB_HCERR_SHFT 0
  430. #define UVH_LOCAL_INT0_ENABLE_LB_HCERR_MASK 0x0000000000000001UL
  431. #define UVH_LOCAL_INT0_ENABLE_GR0_HCERR_SHFT 1
  432. #define UVH_LOCAL_INT0_ENABLE_GR0_HCERR_MASK 0x0000000000000002UL
  433. #define UVH_LOCAL_INT0_ENABLE_GR1_HCERR_SHFT 2
  434. #define UVH_LOCAL_INT0_ENABLE_GR1_HCERR_MASK 0x0000000000000004UL
  435. #define UVH_LOCAL_INT0_ENABLE_LH_HCERR_SHFT 3
  436. #define UVH_LOCAL_INT0_ENABLE_LH_HCERR_MASK 0x0000000000000008UL
  437. #define UVH_LOCAL_INT0_ENABLE_RH_HCERR_SHFT 4
  438. #define UVH_LOCAL_INT0_ENABLE_RH_HCERR_MASK 0x0000000000000010UL
  439. #define UVH_LOCAL_INT0_ENABLE_XN_HCERR_SHFT 5
  440. #define UVH_LOCAL_INT0_ENABLE_XN_HCERR_MASK 0x0000000000000020UL
  441. #define UVH_LOCAL_INT0_ENABLE_SI_HCERR_SHFT 6
  442. #define UVH_LOCAL_INT0_ENABLE_SI_HCERR_MASK 0x0000000000000040UL
  443. #define UVH_LOCAL_INT0_ENABLE_LB_AOERR0_SHFT 7
  444. #define UVH_LOCAL_INT0_ENABLE_LB_AOERR0_MASK 0x0000000000000080UL
  445. #define UVH_LOCAL_INT0_ENABLE_GR0_AOERR0_SHFT 8
  446. #define UVH_LOCAL_INT0_ENABLE_GR0_AOERR0_MASK 0x0000000000000100UL
  447. #define UVH_LOCAL_INT0_ENABLE_GR1_AOERR0_SHFT 9
  448. #define UVH_LOCAL_INT0_ENABLE_GR1_AOERR0_MASK 0x0000000000000200UL
  449. #define UVH_LOCAL_INT0_ENABLE_LH_AOERR0_SHFT 10
  450. #define UVH_LOCAL_INT0_ENABLE_LH_AOERR0_MASK 0x0000000000000400UL
  451. #define UVH_LOCAL_INT0_ENABLE_RH_AOERR0_SHFT 11
  452. #define UVH_LOCAL_INT0_ENABLE_RH_AOERR0_MASK 0x0000000000000800UL
  453. #define UVH_LOCAL_INT0_ENABLE_XN_AOERR0_SHFT 12
  454. #define UVH_LOCAL_INT0_ENABLE_XN_AOERR0_MASK 0x0000000000001000UL
  455. #define UVH_LOCAL_INT0_ENABLE_SI_AOERR0_SHFT 13
  456. #define UVH_LOCAL_INT0_ENABLE_SI_AOERR0_MASK 0x0000000000002000UL
  457. #define UVH_LOCAL_INT0_ENABLE_LB_AOERR1_SHFT 14
  458. #define UVH_LOCAL_INT0_ENABLE_LB_AOERR1_MASK 0x0000000000004000UL
  459. #define UVH_LOCAL_INT0_ENABLE_GR0_AOERR1_SHFT 15
  460. #define UVH_LOCAL_INT0_ENABLE_GR0_AOERR1_MASK 0x0000000000008000UL
  461. #define UVH_LOCAL_INT0_ENABLE_GR1_AOERR1_SHFT 16
  462. #define UVH_LOCAL_INT0_ENABLE_GR1_AOERR1_MASK 0x0000000000010000UL
  463. #define UVH_LOCAL_INT0_ENABLE_LH_AOERR1_SHFT 17
  464. #define UVH_LOCAL_INT0_ENABLE_LH_AOERR1_MASK 0x0000000000020000UL
  465. #define UVH_LOCAL_INT0_ENABLE_RH_AOERR1_SHFT 18
  466. #define UVH_LOCAL_INT0_ENABLE_RH_AOERR1_MASK 0x0000000000040000UL
  467. #define UVH_LOCAL_INT0_ENABLE_XN_AOERR1_SHFT 19
  468. #define UVH_LOCAL_INT0_ENABLE_XN_AOERR1_MASK 0x0000000000080000UL
  469. #define UVH_LOCAL_INT0_ENABLE_SI_AOERR1_SHFT 20
  470. #define UVH_LOCAL_INT0_ENABLE_SI_AOERR1_MASK 0x0000000000100000UL
  471. #define UVH_LOCAL_INT0_ENABLE_RH_VPI_INT_SHFT 21
  472. #define UVH_LOCAL_INT0_ENABLE_RH_VPI_INT_MASK 0x0000000000200000UL
  473. #define UVH_LOCAL_INT0_ENABLE_SYSTEM_SHUTDOWN_INT_SHFT 22
  474. #define UVH_LOCAL_INT0_ENABLE_SYSTEM_SHUTDOWN_INT_MASK 0x0000000000400000UL
  475. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_0_SHFT 23
  476. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_0_MASK 0x0000000000800000UL
  477. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_1_SHFT 24
  478. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_1_MASK 0x0000000001000000UL
  479. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_2_SHFT 25
  480. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_2_MASK 0x0000000002000000UL
  481. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_3_SHFT 26
  482. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_3_MASK 0x0000000004000000UL
  483. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_4_SHFT 27
  484. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_4_MASK 0x0000000008000000UL
  485. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_5_SHFT 28
  486. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_5_MASK 0x0000000010000000UL
  487. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_6_SHFT 29
  488. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_6_MASK 0x0000000020000000UL
  489. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_7_SHFT 30
  490. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_7_MASK 0x0000000040000000UL
  491. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_8_SHFT 31
  492. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_8_MASK 0x0000000080000000UL
  493. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_9_SHFT 32
  494. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_9_MASK 0x0000000100000000UL
  495. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_10_SHFT 33
  496. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_10_MASK 0x0000000200000000UL
  497. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_11_SHFT 34
  498. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_11_MASK 0x0000000400000000UL
  499. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_12_SHFT 35
  500. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_12_MASK 0x0000000800000000UL
  501. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_13_SHFT 36
  502. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_13_MASK 0x0000001000000000UL
  503. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_14_SHFT 37
  504. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_14_MASK 0x0000002000000000UL
  505. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_15_SHFT 38
  506. #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_15_MASK 0x0000004000000000UL
  507. #define UVH_LOCAL_INT0_ENABLE_L1_NMI_INT_SHFT 39
  508. #define UVH_LOCAL_INT0_ENABLE_L1_NMI_INT_MASK 0x0000008000000000UL
  509. #define UVH_LOCAL_INT0_ENABLE_STOP_CLOCK_SHFT 40
  510. #define UVH_LOCAL_INT0_ENABLE_STOP_CLOCK_MASK 0x0000010000000000UL
  511. #define UVH_LOCAL_INT0_ENABLE_ASIC_TO_L1_SHFT 41
  512. #define UVH_LOCAL_INT0_ENABLE_ASIC_TO_L1_MASK 0x0000020000000000UL
  513. #define UVH_LOCAL_INT0_ENABLE_L1_TO_ASIC_SHFT 42
  514. #define UVH_LOCAL_INT0_ENABLE_L1_TO_ASIC_MASK 0x0000040000000000UL
  515. #define UVH_LOCAL_INT0_ENABLE_LTC_INT_SHFT 43
  516. #define UVH_LOCAL_INT0_ENABLE_LTC_INT_MASK 0x0000080000000000UL
  517. #define UVH_LOCAL_INT0_ENABLE_LA_SEQ_TRIGGER_SHFT 44
  518. #define UVH_LOCAL_INT0_ENABLE_LA_SEQ_TRIGGER_MASK 0x0000100000000000UL
  519. union uvh_local_int0_enable_u {
  520. unsigned long v;
  521. struct uvh_local_int0_enable_s {
  522. unsigned long lb_hcerr : 1; /* RW */
  523. unsigned long gr0_hcerr : 1; /* RW */
  524. unsigned long gr1_hcerr : 1; /* RW */
  525. unsigned long lh_hcerr : 1; /* RW */
  526. unsigned long rh_hcerr : 1; /* RW */
  527. unsigned long xn_hcerr : 1; /* RW */
  528. unsigned long si_hcerr : 1; /* RW */
  529. unsigned long lb_aoerr0 : 1; /* RW */
  530. unsigned long gr0_aoerr0 : 1; /* RW */
  531. unsigned long gr1_aoerr0 : 1; /* RW */
  532. unsigned long lh_aoerr0 : 1; /* RW */
  533. unsigned long rh_aoerr0 : 1; /* RW */
  534. unsigned long xn_aoerr0 : 1; /* RW */
  535. unsigned long si_aoerr0 : 1; /* RW */
  536. unsigned long lb_aoerr1 : 1; /* RW */
  537. unsigned long gr0_aoerr1 : 1; /* RW */
  538. unsigned long gr1_aoerr1 : 1; /* RW */
  539. unsigned long lh_aoerr1 : 1; /* RW */
  540. unsigned long rh_aoerr1 : 1; /* RW */
  541. unsigned long xn_aoerr1 : 1; /* RW */
  542. unsigned long si_aoerr1 : 1; /* RW */
  543. unsigned long rh_vpi_int : 1; /* RW */
  544. unsigned long system_shutdown_int : 1; /* RW */
  545. unsigned long lb_irq_int_0 : 1; /* RW */
  546. unsigned long lb_irq_int_1 : 1; /* RW */
  547. unsigned long lb_irq_int_2 : 1; /* RW */
  548. unsigned long lb_irq_int_3 : 1; /* RW */
  549. unsigned long lb_irq_int_4 : 1; /* RW */
  550. unsigned long lb_irq_int_5 : 1; /* RW */
  551. unsigned long lb_irq_int_6 : 1; /* RW */
  552. unsigned long lb_irq_int_7 : 1; /* RW */
  553. unsigned long lb_irq_int_8 : 1; /* RW */
  554. unsigned long lb_irq_int_9 : 1; /* RW */
  555. unsigned long lb_irq_int_10 : 1; /* RW */
  556. unsigned long lb_irq_int_11 : 1; /* RW */
  557. unsigned long lb_irq_int_12 : 1; /* RW */
  558. unsigned long lb_irq_int_13 : 1; /* RW */
  559. unsigned long lb_irq_int_14 : 1; /* RW */
  560. unsigned long lb_irq_int_15 : 1; /* RW */
  561. unsigned long l1_nmi_int : 1; /* RW */
  562. unsigned long stop_clock : 1; /* RW */
  563. unsigned long asic_to_l1 : 1; /* RW */
  564. unsigned long l1_to_asic : 1; /* RW */
  565. unsigned long ltc_int : 1; /* RW */
  566. unsigned long la_seq_trigger : 1; /* RW */
  567. unsigned long rsvd_45_63 : 19; /* */
  568. } s;
  569. };
  570. /* ========================================================================= */
  571. /* UVH_NODE_ID */
  572. /* ========================================================================= */
  573. #define UVH_NODE_ID 0x0UL
  574. #define UVH_NODE_ID_FORCE1_SHFT 0
  575. #define UVH_NODE_ID_FORCE1_MASK 0x0000000000000001UL
  576. #define UVH_NODE_ID_MANUFACTURER_SHFT 1
  577. #define UVH_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
  578. #define UVH_NODE_ID_PART_NUMBER_SHFT 12
  579. #define UVH_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
  580. #define UVH_NODE_ID_REVISION_SHFT 28
  581. #define UVH_NODE_ID_REVISION_MASK 0x00000000f0000000UL
  582. #define UVH_NODE_ID_NODE_ID_SHFT 32
  583. #define UVH_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
  584. #define UVH_NODE_ID_NODES_PER_BIT_SHFT 48
  585. #define UVH_NODE_ID_NODES_PER_BIT_MASK 0x007f000000000000UL
  586. #define UVH_NODE_ID_NI_PORT_SHFT 56
  587. #define UVH_NODE_ID_NI_PORT_MASK 0x0f00000000000000UL
  588. union uvh_node_id_u {
  589. unsigned long v;
  590. struct uvh_node_id_s {
  591. unsigned long force1 : 1; /* RO */
  592. unsigned long manufacturer : 11; /* RO */
  593. unsigned long part_number : 16; /* RO */
  594. unsigned long revision : 4; /* RO */
  595. unsigned long node_id : 15; /* RW */
  596. unsigned long rsvd_47 : 1; /* */
  597. unsigned long nodes_per_bit : 7; /* RW */
  598. unsigned long rsvd_55 : 1; /* */
  599. unsigned long ni_port : 4; /* RO */
  600. unsigned long rsvd_60_63 : 4; /* */
  601. } s;
  602. };
  603. /* ========================================================================= */
  604. /* UVH_NODE_PRESENT_TABLE */
  605. /* ========================================================================= */
  606. #define UVH_NODE_PRESENT_TABLE 0x1400UL
  607. #define UVH_NODE_PRESENT_TABLE_DEPTH 16
  608. #define UVH_NODE_PRESENT_TABLE_NODES_SHFT 0
  609. #define UVH_NODE_PRESENT_TABLE_NODES_MASK 0xffffffffffffffffUL
  610. union uvh_node_present_table_u {
  611. unsigned long v;
  612. struct uvh_node_present_table_s {
  613. unsigned long nodes : 64; /* RW */
  614. } s;
  615. };
  616. /* ========================================================================= */
  617. /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR */
  618. /* ========================================================================= */
  619. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR 0x16000d0UL
  620. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_SHFT 24
  621. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_MASK 0x00003fffff000000UL
  622. union uvh_rh_gam_alias210_redirect_config_0_mmr_u {
  623. unsigned long v;
  624. struct uvh_rh_gam_alias210_redirect_config_0_mmr_s {
  625. unsigned long rsvd_0_23 : 24; /* */
  626. unsigned long dest_base : 22; /* RW */
  627. unsigned long rsvd_46_63: 18; /* */
  628. } s;
  629. };
  630. /* ========================================================================= */
  631. /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR */
  632. /* ========================================================================= */
  633. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR 0x16000e0UL
  634. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_SHFT 24
  635. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_MASK 0x00003fffff000000UL
  636. union uvh_rh_gam_alias210_redirect_config_1_mmr_u {
  637. unsigned long v;
  638. struct uvh_rh_gam_alias210_redirect_config_1_mmr_s {
  639. unsigned long rsvd_0_23 : 24; /* */
  640. unsigned long dest_base : 22; /* RW */
  641. unsigned long rsvd_46_63: 18; /* */
  642. } s;
  643. };
  644. /* ========================================================================= */
  645. /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR */
  646. /* ========================================================================= */
  647. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR 0x16000f0UL
  648. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_SHFT 24
  649. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_MASK 0x00003fffff000000UL
  650. union uvh_rh_gam_alias210_redirect_config_2_mmr_u {
  651. unsigned long v;
  652. struct uvh_rh_gam_alias210_redirect_config_2_mmr_s {
  653. unsigned long rsvd_0_23 : 24; /* */
  654. unsigned long dest_base : 22; /* RW */
  655. unsigned long rsvd_46_63: 18; /* */
  656. } s;
  657. };
  658. /* ========================================================================= */
  659. /* UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR */
  660. /* ========================================================================= */
  661. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL
  662. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
  663. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
  664. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_GR4_SHFT 46
  665. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_GR4_MASK 0x0000400000000000UL
  666. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52
  667. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL
  668. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  669. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  670. union uvh_rh_gam_gru_overlay_config_mmr_u {
  671. unsigned long v;
  672. struct uvh_rh_gam_gru_overlay_config_mmr_s {
  673. unsigned long rsvd_0_27: 28; /* */
  674. unsigned long base : 18; /* RW */
  675. unsigned long gr4 : 1; /* RW */
  676. unsigned long rsvd_47_51: 5; /* */
  677. unsigned long n_gru : 4; /* RW */
  678. unsigned long rsvd_56_62: 7; /* */
  679. unsigned long enable : 1; /* RW */
  680. } s;
  681. };
  682. /* ========================================================================= */
  683. /* UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR */
  684. /* ========================================================================= */
  685. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL
  686. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
  687. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
  688. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_DUAL_HUB_SHFT 46
  689. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_DUAL_HUB_MASK 0x0000400000000000UL
  690. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  691. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  692. union uvh_rh_gam_mmr_overlay_config_mmr_u {
  693. unsigned long v;
  694. struct uvh_rh_gam_mmr_overlay_config_mmr_s {
  695. unsigned long rsvd_0_25: 26; /* */
  696. unsigned long base : 20; /* RW */
  697. unsigned long dual_hub : 1; /* RW */
  698. unsigned long rsvd_47_62: 16; /* */
  699. unsigned long enable : 1; /* RW */
  700. } s;
  701. };
  702. /* ========================================================================= */
  703. /* UVH_RTC */
  704. /* ========================================================================= */
  705. #define UVH_RTC 0x28000UL
  706. #define UVH_RTC_REAL_TIME_CLOCK_SHFT 0
  707. #define UVH_RTC_REAL_TIME_CLOCK_MASK 0x00ffffffffffffffUL
  708. union uvh_rtc_u {
  709. unsigned long v;
  710. struct uvh_rtc_s {
  711. unsigned long real_time_clock : 56; /* RW */
  712. unsigned long rsvd_56_63 : 8; /* */
  713. } s;
  714. };
  715. /* ========================================================================= */
  716. /* UVH_SI_ADDR_MAP_CONFIG */
  717. /* ========================================================================= */
  718. #define UVH_SI_ADDR_MAP_CONFIG 0xc80000UL
  719. #define UVH_SI_ADDR_MAP_CONFIG_M_SKT_SHFT 0
  720. #define UVH_SI_ADDR_MAP_CONFIG_M_SKT_MASK 0x000000000000003fUL
  721. #define UVH_SI_ADDR_MAP_CONFIG_N_SKT_SHFT 8
  722. #define UVH_SI_ADDR_MAP_CONFIG_N_SKT_MASK 0x0000000000000f00UL
  723. union uvh_si_addr_map_config_u {
  724. unsigned long v;
  725. struct uvh_si_addr_map_config_s {
  726. unsigned long m_skt : 6; /* RW */
  727. unsigned long rsvd_6_7: 2; /* */
  728. unsigned long n_skt : 4; /* RW */
  729. unsigned long rsvd_12_63: 52; /* */
  730. } s;
  731. };
  732. /* ========================================================================= */
  733. /* UVH_SI_ALIAS0_OVERLAY_CONFIG */
  734. /* ========================================================================= */
  735. #define UVH_SI_ALIAS0_OVERLAY_CONFIG 0xc80008UL
  736. #define UVH_SI_ALIAS0_OVERLAY_CONFIG_BASE_SHFT 24
  737. #define UVH_SI_ALIAS0_OVERLAY_CONFIG_BASE_MASK 0x00000000ff000000UL
  738. #define UVH_SI_ALIAS0_OVERLAY_CONFIG_M_ALIAS_SHFT 48
  739. #define UVH_SI_ALIAS0_OVERLAY_CONFIG_M_ALIAS_MASK 0x001f000000000000UL
  740. #define UVH_SI_ALIAS0_OVERLAY_CONFIG_ENABLE_SHFT 63
  741. #define UVH_SI_ALIAS0_OVERLAY_CONFIG_ENABLE_MASK 0x8000000000000000UL
  742. union uvh_si_alias0_overlay_config_u {
  743. unsigned long v;
  744. struct uvh_si_alias0_overlay_config_s {
  745. unsigned long rsvd_0_23: 24; /* */
  746. unsigned long base : 8; /* RW */
  747. unsigned long rsvd_32_47: 16; /* */
  748. unsigned long m_alias : 5; /* RW */
  749. unsigned long rsvd_53_62: 10; /* */
  750. unsigned long enable : 1; /* RW */
  751. } s;
  752. };
  753. /* ========================================================================= */
  754. /* UVH_SI_ALIAS1_OVERLAY_CONFIG */
  755. /* ========================================================================= */
  756. #define UVH_SI_ALIAS1_OVERLAY_CONFIG 0xc80010UL
  757. #define UVH_SI_ALIAS1_OVERLAY_CONFIG_BASE_SHFT 24
  758. #define UVH_SI_ALIAS1_OVERLAY_CONFIG_BASE_MASK 0x00000000ff000000UL
  759. #define UVH_SI_ALIAS1_OVERLAY_CONFIG_M_ALIAS_SHFT 48
  760. #define UVH_SI_ALIAS1_OVERLAY_CONFIG_M_ALIAS_MASK 0x001f000000000000UL
  761. #define UVH_SI_ALIAS1_OVERLAY_CONFIG_ENABLE_SHFT 63
  762. #define UVH_SI_ALIAS1_OVERLAY_CONFIG_ENABLE_MASK 0x8000000000000000UL
  763. union uvh_si_alias1_overlay_config_u {
  764. unsigned long v;
  765. struct uvh_si_alias1_overlay_config_s {
  766. unsigned long rsvd_0_23: 24; /* */
  767. unsigned long base : 8; /* RW */
  768. unsigned long rsvd_32_47: 16; /* */
  769. unsigned long m_alias : 5; /* RW */
  770. unsigned long rsvd_53_62: 10; /* */
  771. unsigned long enable : 1; /* RW */
  772. } s;
  773. };
  774. /* ========================================================================= */
  775. /* UVH_SI_ALIAS2_OVERLAY_CONFIG */
  776. /* ========================================================================= */
  777. #define UVH_SI_ALIAS2_OVERLAY_CONFIG 0xc80018UL
  778. #define UVH_SI_ALIAS2_OVERLAY_CONFIG_BASE_SHFT 24
  779. #define UVH_SI_ALIAS2_OVERLAY_CONFIG_BASE_MASK 0x00000000ff000000UL
  780. #define UVH_SI_ALIAS2_OVERLAY_CONFIG_M_ALIAS_SHFT 48
  781. #define UVH_SI_ALIAS2_OVERLAY_CONFIG_M_ALIAS_MASK 0x001f000000000000UL
  782. #define UVH_SI_ALIAS2_OVERLAY_CONFIG_ENABLE_SHFT 63
  783. #define UVH_SI_ALIAS2_OVERLAY_CONFIG_ENABLE_MASK 0x8000000000000000UL
  784. union uvh_si_alias2_overlay_config_u {
  785. unsigned long v;
  786. struct uvh_si_alias2_overlay_config_s {
  787. unsigned long rsvd_0_23: 24; /* */
  788. unsigned long base : 8; /* RW */
  789. unsigned long rsvd_32_47: 16; /* */
  790. unsigned long m_alias : 5; /* RW */
  791. unsigned long rsvd_53_62: 10; /* */
  792. unsigned long enable : 1; /* RW */
  793. } s;
  794. };
  795. #endif /* __ASM_X86_UV_MMRS__ */