uv_mmrs.h 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825
  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_IA64_UV_UV_MMRS_H
  11. #define _ASM_IA64_UV_UV_MMRS_H
  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 0x0438
  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_EVENT_OCCURRED0 */
  51. /* ========================================================================= */
  52. #define UVH_EVENT_OCCURRED0 0x70000UL
  53. #define UVH_EVENT_OCCURRED0_32 0x005e8
  54. #define UVH_EVENT_OCCURRED0_LB_HCERR_SHFT 0
  55. #define UVH_EVENT_OCCURRED0_LB_HCERR_MASK 0x0000000000000001UL
  56. #define UVH_EVENT_OCCURRED0_GR0_HCERR_SHFT 1
  57. #define UVH_EVENT_OCCURRED0_GR0_HCERR_MASK 0x0000000000000002UL
  58. #define UVH_EVENT_OCCURRED0_GR1_HCERR_SHFT 2
  59. #define UVH_EVENT_OCCURRED0_GR1_HCERR_MASK 0x0000000000000004UL
  60. #define UVH_EVENT_OCCURRED0_LH_HCERR_SHFT 3
  61. #define UVH_EVENT_OCCURRED0_LH_HCERR_MASK 0x0000000000000008UL
  62. #define UVH_EVENT_OCCURRED0_RH_HCERR_SHFT 4
  63. #define UVH_EVENT_OCCURRED0_RH_HCERR_MASK 0x0000000000000010UL
  64. #define UVH_EVENT_OCCURRED0_XN_HCERR_SHFT 5
  65. #define UVH_EVENT_OCCURRED0_XN_HCERR_MASK 0x0000000000000020UL
  66. #define UVH_EVENT_OCCURRED0_SI_HCERR_SHFT 6
  67. #define UVH_EVENT_OCCURRED0_SI_HCERR_MASK 0x0000000000000040UL
  68. #define UVH_EVENT_OCCURRED0_LB_AOERR0_SHFT 7
  69. #define UVH_EVENT_OCCURRED0_LB_AOERR0_MASK 0x0000000000000080UL
  70. #define UVH_EVENT_OCCURRED0_GR0_AOERR0_SHFT 8
  71. #define UVH_EVENT_OCCURRED0_GR0_AOERR0_MASK 0x0000000000000100UL
  72. #define UVH_EVENT_OCCURRED0_GR1_AOERR0_SHFT 9
  73. #define UVH_EVENT_OCCURRED0_GR1_AOERR0_MASK 0x0000000000000200UL
  74. #define UVH_EVENT_OCCURRED0_LH_AOERR0_SHFT 10
  75. #define UVH_EVENT_OCCURRED0_LH_AOERR0_MASK 0x0000000000000400UL
  76. #define UVH_EVENT_OCCURRED0_RH_AOERR0_SHFT 11
  77. #define UVH_EVENT_OCCURRED0_RH_AOERR0_MASK 0x0000000000000800UL
  78. #define UVH_EVENT_OCCURRED0_XN_AOERR0_SHFT 12
  79. #define UVH_EVENT_OCCURRED0_XN_AOERR0_MASK 0x0000000000001000UL
  80. #define UVH_EVENT_OCCURRED0_SI_AOERR0_SHFT 13
  81. #define UVH_EVENT_OCCURRED0_SI_AOERR0_MASK 0x0000000000002000UL
  82. #define UVH_EVENT_OCCURRED0_LB_AOERR1_SHFT 14
  83. #define UVH_EVENT_OCCURRED0_LB_AOERR1_MASK 0x0000000000004000UL
  84. #define UVH_EVENT_OCCURRED0_GR0_AOERR1_SHFT 15
  85. #define UVH_EVENT_OCCURRED0_GR0_AOERR1_MASK 0x0000000000008000UL
  86. #define UVH_EVENT_OCCURRED0_GR1_AOERR1_SHFT 16
  87. #define UVH_EVENT_OCCURRED0_GR1_AOERR1_MASK 0x0000000000010000UL
  88. #define UVH_EVENT_OCCURRED0_LH_AOERR1_SHFT 17
  89. #define UVH_EVENT_OCCURRED0_LH_AOERR1_MASK 0x0000000000020000UL
  90. #define UVH_EVENT_OCCURRED0_RH_AOERR1_SHFT 18
  91. #define UVH_EVENT_OCCURRED0_RH_AOERR1_MASK 0x0000000000040000UL
  92. #define UVH_EVENT_OCCURRED0_XN_AOERR1_SHFT 19
  93. #define UVH_EVENT_OCCURRED0_XN_AOERR1_MASK 0x0000000000080000UL
  94. #define UVH_EVENT_OCCURRED0_SI_AOERR1_SHFT 20
  95. #define UVH_EVENT_OCCURRED0_SI_AOERR1_MASK 0x0000000000100000UL
  96. #define UVH_EVENT_OCCURRED0_RH_VPI_INT_SHFT 21
  97. #define UVH_EVENT_OCCURRED0_RH_VPI_INT_MASK 0x0000000000200000UL
  98. #define UVH_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_SHFT 22
  99. #define UVH_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_MASK 0x0000000000400000UL
  100. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_0_SHFT 23
  101. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_0_MASK 0x0000000000800000UL
  102. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_1_SHFT 24
  103. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_1_MASK 0x0000000001000000UL
  104. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_2_SHFT 25
  105. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_2_MASK 0x0000000002000000UL
  106. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_3_SHFT 26
  107. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_3_MASK 0x0000000004000000UL
  108. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_4_SHFT 27
  109. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_4_MASK 0x0000000008000000UL
  110. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_5_SHFT 28
  111. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_5_MASK 0x0000000010000000UL
  112. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_6_SHFT 29
  113. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_6_MASK 0x0000000020000000UL
  114. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_7_SHFT 30
  115. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_7_MASK 0x0000000040000000UL
  116. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_8_SHFT 31
  117. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_8_MASK 0x0000000080000000UL
  118. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_9_SHFT 32
  119. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_9_MASK 0x0000000100000000UL
  120. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_10_SHFT 33
  121. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_10_MASK 0x0000000200000000UL
  122. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_11_SHFT 34
  123. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_11_MASK 0x0000000400000000UL
  124. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_12_SHFT 35
  125. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_12_MASK 0x0000000800000000UL
  126. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_13_SHFT 36
  127. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_13_MASK 0x0000001000000000UL
  128. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_14_SHFT 37
  129. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_14_MASK 0x0000002000000000UL
  130. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_15_SHFT 38
  131. #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_15_MASK 0x0000004000000000UL
  132. #define UVH_EVENT_OCCURRED0_L1_NMI_INT_SHFT 39
  133. #define UVH_EVENT_OCCURRED0_L1_NMI_INT_MASK 0x0000008000000000UL
  134. #define UVH_EVENT_OCCURRED0_STOP_CLOCK_SHFT 40
  135. #define UVH_EVENT_OCCURRED0_STOP_CLOCK_MASK 0x0000010000000000UL
  136. #define UVH_EVENT_OCCURRED0_ASIC_TO_L1_SHFT 41
  137. #define UVH_EVENT_OCCURRED0_ASIC_TO_L1_MASK 0x0000020000000000UL
  138. #define UVH_EVENT_OCCURRED0_L1_TO_ASIC_SHFT 42
  139. #define UVH_EVENT_OCCURRED0_L1_TO_ASIC_MASK 0x0000040000000000UL
  140. #define UVH_EVENT_OCCURRED0_LTC_INT_SHFT 43
  141. #define UVH_EVENT_OCCURRED0_LTC_INT_MASK 0x0000080000000000UL
  142. #define UVH_EVENT_OCCURRED0_LA_SEQ_TRIGGER_SHFT 44
  143. #define UVH_EVENT_OCCURRED0_LA_SEQ_TRIGGER_MASK 0x0000100000000000UL
  144. #define UVH_EVENT_OCCURRED0_IPI_INT_SHFT 45
  145. #define UVH_EVENT_OCCURRED0_IPI_INT_MASK 0x0000200000000000UL
  146. #define UVH_EVENT_OCCURRED0_EXTIO_INT0_SHFT 46
  147. #define UVH_EVENT_OCCURRED0_EXTIO_INT0_MASK 0x0000400000000000UL
  148. #define UVH_EVENT_OCCURRED0_EXTIO_INT1_SHFT 47
  149. #define UVH_EVENT_OCCURRED0_EXTIO_INT1_MASK 0x0000800000000000UL
  150. #define UVH_EVENT_OCCURRED0_EXTIO_INT2_SHFT 48
  151. #define UVH_EVENT_OCCURRED0_EXTIO_INT2_MASK 0x0001000000000000UL
  152. #define UVH_EVENT_OCCURRED0_EXTIO_INT3_SHFT 49
  153. #define UVH_EVENT_OCCURRED0_EXTIO_INT3_MASK 0x0002000000000000UL
  154. #define UVH_EVENT_OCCURRED0_PROFILE_INT_SHFT 50
  155. #define UVH_EVENT_OCCURRED0_PROFILE_INT_MASK 0x0004000000000000UL
  156. #define UVH_EVENT_OCCURRED0_RTC0_SHFT 51
  157. #define UVH_EVENT_OCCURRED0_RTC0_MASK 0x0008000000000000UL
  158. #define UVH_EVENT_OCCURRED0_RTC1_SHFT 52
  159. #define UVH_EVENT_OCCURRED0_RTC1_MASK 0x0010000000000000UL
  160. #define UVH_EVENT_OCCURRED0_RTC2_SHFT 53
  161. #define UVH_EVENT_OCCURRED0_RTC2_MASK 0x0020000000000000UL
  162. #define UVH_EVENT_OCCURRED0_RTC3_SHFT 54
  163. #define UVH_EVENT_OCCURRED0_RTC3_MASK 0x0040000000000000UL
  164. #define UVH_EVENT_OCCURRED0_BAU_DATA_SHFT 55
  165. #define UVH_EVENT_OCCURRED0_BAU_DATA_MASK 0x0080000000000000UL
  166. #define UVH_EVENT_OCCURRED0_POWER_MANAGEMENT_REQ_SHFT 56
  167. #define UVH_EVENT_OCCURRED0_POWER_MANAGEMENT_REQ_MASK 0x0100000000000000UL
  168. union uvh_event_occurred0_u {
  169. unsigned long v;
  170. struct uvh_event_occurred0_s {
  171. unsigned long lb_hcerr : 1; /* RW, W1C */
  172. unsigned long gr0_hcerr : 1; /* RW, W1C */
  173. unsigned long gr1_hcerr : 1; /* RW, W1C */
  174. unsigned long lh_hcerr : 1; /* RW, W1C */
  175. unsigned long rh_hcerr : 1; /* RW, W1C */
  176. unsigned long xn_hcerr : 1; /* RW, W1C */
  177. unsigned long si_hcerr : 1; /* RW, W1C */
  178. unsigned long lb_aoerr0 : 1; /* RW, W1C */
  179. unsigned long gr0_aoerr0 : 1; /* RW, W1C */
  180. unsigned long gr1_aoerr0 : 1; /* RW, W1C */
  181. unsigned long lh_aoerr0 : 1; /* RW, W1C */
  182. unsigned long rh_aoerr0 : 1; /* RW, W1C */
  183. unsigned long xn_aoerr0 : 1; /* RW, W1C */
  184. unsigned long si_aoerr0 : 1; /* RW, W1C */
  185. unsigned long lb_aoerr1 : 1; /* RW, W1C */
  186. unsigned long gr0_aoerr1 : 1; /* RW, W1C */
  187. unsigned long gr1_aoerr1 : 1; /* RW, W1C */
  188. unsigned long lh_aoerr1 : 1; /* RW, W1C */
  189. unsigned long rh_aoerr1 : 1; /* RW, W1C */
  190. unsigned long xn_aoerr1 : 1; /* RW, W1C */
  191. unsigned long si_aoerr1 : 1; /* RW, W1C */
  192. unsigned long rh_vpi_int : 1; /* RW, W1C */
  193. unsigned long system_shutdown_int : 1; /* RW, W1C */
  194. unsigned long lb_irq_int_0 : 1; /* RW, W1C */
  195. unsigned long lb_irq_int_1 : 1; /* RW, W1C */
  196. unsigned long lb_irq_int_2 : 1; /* RW, W1C */
  197. unsigned long lb_irq_int_3 : 1; /* RW, W1C */
  198. unsigned long lb_irq_int_4 : 1; /* RW, W1C */
  199. unsigned long lb_irq_int_5 : 1; /* RW, W1C */
  200. unsigned long lb_irq_int_6 : 1; /* RW, W1C */
  201. unsigned long lb_irq_int_7 : 1; /* RW, W1C */
  202. unsigned long lb_irq_int_8 : 1; /* RW, W1C */
  203. unsigned long lb_irq_int_9 : 1; /* RW, W1C */
  204. unsigned long lb_irq_int_10 : 1; /* RW, W1C */
  205. unsigned long lb_irq_int_11 : 1; /* RW, W1C */
  206. unsigned long lb_irq_int_12 : 1; /* RW, W1C */
  207. unsigned long lb_irq_int_13 : 1; /* RW, W1C */
  208. unsigned long lb_irq_int_14 : 1; /* RW, W1C */
  209. unsigned long lb_irq_int_15 : 1; /* RW, W1C */
  210. unsigned long l1_nmi_int : 1; /* RW, W1C */
  211. unsigned long stop_clock : 1; /* RW, W1C */
  212. unsigned long asic_to_l1 : 1; /* RW, W1C */
  213. unsigned long l1_to_asic : 1; /* RW, W1C */
  214. unsigned long ltc_int : 1; /* RW, W1C */
  215. unsigned long la_seq_trigger : 1; /* RW, W1C */
  216. unsigned long ipi_int : 1; /* RW, W1C */
  217. unsigned long extio_int0 : 1; /* RW, W1C */
  218. unsigned long extio_int1 : 1; /* RW, W1C */
  219. unsigned long extio_int2 : 1; /* RW, W1C */
  220. unsigned long extio_int3 : 1; /* RW, W1C */
  221. unsigned long profile_int : 1; /* RW, W1C */
  222. unsigned long rtc0 : 1; /* RW, W1C */
  223. unsigned long rtc1 : 1; /* RW, W1C */
  224. unsigned long rtc2 : 1; /* RW, W1C */
  225. unsigned long rtc3 : 1; /* RW, W1C */
  226. unsigned long bau_data : 1; /* RW, W1C */
  227. unsigned long power_management_req : 1; /* RW, W1C */
  228. unsigned long rsvd_57_63 : 7; /* */
  229. } s;
  230. };
  231. /* ========================================================================= */
  232. /* UVH_EVENT_OCCURRED0_ALIAS */
  233. /* ========================================================================= */
  234. #define UVH_EVENT_OCCURRED0_ALIAS 0x0000000000070008UL
  235. #define UVH_EVENT_OCCURRED0_ALIAS_32 0x005f0
  236. /* ========================================================================= */
  237. /* UVH_GR0_TLB_INT0_CONFIG */
  238. /* ========================================================================= */
  239. #define UVH_GR0_TLB_INT0_CONFIG 0x61b00UL
  240. #define UVH_GR0_TLB_INT0_CONFIG_VECTOR_SHFT 0
  241. #define UVH_GR0_TLB_INT0_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  242. #define UVH_GR0_TLB_INT0_CONFIG_DM_SHFT 8
  243. #define UVH_GR0_TLB_INT0_CONFIG_DM_MASK 0x0000000000000700UL
  244. #define UVH_GR0_TLB_INT0_CONFIG_DESTMODE_SHFT 11
  245. #define UVH_GR0_TLB_INT0_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  246. #define UVH_GR0_TLB_INT0_CONFIG_STATUS_SHFT 12
  247. #define UVH_GR0_TLB_INT0_CONFIG_STATUS_MASK 0x0000000000001000UL
  248. #define UVH_GR0_TLB_INT0_CONFIG_P_SHFT 13
  249. #define UVH_GR0_TLB_INT0_CONFIG_P_MASK 0x0000000000002000UL
  250. #define UVH_GR0_TLB_INT0_CONFIG_T_SHFT 15
  251. #define UVH_GR0_TLB_INT0_CONFIG_T_MASK 0x0000000000008000UL
  252. #define UVH_GR0_TLB_INT0_CONFIG_M_SHFT 16
  253. #define UVH_GR0_TLB_INT0_CONFIG_M_MASK 0x0000000000010000UL
  254. #define UVH_GR0_TLB_INT0_CONFIG_APIC_ID_SHFT 32
  255. #define UVH_GR0_TLB_INT0_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  256. union uvh_gr0_tlb_int0_config_u {
  257. unsigned long v;
  258. struct uvh_gr0_tlb_int0_config_s {
  259. unsigned long vector_ : 8; /* RW */
  260. unsigned long dm : 3; /* RW */
  261. unsigned long destmode : 1; /* RW */
  262. unsigned long status : 1; /* RO */
  263. unsigned long p : 1; /* RO */
  264. unsigned long rsvd_14 : 1; /* */
  265. unsigned long t : 1; /* RO */
  266. unsigned long m : 1; /* RW */
  267. unsigned long rsvd_17_31: 15; /* */
  268. unsigned long apic_id : 32; /* RW */
  269. } s;
  270. };
  271. /* ========================================================================= */
  272. /* UVH_GR0_TLB_INT1_CONFIG */
  273. /* ========================================================================= */
  274. #define UVH_GR0_TLB_INT1_CONFIG 0x61b40UL
  275. #define UVH_GR0_TLB_INT1_CONFIG_VECTOR_SHFT 0
  276. #define UVH_GR0_TLB_INT1_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  277. #define UVH_GR0_TLB_INT1_CONFIG_DM_SHFT 8
  278. #define UVH_GR0_TLB_INT1_CONFIG_DM_MASK 0x0000000000000700UL
  279. #define UVH_GR0_TLB_INT1_CONFIG_DESTMODE_SHFT 11
  280. #define UVH_GR0_TLB_INT1_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  281. #define UVH_GR0_TLB_INT1_CONFIG_STATUS_SHFT 12
  282. #define UVH_GR0_TLB_INT1_CONFIG_STATUS_MASK 0x0000000000001000UL
  283. #define UVH_GR0_TLB_INT1_CONFIG_P_SHFT 13
  284. #define UVH_GR0_TLB_INT1_CONFIG_P_MASK 0x0000000000002000UL
  285. #define UVH_GR0_TLB_INT1_CONFIG_T_SHFT 15
  286. #define UVH_GR0_TLB_INT1_CONFIG_T_MASK 0x0000000000008000UL
  287. #define UVH_GR0_TLB_INT1_CONFIG_M_SHFT 16
  288. #define UVH_GR0_TLB_INT1_CONFIG_M_MASK 0x0000000000010000UL
  289. #define UVH_GR0_TLB_INT1_CONFIG_APIC_ID_SHFT 32
  290. #define UVH_GR0_TLB_INT1_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  291. union uvh_gr0_tlb_int1_config_u {
  292. unsigned long v;
  293. struct uvh_gr0_tlb_int1_config_s {
  294. unsigned long vector_ : 8; /* RW */
  295. unsigned long dm : 3; /* RW */
  296. unsigned long destmode : 1; /* RW */
  297. unsigned long status : 1; /* RO */
  298. unsigned long p : 1; /* RO */
  299. unsigned long rsvd_14 : 1; /* */
  300. unsigned long t : 1; /* RO */
  301. unsigned long m : 1; /* RW */
  302. unsigned long rsvd_17_31: 15; /* */
  303. unsigned long apic_id : 32; /* RW */
  304. } s;
  305. };
  306. /* ========================================================================= */
  307. /* UVH_GR1_TLB_INT0_CONFIG */
  308. /* ========================================================================= */
  309. #define UVH_GR1_TLB_INT0_CONFIG 0x61f00UL
  310. #define UVH_GR1_TLB_INT0_CONFIG_VECTOR_SHFT 0
  311. #define UVH_GR1_TLB_INT0_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  312. #define UVH_GR1_TLB_INT0_CONFIG_DM_SHFT 8
  313. #define UVH_GR1_TLB_INT0_CONFIG_DM_MASK 0x0000000000000700UL
  314. #define UVH_GR1_TLB_INT0_CONFIG_DESTMODE_SHFT 11
  315. #define UVH_GR1_TLB_INT0_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  316. #define UVH_GR1_TLB_INT0_CONFIG_STATUS_SHFT 12
  317. #define UVH_GR1_TLB_INT0_CONFIG_STATUS_MASK 0x0000000000001000UL
  318. #define UVH_GR1_TLB_INT0_CONFIG_P_SHFT 13
  319. #define UVH_GR1_TLB_INT0_CONFIG_P_MASK 0x0000000000002000UL
  320. #define UVH_GR1_TLB_INT0_CONFIG_T_SHFT 15
  321. #define UVH_GR1_TLB_INT0_CONFIG_T_MASK 0x0000000000008000UL
  322. #define UVH_GR1_TLB_INT0_CONFIG_M_SHFT 16
  323. #define UVH_GR1_TLB_INT0_CONFIG_M_MASK 0x0000000000010000UL
  324. #define UVH_GR1_TLB_INT0_CONFIG_APIC_ID_SHFT 32
  325. #define UVH_GR1_TLB_INT0_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  326. union uvh_gr1_tlb_int0_config_u {
  327. unsigned long v;
  328. struct uvh_gr1_tlb_int0_config_s {
  329. unsigned long vector_ : 8; /* RW */
  330. unsigned long dm : 3; /* RW */
  331. unsigned long destmode : 1; /* RW */
  332. unsigned long status : 1; /* RO */
  333. unsigned long p : 1; /* RO */
  334. unsigned long rsvd_14 : 1; /* */
  335. unsigned long t : 1; /* RO */
  336. unsigned long m : 1; /* RW */
  337. unsigned long rsvd_17_31: 15; /* */
  338. unsigned long apic_id : 32; /* RW */
  339. } s;
  340. };
  341. /* ========================================================================= */
  342. /* UVH_GR1_TLB_INT1_CONFIG */
  343. /* ========================================================================= */
  344. #define UVH_GR1_TLB_INT1_CONFIG 0x61f40UL
  345. #define UVH_GR1_TLB_INT1_CONFIG_VECTOR_SHFT 0
  346. #define UVH_GR1_TLB_INT1_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  347. #define UVH_GR1_TLB_INT1_CONFIG_DM_SHFT 8
  348. #define UVH_GR1_TLB_INT1_CONFIG_DM_MASK 0x0000000000000700UL
  349. #define UVH_GR1_TLB_INT1_CONFIG_DESTMODE_SHFT 11
  350. #define UVH_GR1_TLB_INT1_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  351. #define UVH_GR1_TLB_INT1_CONFIG_STATUS_SHFT 12
  352. #define UVH_GR1_TLB_INT1_CONFIG_STATUS_MASK 0x0000000000001000UL
  353. #define UVH_GR1_TLB_INT1_CONFIG_P_SHFT 13
  354. #define UVH_GR1_TLB_INT1_CONFIG_P_MASK 0x0000000000002000UL
  355. #define UVH_GR1_TLB_INT1_CONFIG_T_SHFT 15
  356. #define UVH_GR1_TLB_INT1_CONFIG_T_MASK 0x0000000000008000UL
  357. #define UVH_GR1_TLB_INT1_CONFIG_M_SHFT 16
  358. #define UVH_GR1_TLB_INT1_CONFIG_M_MASK 0x0000000000010000UL
  359. #define UVH_GR1_TLB_INT1_CONFIG_APIC_ID_SHFT 32
  360. #define UVH_GR1_TLB_INT1_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  361. union uvh_gr1_tlb_int1_config_u {
  362. unsigned long v;
  363. struct uvh_gr1_tlb_int1_config_s {
  364. unsigned long vector_ : 8; /* RW */
  365. unsigned long dm : 3; /* RW */
  366. unsigned long destmode : 1; /* RW */
  367. unsigned long status : 1; /* RO */
  368. unsigned long p : 1; /* RO */
  369. unsigned long rsvd_14 : 1; /* */
  370. unsigned long t : 1; /* RO */
  371. unsigned long m : 1; /* RW */
  372. unsigned long rsvd_17_31: 15; /* */
  373. unsigned long apic_id : 32; /* RW */
  374. } s;
  375. };
  376. /* ========================================================================= */
  377. /* UVH_INT_CMPB */
  378. /* ========================================================================= */
  379. #define UVH_INT_CMPB 0x22080UL
  380. #define UVH_INT_CMPB_REAL_TIME_CMPB_SHFT 0
  381. #define UVH_INT_CMPB_REAL_TIME_CMPB_MASK 0x00ffffffffffffffUL
  382. union uvh_int_cmpb_u {
  383. unsigned long v;
  384. struct uvh_int_cmpb_s {
  385. unsigned long real_time_cmpb : 56; /* RW */
  386. unsigned long rsvd_56_63 : 8; /* */
  387. } s;
  388. };
  389. /* ========================================================================= */
  390. /* UVH_INT_CMPC */
  391. /* ========================================================================= */
  392. #define UVH_INT_CMPC 0x22100UL
  393. #define UVH_INT_CMPC_REAL_TIME_CMPC_SHFT 0
  394. #define UVH_INT_CMPC_REAL_TIME_CMPC_MASK 0x00ffffffffffffffUL
  395. union uvh_int_cmpc_u {
  396. unsigned long v;
  397. struct uvh_int_cmpc_s {
  398. unsigned long real_time_cmpc : 56; /* RW */
  399. unsigned long rsvd_56_63 : 8; /* */
  400. } s;
  401. };
  402. /* ========================================================================= */
  403. /* UVH_INT_CMPD */
  404. /* ========================================================================= */
  405. #define UVH_INT_CMPD 0x22180UL
  406. #define UVH_INT_CMPD_REAL_TIME_CMPD_SHFT 0
  407. #define UVH_INT_CMPD_REAL_TIME_CMPD_MASK 0x00ffffffffffffffUL
  408. union uvh_int_cmpd_u {
  409. unsigned long v;
  410. struct uvh_int_cmpd_s {
  411. unsigned long real_time_cmpd : 56; /* RW */
  412. unsigned long rsvd_56_63 : 8; /* */
  413. } s;
  414. };
  415. /* ========================================================================= */
  416. /* UVH_NODE_ID */
  417. /* ========================================================================= */
  418. #define UVH_NODE_ID 0x0UL
  419. #define UVH_NODE_ID_FORCE1_SHFT 0
  420. #define UVH_NODE_ID_FORCE1_MASK 0x0000000000000001UL
  421. #define UVH_NODE_ID_MANUFACTURER_SHFT 1
  422. #define UVH_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
  423. #define UVH_NODE_ID_PART_NUMBER_SHFT 12
  424. #define UVH_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
  425. #define UVH_NODE_ID_REVISION_SHFT 28
  426. #define UVH_NODE_ID_REVISION_MASK 0x00000000f0000000UL
  427. #define UVH_NODE_ID_NODE_ID_SHFT 32
  428. #define UVH_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
  429. #define UVH_NODE_ID_NODES_PER_BIT_SHFT 48
  430. #define UVH_NODE_ID_NODES_PER_BIT_MASK 0x007f000000000000UL
  431. #define UVH_NODE_ID_NI_PORT_SHFT 56
  432. #define UVH_NODE_ID_NI_PORT_MASK 0x0f00000000000000UL
  433. union uvh_node_id_u {
  434. unsigned long v;
  435. struct uvh_node_id_s {
  436. unsigned long force1 : 1; /* RO */
  437. unsigned long manufacturer : 11; /* RO */
  438. unsigned long part_number : 16; /* RO */
  439. unsigned long revision : 4; /* RO */
  440. unsigned long node_id : 15; /* RW */
  441. unsigned long rsvd_47 : 1; /* */
  442. unsigned long nodes_per_bit : 7; /* RW */
  443. unsigned long rsvd_55 : 1; /* */
  444. unsigned long ni_port : 4; /* RO */
  445. unsigned long rsvd_60_63 : 4; /* */
  446. } s;
  447. };
  448. /* ========================================================================= */
  449. /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR */
  450. /* ========================================================================= */
  451. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR 0x16000d0UL
  452. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_SHFT 24
  453. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_MASK 0x00003fffff000000UL
  454. union uvh_rh_gam_alias210_redirect_config_0_mmr_u {
  455. unsigned long v;
  456. struct uvh_rh_gam_alias210_redirect_config_0_mmr_s {
  457. unsigned long rsvd_0_23 : 24; /* */
  458. unsigned long dest_base : 22; /* RW */
  459. unsigned long rsvd_46_63: 18; /* */
  460. } s;
  461. };
  462. /* ========================================================================= */
  463. /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR */
  464. /* ========================================================================= */
  465. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR 0x16000e0UL
  466. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_SHFT 24
  467. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_MASK 0x00003fffff000000UL
  468. union uvh_rh_gam_alias210_redirect_config_1_mmr_u {
  469. unsigned long v;
  470. struct uvh_rh_gam_alias210_redirect_config_1_mmr_s {
  471. unsigned long rsvd_0_23 : 24; /* */
  472. unsigned long dest_base : 22; /* RW */
  473. unsigned long rsvd_46_63: 18; /* */
  474. } s;
  475. };
  476. /* ========================================================================= */
  477. /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR */
  478. /* ========================================================================= */
  479. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR 0x16000f0UL
  480. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_SHFT 24
  481. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_MASK 0x00003fffff000000UL
  482. union uvh_rh_gam_alias210_redirect_config_2_mmr_u {
  483. unsigned long v;
  484. struct uvh_rh_gam_alias210_redirect_config_2_mmr_s {
  485. unsigned long rsvd_0_23 : 24; /* */
  486. unsigned long dest_base : 22; /* RW */
  487. unsigned long rsvd_46_63: 18; /* */
  488. } s;
  489. };
  490. /* ========================================================================= */
  491. /* UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR */
  492. /* ========================================================================= */
  493. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL
  494. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
  495. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
  496. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_GR4_SHFT 48
  497. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_GR4_MASK 0x0001000000000000UL
  498. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52
  499. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL
  500. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  501. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  502. union uvh_rh_gam_gru_overlay_config_mmr_u {
  503. unsigned long v;
  504. struct uvh_rh_gam_gru_overlay_config_mmr_s {
  505. unsigned long rsvd_0_27: 28; /* */
  506. unsigned long base : 18; /* RW */
  507. unsigned long rsvd_46_47: 2; /* */
  508. unsigned long gr4 : 1; /* RW */
  509. unsigned long rsvd_49_51: 3; /* */
  510. unsigned long n_gru : 4; /* RW */
  511. unsigned long rsvd_56_62: 7; /* */
  512. unsigned long enable : 1; /* RW */
  513. } s;
  514. };
  515. /* ========================================================================= */
  516. /* UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR */
  517. /* ========================================================================= */
  518. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL
  519. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
  520. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
  521. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_DUAL_HUB_SHFT 46
  522. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_DUAL_HUB_MASK 0x0000400000000000UL
  523. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  524. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  525. union uvh_rh_gam_mmr_overlay_config_mmr_u {
  526. unsigned long v;
  527. struct uvh_rh_gam_mmr_overlay_config_mmr_s {
  528. unsigned long rsvd_0_25: 26; /* */
  529. unsigned long base : 20; /* RW */
  530. unsigned long dual_hub : 1; /* RW */
  531. unsigned long rsvd_47_62: 16; /* */
  532. unsigned long enable : 1; /* RW */
  533. } s;
  534. };
  535. /* ========================================================================= */
  536. /* UVH_RTC */
  537. /* ========================================================================= */
  538. #define UVH_RTC 0x340000UL
  539. #define UVH_RTC_REAL_TIME_CLOCK_SHFT 0
  540. #define UVH_RTC_REAL_TIME_CLOCK_MASK 0x00ffffffffffffffUL
  541. union uvh_rtc_u {
  542. unsigned long v;
  543. struct uvh_rtc_s {
  544. unsigned long real_time_clock : 56; /* RW */
  545. unsigned long rsvd_56_63 : 8; /* */
  546. } s;
  547. };
  548. /* ========================================================================= */
  549. /* UVH_RTC1_INT_CONFIG */
  550. /* ========================================================================= */
  551. #define UVH_RTC1_INT_CONFIG 0x615c0UL
  552. #define UVH_RTC1_INT_CONFIG_VECTOR_SHFT 0
  553. #define UVH_RTC1_INT_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  554. #define UVH_RTC1_INT_CONFIG_DM_SHFT 8
  555. #define UVH_RTC1_INT_CONFIG_DM_MASK 0x0000000000000700UL
  556. #define UVH_RTC1_INT_CONFIG_DESTMODE_SHFT 11
  557. #define UVH_RTC1_INT_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  558. #define UVH_RTC1_INT_CONFIG_STATUS_SHFT 12
  559. #define UVH_RTC1_INT_CONFIG_STATUS_MASK 0x0000000000001000UL
  560. #define UVH_RTC1_INT_CONFIG_P_SHFT 13
  561. #define UVH_RTC1_INT_CONFIG_P_MASK 0x0000000000002000UL
  562. #define UVH_RTC1_INT_CONFIG_T_SHFT 15
  563. #define UVH_RTC1_INT_CONFIG_T_MASK 0x0000000000008000UL
  564. #define UVH_RTC1_INT_CONFIG_M_SHFT 16
  565. #define UVH_RTC1_INT_CONFIG_M_MASK 0x0000000000010000UL
  566. #define UVH_RTC1_INT_CONFIG_APIC_ID_SHFT 32
  567. #define UVH_RTC1_INT_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  568. union uvh_rtc1_int_config_u {
  569. unsigned long v;
  570. struct uvh_rtc1_int_config_s {
  571. unsigned long vector_ : 8; /* RW */
  572. unsigned long dm : 3; /* RW */
  573. unsigned long destmode : 1; /* RW */
  574. unsigned long status : 1; /* RO */
  575. unsigned long p : 1; /* RO */
  576. unsigned long rsvd_14 : 1; /* */
  577. unsigned long t : 1; /* RO */
  578. unsigned long m : 1; /* RW */
  579. unsigned long rsvd_17_31: 15; /* */
  580. unsigned long apic_id : 32; /* RW */
  581. } s;
  582. };
  583. /* ========================================================================= */
  584. /* UVH_RTC2_INT_CONFIG */
  585. /* ========================================================================= */
  586. #define UVH_RTC2_INT_CONFIG 0x61600UL
  587. #define UVH_RTC2_INT_CONFIG_VECTOR_SHFT 0
  588. #define UVH_RTC2_INT_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  589. #define UVH_RTC2_INT_CONFIG_DM_SHFT 8
  590. #define UVH_RTC2_INT_CONFIG_DM_MASK 0x0000000000000700UL
  591. #define UVH_RTC2_INT_CONFIG_DESTMODE_SHFT 11
  592. #define UVH_RTC2_INT_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  593. #define UVH_RTC2_INT_CONFIG_STATUS_SHFT 12
  594. #define UVH_RTC2_INT_CONFIG_STATUS_MASK 0x0000000000001000UL
  595. #define UVH_RTC2_INT_CONFIG_P_SHFT 13
  596. #define UVH_RTC2_INT_CONFIG_P_MASK 0x0000000000002000UL
  597. #define UVH_RTC2_INT_CONFIG_T_SHFT 15
  598. #define UVH_RTC2_INT_CONFIG_T_MASK 0x0000000000008000UL
  599. #define UVH_RTC2_INT_CONFIG_M_SHFT 16
  600. #define UVH_RTC2_INT_CONFIG_M_MASK 0x0000000000010000UL
  601. #define UVH_RTC2_INT_CONFIG_APIC_ID_SHFT 32
  602. #define UVH_RTC2_INT_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  603. union uvh_rtc2_int_config_u {
  604. unsigned long v;
  605. struct uvh_rtc2_int_config_s {
  606. unsigned long vector_ : 8; /* RW */
  607. unsigned long dm : 3; /* RW */
  608. unsigned long destmode : 1; /* RW */
  609. unsigned long status : 1; /* RO */
  610. unsigned long p : 1; /* RO */
  611. unsigned long rsvd_14 : 1; /* */
  612. unsigned long t : 1; /* RO */
  613. unsigned long m : 1; /* RW */
  614. unsigned long rsvd_17_31: 15; /* */
  615. unsigned long apic_id : 32; /* RW */
  616. } s;
  617. };
  618. /* ========================================================================= */
  619. /* UVH_RTC3_INT_CONFIG */
  620. /* ========================================================================= */
  621. #define UVH_RTC3_INT_CONFIG 0x61640UL
  622. #define UVH_RTC3_INT_CONFIG_VECTOR_SHFT 0
  623. #define UVH_RTC3_INT_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  624. #define UVH_RTC3_INT_CONFIG_DM_SHFT 8
  625. #define UVH_RTC3_INT_CONFIG_DM_MASK 0x0000000000000700UL
  626. #define UVH_RTC3_INT_CONFIG_DESTMODE_SHFT 11
  627. #define UVH_RTC3_INT_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  628. #define UVH_RTC3_INT_CONFIG_STATUS_SHFT 12
  629. #define UVH_RTC3_INT_CONFIG_STATUS_MASK 0x0000000000001000UL
  630. #define UVH_RTC3_INT_CONFIG_P_SHFT 13
  631. #define UVH_RTC3_INT_CONFIG_P_MASK 0x0000000000002000UL
  632. #define UVH_RTC3_INT_CONFIG_T_SHFT 15
  633. #define UVH_RTC3_INT_CONFIG_T_MASK 0x0000000000008000UL
  634. #define UVH_RTC3_INT_CONFIG_M_SHFT 16
  635. #define UVH_RTC3_INT_CONFIG_M_MASK 0x0000000000010000UL
  636. #define UVH_RTC3_INT_CONFIG_APIC_ID_SHFT 32
  637. #define UVH_RTC3_INT_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  638. union uvh_rtc3_int_config_u {
  639. unsigned long v;
  640. struct uvh_rtc3_int_config_s {
  641. unsigned long vector_ : 8; /* RW */
  642. unsigned long dm : 3; /* RW */
  643. unsigned long destmode : 1; /* RW */
  644. unsigned long status : 1; /* RO */
  645. unsigned long p : 1; /* RO */
  646. unsigned long rsvd_14 : 1; /* */
  647. unsigned long t : 1; /* RO */
  648. unsigned long m : 1; /* RW */
  649. unsigned long rsvd_17_31: 15; /* */
  650. unsigned long apic_id : 32; /* RW */
  651. } s;
  652. };
  653. /* ========================================================================= */
  654. /* UVH_RTC_INC_RATIO */
  655. /* ========================================================================= */
  656. #define UVH_RTC_INC_RATIO 0x350000UL
  657. #define UVH_RTC_INC_RATIO_FRACTION_SHFT 0
  658. #define UVH_RTC_INC_RATIO_FRACTION_MASK 0x00000000000fffffUL
  659. #define UVH_RTC_INC_RATIO_RATIO_SHFT 20
  660. #define UVH_RTC_INC_RATIO_RATIO_MASK 0x0000000000700000UL
  661. union uvh_rtc_inc_ratio_u {
  662. unsigned long v;
  663. struct uvh_rtc_inc_ratio_s {
  664. unsigned long fraction : 20; /* RW */
  665. unsigned long ratio : 3; /* RW */
  666. unsigned long rsvd_23_63: 41; /* */
  667. } s;
  668. };
  669. /* ========================================================================= */
  670. /* UVH_SI_ADDR_MAP_CONFIG */
  671. /* ========================================================================= */
  672. #define UVH_SI_ADDR_MAP_CONFIG 0xc80000UL
  673. #define UVH_SI_ADDR_MAP_CONFIG_M_SKT_SHFT 0
  674. #define UVH_SI_ADDR_MAP_CONFIG_M_SKT_MASK 0x000000000000003fUL
  675. #define UVH_SI_ADDR_MAP_CONFIG_N_SKT_SHFT 8
  676. #define UVH_SI_ADDR_MAP_CONFIG_N_SKT_MASK 0x0000000000000f00UL
  677. union uvh_si_addr_map_config_u {
  678. unsigned long v;
  679. struct uvh_si_addr_map_config_s {
  680. unsigned long m_skt : 6; /* RW */
  681. unsigned long rsvd_6_7: 2; /* */
  682. unsigned long n_skt : 4; /* RW */
  683. unsigned long rsvd_12_63: 52; /* */
  684. } s;
  685. };
  686. /* ========================================================================= */
  687. /* UVH_SI_ALIAS0_OVERLAY_CONFIG */
  688. /* ========================================================================= */
  689. #define UVH_SI_ALIAS0_OVERLAY_CONFIG 0xc80008UL
  690. #define UVH_SI_ALIAS0_OVERLAY_CONFIG_BASE_SHFT 24
  691. #define UVH_SI_ALIAS0_OVERLAY_CONFIG_BASE_MASK 0x00000000ff000000UL
  692. #define UVH_SI_ALIAS0_OVERLAY_CONFIG_M_ALIAS_SHFT 48
  693. #define UVH_SI_ALIAS0_OVERLAY_CONFIG_M_ALIAS_MASK 0x001f000000000000UL
  694. #define UVH_SI_ALIAS0_OVERLAY_CONFIG_ENABLE_SHFT 63
  695. #define UVH_SI_ALIAS0_OVERLAY_CONFIG_ENABLE_MASK 0x8000000000000000UL
  696. union uvh_si_alias0_overlay_config_u {
  697. unsigned long v;
  698. struct uvh_si_alias0_overlay_config_s {
  699. unsigned long rsvd_0_23: 24; /* */
  700. unsigned long base : 8; /* RW */
  701. unsigned long rsvd_32_47: 16; /* */
  702. unsigned long m_alias : 5; /* RW */
  703. unsigned long rsvd_53_62: 10; /* */
  704. unsigned long enable : 1; /* RW */
  705. } s;
  706. };
  707. /* ========================================================================= */
  708. /* UVH_SI_ALIAS1_OVERLAY_CONFIG */
  709. /* ========================================================================= */
  710. #define UVH_SI_ALIAS1_OVERLAY_CONFIG 0xc80010UL
  711. #define UVH_SI_ALIAS1_OVERLAY_CONFIG_BASE_SHFT 24
  712. #define UVH_SI_ALIAS1_OVERLAY_CONFIG_BASE_MASK 0x00000000ff000000UL
  713. #define UVH_SI_ALIAS1_OVERLAY_CONFIG_M_ALIAS_SHFT 48
  714. #define UVH_SI_ALIAS1_OVERLAY_CONFIG_M_ALIAS_MASK 0x001f000000000000UL
  715. #define UVH_SI_ALIAS1_OVERLAY_CONFIG_ENABLE_SHFT 63
  716. #define UVH_SI_ALIAS1_OVERLAY_CONFIG_ENABLE_MASK 0x8000000000000000UL
  717. union uvh_si_alias1_overlay_config_u {
  718. unsigned long v;
  719. struct uvh_si_alias1_overlay_config_s {
  720. unsigned long rsvd_0_23: 24; /* */
  721. unsigned long base : 8; /* RW */
  722. unsigned long rsvd_32_47: 16; /* */
  723. unsigned long m_alias : 5; /* RW */
  724. unsigned long rsvd_53_62: 10; /* */
  725. unsigned long enable : 1; /* RW */
  726. } s;
  727. };
  728. /* ========================================================================= */
  729. /* UVH_SI_ALIAS2_OVERLAY_CONFIG */
  730. /* ========================================================================= */
  731. #define UVH_SI_ALIAS2_OVERLAY_CONFIG 0xc80018UL
  732. #define UVH_SI_ALIAS2_OVERLAY_CONFIG_BASE_SHFT 24
  733. #define UVH_SI_ALIAS2_OVERLAY_CONFIG_BASE_MASK 0x00000000ff000000UL
  734. #define UVH_SI_ALIAS2_OVERLAY_CONFIG_M_ALIAS_SHFT 48
  735. #define UVH_SI_ALIAS2_OVERLAY_CONFIG_M_ALIAS_MASK 0x001f000000000000UL
  736. #define UVH_SI_ALIAS2_OVERLAY_CONFIG_ENABLE_SHFT 63
  737. #define UVH_SI_ALIAS2_OVERLAY_CONFIG_ENABLE_MASK 0x8000000000000000UL
  738. union uvh_si_alias2_overlay_config_u {
  739. unsigned long v;
  740. struct uvh_si_alias2_overlay_config_s {
  741. unsigned long rsvd_0_23: 24; /* */
  742. unsigned long base : 8; /* RW */
  743. unsigned long rsvd_32_47: 16; /* */
  744. unsigned long m_alias : 5; /* RW */
  745. unsigned long rsvd_53_62: 10; /* */
  746. unsigned long enable : 1; /* RW */
  747. } s;
  748. };
  749. #endif /* _ASM_IA64_UV_UV_MMRS_H */