uv_mmrs.h 81 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749
  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-2011 Silicon Graphics, Inc. All rights reserved.
  9. */
  10. #ifndef _ASM_X86_UV_UV_MMRS_H
  11. #define _ASM_X86_UV_UV_MMRS_H
  12. /*
  13. * This file contains MMR definitions for both UV1 & UV2 hubs.
  14. *
  15. * In general, MMR addresses and structures are identical on both hubs.
  16. * These MMRs are identified as:
  17. * #define UVH_xxx <address>
  18. * union uvh_xxx {
  19. * unsigned long v;
  20. * struct uvh_int_cmpd_s {
  21. * } s;
  22. * };
  23. *
  24. * If the MMR exists on both hub type but has different addresses or
  25. * contents, the MMR definition is similar to:
  26. * #define UV1H_xxx <uv1 address>
  27. * #define UV2H_xxx <uv2address>
  28. * #define UVH_xxx (is_uv1_hub() ? UV1H_xxx : UV2H_xxx)
  29. * union uvh_xxx {
  30. * unsigned long v;
  31. * struct uv1h_int_cmpd_s { (Common fields only)
  32. * } s;
  33. * struct uv1h_int_cmpd_s { (Full UV1 definition)
  34. * } s1;
  35. * struct uv2h_int_cmpd_s { (Full UV2 definition)
  36. * } s2;
  37. * };
  38. *
  39. * Only essential difference are enumerated. For example, if the address is
  40. * the same for both UV1 & UV2, only a single #define is generated. Likewise,
  41. * if the contents is the same for both hubs, only the "s" structure is
  42. * generated.
  43. *
  44. * If the MMR exists on ONLY 1 type of hub, no generic definition is
  45. * generated:
  46. * #define UVnH_xxx <uvn address>
  47. * union uvnh_xxx {
  48. * unsigned long v;
  49. * struct uvh_int_cmpd_s {
  50. * } sn;
  51. * };
  52. */
  53. #define UV_MMR_ENABLE (1UL << 63)
  54. #define UV1_HUB_PART_NUMBER 0x88a5
  55. #define UV2_HUB_PART_NUMBER 0x8eb8
  56. /* Compat: if this #define is present, UV headers support UV2 */
  57. #define UV2_HUB_IS_SUPPORTED 1
  58. /* KABI compat: if this #define is present, KABI hacks are present */
  59. #define UV2_HUB_KABI_HACKS 1
  60. /* ========================================================================= */
  61. /* UVH_BAU_DATA_BROADCAST */
  62. /* ========================================================================= */
  63. #define UVH_BAU_DATA_BROADCAST 0x61688UL
  64. #define UVH_BAU_DATA_BROADCAST_32 0x440
  65. #define UVH_BAU_DATA_BROADCAST_ENABLE_SHFT 0
  66. #define UVH_BAU_DATA_BROADCAST_ENABLE_MASK 0x0000000000000001UL
  67. union uvh_bau_data_broadcast_u {
  68. unsigned long v;
  69. struct uvh_bau_data_broadcast_s {
  70. unsigned long enable : 1; /* RW */
  71. unsigned long rsvd_1_63: 63; /* */
  72. } s;
  73. };
  74. /* ========================================================================= */
  75. /* UVH_BAU_DATA_CONFIG */
  76. /* ========================================================================= */
  77. #define UVH_BAU_DATA_CONFIG 0x61680UL
  78. #define UVH_BAU_DATA_CONFIG_32 0x438
  79. #define UVH_BAU_DATA_CONFIG_VECTOR_SHFT 0
  80. #define UVH_BAU_DATA_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  81. #define UVH_BAU_DATA_CONFIG_DM_SHFT 8
  82. #define UVH_BAU_DATA_CONFIG_DM_MASK 0x0000000000000700UL
  83. #define UVH_BAU_DATA_CONFIG_DESTMODE_SHFT 11
  84. #define UVH_BAU_DATA_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  85. #define UVH_BAU_DATA_CONFIG_STATUS_SHFT 12
  86. #define UVH_BAU_DATA_CONFIG_STATUS_MASK 0x0000000000001000UL
  87. #define UVH_BAU_DATA_CONFIG_P_SHFT 13
  88. #define UVH_BAU_DATA_CONFIG_P_MASK 0x0000000000002000UL
  89. #define UVH_BAU_DATA_CONFIG_T_SHFT 15
  90. #define UVH_BAU_DATA_CONFIG_T_MASK 0x0000000000008000UL
  91. #define UVH_BAU_DATA_CONFIG_M_SHFT 16
  92. #define UVH_BAU_DATA_CONFIG_M_MASK 0x0000000000010000UL
  93. #define UVH_BAU_DATA_CONFIG_APIC_ID_SHFT 32
  94. #define UVH_BAU_DATA_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  95. union uvh_bau_data_config_u {
  96. unsigned long v;
  97. struct uvh_bau_data_config_s {
  98. unsigned long vector_ : 8; /* RW */
  99. unsigned long dm : 3; /* RW */
  100. unsigned long destmode : 1; /* RW */
  101. unsigned long status : 1; /* RO */
  102. unsigned long p : 1; /* RO */
  103. unsigned long rsvd_14 : 1; /* */
  104. unsigned long t : 1; /* RO */
  105. unsigned long m : 1; /* RW */
  106. unsigned long rsvd_17_31: 15; /* */
  107. unsigned long apic_id : 32; /* RW */
  108. } s;
  109. };
  110. /* ========================================================================= */
  111. /* UVH_EVENT_OCCURRED0 */
  112. /* ========================================================================= */
  113. #define UVH_EVENT_OCCURRED0 0x70000UL
  114. #define UVH_EVENT_OCCURRED0_32 0x5e8
  115. #define UV1H_EVENT_OCCURRED0_LB_HCERR_SHFT 0
  116. #define UV1H_EVENT_OCCURRED0_LB_HCERR_MASK 0x0000000000000001UL
  117. #define UV1H_EVENT_OCCURRED0_GR0_HCERR_SHFT 1
  118. #define UV1H_EVENT_OCCURRED0_GR0_HCERR_MASK 0x0000000000000002UL
  119. #define UV1H_EVENT_OCCURRED0_GR1_HCERR_SHFT 2
  120. #define UV1H_EVENT_OCCURRED0_GR1_HCERR_MASK 0x0000000000000004UL
  121. #define UV1H_EVENT_OCCURRED0_LH_HCERR_SHFT 3
  122. #define UV1H_EVENT_OCCURRED0_LH_HCERR_MASK 0x0000000000000008UL
  123. #define UV1H_EVENT_OCCURRED0_RH_HCERR_SHFT 4
  124. #define UV1H_EVENT_OCCURRED0_RH_HCERR_MASK 0x0000000000000010UL
  125. #define UV1H_EVENT_OCCURRED0_XN_HCERR_SHFT 5
  126. #define UV1H_EVENT_OCCURRED0_XN_HCERR_MASK 0x0000000000000020UL
  127. #define UV1H_EVENT_OCCURRED0_SI_HCERR_SHFT 6
  128. #define UV1H_EVENT_OCCURRED0_SI_HCERR_MASK 0x0000000000000040UL
  129. #define UV1H_EVENT_OCCURRED0_LB_AOERR0_SHFT 7
  130. #define UV1H_EVENT_OCCURRED0_LB_AOERR0_MASK 0x0000000000000080UL
  131. #define UV1H_EVENT_OCCURRED0_GR0_AOERR0_SHFT 8
  132. #define UV1H_EVENT_OCCURRED0_GR0_AOERR0_MASK 0x0000000000000100UL
  133. #define UV1H_EVENT_OCCURRED0_GR1_AOERR0_SHFT 9
  134. #define UV1H_EVENT_OCCURRED0_GR1_AOERR0_MASK 0x0000000000000200UL
  135. #define UV1H_EVENT_OCCURRED0_LH_AOERR0_SHFT 10
  136. #define UV1H_EVENT_OCCURRED0_LH_AOERR0_MASK 0x0000000000000400UL
  137. #define UV1H_EVENT_OCCURRED0_RH_AOERR0_SHFT 11
  138. #define UV1H_EVENT_OCCURRED0_RH_AOERR0_MASK 0x0000000000000800UL
  139. #define UV1H_EVENT_OCCURRED0_XN_AOERR0_SHFT 12
  140. #define UV1H_EVENT_OCCURRED0_XN_AOERR0_MASK 0x0000000000001000UL
  141. #define UV1H_EVENT_OCCURRED0_SI_AOERR0_SHFT 13
  142. #define UV1H_EVENT_OCCURRED0_SI_AOERR0_MASK 0x0000000000002000UL
  143. #define UV1H_EVENT_OCCURRED0_LB_AOERR1_SHFT 14
  144. #define UV1H_EVENT_OCCURRED0_LB_AOERR1_MASK 0x0000000000004000UL
  145. #define UV1H_EVENT_OCCURRED0_GR0_AOERR1_SHFT 15
  146. #define UV1H_EVENT_OCCURRED0_GR0_AOERR1_MASK 0x0000000000008000UL
  147. #define UV1H_EVENT_OCCURRED0_GR1_AOERR1_SHFT 16
  148. #define UV1H_EVENT_OCCURRED0_GR1_AOERR1_MASK 0x0000000000010000UL
  149. #define UV1H_EVENT_OCCURRED0_LH_AOERR1_SHFT 17
  150. #define UV1H_EVENT_OCCURRED0_LH_AOERR1_MASK 0x0000000000020000UL
  151. #define UV1H_EVENT_OCCURRED0_RH_AOERR1_SHFT 18
  152. #define UV1H_EVENT_OCCURRED0_RH_AOERR1_MASK 0x0000000000040000UL
  153. #define UV1H_EVENT_OCCURRED0_XN_AOERR1_SHFT 19
  154. #define UV1H_EVENT_OCCURRED0_XN_AOERR1_MASK 0x0000000000080000UL
  155. #define UV1H_EVENT_OCCURRED0_SI_AOERR1_SHFT 20
  156. #define UV1H_EVENT_OCCURRED0_SI_AOERR1_MASK 0x0000000000100000UL
  157. #define UV1H_EVENT_OCCURRED0_RH_VPI_INT_SHFT 21
  158. #define UV1H_EVENT_OCCURRED0_RH_VPI_INT_MASK 0x0000000000200000UL
  159. #define UV1H_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_SHFT 22
  160. #define UV1H_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_MASK 0x0000000000400000UL
  161. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_0_SHFT 23
  162. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_0_MASK 0x0000000000800000UL
  163. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_1_SHFT 24
  164. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_1_MASK 0x0000000001000000UL
  165. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_2_SHFT 25
  166. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_2_MASK 0x0000000002000000UL
  167. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_3_SHFT 26
  168. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_3_MASK 0x0000000004000000UL
  169. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_4_SHFT 27
  170. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_4_MASK 0x0000000008000000UL
  171. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_5_SHFT 28
  172. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_5_MASK 0x0000000010000000UL
  173. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_6_SHFT 29
  174. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_6_MASK 0x0000000020000000UL
  175. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_7_SHFT 30
  176. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_7_MASK 0x0000000040000000UL
  177. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_8_SHFT 31
  178. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_8_MASK 0x0000000080000000UL
  179. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_9_SHFT 32
  180. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_9_MASK 0x0000000100000000UL
  181. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_10_SHFT 33
  182. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_10_MASK 0x0000000200000000UL
  183. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_11_SHFT 34
  184. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_11_MASK 0x0000000400000000UL
  185. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_12_SHFT 35
  186. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_12_MASK 0x0000000800000000UL
  187. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_13_SHFT 36
  188. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_13_MASK 0x0000001000000000UL
  189. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_14_SHFT 37
  190. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_14_MASK 0x0000002000000000UL
  191. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_15_SHFT 38
  192. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_15_MASK 0x0000004000000000UL
  193. #define UV1H_EVENT_OCCURRED0_L1_NMI_INT_SHFT 39
  194. #define UV1H_EVENT_OCCURRED0_L1_NMI_INT_MASK 0x0000008000000000UL
  195. #define UV1H_EVENT_OCCURRED0_STOP_CLOCK_SHFT 40
  196. #define UV1H_EVENT_OCCURRED0_STOP_CLOCK_MASK 0x0000010000000000UL
  197. #define UV1H_EVENT_OCCURRED0_ASIC_TO_L1_SHFT 41
  198. #define UV1H_EVENT_OCCURRED0_ASIC_TO_L1_MASK 0x0000020000000000UL
  199. #define UV1H_EVENT_OCCURRED0_L1_TO_ASIC_SHFT 42
  200. #define UV1H_EVENT_OCCURRED0_L1_TO_ASIC_MASK 0x0000040000000000UL
  201. #define UV1H_EVENT_OCCURRED0_LTC_INT_SHFT 43
  202. #define UV1H_EVENT_OCCURRED0_LTC_INT_MASK 0x0000080000000000UL
  203. #define UV1H_EVENT_OCCURRED0_LA_SEQ_TRIGGER_SHFT 44
  204. #define UV1H_EVENT_OCCURRED0_LA_SEQ_TRIGGER_MASK 0x0000100000000000UL
  205. #define UV1H_EVENT_OCCURRED0_IPI_INT_SHFT 45
  206. #define UV1H_EVENT_OCCURRED0_IPI_INT_MASK 0x0000200000000000UL
  207. #define UV1H_EVENT_OCCURRED0_EXTIO_INT0_SHFT 46
  208. #define UV1H_EVENT_OCCURRED0_EXTIO_INT0_MASK 0x0000400000000000UL
  209. #define UV1H_EVENT_OCCURRED0_EXTIO_INT1_SHFT 47
  210. #define UV1H_EVENT_OCCURRED0_EXTIO_INT1_MASK 0x0000800000000000UL
  211. #define UV1H_EVENT_OCCURRED0_EXTIO_INT2_SHFT 48
  212. #define UV1H_EVENT_OCCURRED0_EXTIO_INT2_MASK 0x0001000000000000UL
  213. #define UV1H_EVENT_OCCURRED0_EXTIO_INT3_SHFT 49
  214. #define UV1H_EVENT_OCCURRED0_EXTIO_INT3_MASK 0x0002000000000000UL
  215. #define UV1H_EVENT_OCCURRED0_PROFILE_INT_SHFT 50
  216. #define UV1H_EVENT_OCCURRED0_PROFILE_INT_MASK 0x0004000000000000UL
  217. #define UV1H_EVENT_OCCURRED0_RTC0_SHFT 51
  218. #define UV1H_EVENT_OCCURRED0_RTC0_MASK 0x0008000000000000UL
  219. #define UV1H_EVENT_OCCURRED0_RTC1_SHFT 52
  220. #define UV1H_EVENT_OCCURRED0_RTC1_MASK 0x0010000000000000UL
  221. #define UV1H_EVENT_OCCURRED0_RTC2_SHFT 53
  222. #define UV1H_EVENT_OCCURRED0_RTC2_MASK 0x0020000000000000UL
  223. #define UV1H_EVENT_OCCURRED0_RTC3_SHFT 54
  224. #define UV1H_EVENT_OCCURRED0_RTC3_MASK 0x0040000000000000UL
  225. #define UV1H_EVENT_OCCURRED0_BAU_DATA_SHFT 55
  226. #define UV1H_EVENT_OCCURRED0_BAU_DATA_MASK 0x0080000000000000UL
  227. #define UV1H_EVENT_OCCURRED0_POWER_MANAGEMENT_REQ_SHFT 56
  228. #define UV1H_EVENT_OCCURRED0_POWER_MANAGEMENT_REQ_MASK 0x0100000000000000UL
  229. #define UV2H_EVENT_OCCURRED0_LB_HCERR_SHFT 0
  230. #define UV2H_EVENT_OCCURRED0_LB_HCERR_MASK 0x0000000000000001UL
  231. #define UV2H_EVENT_OCCURRED0_QP_HCERR_SHFT 1
  232. #define UV2H_EVENT_OCCURRED0_QP_HCERR_MASK 0x0000000000000002UL
  233. #define UV2H_EVENT_OCCURRED0_RH_HCERR_SHFT 2
  234. #define UV2H_EVENT_OCCURRED0_RH_HCERR_MASK 0x0000000000000004UL
  235. #define UV2H_EVENT_OCCURRED0_LH0_HCERR_SHFT 3
  236. #define UV2H_EVENT_OCCURRED0_LH0_HCERR_MASK 0x0000000000000008UL
  237. #define UV2H_EVENT_OCCURRED0_LH1_HCERR_SHFT 4
  238. #define UV2H_EVENT_OCCURRED0_LH1_HCERR_MASK 0x0000000000000010UL
  239. #define UV2H_EVENT_OCCURRED0_GR0_HCERR_SHFT 5
  240. #define UV2H_EVENT_OCCURRED0_GR0_HCERR_MASK 0x0000000000000020UL
  241. #define UV2H_EVENT_OCCURRED0_GR1_HCERR_SHFT 6
  242. #define UV2H_EVENT_OCCURRED0_GR1_HCERR_MASK 0x0000000000000040UL
  243. #define UV2H_EVENT_OCCURRED0_NI0_HCERR_SHFT 7
  244. #define UV2H_EVENT_OCCURRED0_NI0_HCERR_MASK 0x0000000000000080UL
  245. #define UV2H_EVENT_OCCURRED0_NI1_HCERR_SHFT 8
  246. #define UV2H_EVENT_OCCURRED0_NI1_HCERR_MASK 0x0000000000000100UL
  247. #define UV2H_EVENT_OCCURRED0_LB_AOERR0_SHFT 9
  248. #define UV2H_EVENT_OCCURRED0_LB_AOERR0_MASK 0x0000000000000200UL
  249. #define UV2H_EVENT_OCCURRED0_QP_AOERR0_SHFT 10
  250. #define UV2H_EVENT_OCCURRED0_QP_AOERR0_MASK 0x0000000000000400UL
  251. #define UV2H_EVENT_OCCURRED0_RH_AOERR0_SHFT 11
  252. #define UV2H_EVENT_OCCURRED0_RH_AOERR0_MASK 0x0000000000000800UL
  253. #define UV2H_EVENT_OCCURRED0_LH0_AOERR0_SHFT 12
  254. #define UV2H_EVENT_OCCURRED0_LH0_AOERR0_MASK 0x0000000000001000UL
  255. #define UV2H_EVENT_OCCURRED0_LH1_AOERR0_SHFT 13
  256. #define UV2H_EVENT_OCCURRED0_LH1_AOERR0_MASK 0x0000000000002000UL
  257. #define UV2H_EVENT_OCCURRED0_GR0_AOERR0_SHFT 14
  258. #define UV2H_EVENT_OCCURRED0_GR0_AOERR0_MASK 0x0000000000004000UL
  259. #define UV2H_EVENT_OCCURRED0_GR1_AOERR0_SHFT 15
  260. #define UV2H_EVENT_OCCURRED0_GR1_AOERR0_MASK 0x0000000000008000UL
  261. #define UV2H_EVENT_OCCURRED0_XB_AOERR0_SHFT 16
  262. #define UV2H_EVENT_OCCURRED0_XB_AOERR0_MASK 0x0000000000010000UL
  263. #define UV2H_EVENT_OCCURRED0_RT_AOERR0_SHFT 17
  264. #define UV2H_EVENT_OCCURRED0_RT_AOERR0_MASK 0x0000000000020000UL
  265. #define UV2H_EVENT_OCCURRED0_NI0_AOERR0_SHFT 18
  266. #define UV2H_EVENT_OCCURRED0_NI0_AOERR0_MASK 0x0000000000040000UL
  267. #define UV2H_EVENT_OCCURRED0_NI1_AOERR0_SHFT 19
  268. #define UV2H_EVENT_OCCURRED0_NI1_AOERR0_MASK 0x0000000000080000UL
  269. #define UV2H_EVENT_OCCURRED0_LB_AOERR1_SHFT 20
  270. #define UV2H_EVENT_OCCURRED0_LB_AOERR1_MASK 0x0000000000100000UL
  271. #define UV2H_EVENT_OCCURRED0_QP_AOERR1_SHFT 21
  272. #define UV2H_EVENT_OCCURRED0_QP_AOERR1_MASK 0x0000000000200000UL
  273. #define UV2H_EVENT_OCCURRED0_RH_AOERR1_SHFT 22
  274. #define UV2H_EVENT_OCCURRED0_RH_AOERR1_MASK 0x0000000000400000UL
  275. #define UV2H_EVENT_OCCURRED0_LH0_AOERR1_SHFT 23
  276. #define UV2H_EVENT_OCCURRED0_LH0_AOERR1_MASK 0x0000000000800000UL
  277. #define UV2H_EVENT_OCCURRED0_LH1_AOERR1_SHFT 24
  278. #define UV2H_EVENT_OCCURRED0_LH1_AOERR1_MASK 0x0000000001000000UL
  279. #define UV2H_EVENT_OCCURRED0_GR0_AOERR1_SHFT 25
  280. #define UV2H_EVENT_OCCURRED0_GR0_AOERR1_MASK 0x0000000002000000UL
  281. #define UV2H_EVENT_OCCURRED0_GR1_AOERR1_SHFT 26
  282. #define UV2H_EVENT_OCCURRED0_GR1_AOERR1_MASK 0x0000000004000000UL
  283. #define UV2H_EVENT_OCCURRED0_XB_AOERR1_SHFT 27
  284. #define UV2H_EVENT_OCCURRED0_XB_AOERR1_MASK 0x0000000008000000UL
  285. #define UV2H_EVENT_OCCURRED0_RT_AOERR1_SHFT 28
  286. #define UV2H_EVENT_OCCURRED0_RT_AOERR1_MASK 0x0000000010000000UL
  287. #define UV2H_EVENT_OCCURRED0_NI0_AOERR1_SHFT 29
  288. #define UV2H_EVENT_OCCURRED0_NI0_AOERR1_MASK 0x0000000020000000UL
  289. #define UV2H_EVENT_OCCURRED0_NI1_AOERR1_SHFT 30
  290. #define UV2H_EVENT_OCCURRED0_NI1_AOERR1_MASK 0x0000000040000000UL
  291. #define UV2H_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_SHFT 31
  292. #define UV2H_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_MASK 0x0000000080000000UL
  293. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_0_SHFT 32
  294. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_0_MASK 0x0000000100000000UL
  295. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_1_SHFT 33
  296. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_1_MASK 0x0000000200000000UL
  297. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_2_SHFT 34
  298. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_2_MASK 0x0000000400000000UL
  299. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_3_SHFT 35
  300. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_3_MASK 0x0000000800000000UL
  301. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_4_SHFT 36
  302. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_4_MASK 0x0000001000000000UL
  303. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_5_SHFT 37
  304. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_5_MASK 0x0000002000000000UL
  305. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_6_SHFT 38
  306. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_6_MASK 0x0000004000000000UL
  307. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_7_SHFT 39
  308. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_7_MASK 0x0000008000000000UL
  309. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_8_SHFT 40
  310. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_8_MASK 0x0000010000000000UL
  311. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_9_SHFT 41
  312. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_9_MASK 0x0000020000000000UL
  313. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_10_SHFT 42
  314. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_10_MASK 0x0000040000000000UL
  315. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_11_SHFT 43
  316. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_11_MASK 0x0000080000000000UL
  317. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_12_SHFT 44
  318. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_12_MASK 0x0000100000000000UL
  319. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_13_SHFT 45
  320. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_13_MASK 0x0000200000000000UL
  321. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_14_SHFT 46
  322. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_14_MASK 0x0000400000000000UL
  323. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_15_SHFT 47
  324. #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_15_MASK 0x0000800000000000UL
  325. #define UV2H_EVENT_OCCURRED0_L1_NMI_INT_SHFT 48
  326. #define UV2H_EVENT_OCCURRED0_L1_NMI_INT_MASK 0x0001000000000000UL
  327. #define UV2H_EVENT_OCCURRED0_STOP_CLOCK_SHFT 49
  328. #define UV2H_EVENT_OCCURRED0_STOP_CLOCK_MASK 0x0002000000000000UL
  329. #define UV2H_EVENT_OCCURRED0_ASIC_TO_L1_SHFT 50
  330. #define UV2H_EVENT_OCCURRED0_ASIC_TO_L1_MASK 0x0004000000000000UL
  331. #define UV2H_EVENT_OCCURRED0_L1_TO_ASIC_SHFT 51
  332. #define UV2H_EVENT_OCCURRED0_L1_TO_ASIC_MASK 0x0008000000000000UL
  333. #define UV2H_EVENT_OCCURRED0_LA_SEQ_TRIGGER_SHFT 52
  334. #define UV2H_EVENT_OCCURRED0_LA_SEQ_TRIGGER_MASK 0x0010000000000000UL
  335. #define UV2H_EVENT_OCCURRED0_IPI_INT_SHFT 53
  336. #define UV2H_EVENT_OCCURRED0_IPI_INT_MASK 0x0020000000000000UL
  337. #define UV2H_EVENT_OCCURRED0_EXTIO_INT0_SHFT 54
  338. #define UV2H_EVENT_OCCURRED0_EXTIO_INT0_MASK 0x0040000000000000UL
  339. #define UV2H_EVENT_OCCURRED0_EXTIO_INT1_SHFT 55
  340. #define UV2H_EVENT_OCCURRED0_EXTIO_INT1_MASK 0x0080000000000000UL
  341. #define UV2H_EVENT_OCCURRED0_EXTIO_INT2_SHFT 56
  342. #define UV2H_EVENT_OCCURRED0_EXTIO_INT2_MASK 0x0100000000000000UL
  343. #define UV2H_EVENT_OCCURRED0_EXTIO_INT3_SHFT 57
  344. #define UV2H_EVENT_OCCURRED0_EXTIO_INT3_MASK 0x0200000000000000UL
  345. #define UV2H_EVENT_OCCURRED0_PROFILE_INT_SHFT 58
  346. #define UV2H_EVENT_OCCURRED0_PROFILE_INT_MASK 0x0400000000000000UL
  347. union uvh_event_occurred0_u {
  348. unsigned long v;
  349. struct uv1h_event_occurred0_s {
  350. unsigned long lb_hcerr : 1; /* RW, W1C */
  351. unsigned long gr0_hcerr : 1; /* RW, W1C */
  352. unsigned long gr1_hcerr : 1; /* RW, W1C */
  353. unsigned long lh_hcerr : 1; /* RW, W1C */
  354. unsigned long rh_hcerr : 1; /* RW, W1C */
  355. unsigned long xn_hcerr : 1; /* RW, W1C */
  356. unsigned long si_hcerr : 1; /* RW, W1C */
  357. unsigned long lb_aoerr0 : 1; /* RW, W1C */
  358. unsigned long gr0_aoerr0 : 1; /* RW, W1C */
  359. unsigned long gr1_aoerr0 : 1; /* RW, W1C */
  360. unsigned long lh_aoerr0 : 1; /* RW, W1C */
  361. unsigned long rh_aoerr0 : 1; /* RW, W1C */
  362. unsigned long xn_aoerr0 : 1; /* RW, W1C */
  363. unsigned long si_aoerr0 : 1; /* RW, W1C */
  364. unsigned long lb_aoerr1 : 1; /* RW, W1C */
  365. unsigned long gr0_aoerr1 : 1; /* RW, W1C */
  366. unsigned long gr1_aoerr1 : 1; /* RW, W1C */
  367. unsigned long lh_aoerr1 : 1; /* RW, W1C */
  368. unsigned long rh_aoerr1 : 1; /* RW, W1C */
  369. unsigned long xn_aoerr1 : 1; /* RW, W1C */
  370. unsigned long si_aoerr1 : 1; /* RW, W1C */
  371. unsigned long rh_vpi_int : 1; /* RW, W1C */
  372. unsigned long system_shutdown_int : 1; /* RW, W1C */
  373. unsigned long lb_irq_int_0 : 1; /* RW, W1C */
  374. unsigned long lb_irq_int_1 : 1; /* RW, W1C */
  375. unsigned long lb_irq_int_2 : 1; /* RW, W1C */
  376. unsigned long lb_irq_int_3 : 1; /* RW, W1C */
  377. unsigned long lb_irq_int_4 : 1; /* RW, W1C */
  378. unsigned long lb_irq_int_5 : 1; /* RW, W1C */
  379. unsigned long lb_irq_int_6 : 1; /* RW, W1C */
  380. unsigned long lb_irq_int_7 : 1; /* RW, W1C */
  381. unsigned long lb_irq_int_8 : 1; /* RW, W1C */
  382. unsigned long lb_irq_int_9 : 1; /* RW, W1C */
  383. unsigned long lb_irq_int_10 : 1; /* RW, W1C */
  384. unsigned long lb_irq_int_11 : 1; /* RW, W1C */
  385. unsigned long lb_irq_int_12 : 1; /* RW, W1C */
  386. unsigned long lb_irq_int_13 : 1; /* RW, W1C */
  387. unsigned long lb_irq_int_14 : 1; /* RW, W1C */
  388. unsigned long lb_irq_int_15 : 1; /* RW, W1C */
  389. unsigned long l1_nmi_int : 1; /* RW, W1C */
  390. unsigned long stop_clock : 1; /* RW, W1C */
  391. unsigned long asic_to_l1 : 1; /* RW, W1C */
  392. unsigned long l1_to_asic : 1; /* RW, W1C */
  393. unsigned long ltc_int : 1; /* RW, W1C */
  394. unsigned long la_seq_trigger : 1; /* RW, W1C */
  395. unsigned long ipi_int : 1; /* RW, W1C */
  396. unsigned long extio_int0 : 1; /* RW, W1C */
  397. unsigned long extio_int1 : 1; /* RW, W1C */
  398. unsigned long extio_int2 : 1; /* RW, W1C */
  399. unsigned long extio_int3 : 1; /* RW, W1C */
  400. unsigned long profile_int : 1; /* RW, W1C */
  401. unsigned long rtc0 : 1; /* RW, W1C */
  402. unsigned long rtc1 : 1; /* RW, W1C */
  403. unsigned long rtc2 : 1; /* RW, W1C */
  404. unsigned long rtc3 : 1; /* RW, W1C */
  405. unsigned long bau_data : 1; /* RW, W1C */
  406. unsigned long power_management_req : 1; /* RW, W1C */
  407. unsigned long rsvd_57_63 : 7; /* */
  408. } s1;
  409. struct uv2h_event_occurred0_s {
  410. unsigned long lb_hcerr : 1; /* RW */
  411. unsigned long qp_hcerr : 1; /* RW */
  412. unsigned long rh_hcerr : 1; /* RW */
  413. unsigned long lh0_hcerr : 1; /* RW */
  414. unsigned long lh1_hcerr : 1; /* RW */
  415. unsigned long gr0_hcerr : 1; /* RW */
  416. unsigned long gr1_hcerr : 1; /* RW */
  417. unsigned long ni0_hcerr : 1; /* RW */
  418. unsigned long ni1_hcerr : 1; /* RW */
  419. unsigned long lb_aoerr0 : 1; /* RW */
  420. unsigned long qp_aoerr0 : 1; /* RW */
  421. unsigned long rh_aoerr0 : 1; /* RW */
  422. unsigned long lh0_aoerr0 : 1; /* RW */
  423. unsigned long lh1_aoerr0 : 1; /* RW */
  424. unsigned long gr0_aoerr0 : 1; /* RW */
  425. unsigned long gr1_aoerr0 : 1; /* RW */
  426. unsigned long xb_aoerr0 : 1; /* RW */
  427. unsigned long rt_aoerr0 : 1; /* RW */
  428. unsigned long ni0_aoerr0 : 1; /* RW */
  429. unsigned long ni1_aoerr0 : 1; /* RW */
  430. unsigned long lb_aoerr1 : 1; /* RW */
  431. unsigned long qp_aoerr1 : 1; /* RW */
  432. unsigned long rh_aoerr1 : 1; /* RW */
  433. unsigned long lh0_aoerr1 : 1; /* RW */
  434. unsigned long lh1_aoerr1 : 1; /* RW */
  435. unsigned long gr0_aoerr1 : 1; /* RW */
  436. unsigned long gr1_aoerr1 : 1; /* RW */
  437. unsigned long xb_aoerr1 : 1; /* RW */
  438. unsigned long rt_aoerr1 : 1; /* RW */
  439. unsigned long ni0_aoerr1 : 1; /* RW */
  440. unsigned long ni1_aoerr1 : 1; /* RW */
  441. unsigned long system_shutdown_int : 1; /* RW */
  442. unsigned long lb_irq_int_0 : 1; /* RW */
  443. unsigned long lb_irq_int_1 : 1; /* RW */
  444. unsigned long lb_irq_int_2 : 1; /* RW */
  445. unsigned long lb_irq_int_3 : 1; /* RW */
  446. unsigned long lb_irq_int_4 : 1; /* RW */
  447. unsigned long lb_irq_int_5 : 1; /* RW */
  448. unsigned long lb_irq_int_6 : 1; /* RW */
  449. unsigned long lb_irq_int_7 : 1; /* RW */
  450. unsigned long lb_irq_int_8 : 1; /* RW */
  451. unsigned long lb_irq_int_9 : 1; /* RW */
  452. unsigned long lb_irq_int_10 : 1; /* RW */
  453. unsigned long lb_irq_int_11 : 1; /* RW */
  454. unsigned long lb_irq_int_12 : 1; /* RW */
  455. unsigned long lb_irq_int_13 : 1; /* RW */
  456. unsigned long lb_irq_int_14 : 1; /* RW */
  457. unsigned long lb_irq_int_15 : 1; /* RW */
  458. unsigned long l1_nmi_int : 1; /* RW */
  459. unsigned long stop_clock : 1; /* RW */
  460. unsigned long asic_to_l1 : 1; /* RW */
  461. unsigned long l1_to_asic : 1; /* RW */
  462. unsigned long la_seq_trigger : 1; /* RW */
  463. unsigned long ipi_int : 1; /* RW */
  464. unsigned long extio_int0 : 1; /* RW */
  465. unsigned long extio_int1 : 1; /* RW */
  466. unsigned long extio_int2 : 1; /* RW */
  467. unsigned long extio_int3 : 1; /* RW */
  468. unsigned long profile_int : 1; /* RW */
  469. unsigned long rsvd_59_63 : 5; /* */
  470. } s2;
  471. };
  472. /* ========================================================================= */
  473. /* UVH_EVENT_OCCURRED0_ALIAS */
  474. /* ========================================================================= */
  475. #define UVH_EVENT_OCCURRED0_ALIAS 0x0000000000070008UL
  476. #define UVH_EVENT_OCCURRED0_ALIAS_32 0x5f0
  477. /* ========================================================================= */
  478. /* UVH_GR0_TLB_INT0_CONFIG */
  479. /* ========================================================================= */
  480. #define UVH_GR0_TLB_INT0_CONFIG 0x61b00UL
  481. #define UVH_GR0_TLB_INT0_CONFIG_VECTOR_SHFT 0
  482. #define UVH_GR0_TLB_INT0_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  483. #define UVH_GR0_TLB_INT0_CONFIG_DM_SHFT 8
  484. #define UVH_GR0_TLB_INT0_CONFIG_DM_MASK 0x0000000000000700UL
  485. #define UVH_GR0_TLB_INT0_CONFIG_DESTMODE_SHFT 11
  486. #define UVH_GR0_TLB_INT0_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  487. #define UVH_GR0_TLB_INT0_CONFIG_STATUS_SHFT 12
  488. #define UVH_GR0_TLB_INT0_CONFIG_STATUS_MASK 0x0000000000001000UL
  489. #define UVH_GR0_TLB_INT0_CONFIG_P_SHFT 13
  490. #define UVH_GR0_TLB_INT0_CONFIG_P_MASK 0x0000000000002000UL
  491. #define UVH_GR0_TLB_INT0_CONFIG_T_SHFT 15
  492. #define UVH_GR0_TLB_INT0_CONFIG_T_MASK 0x0000000000008000UL
  493. #define UVH_GR0_TLB_INT0_CONFIG_M_SHFT 16
  494. #define UVH_GR0_TLB_INT0_CONFIG_M_MASK 0x0000000000010000UL
  495. #define UVH_GR0_TLB_INT0_CONFIG_APIC_ID_SHFT 32
  496. #define UVH_GR0_TLB_INT0_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  497. union uvh_gr0_tlb_int0_config_u {
  498. unsigned long v;
  499. struct uvh_gr0_tlb_int0_config_s {
  500. unsigned long vector_ : 8; /* RW */
  501. unsigned long dm : 3; /* RW */
  502. unsigned long destmode : 1; /* RW */
  503. unsigned long status : 1; /* RO */
  504. unsigned long p : 1; /* RO */
  505. unsigned long rsvd_14 : 1; /* */
  506. unsigned long t : 1; /* RO */
  507. unsigned long m : 1; /* RW */
  508. unsigned long rsvd_17_31: 15; /* */
  509. unsigned long apic_id : 32; /* RW */
  510. } s;
  511. };
  512. /* ========================================================================= */
  513. /* UVH_GR0_TLB_INT1_CONFIG */
  514. /* ========================================================================= */
  515. #define UVH_GR0_TLB_INT1_CONFIG 0x61b40UL
  516. #define UVH_GR0_TLB_INT1_CONFIG_VECTOR_SHFT 0
  517. #define UVH_GR0_TLB_INT1_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  518. #define UVH_GR0_TLB_INT1_CONFIG_DM_SHFT 8
  519. #define UVH_GR0_TLB_INT1_CONFIG_DM_MASK 0x0000000000000700UL
  520. #define UVH_GR0_TLB_INT1_CONFIG_DESTMODE_SHFT 11
  521. #define UVH_GR0_TLB_INT1_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  522. #define UVH_GR0_TLB_INT1_CONFIG_STATUS_SHFT 12
  523. #define UVH_GR0_TLB_INT1_CONFIG_STATUS_MASK 0x0000000000001000UL
  524. #define UVH_GR0_TLB_INT1_CONFIG_P_SHFT 13
  525. #define UVH_GR0_TLB_INT1_CONFIG_P_MASK 0x0000000000002000UL
  526. #define UVH_GR0_TLB_INT1_CONFIG_T_SHFT 15
  527. #define UVH_GR0_TLB_INT1_CONFIG_T_MASK 0x0000000000008000UL
  528. #define UVH_GR0_TLB_INT1_CONFIG_M_SHFT 16
  529. #define UVH_GR0_TLB_INT1_CONFIG_M_MASK 0x0000000000010000UL
  530. #define UVH_GR0_TLB_INT1_CONFIG_APIC_ID_SHFT 32
  531. #define UVH_GR0_TLB_INT1_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  532. union uvh_gr0_tlb_int1_config_u {
  533. unsigned long v;
  534. struct uvh_gr0_tlb_int1_config_s {
  535. unsigned long vector_ : 8; /* RW */
  536. unsigned long dm : 3; /* RW */
  537. unsigned long destmode : 1; /* RW */
  538. unsigned long status : 1; /* RO */
  539. unsigned long p : 1; /* RO */
  540. unsigned long rsvd_14 : 1; /* */
  541. unsigned long t : 1; /* RO */
  542. unsigned long m : 1; /* RW */
  543. unsigned long rsvd_17_31: 15; /* */
  544. unsigned long apic_id : 32; /* RW */
  545. } s;
  546. };
  547. /* ========================================================================= */
  548. /* UVH_GR1_TLB_INT0_CONFIG */
  549. /* ========================================================================= */
  550. #define UVH_GR1_TLB_INT0_CONFIG 0x61f00UL
  551. #define UVH_GR1_TLB_INT0_CONFIG_VECTOR_SHFT 0
  552. #define UVH_GR1_TLB_INT0_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  553. #define UVH_GR1_TLB_INT0_CONFIG_DM_SHFT 8
  554. #define UVH_GR1_TLB_INT0_CONFIG_DM_MASK 0x0000000000000700UL
  555. #define UVH_GR1_TLB_INT0_CONFIG_DESTMODE_SHFT 11
  556. #define UVH_GR1_TLB_INT0_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  557. #define UVH_GR1_TLB_INT0_CONFIG_STATUS_SHFT 12
  558. #define UVH_GR1_TLB_INT0_CONFIG_STATUS_MASK 0x0000000000001000UL
  559. #define UVH_GR1_TLB_INT0_CONFIG_P_SHFT 13
  560. #define UVH_GR1_TLB_INT0_CONFIG_P_MASK 0x0000000000002000UL
  561. #define UVH_GR1_TLB_INT0_CONFIG_T_SHFT 15
  562. #define UVH_GR1_TLB_INT0_CONFIG_T_MASK 0x0000000000008000UL
  563. #define UVH_GR1_TLB_INT0_CONFIG_M_SHFT 16
  564. #define UVH_GR1_TLB_INT0_CONFIG_M_MASK 0x0000000000010000UL
  565. #define UVH_GR1_TLB_INT0_CONFIG_APIC_ID_SHFT 32
  566. #define UVH_GR1_TLB_INT0_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  567. union uvh_gr1_tlb_int0_config_u {
  568. unsigned long v;
  569. struct uvh_gr1_tlb_int0_config_s {
  570. unsigned long vector_ : 8; /* RW */
  571. unsigned long dm : 3; /* RW */
  572. unsigned long destmode : 1; /* RW */
  573. unsigned long status : 1; /* RO */
  574. unsigned long p : 1; /* RO */
  575. unsigned long rsvd_14 : 1; /* */
  576. unsigned long t : 1; /* RO */
  577. unsigned long m : 1; /* RW */
  578. unsigned long rsvd_17_31: 15; /* */
  579. unsigned long apic_id : 32; /* RW */
  580. } s;
  581. };
  582. /* ========================================================================= */
  583. /* UVH_GR1_TLB_INT1_CONFIG */
  584. /* ========================================================================= */
  585. #define UVH_GR1_TLB_INT1_CONFIG 0x61f40UL
  586. #define UVH_GR1_TLB_INT1_CONFIG_VECTOR_SHFT 0
  587. #define UVH_GR1_TLB_INT1_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  588. #define UVH_GR1_TLB_INT1_CONFIG_DM_SHFT 8
  589. #define UVH_GR1_TLB_INT1_CONFIG_DM_MASK 0x0000000000000700UL
  590. #define UVH_GR1_TLB_INT1_CONFIG_DESTMODE_SHFT 11
  591. #define UVH_GR1_TLB_INT1_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  592. #define UVH_GR1_TLB_INT1_CONFIG_STATUS_SHFT 12
  593. #define UVH_GR1_TLB_INT1_CONFIG_STATUS_MASK 0x0000000000001000UL
  594. #define UVH_GR1_TLB_INT1_CONFIG_P_SHFT 13
  595. #define UVH_GR1_TLB_INT1_CONFIG_P_MASK 0x0000000000002000UL
  596. #define UVH_GR1_TLB_INT1_CONFIG_T_SHFT 15
  597. #define UVH_GR1_TLB_INT1_CONFIG_T_MASK 0x0000000000008000UL
  598. #define UVH_GR1_TLB_INT1_CONFIG_M_SHFT 16
  599. #define UVH_GR1_TLB_INT1_CONFIG_M_MASK 0x0000000000010000UL
  600. #define UVH_GR1_TLB_INT1_CONFIG_APIC_ID_SHFT 32
  601. #define UVH_GR1_TLB_INT1_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  602. union uvh_gr1_tlb_int1_config_u {
  603. unsigned long v;
  604. struct uvh_gr1_tlb_int1_config_s {
  605. unsigned long vector_ : 8; /* RW */
  606. unsigned long dm : 3; /* RW */
  607. unsigned long destmode : 1; /* RW */
  608. unsigned long status : 1; /* RO */
  609. unsigned long p : 1; /* RO */
  610. unsigned long rsvd_14 : 1; /* */
  611. unsigned long t : 1; /* RO */
  612. unsigned long m : 1; /* RW */
  613. unsigned long rsvd_17_31: 15; /* */
  614. unsigned long apic_id : 32; /* RW */
  615. } s;
  616. };
  617. /* ========================================================================= */
  618. /* UVH_INT_CMPB */
  619. /* ========================================================================= */
  620. #define UVH_INT_CMPB 0x22080UL
  621. #define UVH_INT_CMPB_REAL_TIME_CMPB_SHFT 0
  622. #define UVH_INT_CMPB_REAL_TIME_CMPB_MASK 0x00ffffffffffffffUL
  623. union uvh_int_cmpb_u {
  624. unsigned long v;
  625. struct uvh_int_cmpb_s {
  626. unsigned long real_time_cmpb : 56; /* RW */
  627. unsigned long rsvd_56_63 : 8; /* */
  628. } s;
  629. };
  630. /* ========================================================================= */
  631. /* UVH_INT_CMPC */
  632. /* ========================================================================= */
  633. #define UVH_INT_CMPC 0x22100UL
  634. #define UV1H_INT_CMPC_REAL_TIME_CMPC_SHFT 0
  635. #define UV2H_INT_CMPC_REAL_TIME_CMPC_SHFT 0
  636. #define UVH_INT_CMPC_REAL_TIME_CMPC_SHFT (is_uv1_hub() ? \
  637. UV1H_INT_CMPC_REAL_TIME_CMPC_SHFT : \
  638. UV2H_INT_CMPC_REAL_TIME_CMPC_SHFT)
  639. #define UV1H_INT_CMPC_REAL_TIME_CMPC_MASK 0xffffffffffffffUL
  640. #define UV2H_INT_CMPC_REAL_TIME_CMPC_MASK 0xffffffffffffffUL
  641. #define UVH_INT_CMPC_REAL_TIME_CMPC_MASK (is_uv1_hub() ? \
  642. UV1H_INT_CMPC_REAL_TIME_CMPC_MASK : \
  643. UV2H_INT_CMPC_REAL_TIME_CMPC_MASK)
  644. union uvh_int_cmpc_u {
  645. unsigned long v;
  646. struct uvh_int_cmpc_s {
  647. unsigned long real_time_cmpc : 56; /* RW */
  648. unsigned long rsvd_56_63 : 8; /* */
  649. } s;
  650. };
  651. /* ========================================================================= */
  652. /* UVH_INT_CMPD */
  653. /* ========================================================================= */
  654. #define UVH_INT_CMPD 0x22180UL
  655. #define UV1H_INT_CMPD_REAL_TIME_CMPD_SHFT 0
  656. #define UV2H_INT_CMPD_REAL_TIME_CMPD_SHFT 0
  657. #define UVH_INT_CMPD_REAL_TIME_CMPD_SHFT (is_uv1_hub() ? \
  658. UV1H_INT_CMPD_REAL_TIME_CMPD_SHFT : \
  659. UV2H_INT_CMPD_REAL_TIME_CMPD_SHFT)
  660. #define UV1H_INT_CMPD_REAL_TIME_CMPD_MASK 0xffffffffffffffUL
  661. #define UV2H_INT_CMPD_REAL_TIME_CMPD_MASK 0xffffffffffffffUL
  662. #define UVH_INT_CMPD_REAL_TIME_CMPD_MASK (is_uv1_hub() ? \
  663. UV1H_INT_CMPD_REAL_TIME_CMPD_MASK : \
  664. UV2H_INT_CMPD_REAL_TIME_CMPD_MASK)
  665. union uvh_int_cmpd_u {
  666. unsigned long v;
  667. struct uvh_int_cmpd_s {
  668. unsigned long real_time_cmpd : 56; /* RW */
  669. unsigned long rsvd_56_63 : 8; /* */
  670. } s;
  671. };
  672. /* ========================================================================= */
  673. /* UVH_IPI_INT */
  674. /* ========================================================================= */
  675. #define UVH_IPI_INT 0x60500UL
  676. #define UVH_IPI_INT_32 0x348
  677. #define UVH_IPI_INT_VECTOR_SHFT 0
  678. #define UVH_IPI_INT_VECTOR_MASK 0x00000000000000ffUL
  679. #define UVH_IPI_INT_DELIVERY_MODE_SHFT 8
  680. #define UVH_IPI_INT_DELIVERY_MODE_MASK 0x0000000000000700UL
  681. #define UVH_IPI_INT_DESTMODE_SHFT 11
  682. #define UVH_IPI_INT_DESTMODE_MASK 0x0000000000000800UL
  683. #define UVH_IPI_INT_APIC_ID_SHFT 16
  684. #define UVH_IPI_INT_APIC_ID_MASK 0x0000ffffffff0000UL
  685. #define UVH_IPI_INT_SEND_SHFT 63
  686. #define UVH_IPI_INT_SEND_MASK 0x8000000000000000UL
  687. union uvh_ipi_int_u {
  688. unsigned long v;
  689. struct uvh_ipi_int_s {
  690. unsigned long vector_ : 8; /* RW */
  691. unsigned long delivery_mode : 3; /* RW */
  692. unsigned long destmode : 1; /* RW */
  693. unsigned long rsvd_12_15 : 4; /* */
  694. unsigned long apic_id : 32; /* RW */
  695. unsigned long rsvd_48_62 : 15; /* */
  696. unsigned long send : 1; /* WP */
  697. } s;
  698. };
  699. /* ========================================================================= */
  700. /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST */
  701. /* ========================================================================= */
  702. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST 0x320050UL
  703. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_32 0x9c0
  704. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_ADDRESS_SHFT 4
  705. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_ADDRESS_MASK 0x000007fffffffff0UL
  706. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_NODE_ID_SHFT 49
  707. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_NODE_ID_MASK 0x7ffe000000000000UL
  708. union uvh_lb_bau_intd_payload_queue_first_u {
  709. unsigned long v;
  710. struct uvh_lb_bau_intd_payload_queue_first_s {
  711. unsigned long rsvd_0_3: 4; /* */
  712. unsigned long address : 39; /* RW */
  713. unsigned long rsvd_43_48: 6; /* */
  714. unsigned long node_id : 14; /* RW */
  715. unsigned long rsvd_63 : 1; /* */
  716. } s;
  717. };
  718. /* ========================================================================= */
  719. /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST */
  720. /* ========================================================================= */
  721. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST 0x320060UL
  722. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_32 0x9c8
  723. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_ADDRESS_SHFT 4
  724. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_ADDRESS_MASK 0x000007fffffffff0UL
  725. union uvh_lb_bau_intd_payload_queue_last_u {
  726. unsigned long v;
  727. struct uvh_lb_bau_intd_payload_queue_last_s {
  728. unsigned long rsvd_0_3: 4; /* */
  729. unsigned long address : 39; /* RW */
  730. unsigned long rsvd_43_63: 21; /* */
  731. } s;
  732. };
  733. /* ========================================================================= */
  734. /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL */
  735. /* ========================================================================= */
  736. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL 0x320070UL
  737. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_32 0x9d0
  738. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_ADDRESS_SHFT 4
  739. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_ADDRESS_MASK 0x000007fffffffff0UL
  740. union uvh_lb_bau_intd_payload_queue_tail_u {
  741. unsigned long v;
  742. struct uvh_lb_bau_intd_payload_queue_tail_s {
  743. unsigned long rsvd_0_3: 4; /* */
  744. unsigned long address : 39; /* RW */
  745. unsigned long rsvd_43_63: 21; /* */
  746. } s;
  747. };
  748. /* ========================================================================= */
  749. /* UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE */
  750. /* ========================================================================= */
  751. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE 0x320080UL
  752. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_32 0xa68
  753. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_0_SHFT 0
  754. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_0_MASK 0x0000000000000001UL
  755. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_1_SHFT 1
  756. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_1_MASK 0x0000000000000002UL
  757. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_2_SHFT 2
  758. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_2_MASK 0x0000000000000004UL
  759. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_3_SHFT 3
  760. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_3_MASK 0x0000000000000008UL
  761. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_4_SHFT 4
  762. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_4_MASK 0x0000000000000010UL
  763. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_5_SHFT 5
  764. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_5_MASK 0x0000000000000020UL
  765. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_6_SHFT 6
  766. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_6_MASK 0x0000000000000040UL
  767. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_7_SHFT 7
  768. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_7_MASK 0x0000000000000080UL
  769. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_0_SHFT 8
  770. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_0_MASK 0x0000000000000100UL
  771. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_1_SHFT 9
  772. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_1_MASK 0x0000000000000200UL
  773. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_2_SHFT 10
  774. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_2_MASK 0x0000000000000400UL
  775. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_3_SHFT 11
  776. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_3_MASK 0x0000000000000800UL
  777. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_4_SHFT 12
  778. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_4_MASK 0x0000000000001000UL
  779. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_5_SHFT 13
  780. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_5_MASK 0x0000000000002000UL
  781. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_6_SHFT 14
  782. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_6_MASK 0x0000000000004000UL
  783. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_7_SHFT 15
  784. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_7_MASK 0x0000000000008000UL
  785. union uvh_lb_bau_intd_software_acknowledge_u {
  786. unsigned long v;
  787. struct uvh_lb_bau_intd_software_acknowledge_s {
  788. unsigned long pending_0 : 1; /* RW, W1C */
  789. unsigned long pending_1 : 1; /* RW, W1C */
  790. unsigned long pending_2 : 1; /* RW, W1C */
  791. unsigned long pending_3 : 1; /* RW, W1C */
  792. unsigned long pending_4 : 1; /* RW, W1C */
  793. unsigned long pending_5 : 1; /* RW, W1C */
  794. unsigned long pending_6 : 1; /* RW, W1C */
  795. unsigned long pending_7 : 1; /* RW, W1C */
  796. unsigned long timeout_0 : 1; /* RW, W1C */
  797. unsigned long timeout_1 : 1; /* RW, W1C */
  798. unsigned long timeout_2 : 1; /* RW, W1C */
  799. unsigned long timeout_3 : 1; /* RW, W1C */
  800. unsigned long timeout_4 : 1; /* RW, W1C */
  801. unsigned long timeout_5 : 1; /* RW, W1C */
  802. unsigned long timeout_6 : 1; /* RW, W1C */
  803. unsigned long timeout_7 : 1; /* RW, W1C */
  804. unsigned long rsvd_16_63: 48; /* */
  805. } s;
  806. };
  807. /* ========================================================================= */
  808. /* UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS */
  809. /* ========================================================================= */
  810. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS 0x0000000000320088UL
  811. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS_32 0xa70
  812. /* ========================================================================= */
  813. /* UVH_LB_BAU_MISC_CONTROL */
  814. /* ========================================================================= */
  815. #define UVH_LB_BAU_MISC_CONTROL 0x320170UL
  816. #define UVH_LB_BAU_MISC_CONTROL_32 0xa10
  817. #define UVH_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT 0
  818. #define UVH_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK 0x00000000000000ffUL
  819. #define UVH_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT 8
  820. #define UVH_LB_BAU_MISC_CONTROL_APIC_MODE_MASK 0x0000000000000100UL
  821. #define UVH_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT 9
  822. #define UVH_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK 0x0000000000000200UL
  823. #define UVH_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT 10
  824. #define UVH_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK 0x0000000000000400UL
  825. #define UVH_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
  826. #define UVH_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
  827. #define UVH_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
  828. #define UVH_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
  829. #define UVH_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
  830. #define UVH_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
  831. #define UVH_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
  832. #define UVH_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
  833. #define UVH_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
  834. #define UVH_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
  835. #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
  836. #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
  837. #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
  838. #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
  839. #define UVH_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
  840. #define UVH_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
  841. #define UVH_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
  842. #define UVH_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
  843. #define UVH_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
  844. #define UVH_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
  845. #define UVH_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
  846. #define UVH_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
  847. #define UV1H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT 0
  848. #define UV1H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK 0x00000000000000ffUL
  849. #define UV1H_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT 8
  850. #define UV1H_LB_BAU_MISC_CONTROL_APIC_MODE_MASK 0x0000000000000100UL
  851. #define UV1H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT 9
  852. #define UV1H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK 0x0000000000000200UL
  853. #define UV1H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT 10
  854. #define UV1H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK 0x0000000000000400UL
  855. #define UV1H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
  856. #define UV1H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
  857. #define UV1H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
  858. #define UV1H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
  859. #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
  860. #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
  861. #define UV1H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
  862. #define UV1H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
  863. #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
  864. #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
  865. #define UV1H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
  866. #define UV1H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
  867. #define UV1H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
  868. #define UV1H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
  869. #define UV1H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
  870. #define UV1H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
  871. #define UV1H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
  872. #define UV1H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
  873. #define UV1H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
  874. #define UV1H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
  875. #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
  876. #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
  877. #define UV1H_LB_BAU_MISC_CONTROL_FUN_SHFT 48
  878. #define UV1H_LB_BAU_MISC_CONTROL_FUN_MASK 0xffff000000000000UL
  879. #define UV2H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT 0
  880. #define UV2H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK 0x00000000000000ffUL
  881. #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT 8
  882. #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_MASK 0x0000000000000100UL
  883. #define UV2H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT 9
  884. #define UV2H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK 0x0000000000000200UL
  885. #define UV2H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT 10
  886. #define UV2H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK 0x0000000000000400UL
  887. #define UV2H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
  888. #define UV2H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
  889. #define UV2H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
  890. #define UV2H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
  891. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
  892. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
  893. #define UV2H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
  894. #define UV2H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
  895. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
  896. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
  897. #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
  898. #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
  899. #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
  900. #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
  901. #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
  902. #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
  903. #define UV2H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
  904. #define UV2H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
  905. #define UV2H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
  906. #define UV2H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
  907. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
  908. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
  909. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_SHFT 29
  910. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_MASK 0x0000000020000000UL
  911. #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_SHFT 30
  912. #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_MASK 0x0000000040000000UL
  913. #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_SHFT 31
  914. #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_MASK 0x0000000080000000UL
  915. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_SHFT 32
  916. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_MASK 0x0000000100000000UL
  917. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_SHFT 33
  918. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_MASK 0x0000000200000000UL
  919. #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_SHFT 34
  920. #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_MASK 0x0000000400000000UL
  921. #define UV2H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_SHFT 35
  922. #define UV2H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_MASK 0x0000000800000000UL
  923. #define UV2H_LB_BAU_MISC_CONTROL_FUN_SHFT 48
  924. #define UV2H_LB_BAU_MISC_CONTROL_FUN_MASK 0xffff000000000000UL
  925. union uvh_lb_bau_misc_control_u {
  926. unsigned long v;
  927. struct uvh_lb_bau_misc_control_s {
  928. unsigned long rejection_delay : 8; /* RW */
  929. unsigned long apic_mode : 1; /* RW */
  930. unsigned long force_broadcast : 1; /* RW */
  931. unsigned long force_lock_nop : 1; /* RW */
  932. unsigned long qpi_agent_presence_vector : 3; /* RW */
  933. unsigned long descriptor_fetch_mode : 1; /* RW */
  934. unsigned long enable_intd_soft_ack_mode : 1; /* RW */
  935. unsigned long intd_soft_ack_timeout_period : 4; /* RW */
  936. unsigned long enable_dual_mapping_mode : 1; /* RW */
  937. unsigned long vga_io_port_decode_enable : 1; /* RW */
  938. unsigned long vga_io_port_16_bit_decode : 1; /* RW */
  939. unsigned long suppress_dest_registration : 1; /* RW */
  940. unsigned long programmed_initial_priority : 3; /* RW */
  941. unsigned long use_incoming_priority : 1; /* RW */
  942. unsigned long enable_programmed_initial_priority : 1; /* RW */
  943. unsigned long rsvd_29_63 : 35;
  944. } s;
  945. struct uv1h_lb_bau_misc_control_s {
  946. unsigned long rejection_delay : 8; /* RW */
  947. unsigned long apic_mode : 1; /* RW */
  948. unsigned long force_broadcast : 1; /* RW */
  949. unsigned long force_lock_nop : 1; /* RW */
  950. unsigned long qpi_agent_presence_vector : 3; /* RW */
  951. unsigned long descriptor_fetch_mode : 1; /* RW */
  952. unsigned long enable_intd_soft_ack_mode : 1; /* RW */
  953. unsigned long intd_soft_ack_timeout_period : 4; /* RW */
  954. unsigned long enable_dual_mapping_mode : 1; /* RW */
  955. unsigned long vga_io_port_decode_enable : 1; /* RW */
  956. unsigned long vga_io_port_16_bit_decode : 1; /* RW */
  957. unsigned long suppress_dest_registration : 1; /* RW */
  958. unsigned long programmed_initial_priority : 3; /* RW */
  959. unsigned long use_incoming_priority : 1; /* RW */
  960. unsigned long enable_programmed_initial_priority : 1; /* RW */
  961. unsigned long rsvd_29_47 : 19; /* */
  962. unsigned long fun : 16; /* RW */
  963. } s1;
  964. struct uv2h_lb_bau_misc_control_s {
  965. unsigned long rejection_delay : 8; /* RW */
  966. unsigned long apic_mode : 1; /* RW */
  967. unsigned long force_broadcast : 1; /* RW */
  968. unsigned long force_lock_nop : 1; /* RW */
  969. unsigned long qpi_agent_presence_vector : 3; /* RW */
  970. unsigned long descriptor_fetch_mode : 1; /* RW */
  971. unsigned long enable_intd_soft_ack_mode : 1; /* RW */
  972. unsigned long intd_soft_ack_timeout_period : 4; /* RW */
  973. unsigned long enable_dual_mapping_mode : 1; /* RW */
  974. unsigned long vga_io_port_decode_enable : 1; /* RW */
  975. unsigned long vga_io_port_16_bit_decode : 1; /* RW */
  976. unsigned long suppress_dest_registration : 1; /* RW */
  977. unsigned long programmed_initial_priority : 3; /* RW */
  978. unsigned long use_incoming_priority : 1; /* RW */
  979. unsigned long enable_programmed_initial_priority : 1; /* RW */
  980. unsigned long enable_automatic_apic_mode_selection : 1; /* RW */
  981. unsigned long apic_mode_status : 1; /* RO */
  982. unsigned long suppress_interrupts_to_self : 1; /* RW */
  983. unsigned long enable_lock_based_system_flush : 1; /* RW */
  984. unsigned long enable_extended_sb_status : 1; /* RW */
  985. unsigned long suppress_int_prio_udt_to_self : 1; /* RW */
  986. unsigned long use_legacy_descriptor_formats : 1; /* RW */
  987. unsigned long rsvd_36_47 : 12; /* */
  988. unsigned long fun : 16; /* RW */
  989. } s2;
  990. };
  991. /* ========================================================================= */
  992. /* UVH_LB_BAU_SB_ACTIVATION_CONTROL */
  993. /* ========================================================================= */
  994. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL 0x320020UL
  995. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_32 0x9a8
  996. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INDEX_SHFT 0
  997. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INDEX_MASK 0x000000000000003fUL
  998. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_PUSH_SHFT 62
  999. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_PUSH_MASK 0x4000000000000000UL
  1000. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INIT_SHFT 63
  1001. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INIT_MASK 0x8000000000000000UL
  1002. union uvh_lb_bau_sb_activation_control_u {
  1003. unsigned long v;
  1004. struct uvh_lb_bau_sb_activation_control_s {
  1005. unsigned long index : 6; /* RW */
  1006. unsigned long rsvd_6_61: 56; /* */
  1007. unsigned long push : 1; /* WP */
  1008. unsigned long init : 1; /* WP */
  1009. } s;
  1010. };
  1011. /* ========================================================================= */
  1012. /* UVH_LB_BAU_SB_ACTIVATION_STATUS_0 */
  1013. /* ========================================================================= */
  1014. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0 0x320030UL
  1015. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_32 0x9b0
  1016. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_STATUS_SHFT 0
  1017. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_STATUS_MASK 0xffffffffffffffffUL
  1018. union uvh_lb_bau_sb_activation_status_0_u {
  1019. unsigned long v;
  1020. struct uvh_lb_bau_sb_activation_status_0_s {
  1021. unsigned long status : 64; /* RW */
  1022. } s;
  1023. };
  1024. /* ========================================================================= */
  1025. /* UVH_LB_BAU_SB_ACTIVATION_STATUS_1 */
  1026. /* ========================================================================= */
  1027. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1 0x320040UL
  1028. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_32 0x9b8
  1029. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_STATUS_SHFT 0
  1030. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_STATUS_MASK 0xffffffffffffffffUL
  1031. union uvh_lb_bau_sb_activation_status_1_u {
  1032. unsigned long v;
  1033. struct uvh_lb_bau_sb_activation_status_1_s {
  1034. unsigned long status : 64; /* RW */
  1035. } s;
  1036. };
  1037. /* ========================================================================= */
  1038. /* UVH_LB_BAU_SB_DESCRIPTOR_BASE */
  1039. /* ========================================================================= */
  1040. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE 0x320010UL
  1041. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_32 0x9a0
  1042. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_SHFT 12
  1043. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_MASK 0x000007fffffff000UL
  1044. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_SHFT 49
  1045. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_MASK 0x7ffe000000000000UL
  1046. union uvh_lb_bau_sb_descriptor_base_u {
  1047. unsigned long v;
  1048. struct uvh_lb_bau_sb_descriptor_base_s {
  1049. unsigned long rsvd_0_11 : 12; /* */
  1050. unsigned long page_address : 31; /* RW */
  1051. unsigned long rsvd_43_48 : 6; /* */
  1052. unsigned long node_id : 14; /* RW */
  1053. unsigned long rsvd_63 : 1; /* */
  1054. } s;
  1055. };
  1056. /* ========================================================================= */
  1057. /* UVH_NODE_ID */
  1058. /* ========================================================================= */
  1059. #define UVH_NODE_ID 0x0UL
  1060. #define UVH_NODE_ID_FORCE1_SHFT 0
  1061. #define UVH_NODE_ID_FORCE1_MASK 0x0000000000000001UL
  1062. #define UVH_NODE_ID_MANUFACTURER_SHFT 1
  1063. #define UVH_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
  1064. #define UVH_NODE_ID_PART_NUMBER_SHFT 12
  1065. #define UVH_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
  1066. #define UVH_NODE_ID_REVISION_SHFT 28
  1067. #define UVH_NODE_ID_REVISION_MASK 0x00000000f0000000UL
  1068. #define UVH_NODE_ID_NODE_ID_SHFT 32
  1069. #define UVH_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
  1070. #define UV1H_NODE_ID_FORCE1_SHFT 0
  1071. #define UV1H_NODE_ID_FORCE1_MASK 0x0000000000000001UL
  1072. #define UV1H_NODE_ID_MANUFACTURER_SHFT 1
  1073. #define UV1H_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
  1074. #define UV1H_NODE_ID_PART_NUMBER_SHFT 12
  1075. #define UV1H_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
  1076. #define UV1H_NODE_ID_REVISION_SHFT 28
  1077. #define UV1H_NODE_ID_REVISION_MASK 0x00000000f0000000UL
  1078. #define UV1H_NODE_ID_NODE_ID_SHFT 32
  1079. #define UV1H_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
  1080. #define UV1H_NODE_ID_NODES_PER_BIT_SHFT 48
  1081. #define UV1H_NODE_ID_NODES_PER_BIT_MASK 0x007f000000000000UL
  1082. #define UV1H_NODE_ID_NI_PORT_SHFT 56
  1083. #define UV1H_NODE_ID_NI_PORT_MASK 0x0f00000000000000UL
  1084. #define UV2H_NODE_ID_FORCE1_SHFT 0
  1085. #define UV2H_NODE_ID_FORCE1_MASK 0x0000000000000001UL
  1086. #define UV2H_NODE_ID_MANUFACTURER_SHFT 1
  1087. #define UV2H_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
  1088. #define UV2H_NODE_ID_PART_NUMBER_SHFT 12
  1089. #define UV2H_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
  1090. #define UV2H_NODE_ID_REVISION_SHFT 28
  1091. #define UV2H_NODE_ID_REVISION_MASK 0x00000000f0000000UL
  1092. #define UV2H_NODE_ID_NODE_ID_SHFT 32
  1093. #define UV2H_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
  1094. #define UV2H_NODE_ID_NODES_PER_BIT_SHFT 50
  1095. #define UV2H_NODE_ID_NODES_PER_BIT_MASK 0x01fc000000000000UL
  1096. #define UV2H_NODE_ID_NI_PORT_SHFT 57
  1097. #define UV2H_NODE_ID_NI_PORT_MASK 0x3e00000000000000UL
  1098. union uvh_node_id_u {
  1099. unsigned long v;
  1100. struct uvh_node_id_s {
  1101. unsigned long force1 : 1; /* RO */
  1102. unsigned long manufacturer : 11; /* RO */
  1103. unsigned long part_number : 16; /* RO */
  1104. unsigned long revision : 4; /* RO */
  1105. unsigned long node_id : 15; /* RW */
  1106. unsigned long rsvd_47_63 : 17;
  1107. } s;
  1108. struct uv1h_node_id_s {
  1109. unsigned long force1 : 1; /* RO */
  1110. unsigned long manufacturer : 11; /* RO */
  1111. unsigned long part_number : 16; /* RO */
  1112. unsigned long revision : 4; /* RO */
  1113. unsigned long node_id : 15; /* RW */
  1114. unsigned long rsvd_47 : 1; /* */
  1115. unsigned long nodes_per_bit : 7; /* RW */
  1116. unsigned long rsvd_55 : 1; /* */
  1117. unsigned long ni_port : 4; /* RO */
  1118. unsigned long rsvd_60_63 : 4; /* */
  1119. } s1;
  1120. struct uv2h_node_id_s {
  1121. unsigned long force1 : 1; /* RO */
  1122. unsigned long manufacturer : 11; /* RO */
  1123. unsigned long part_number : 16; /* RO */
  1124. unsigned long revision : 4; /* RO */
  1125. unsigned long node_id : 15; /* RW */
  1126. unsigned long rsvd_47_49 : 3; /* */
  1127. unsigned long nodes_per_bit : 7; /* RO */
  1128. unsigned long ni_port : 5; /* RO */
  1129. unsigned long rsvd_62_63 : 2; /* */
  1130. } s2;
  1131. };
  1132. /* ========================================================================= */
  1133. /* UVH_NODE_PRESENT_TABLE */
  1134. /* ========================================================================= */
  1135. #define UVH_NODE_PRESENT_TABLE 0x1400UL
  1136. #define UVH_NODE_PRESENT_TABLE_DEPTH 16
  1137. #define UVH_NODE_PRESENT_TABLE_NODES_SHFT 0
  1138. #define UVH_NODE_PRESENT_TABLE_NODES_MASK 0xffffffffffffffffUL
  1139. union uvh_node_present_table_u {
  1140. unsigned long v;
  1141. struct uvh_node_present_table_s {
  1142. unsigned long nodes : 64; /* RW */
  1143. } s;
  1144. };
  1145. /* ========================================================================= */
  1146. /* UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR */
  1147. /* ========================================================================= */
  1148. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR 0x16000c8UL
  1149. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_SHFT 24
  1150. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_MASK 0x00000000ff000000UL
  1151. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_SHFT 48
  1152. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_MASK 0x001f000000000000UL
  1153. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_SHFT 63
  1154. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_MASK 0x8000000000000000UL
  1155. union uvh_rh_gam_alias210_overlay_config_0_mmr_u {
  1156. unsigned long v;
  1157. struct uvh_rh_gam_alias210_overlay_config_0_mmr_s {
  1158. unsigned long rsvd_0_23: 24; /* */
  1159. unsigned long base : 8; /* RW */
  1160. unsigned long rsvd_32_47: 16; /* */
  1161. unsigned long m_alias : 5; /* RW */
  1162. unsigned long rsvd_53_62: 10; /* */
  1163. unsigned long enable : 1; /* RW */
  1164. } s;
  1165. };
  1166. /* ========================================================================= */
  1167. /* UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR */
  1168. /* ========================================================================= */
  1169. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR 0x16000d8UL
  1170. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_SHFT 24
  1171. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_MASK 0x00000000ff000000UL
  1172. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_SHFT 48
  1173. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_MASK 0x001f000000000000UL
  1174. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_SHFT 63
  1175. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_MASK 0x8000000000000000UL
  1176. union uvh_rh_gam_alias210_overlay_config_1_mmr_u {
  1177. unsigned long v;
  1178. struct uvh_rh_gam_alias210_overlay_config_1_mmr_s {
  1179. unsigned long rsvd_0_23: 24; /* */
  1180. unsigned long base : 8; /* RW */
  1181. unsigned long rsvd_32_47: 16; /* */
  1182. unsigned long m_alias : 5; /* RW */
  1183. unsigned long rsvd_53_62: 10; /* */
  1184. unsigned long enable : 1; /* RW */
  1185. } s;
  1186. };
  1187. /* ========================================================================= */
  1188. /* UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR */
  1189. /* ========================================================================= */
  1190. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR 0x16000e8UL
  1191. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_SHFT 24
  1192. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_MASK 0x00000000ff000000UL
  1193. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_SHFT 48
  1194. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_MASK 0x001f000000000000UL
  1195. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_SHFT 63
  1196. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_MASK 0x8000000000000000UL
  1197. union uvh_rh_gam_alias210_overlay_config_2_mmr_u {
  1198. unsigned long v;
  1199. struct uvh_rh_gam_alias210_overlay_config_2_mmr_s {
  1200. unsigned long rsvd_0_23: 24; /* */
  1201. unsigned long base : 8; /* RW */
  1202. unsigned long rsvd_32_47: 16; /* */
  1203. unsigned long m_alias : 5; /* RW */
  1204. unsigned long rsvd_53_62: 10; /* */
  1205. unsigned long enable : 1; /* RW */
  1206. } s;
  1207. };
  1208. /* ========================================================================= */
  1209. /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR */
  1210. /* ========================================================================= */
  1211. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR 0x16000d0UL
  1212. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_SHFT 24
  1213. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_MASK 0x00003fffff000000UL
  1214. union uvh_rh_gam_alias210_redirect_config_0_mmr_u {
  1215. unsigned long v;
  1216. struct uvh_rh_gam_alias210_redirect_config_0_mmr_s {
  1217. unsigned long rsvd_0_23 : 24; /* */
  1218. unsigned long dest_base : 22; /* RW */
  1219. unsigned long rsvd_46_63: 18; /* */
  1220. } s;
  1221. };
  1222. /* ========================================================================= */
  1223. /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR */
  1224. /* ========================================================================= */
  1225. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR 0x16000e0UL
  1226. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_SHFT 24
  1227. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_MASK 0x00003fffff000000UL
  1228. union uvh_rh_gam_alias210_redirect_config_1_mmr_u {
  1229. unsigned long v;
  1230. struct uvh_rh_gam_alias210_redirect_config_1_mmr_s {
  1231. unsigned long rsvd_0_23 : 24; /* */
  1232. unsigned long dest_base : 22; /* RW */
  1233. unsigned long rsvd_46_63: 18; /* */
  1234. } s;
  1235. };
  1236. /* ========================================================================= */
  1237. /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR */
  1238. /* ========================================================================= */
  1239. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR 0x16000f0UL
  1240. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_SHFT 24
  1241. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_MASK 0x00003fffff000000UL
  1242. union uvh_rh_gam_alias210_redirect_config_2_mmr_u {
  1243. unsigned long v;
  1244. struct uvh_rh_gam_alias210_redirect_config_2_mmr_s {
  1245. unsigned long rsvd_0_23 : 24; /* */
  1246. unsigned long dest_base : 22; /* RW */
  1247. unsigned long rsvd_46_63: 18; /* */
  1248. } s;
  1249. };
  1250. /* ========================================================================= */
  1251. /* UVH_RH_GAM_CONFIG_MMR */
  1252. /* ========================================================================= */
  1253. #define UVH_RH_GAM_CONFIG_MMR 0x1600000UL
  1254. #define UVH_RH_GAM_CONFIG_MMR_M_SKT_SHFT 0
  1255. #define UVH_RH_GAM_CONFIG_MMR_M_SKT_MASK 0x000000000000003fUL
  1256. #define UVH_RH_GAM_CONFIG_MMR_N_SKT_SHFT 6
  1257. #define UVH_RH_GAM_CONFIG_MMR_N_SKT_MASK 0x00000000000003c0UL
  1258. #define UV1H_RH_GAM_CONFIG_MMR_M_SKT_SHFT 0
  1259. #define UV1H_RH_GAM_CONFIG_MMR_M_SKT_MASK 0x000000000000003fUL
  1260. #define UV1H_RH_GAM_CONFIG_MMR_N_SKT_SHFT 6
  1261. #define UV1H_RH_GAM_CONFIG_MMR_N_SKT_MASK 0x00000000000003c0UL
  1262. #define UV1H_RH_GAM_CONFIG_MMR_MMIOL_CFG_SHFT 12
  1263. #define UV1H_RH_GAM_CONFIG_MMR_MMIOL_CFG_MASK 0x0000000000001000UL
  1264. #define UV2H_RH_GAM_CONFIG_MMR_M_SKT_SHFT 0
  1265. #define UV2H_RH_GAM_CONFIG_MMR_M_SKT_MASK 0x000000000000003fUL
  1266. #define UV2H_RH_GAM_CONFIG_MMR_N_SKT_SHFT 6
  1267. #define UV2H_RH_GAM_CONFIG_MMR_N_SKT_MASK 0x00000000000003c0UL
  1268. union uvh_rh_gam_config_mmr_u {
  1269. unsigned long v;
  1270. struct uvh_rh_gam_config_mmr_s {
  1271. unsigned long m_skt : 6; /* RW */
  1272. unsigned long n_skt : 4; /* RW */
  1273. unsigned long rsvd_10_63 : 54;
  1274. } s;
  1275. struct uv1h_rh_gam_config_mmr_s {
  1276. unsigned long m_skt : 6; /* RW */
  1277. unsigned long n_skt : 4; /* RW */
  1278. unsigned long rsvd_10_11: 2; /* */
  1279. unsigned long mmiol_cfg : 1; /* RW */
  1280. unsigned long rsvd_13_63: 51; /* */
  1281. } s1;
  1282. struct uv2h_rh_gam_config_mmr_s {
  1283. unsigned long m_skt : 6; /* RW */
  1284. unsigned long n_skt : 4; /* RW */
  1285. unsigned long rsvd_10_63: 54; /* */
  1286. } s2;
  1287. };
  1288. /* ========================================================================= */
  1289. /* UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR */
  1290. /* ========================================================================= */
  1291. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL
  1292. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
  1293. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
  1294. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
  1295. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
  1296. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_GR4_SHFT 48
  1297. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_GR4_MASK 0x0001000000000000UL
  1298. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52
  1299. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL
  1300. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  1301. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  1302. #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
  1303. #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
  1304. #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52
  1305. #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL
  1306. #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  1307. #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  1308. union uvh_rh_gam_gru_overlay_config_mmr_u {
  1309. unsigned long v;
  1310. struct uvh_rh_gam_gru_overlay_config_mmr_s {
  1311. unsigned long rsvd_0_27: 28; /* */
  1312. unsigned long base : 18; /* RW */
  1313. unsigned long rsvd_46_62 : 17;
  1314. unsigned long enable : 1; /* RW */
  1315. } s;
  1316. struct uv1h_rh_gam_gru_overlay_config_mmr_s {
  1317. unsigned long rsvd_0_27: 28; /* */
  1318. unsigned long base : 18; /* RW */
  1319. unsigned long rsvd_46_47: 2; /* */
  1320. unsigned long gr4 : 1; /* RW */
  1321. unsigned long rsvd_49_51: 3; /* */
  1322. unsigned long n_gru : 4; /* RW */
  1323. unsigned long rsvd_56_62: 7; /* */
  1324. unsigned long enable : 1; /* RW */
  1325. } s1;
  1326. struct uv2h_rh_gam_gru_overlay_config_mmr_s {
  1327. unsigned long rsvd_0_27: 28; /* */
  1328. unsigned long base : 18; /* RW */
  1329. unsigned long rsvd_46_51: 6; /* */
  1330. unsigned long n_gru : 4; /* RW */
  1331. unsigned long rsvd_56_62: 7; /* */
  1332. unsigned long enable : 1; /* RW */
  1333. } s2;
  1334. };
  1335. /* ========================================================================= */
  1336. /* UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR */
  1337. /* ========================================================================= */
  1338. #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR 0x1600030UL
  1339. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_SHFT 30
  1340. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003fffc0000000UL
  1341. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_SHFT 46
  1342. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_MASK 0x000fc00000000000UL
  1343. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_SHFT 52
  1344. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_MASK 0x00f0000000000000UL
  1345. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  1346. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  1347. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_SHFT 27
  1348. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff8000000UL
  1349. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_SHFT 46
  1350. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_MASK 0x000fc00000000000UL
  1351. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_SHFT 52
  1352. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_MASK 0x00f0000000000000UL
  1353. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  1354. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  1355. union uvh_rh_gam_mmioh_overlay_config_mmr_u {
  1356. unsigned long v;
  1357. struct uv1h_rh_gam_mmioh_overlay_config_mmr_s {
  1358. unsigned long rsvd_0_29: 30; /* */
  1359. unsigned long base : 16; /* RW */
  1360. unsigned long m_io : 6; /* RW */
  1361. unsigned long n_io : 4; /* RW */
  1362. unsigned long rsvd_56_62: 7; /* */
  1363. unsigned long enable : 1; /* RW */
  1364. } s1;
  1365. struct uv2h_rh_gam_mmioh_overlay_config_mmr_s {
  1366. unsigned long rsvd_0_26: 27; /* */
  1367. unsigned long base : 19; /* RW */
  1368. unsigned long m_io : 6; /* RW */
  1369. unsigned long n_io : 4; /* RW */
  1370. unsigned long rsvd_56_62: 7; /* */
  1371. unsigned long enable : 1; /* RW */
  1372. } s2;
  1373. };
  1374. /* ========================================================================= */
  1375. /* UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR */
  1376. /* ========================================================================= */
  1377. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL
  1378. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
  1379. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
  1380. #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
  1381. #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
  1382. #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_DUAL_HUB_SHFT 46
  1383. #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_DUAL_HUB_MASK 0x0000400000000000UL
  1384. #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  1385. #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  1386. #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
  1387. #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
  1388. #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  1389. #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  1390. union uvh_rh_gam_mmr_overlay_config_mmr_u {
  1391. unsigned long v;
  1392. struct uvh_rh_gam_mmr_overlay_config_mmr_s {
  1393. unsigned long rsvd_0_25: 26; /* */
  1394. unsigned long base : 20; /* RW */
  1395. unsigned long rsvd_46_62 : 17;
  1396. unsigned long enable : 1; /* RW */
  1397. } s;
  1398. struct uv1h_rh_gam_mmr_overlay_config_mmr_s {
  1399. unsigned long rsvd_0_25: 26; /* */
  1400. unsigned long base : 20; /* RW */
  1401. unsigned long dual_hub : 1; /* RW */
  1402. unsigned long rsvd_47_62: 16; /* */
  1403. unsigned long enable : 1; /* RW */
  1404. } s1;
  1405. struct uv2h_rh_gam_mmr_overlay_config_mmr_s {
  1406. unsigned long rsvd_0_25: 26; /* */
  1407. unsigned long base : 20; /* RW */
  1408. unsigned long rsvd_46_62: 17; /* */
  1409. unsigned long enable : 1; /* RW */
  1410. } s2;
  1411. };
  1412. /* ========================================================================= */
  1413. /* UVH_RTC */
  1414. /* ========================================================================= */
  1415. #define UVH_RTC 0x340000UL
  1416. #define UVH_RTC_REAL_TIME_CLOCK_SHFT 0
  1417. #define UVH_RTC_REAL_TIME_CLOCK_MASK 0x00ffffffffffffffUL
  1418. union uvh_rtc_u {
  1419. unsigned long v;
  1420. struct uvh_rtc_s {
  1421. unsigned long real_time_clock : 56; /* RW */
  1422. unsigned long rsvd_56_63 : 8; /* */
  1423. } s;
  1424. };
  1425. /* ========================================================================= */
  1426. /* UVH_RTC1_INT_CONFIG */
  1427. /* ========================================================================= */
  1428. #define UVH_RTC1_INT_CONFIG 0x615c0UL
  1429. #define UVH_RTC1_INT_CONFIG_VECTOR_SHFT 0
  1430. #define UVH_RTC1_INT_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  1431. #define UVH_RTC1_INT_CONFIG_DM_SHFT 8
  1432. #define UVH_RTC1_INT_CONFIG_DM_MASK 0x0000000000000700UL
  1433. #define UVH_RTC1_INT_CONFIG_DESTMODE_SHFT 11
  1434. #define UVH_RTC1_INT_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  1435. #define UVH_RTC1_INT_CONFIG_STATUS_SHFT 12
  1436. #define UVH_RTC1_INT_CONFIG_STATUS_MASK 0x0000000000001000UL
  1437. #define UVH_RTC1_INT_CONFIG_P_SHFT 13
  1438. #define UVH_RTC1_INT_CONFIG_P_MASK 0x0000000000002000UL
  1439. #define UVH_RTC1_INT_CONFIG_T_SHFT 15
  1440. #define UVH_RTC1_INT_CONFIG_T_MASK 0x0000000000008000UL
  1441. #define UVH_RTC1_INT_CONFIG_M_SHFT 16
  1442. #define UVH_RTC1_INT_CONFIG_M_MASK 0x0000000000010000UL
  1443. #define UVH_RTC1_INT_CONFIG_APIC_ID_SHFT 32
  1444. #define UVH_RTC1_INT_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  1445. union uvh_rtc1_int_config_u {
  1446. unsigned long v;
  1447. struct uvh_rtc1_int_config_s {
  1448. unsigned long vector_ : 8; /* RW */
  1449. unsigned long dm : 3; /* RW */
  1450. unsigned long destmode : 1; /* RW */
  1451. unsigned long status : 1; /* RO */
  1452. unsigned long p : 1; /* RO */
  1453. unsigned long rsvd_14 : 1; /* */
  1454. unsigned long t : 1; /* RO */
  1455. unsigned long m : 1; /* RW */
  1456. unsigned long rsvd_17_31: 15; /* */
  1457. unsigned long apic_id : 32; /* RW */
  1458. } s;
  1459. };
  1460. /* ========================================================================= */
  1461. /* UVH_SCRATCH5 */
  1462. /* ========================================================================= */
  1463. #define UVH_SCRATCH5 0x2d0200UL
  1464. #define UVH_SCRATCH5_32 0x778
  1465. #define UVH_SCRATCH5_SCRATCH5_SHFT 0
  1466. #define UVH_SCRATCH5_SCRATCH5_MASK 0xffffffffffffffffUL
  1467. union uvh_scratch5_u {
  1468. unsigned long v;
  1469. struct uvh_scratch5_s {
  1470. unsigned long scratch5 : 64; /* RW, W1CS */
  1471. } s;
  1472. };
  1473. /* ========================================================================= */
  1474. /* UV2H_EVENT_OCCURRED2 */
  1475. /* ========================================================================= */
  1476. #define UV2H_EVENT_OCCURRED2 0x70100UL
  1477. #define UV2H_EVENT_OCCURRED2_32 0xb68
  1478. #define UV2H_EVENT_OCCURRED2_RTC_0_SHFT 0
  1479. #define UV2H_EVENT_OCCURRED2_RTC_0_MASK 0x0000000000000001UL
  1480. #define UV2H_EVENT_OCCURRED2_RTC_1_SHFT 1
  1481. #define UV2H_EVENT_OCCURRED2_RTC_1_MASK 0x0000000000000002UL
  1482. #define UV2H_EVENT_OCCURRED2_RTC_2_SHFT 2
  1483. #define UV2H_EVENT_OCCURRED2_RTC_2_MASK 0x0000000000000004UL
  1484. #define UV2H_EVENT_OCCURRED2_RTC_3_SHFT 3
  1485. #define UV2H_EVENT_OCCURRED2_RTC_3_MASK 0x0000000000000008UL
  1486. #define UV2H_EVENT_OCCURRED2_RTC_4_SHFT 4
  1487. #define UV2H_EVENT_OCCURRED2_RTC_4_MASK 0x0000000000000010UL
  1488. #define UV2H_EVENT_OCCURRED2_RTC_5_SHFT 5
  1489. #define UV2H_EVENT_OCCURRED2_RTC_5_MASK 0x0000000000000020UL
  1490. #define UV2H_EVENT_OCCURRED2_RTC_6_SHFT 6
  1491. #define UV2H_EVENT_OCCURRED2_RTC_6_MASK 0x0000000000000040UL
  1492. #define UV2H_EVENT_OCCURRED2_RTC_7_SHFT 7
  1493. #define UV2H_EVENT_OCCURRED2_RTC_7_MASK 0x0000000000000080UL
  1494. #define UV2H_EVENT_OCCURRED2_RTC_8_SHFT 8
  1495. #define UV2H_EVENT_OCCURRED2_RTC_8_MASK 0x0000000000000100UL
  1496. #define UV2H_EVENT_OCCURRED2_RTC_9_SHFT 9
  1497. #define UV2H_EVENT_OCCURRED2_RTC_9_MASK 0x0000000000000200UL
  1498. #define UV2H_EVENT_OCCURRED2_RTC_10_SHFT 10
  1499. #define UV2H_EVENT_OCCURRED2_RTC_10_MASK 0x0000000000000400UL
  1500. #define UV2H_EVENT_OCCURRED2_RTC_11_SHFT 11
  1501. #define UV2H_EVENT_OCCURRED2_RTC_11_MASK 0x0000000000000800UL
  1502. #define UV2H_EVENT_OCCURRED2_RTC_12_SHFT 12
  1503. #define UV2H_EVENT_OCCURRED2_RTC_12_MASK 0x0000000000001000UL
  1504. #define UV2H_EVENT_OCCURRED2_RTC_13_SHFT 13
  1505. #define UV2H_EVENT_OCCURRED2_RTC_13_MASK 0x0000000000002000UL
  1506. #define UV2H_EVENT_OCCURRED2_RTC_14_SHFT 14
  1507. #define UV2H_EVENT_OCCURRED2_RTC_14_MASK 0x0000000000004000UL
  1508. #define UV2H_EVENT_OCCURRED2_RTC_15_SHFT 15
  1509. #define UV2H_EVENT_OCCURRED2_RTC_15_MASK 0x0000000000008000UL
  1510. #define UV2H_EVENT_OCCURRED2_RTC_16_SHFT 16
  1511. #define UV2H_EVENT_OCCURRED2_RTC_16_MASK 0x0000000000010000UL
  1512. #define UV2H_EVENT_OCCURRED2_RTC_17_SHFT 17
  1513. #define UV2H_EVENT_OCCURRED2_RTC_17_MASK 0x0000000000020000UL
  1514. #define UV2H_EVENT_OCCURRED2_RTC_18_SHFT 18
  1515. #define UV2H_EVENT_OCCURRED2_RTC_18_MASK 0x0000000000040000UL
  1516. #define UV2H_EVENT_OCCURRED2_RTC_19_SHFT 19
  1517. #define UV2H_EVENT_OCCURRED2_RTC_19_MASK 0x0000000000080000UL
  1518. #define UV2H_EVENT_OCCURRED2_RTC_20_SHFT 20
  1519. #define UV2H_EVENT_OCCURRED2_RTC_20_MASK 0x0000000000100000UL
  1520. #define UV2H_EVENT_OCCURRED2_RTC_21_SHFT 21
  1521. #define UV2H_EVENT_OCCURRED2_RTC_21_MASK 0x0000000000200000UL
  1522. #define UV2H_EVENT_OCCURRED2_RTC_22_SHFT 22
  1523. #define UV2H_EVENT_OCCURRED2_RTC_22_MASK 0x0000000000400000UL
  1524. #define UV2H_EVENT_OCCURRED2_RTC_23_SHFT 23
  1525. #define UV2H_EVENT_OCCURRED2_RTC_23_MASK 0x0000000000800000UL
  1526. #define UV2H_EVENT_OCCURRED2_RTC_24_SHFT 24
  1527. #define UV2H_EVENT_OCCURRED2_RTC_24_MASK 0x0000000001000000UL
  1528. #define UV2H_EVENT_OCCURRED2_RTC_25_SHFT 25
  1529. #define UV2H_EVENT_OCCURRED2_RTC_25_MASK 0x0000000002000000UL
  1530. #define UV2H_EVENT_OCCURRED2_RTC_26_SHFT 26
  1531. #define UV2H_EVENT_OCCURRED2_RTC_26_MASK 0x0000000004000000UL
  1532. #define UV2H_EVENT_OCCURRED2_RTC_27_SHFT 27
  1533. #define UV2H_EVENT_OCCURRED2_RTC_27_MASK 0x0000000008000000UL
  1534. #define UV2H_EVENT_OCCURRED2_RTC_28_SHFT 28
  1535. #define UV2H_EVENT_OCCURRED2_RTC_28_MASK 0x0000000010000000UL
  1536. #define UV2H_EVENT_OCCURRED2_RTC_29_SHFT 29
  1537. #define UV2H_EVENT_OCCURRED2_RTC_29_MASK 0x0000000020000000UL
  1538. #define UV2H_EVENT_OCCURRED2_RTC_30_SHFT 30
  1539. #define UV2H_EVENT_OCCURRED2_RTC_30_MASK 0x0000000040000000UL
  1540. #define UV2H_EVENT_OCCURRED2_RTC_31_SHFT 31
  1541. #define UV2H_EVENT_OCCURRED2_RTC_31_MASK 0x0000000080000000UL
  1542. union uv2h_event_occurred2_u {
  1543. unsigned long v;
  1544. struct uv2h_event_occurred2_s {
  1545. unsigned long rtc_0 : 1; /* RW */
  1546. unsigned long rtc_1 : 1; /* RW */
  1547. unsigned long rtc_2 : 1; /* RW */
  1548. unsigned long rtc_3 : 1; /* RW */
  1549. unsigned long rtc_4 : 1; /* RW */
  1550. unsigned long rtc_5 : 1; /* RW */
  1551. unsigned long rtc_6 : 1; /* RW */
  1552. unsigned long rtc_7 : 1; /* RW */
  1553. unsigned long rtc_8 : 1; /* RW */
  1554. unsigned long rtc_9 : 1; /* RW */
  1555. unsigned long rtc_10 : 1; /* RW */
  1556. unsigned long rtc_11 : 1; /* RW */
  1557. unsigned long rtc_12 : 1; /* RW */
  1558. unsigned long rtc_13 : 1; /* RW */
  1559. unsigned long rtc_14 : 1; /* RW */
  1560. unsigned long rtc_15 : 1; /* RW */
  1561. unsigned long rtc_16 : 1; /* RW */
  1562. unsigned long rtc_17 : 1; /* RW */
  1563. unsigned long rtc_18 : 1; /* RW */
  1564. unsigned long rtc_19 : 1; /* RW */
  1565. unsigned long rtc_20 : 1; /* RW */
  1566. unsigned long rtc_21 : 1; /* RW */
  1567. unsigned long rtc_22 : 1; /* RW */
  1568. unsigned long rtc_23 : 1; /* RW */
  1569. unsigned long rtc_24 : 1; /* RW */
  1570. unsigned long rtc_25 : 1; /* RW */
  1571. unsigned long rtc_26 : 1; /* RW */
  1572. unsigned long rtc_27 : 1; /* RW */
  1573. unsigned long rtc_28 : 1; /* RW */
  1574. unsigned long rtc_29 : 1; /* RW */
  1575. unsigned long rtc_30 : 1; /* RW */
  1576. unsigned long rtc_31 : 1; /* RW */
  1577. unsigned long rsvd_32_63: 32; /* */
  1578. } s1;
  1579. };
  1580. /* ========================================================================= */
  1581. /* UV2H_EVENT_OCCURRED2_ALIAS */
  1582. /* ========================================================================= */
  1583. #define UV2H_EVENT_OCCURRED2_ALIAS 0x70108UL
  1584. #define UV2H_EVENT_OCCURRED2_ALIAS_32 0xb70
  1585. /* ========================================================================= */
  1586. /* UV2H_LB_BAU_SB_ACTIVATION_STATUS_2 */
  1587. /* ========================================================================= */
  1588. #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2 0x320130UL
  1589. #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2_32 0x9f0
  1590. #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_SHFT 0
  1591. #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_MASK 0xffffffffffffffffUL
  1592. union uv2h_lb_bau_sb_activation_status_2_u {
  1593. unsigned long v;
  1594. struct uv2h_lb_bau_sb_activation_status_2_s {
  1595. unsigned long aux_error : 64; /* RW */
  1596. } s1;
  1597. };
  1598. /* ========================================================================= */
  1599. /* UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK */
  1600. /* ========================================================================= */
  1601. #define UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK 0x320130UL
  1602. #define UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK_32 0x9f0
  1603. #define UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK_BIT_ENABLES_SHFT 0
  1604. #define UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK_BIT_ENABLES_MASK 0x00000000ffffffffUL
  1605. union uv1h_lb_target_physical_apic_id_mask_u {
  1606. unsigned long v;
  1607. struct uv1h_lb_target_physical_apic_id_mask_s {
  1608. unsigned long bit_enables : 32; /* RW */
  1609. unsigned long rsvd_32_63 : 32; /* */
  1610. } s1;
  1611. };
  1612. #endif /* __ASM_UV_MMRS_X86_H__ */