uv_mmrs.h 130 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888
  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-2013 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 all UV hubs types.
  14. *
  15. * To minimize coding differences between hub types, the symbols are
  16. * grouped by architecture types.
  17. *
  18. * UVH - definitions common to all UV hub types.
  19. * UVXH - definitions common to all UV eXtended hub types (currently 2 & 3).
  20. * UV1H - definitions specific to UV type 1 hub.
  21. * UV2H - definitions specific to UV type 2 hub.
  22. * UV3H - definitions specific to UV type 3 hub.
  23. *
  24. * So in general, MMR addresses and structures are identical on all hubs types.
  25. * These MMRs are identified as:
  26. * #define UVH_xxx <address>
  27. * union uvh_xxx {
  28. * unsigned long v;
  29. * struct uvh_int_cmpd_s {
  30. * } s;
  31. * };
  32. *
  33. * If the MMR exists on all hub types but have different addresses:
  34. * #define UV1Hxxx a
  35. * #define UV2Hxxx b
  36. * #define UV3Hxxx c
  37. * #define UVHxxx (is_uv1_hub() ? UV1Hxxx :
  38. * (is_uv2_hub() ? UV2Hxxx :
  39. * UV3Hxxx))
  40. *
  41. * If the MMR exists on all hub types > 1 but have different addresses:
  42. * #define UV2Hxxx b
  43. * #define UV3Hxxx c
  44. * #define UVXHxxx (is_uv2_hub() ? UV2Hxxx :
  45. * UV3Hxxx))
  46. *
  47. * union uvh_xxx {
  48. * unsigned long v;
  49. * struct uvh_xxx_s { # Common fields only
  50. * } s;
  51. * struct uv1h_xxx_s { # Full UV1 definition (*)
  52. * } s1;
  53. * struct uv2h_xxx_s { # Full UV2 definition (*)
  54. * } s2;
  55. * struct uv3h_xxx_s { # Full UV3 definition (*)
  56. * } s3;
  57. * };
  58. * (* - if present and different than the common struct)
  59. *
  60. * Only essential differences are enumerated. For example, if the address is
  61. * the same for all UV's, only a single #define is generated. Likewise,
  62. * if the contents is the same for all hubs, only the "s" structure is
  63. * generated.
  64. *
  65. * If the MMR exists on ONLY 1 type of hub, no generic definition is
  66. * generated:
  67. * #define UVnH_xxx <uvn address>
  68. * union uvnh_xxx {
  69. * unsigned long v;
  70. * struct uvh_int_cmpd_s {
  71. * } sn;
  72. * };
  73. *
  74. * (GEN Flags: mflags_opt= undefs=0 UV23=UVXH)
  75. */
  76. #define UV_MMR_ENABLE (1UL << 63)
  77. #define UV1_HUB_PART_NUMBER 0x88a5
  78. #define UV2_HUB_PART_NUMBER 0x8eb8
  79. #define UV2_HUB_PART_NUMBER_X 0x1111
  80. #define UV3_HUB_PART_NUMBER 0x9578
  81. #define UV3_HUB_PART_NUMBER_X 0x4321
  82. /* Compat: Indicate which UV Hubs are supported. */
  83. #define UV2_HUB_IS_SUPPORTED 1
  84. #define UV3_HUB_IS_SUPPORTED 1
  85. /* ========================================================================= */
  86. /* UVH_BAU_DATA_BROADCAST */
  87. /* ========================================================================= */
  88. #define UVH_BAU_DATA_BROADCAST 0x61688UL
  89. #define UVH_BAU_DATA_BROADCAST_32 0x440
  90. #define UVH_BAU_DATA_BROADCAST_ENABLE_SHFT 0
  91. #define UVH_BAU_DATA_BROADCAST_ENABLE_MASK 0x0000000000000001UL
  92. union uvh_bau_data_broadcast_u {
  93. unsigned long v;
  94. struct uvh_bau_data_broadcast_s {
  95. unsigned long enable:1; /* RW */
  96. unsigned long rsvd_1_63:63;
  97. } s;
  98. };
  99. /* ========================================================================= */
  100. /* UVH_BAU_DATA_CONFIG */
  101. /* ========================================================================= */
  102. #define UVH_BAU_DATA_CONFIG 0x61680UL
  103. #define UVH_BAU_DATA_CONFIG_32 0x438
  104. #define UVH_BAU_DATA_CONFIG_VECTOR_SHFT 0
  105. #define UVH_BAU_DATA_CONFIG_DM_SHFT 8
  106. #define UVH_BAU_DATA_CONFIG_DESTMODE_SHFT 11
  107. #define UVH_BAU_DATA_CONFIG_STATUS_SHFT 12
  108. #define UVH_BAU_DATA_CONFIG_P_SHFT 13
  109. #define UVH_BAU_DATA_CONFIG_T_SHFT 15
  110. #define UVH_BAU_DATA_CONFIG_M_SHFT 16
  111. #define UVH_BAU_DATA_CONFIG_APIC_ID_SHFT 32
  112. #define UVH_BAU_DATA_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  113. #define UVH_BAU_DATA_CONFIG_DM_MASK 0x0000000000000700UL
  114. #define UVH_BAU_DATA_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  115. #define UVH_BAU_DATA_CONFIG_STATUS_MASK 0x0000000000001000UL
  116. #define UVH_BAU_DATA_CONFIG_P_MASK 0x0000000000002000UL
  117. #define UVH_BAU_DATA_CONFIG_T_MASK 0x0000000000008000UL
  118. #define UVH_BAU_DATA_CONFIG_M_MASK 0x0000000000010000UL
  119. #define UVH_BAU_DATA_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  120. union uvh_bau_data_config_u {
  121. unsigned long v;
  122. struct uvh_bau_data_config_s {
  123. unsigned long vector_:8; /* RW */
  124. unsigned long dm:3; /* RW */
  125. unsigned long destmode:1; /* RW */
  126. unsigned long status:1; /* RO */
  127. unsigned long p:1; /* RO */
  128. unsigned long rsvd_14:1;
  129. unsigned long t:1; /* RO */
  130. unsigned long m:1; /* RW */
  131. unsigned long rsvd_17_31:15;
  132. unsigned long apic_id:32; /* RW */
  133. } s;
  134. };
  135. /* ========================================================================= */
  136. /* UVH_EVENT_OCCURRED0 */
  137. /* ========================================================================= */
  138. #define UVH_EVENT_OCCURRED0 0x70000UL
  139. #define UVH_EVENT_OCCURRED0_32 0x5e8
  140. #define UVH_EVENT_OCCURRED0_LB_HCERR_SHFT 0
  141. #define UVH_EVENT_OCCURRED0_RH_AOERR0_SHFT 11
  142. #define UVH_EVENT_OCCURRED0_LB_HCERR_MASK 0x0000000000000001UL
  143. #define UVH_EVENT_OCCURRED0_RH_AOERR0_MASK 0x0000000000000800UL
  144. #define UV1H_EVENT_OCCURRED0_GR0_HCERR_SHFT 1
  145. #define UV1H_EVENT_OCCURRED0_GR1_HCERR_SHFT 2
  146. #define UV1H_EVENT_OCCURRED0_LH_HCERR_SHFT 3
  147. #define UV1H_EVENT_OCCURRED0_RH_HCERR_SHFT 4
  148. #define UV1H_EVENT_OCCURRED0_XN_HCERR_SHFT 5
  149. #define UV1H_EVENT_OCCURRED0_SI_HCERR_SHFT 6
  150. #define UV1H_EVENT_OCCURRED0_LB_AOERR0_SHFT 7
  151. #define UV1H_EVENT_OCCURRED0_GR0_AOERR0_SHFT 8
  152. #define UV1H_EVENT_OCCURRED0_GR1_AOERR0_SHFT 9
  153. #define UV1H_EVENT_OCCURRED0_LH_AOERR0_SHFT 10
  154. #define UV1H_EVENT_OCCURRED0_XN_AOERR0_SHFT 12
  155. #define UV1H_EVENT_OCCURRED0_SI_AOERR0_SHFT 13
  156. #define UV1H_EVENT_OCCURRED0_LB_AOERR1_SHFT 14
  157. #define UV1H_EVENT_OCCURRED0_GR0_AOERR1_SHFT 15
  158. #define UV1H_EVENT_OCCURRED0_GR1_AOERR1_SHFT 16
  159. #define UV1H_EVENT_OCCURRED0_LH_AOERR1_SHFT 17
  160. #define UV1H_EVENT_OCCURRED0_RH_AOERR1_SHFT 18
  161. #define UV1H_EVENT_OCCURRED0_XN_AOERR1_SHFT 19
  162. #define UV1H_EVENT_OCCURRED0_SI_AOERR1_SHFT 20
  163. #define UV1H_EVENT_OCCURRED0_RH_VPI_INT_SHFT 21
  164. #define UV1H_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_SHFT 22
  165. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_0_SHFT 23
  166. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_1_SHFT 24
  167. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_2_SHFT 25
  168. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_3_SHFT 26
  169. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_4_SHFT 27
  170. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_5_SHFT 28
  171. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_6_SHFT 29
  172. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_7_SHFT 30
  173. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_8_SHFT 31
  174. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_9_SHFT 32
  175. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_10_SHFT 33
  176. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_11_SHFT 34
  177. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_12_SHFT 35
  178. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_13_SHFT 36
  179. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_14_SHFT 37
  180. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_15_SHFT 38
  181. #define UV1H_EVENT_OCCURRED0_L1_NMI_INT_SHFT 39
  182. #define UV1H_EVENT_OCCURRED0_STOP_CLOCK_SHFT 40
  183. #define UV1H_EVENT_OCCURRED0_ASIC_TO_L1_SHFT 41
  184. #define UV1H_EVENT_OCCURRED0_L1_TO_ASIC_SHFT 42
  185. #define UV1H_EVENT_OCCURRED0_LTC_INT_SHFT 43
  186. #define UV1H_EVENT_OCCURRED0_LA_SEQ_TRIGGER_SHFT 44
  187. #define UV1H_EVENT_OCCURRED0_IPI_INT_SHFT 45
  188. #define UV1H_EVENT_OCCURRED0_EXTIO_INT0_SHFT 46
  189. #define UV1H_EVENT_OCCURRED0_EXTIO_INT1_SHFT 47
  190. #define UV1H_EVENT_OCCURRED0_EXTIO_INT2_SHFT 48
  191. #define UV1H_EVENT_OCCURRED0_EXTIO_INT3_SHFT 49
  192. #define UV1H_EVENT_OCCURRED0_PROFILE_INT_SHFT 50
  193. #define UV1H_EVENT_OCCURRED0_RTC0_SHFT 51
  194. #define UV1H_EVENT_OCCURRED0_RTC1_SHFT 52
  195. #define UV1H_EVENT_OCCURRED0_RTC2_SHFT 53
  196. #define UV1H_EVENT_OCCURRED0_RTC3_SHFT 54
  197. #define UV1H_EVENT_OCCURRED0_BAU_DATA_SHFT 55
  198. #define UV1H_EVENT_OCCURRED0_POWER_MANAGEMENT_REQ_SHFT 56
  199. #define UV1H_EVENT_OCCURRED0_GR0_HCERR_MASK 0x0000000000000002UL
  200. #define UV1H_EVENT_OCCURRED0_GR1_HCERR_MASK 0x0000000000000004UL
  201. #define UV1H_EVENT_OCCURRED0_LH_HCERR_MASK 0x0000000000000008UL
  202. #define UV1H_EVENT_OCCURRED0_RH_HCERR_MASK 0x0000000000000010UL
  203. #define UV1H_EVENT_OCCURRED0_XN_HCERR_MASK 0x0000000000000020UL
  204. #define UV1H_EVENT_OCCURRED0_SI_HCERR_MASK 0x0000000000000040UL
  205. #define UV1H_EVENT_OCCURRED0_LB_AOERR0_MASK 0x0000000000000080UL
  206. #define UV1H_EVENT_OCCURRED0_GR0_AOERR0_MASK 0x0000000000000100UL
  207. #define UV1H_EVENT_OCCURRED0_GR1_AOERR0_MASK 0x0000000000000200UL
  208. #define UV1H_EVENT_OCCURRED0_LH_AOERR0_MASK 0x0000000000000400UL
  209. #define UV1H_EVENT_OCCURRED0_XN_AOERR0_MASK 0x0000000000001000UL
  210. #define UV1H_EVENT_OCCURRED0_SI_AOERR0_MASK 0x0000000000002000UL
  211. #define UV1H_EVENT_OCCURRED0_LB_AOERR1_MASK 0x0000000000004000UL
  212. #define UV1H_EVENT_OCCURRED0_GR0_AOERR1_MASK 0x0000000000008000UL
  213. #define UV1H_EVENT_OCCURRED0_GR1_AOERR1_MASK 0x0000000000010000UL
  214. #define UV1H_EVENT_OCCURRED0_LH_AOERR1_MASK 0x0000000000020000UL
  215. #define UV1H_EVENT_OCCURRED0_RH_AOERR1_MASK 0x0000000000040000UL
  216. #define UV1H_EVENT_OCCURRED0_XN_AOERR1_MASK 0x0000000000080000UL
  217. #define UV1H_EVENT_OCCURRED0_SI_AOERR1_MASK 0x0000000000100000UL
  218. #define UV1H_EVENT_OCCURRED0_RH_VPI_INT_MASK 0x0000000000200000UL
  219. #define UV1H_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_MASK 0x0000000000400000UL
  220. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_0_MASK 0x0000000000800000UL
  221. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_1_MASK 0x0000000001000000UL
  222. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_2_MASK 0x0000000002000000UL
  223. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_3_MASK 0x0000000004000000UL
  224. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_4_MASK 0x0000000008000000UL
  225. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_5_MASK 0x0000000010000000UL
  226. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_6_MASK 0x0000000020000000UL
  227. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_7_MASK 0x0000000040000000UL
  228. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_8_MASK 0x0000000080000000UL
  229. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_9_MASK 0x0000000100000000UL
  230. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_10_MASK 0x0000000200000000UL
  231. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_11_MASK 0x0000000400000000UL
  232. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_12_MASK 0x0000000800000000UL
  233. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_13_MASK 0x0000001000000000UL
  234. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_14_MASK 0x0000002000000000UL
  235. #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_15_MASK 0x0000004000000000UL
  236. #define UV1H_EVENT_OCCURRED0_L1_NMI_INT_MASK 0x0000008000000000UL
  237. #define UV1H_EVENT_OCCURRED0_STOP_CLOCK_MASK 0x0000010000000000UL
  238. #define UV1H_EVENT_OCCURRED0_ASIC_TO_L1_MASK 0x0000020000000000UL
  239. #define UV1H_EVENT_OCCURRED0_L1_TO_ASIC_MASK 0x0000040000000000UL
  240. #define UV1H_EVENT_OCCURRED0_LTC_INT_MASK 0x0000080000000000UL
  241. #define UV1H_EVENT_OCCURRED0_LA_SEQ_TRIGGER_MASK 0x0000100000000000UL
  242. #define UV1H_EVENT_OCCURRED0_IPI_INT_MASK 0x0000200000000000UL
  243. #define UV1H_EVENT_OCCURRED0_EXTIO_INT0_MASK 0x0000400000000000UL
  244. #define UV1H_EVENT_OCCURRED0_EXTIO_INT1_MASK 0x0000800000000000UL
  245. #define UV1H_EVENT_OCCURRED0_EXTIO_INT2_MASK 0x0001000000000000UL
  246. #define UV1H_EVENT_OCCURRED0_EXTIO_INT3_MASK 0x0002000000000000UL
  247. #define UV1H_EVENT_OCCURRED0_PROFILE_INT_MASK 0x0004000000000000UL
  248. #define UV1H_EVENT_OCCURRED0_RTC0_MASK 0x0008000000000000UL
  249. #define UV1H_EVENT_OCCURRED0_RTC1_MASK 0x0010000000000000UL
  250. #define UV1H_EVENT_OCCURRED0_RTC2_MASK 0x0020000000000000UL
  251. #define UV1H_EVENT_OCCURRED0_RTC3_MASK 0x0040000000000000UL
  252. #define UV1H_EVENT_OCCURRED0_BAU_DATA_MASK 0x0080000000000000UL
  253. #define UV1H_EVENT_OCCURRED0_POWER_MANAGEMENT_REQ_MASK 0x0100000000000000UL
  254. #define UVXH_EVENT_OCCURRED0_QP_HCERR_SHFT 1
  255. #define UVXH_EVENT_OCCURRED0_RH_HCERR_SHFT 2
  256. #define UVXH_EVENT_OCCURRED0_LH0_HCERR_SHFT 3
  257. #define UVXH_EVENT_OCCURRED0_LH1_HCERR_SHFT 4
  258. #define UVXH_EVENT_OCCURRED0_GR0_HCERR_SHFT 5
  259. #define UVXH_EVENT_OCCURRED0_GR1_HCERR_SHFT 6
  260. #define UVXH_EVENT_OCCURRED0_NI0_HCERR_SHFT 7
  261. #define UVXH_EVENT_OCCURRED0_NI1_HCERR_SHFT 8
  262. #define UVXH_EVENT_OCCURRED0_LB_AOERR0_SHFT 9
  263. #define UVXH_EVENT_OCCURRED0_QP_AOERR0_SHFT 10
  264. #define UVXH_EVENT_OCCURRED0_LH0_AOERR0_SHFT 12
  265. #define UVXH_EVENT_OCCURRED0_LH1_AOERR0_SHFT 13
  266. #define UVXH_EVENT_OCCURRED0_GR0_AOERR0_SHFT 14
  267. #define UVXH_EVENT_OCCURRED0_GR1_AOERR0_SHFT 15
  268. #define UVXH_EVENT_OCCURRED0_XB_AOERR0_SHFT 16
  269. #define UVXH_EVENT_OCCURRED0_RT_AOERR0_SHFT 17
  270. #define UVXH_EVENT_OCCURRED0_NI0_AOERR0_SHFT 18
  271. #define UVXH_EVENT_OCCURRED0_NI1_AOERR0_SHFT 19
  272. #define UVXH_EVENT_OCCURRED0_LB_AOERR1_SHFT 20
  273. #define UVXH_EVENT_OCCURRED0_QP_AOERR1_SHFT 21
  274. #define UVXH_EVENT_OCCURRED0_RH_AOERR1_SHFT 22
  275. #define UVXH_EVENT_OCCURRED0_LH0_AOERR1_SHFT 23
  276. #define UVXH_EVENT_OCCURRED0_LH1_AOERR1_SHFT 24
  277. #define UVXH_EVENT_OCCURRED0_GR0_AOERR1_SHFT 25
  278. #define UVXH_EVENT_OCCURRED0_GR1_AOERR1_SHFT 26
  279. #define UVXH_EVENT_OCCURRED0_XB_AOERR1_SHFT 27
  280. #define UVXH_EVENT_OCCURRED0_RT_AOERR1_SHFT 28
  281. #define UVXH_EVENT_OCCURRED0_NI0_AOERR1_SHFT 29
  282. #define UVXH_EVENT_OCCURRED0_NI1_AOERR1_SHFT 30
  283. #define UVXH_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_SHFT 31
  284. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_0_SHFT 32
  285. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_1_SHFT 33
  286. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_2_SHFT 34
  287. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_3_SHFT 35
  288. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_4_SHFT 36
  289. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_5_SHFT 37
  290. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_6_SHFT 38
  291. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_7_SHFT 39
  292. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_8_SHFT 40
  293. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_9_SHFT 41
  294. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_10_SHFT 42
  295. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_11_SHFT 43
  296. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_12_SHFT 44
  297. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_13_SHFT 45
  298. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_14_SHFT 46
  299. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_15_SHFT 47
  300. #define UVXH_EVENT_OCCURRED0_L1_NMI_INT_SHFT 48
  301. #define UVXH_EVENT_OCCURRED0_STOP_CLOCK_SHFT 49
  302. #define UVXH_EVENT_OCCURRED0_ASIC_TO_L1_SHFT 50
  303. #define UVXH_EVENT_OCCURRED0_L1_TO_ASIC_SHFT 51
  304. #define UVXH_EVENT_OCCURRED0_LA_SEQ_TRIGGER_SHFT 52
  305. #define UVXH_EVENT_OCCURRED0_IPI_INT_SHFT 53
  306. #define UVXH_EVENT_OCCURRED0_EXTIO_INT0_SHFT 54
  307. #define UVXH_EVENT_OCCURRED0_EXTIO_INT1_SHFT 55
  308. #define UVXH_EVENT_OCCURRED0_EXTIO_INT2_SHFT 56
  309. #define UVXH_EVENT_OCCURRED0_EXTIO_INT3_SHFT 57
  310. #define UVXH_EVENT_OCCURRED0_PROFILE_INT_SHFT 58
  311. #define UVXH_EVENT_OCCURRED0_QP_HCERR_MASK 0x0000000000000002UL
  312. #define UVXH_EVENT_OCCURRED0_RH_HCERR_MASK 0x0000000000000004UL
  313. #define UVXH_EVENT_OCCURRED0_LH0_HCERR_MASK 0x0000000000000008UL
  314. #define UVXH_EVENT_OCCURRED0_LH1_HCERR_MASK 0x0000000000000010UL
  315. #define UVXH_EVENT_OCCURRED0_GR0_HCERR_MASK 0x0000000000000020UL
  316. #define UVXH_EVENT_OCCURRED0_GR1_HCERR_MASK 0x0000000000000040UL
  317. #define UVXH_EVENT_OCCURRED0_NI0_HCERR_MASK 0x0000000000000080UL
  318. #define UVXH_EVENT_OCCURRED0_NI1_HCERR_MASK 0x0000000000000100UL
  319. #define UVXH_EVENT_OCCURRED0_LB_AOERR0_MASK 0x0000000000000200UL
  320. #define UVXH_EVENT_OCCURRED0_QP_AOERR0_MASK 0x0000000000000400UL
  321. #define UVXH_EVENT_OCCURRED0_LH0_AOERR0_MASK 0x0000000000001000UL
  322. #define UVXH_EVENT_OCCURRED0_LH1_AOERR0_MASK 0x0000000000002000UL
  323. #define UVXH_EVENT_OCCURRED0_GR0_AOERR0_MASK 0x0000000000004000UL
  324. #define UVXH_EVENT_OCCURRED0_GR1_AOERR0_MASK 0x0000000000008000UL
  325. #define UVXH_EVENT_OCCURRED0_XB_AOERR0_MASK 0x0000000000010000UL
  326. #define UVXH_EVENT_OCCURRED0_RT_AOERR0_MASK 0x0000000000020000UL
  327. #define UVXH_EVENT_OCCURRED0_NI0_AOERR0_MASK 0x0000000000040000UL
  328. #define UVXH_EVENT_OCCURRED0_NI1_AOERR0_MASK 0x0000000000080000UL
  329. #define UVXH_EVENT_OCCURRED0_LB_AOERR1_MASK 0x0000000000100000UL
  330. #define UVXH_EVENT_OCCURRED0_QP_AOERR1_MASK 0x0000000000200000UL
  331. #define UVXH_EVENT_OCCURRED0_RH_AOERR1_MASK 0x0000000000400000UL
  332. #define UVXH_EVENT_OCCURRED0_LH0_AOERR1_MASK 0x0000000000800000UL
  333. #define UVXH_EVENT_OCCURRED0_LH1_AOERR1_MASK 0x0000000001000000UL
  334. #define UVXH_EVENT_OCCURRED0_GR0_AOERR1_MASK 0x0000000002000000UL
  335. #define UVXH_EVENT_OCCURRED0_GR1_AOERR1_MASK 0x0000000004000000UL
  336. #define UVXH_EVENT_OCCURRED0_XB_AOERR1_MASK 0x0000000008000000UL
  337. #define UVXH_EVENT_OCCURRED0_RT_AOERR1_MASK 0x0000000010000000UL
  338. #define UVXH_EVENT_OCCURRED0_NI0_AOERR1_MASK 0x0000000020000000UL
  339. #define UVXH_EVENT_OCCURRED0_NI1_AOERR1_MASK 0x0000000040000000UL
  340. #define UVXH_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_MASK 0x0000000080000000UL
  341. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_0_MASK 0x0000000100000000UL
  342. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_1_MASK 0x0000000200000000UL
  343. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_2_MASK 0x0000000400000000UL
  344. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_3_MASK 0x0000000800000000UL
  345. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_4_MASK 0x0000001000000000UL
  346. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_5_MASK 0x0000002000000000UL
  347. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_6_MASK 0x0000004000000000UL
  348. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_7_MASK 0x0000008000000000UL
  349. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_8_MASK 0x0000010000000000UL
  350. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_9_MASK 0x0000020000000000UL
  351. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_10_MASK 0x0000040000000000UL
  352. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_11_MASK 0x0000080000000000UL
  353. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_12_MASK 0x0000100000000000UL
  354. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_13_MASK 0x0000200000000000UL
  355. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_14_MASK 0x0000400000000000UL
  356. #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_15_MASK 0x0000800000000000UL
  357. #define UVXH_EVENT_OCCURRED0_L1_NMI_INT_MASK 0x0001000000000000UL
  358. #define UVXH_EVENT_OCCURRED0_STOP_CLOCK_MASK 0x0002000000000000UL
  359. #define UVXH_EVENT_OCCURRED0_ASIC_TO_L1_MASK 0x0004000000000000UL
  360. #define UVXH_EVENT_OCCURRED0_L1_TO_ASIC_MASK 0x0008000000000000UL
  361. #define UVXH_EVENT_OCCURRED0_LA_SEQ_TRIGGER_MASK 0x0010000000000000UL
  362. #define UVXH_EVENT_OCCURRED0_IPI_INT_MASK 0x0020000000000000UL
  363. #define UVXH_EVENT_OCCURRED0_EXTIO_INT0_MASK 0x0040000000000000UL
  364. #define UVXH_EVENT_OCCURRED0_EXTIO_INT1_MASK 0x0080000000000000UL
  365. #define UVXH_EVENT_OCCURRED0_EXTIO_INT2_MASK 0x0100000000000000UL
  366. #define UVXH_EVENT_OCCURRED0_EXTIO_INT3_MASK 0x0200000000000000UL
  367. #define UVXH_EVENT_OCCURRED0_PROFILE_INT_MASK 0x0400000000000000UL
  368. union uvh_event_occurred0_u {
  369. unsigned long v;
  370. struct uvh_event_occurred0_s {
  371. unsigned long lb_hcerr:1; /* RW, W1C */
  372. unsigned long rsvd_1_10:10;
  373. unsigned long rh_aoerr0:1; /* RW, W1C */
  374. unsigned long rsvd_12_63:52;
  375. } s;
  376. struct uvxh_event_occurred0_s {
  377. unsigned long lb_hcerr:1; /* RW */
  378. unsigned long qp_hcerr:1; /* RW */
  379. unsigned long rh_hcerr:1; /* RW */
  380. unsigned long lh0_hcerr:1; /* RW */
  381. unsigned long lh1_hcerr:1; /* RW */
  382. unsigned long gr0_hcerr:1; /* RW */
  383. unsigned long gr1_hcerr:1; /* RW */
  384. unsigned long ni0_hcerr:1; /* RW */
  385. unsigned long ni1_hcerr:1; /* RW */
  386. unsigned long lb_aoerr0:1; /* RW */
  387. unsigned long qp_aoerr0:1; /* RW */
  388. unsigned long rh_aoerr0:1; /* RW */
  389. unsigned long lh0_aoerr0:1; /* RW */
  390. unsigned long lh1_aoerr0:1; /* RW */
  391. unsigned long gr0_aoerr0:1; /* RW */
  392. unsigned long gr1_aoerr0:1; /* RW */
  393. unsigned long xb_aoerr0:1; /* RW */
  394. unsigned long rt_aoerr0:1; /* RW */
  395. unsigned long ni0_aoerr0:1; /* RW */
  396. unsigned long ni1_aoerr0:1; /* RW */
  397. unsigned long lb_aoerr1:1; /* RW */
  398. unsigned long qp_aoerr1:1; /* RW */
  399. unsigned long rh_aoerr1:1; /* RW */
  400. unsigned long lh0_aoerr1:1; /* RW */
  401. unsigned long lh1_aoerr1:1; /* RW */
  402. unsigned long gr0_aoerr1:1; /* RW */
  403. unsigned long gr1_aoerr1:1; /* RW */
  404. unsigned long xb_aoerr1:1; /* RW */
  405. unsigned long rt_aoerr1:1; /* RW */
  406. unsigned long ni0_aoerr1:1; /* RW */
  407. unsigned long ni1_aoerr1:1; /* RW */
  408. unsigned long system_shutdown_int:1; /* RW */
  409. unsigned long lb_irq_int_0:1; /* RW */
  410. unsigned long lb_irq_int_1:1; /* RW */
  411. unsigned long lb_irq_int_2:1; /* RW */
  412. unsigned long lb_irq_int_3:1; /* RW */
  413. unsigned long lb_irq_int_4:1; /* RW */
  414. unsigned long lb_irq_int_5:1; /* RW */
  415. unsigned long lb_irq_int_6:1; /* RW */
  416. unsigned long lb_irq_int_7:1; /* RW */
  417. unsigned long lb_irq_int_8:1; /* RW */
  418. unsigned long lb_irq_int_9:1; /* RW */
  419. unsigned long lb_irq_int_10:1; /* RW */
  420. unsigned long lb_irq_int_11:1; /* RW */
  421. unsigned long lb_irq_int_12:1; /* RW */
  422. unsigned long lb_irq_int_13:1; /* RW */
  423. unsigned long lb_irq_int_14:1; /* RW */
  424. unsigned long lb_irq_int_15:1; /* RW */
  425. unsigned long l1_nmi_int:1; /* RW */
  426. unsigned long stop_clock:1; /* RW */
  427. unsigned long asic_to_l1:1; /* RW */
  428. unsigned long l1_to_asic:1; /* RW */
  429. unsigned long la_seq_trigger:1; /* RW */
  430. unsigned long ipi_int:1; /* RW */
  431. unsigned long extio_int0:1; /* RW */
  432. unsigned long extio_int1:1; /* RW */
  433. unsigned long extio_int2:1; /* RW */
  434. unsigned long extio_int3:1; /* RW */
  435. unsigned long profile_int:1; /* RW */
  436. unsigned long rsvd_59_63:5;
  437. } sx;
  438. };
  439. /* ========================================================================= */
  440. /* UVH_EVENT_OCCURRED0_ALIAS */
  441. /* ========================================================================= */
  442. #define UVH_EVENT_OCCURRED0_ALIAS 0x70008UL
  443. #define UVH_EVENT_OCCURRED0_ALIAS_32 0x5f0
  444. /* ========================================================================= */
  445. /* UVH_EXTIO_INT0_BROADCAST */
  446. /* ========================================================================= */
  447. #define UVH_EXTIO_INT0_BROADCAST 0x61448UL
  448. #define UVH_EXTIO_INT0_BROADCAST_32 0x3f0
  449. #define UVH_EXTIO_INT0_BROADCAST_ENABLE_SHFT 0
  450. #define UVH_EXTIO_INT0_BROADCAST_ENABLE_MASK 0x0000000000000001UL
  451. union uvh_extio_int0_broadcast_u {
  452. unsigned long v;
  453. struct uvh_extio_int0_broadcast_s {
  454. unsigned long enable:1; /* RW */
  455. unsigned long rsvd_1_63:63;
  456. } s;
  457. };
  458. /* ========================================================================= */
  459. /* UVH_GR0_TLB_INT0_CONFIG */
  460. /* ========================================================================= */
  461. #define UVH_GR0_TLB_INT0_CONFIG 0x61b00UL
  462. #define UVH_GR0_TLB_INT0_CONFIG_VECTOR_SHFT 0
  463. #define UVH_GR0_TLB_INT0_CONFIG_DM_SHFT 8
  464. #define UVH_GR0_TLB_INT0_CONFIG_DESTMODE_SHFT 11
  465. #define UVH_GR0_TLB_INT0_CONFIG_STATUS_SHFT 12
  466. #define UVH_GR0_TLB_INT0_CONFIG_P_SHFT 13
  467. #define UVH_GR0_TLB_INT0_CONFIG_T_SHFT 15
  468. #define UVH_GR0_TLB_INT0_CONFIG_M_SHFT 16
  469. #define UVH_GR0_TLB_INT0_CONFIG_APIC_ID_SHFT 32
  470. #define UVH_GR0_TLB_INT0_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  471. #define UVH_GR0_TLB_INT0_CONFIG_DM_MASK 0x0000000000000700UL
  472. #define UVH_GR0_TLB_INT0_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  473. #define UVH_GR0_TLB_INT0_CONFIG_STATUS_MASK 0x0000000000001000UL
  474. #define UVH_GR0_TLB_INT0_CONFIG_P_MASK 0x0000000000002000UL
  475. #define UVH_GR0_TLB_INT0_CONFIG_T_MASK 0x0000000000008000UL
  476. #define UVH_GR0_TLB_INT0_CONFIG_M_MASK 0x0000000000010000UL
  477. #define UVH_GR0_TLB_INT0_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  478. union uvh_gr0_tlb_int0_config_u {
  479. unsigned long v;
  480. struct uvh_gr0_tlb_int0_config_s {
  481. unsigned long vector_:8; /* RW */
  482. unsigned long dm:3; /* RW */
  483. unsigned long destmode:1; /* RW */
  484. unsigned long status:1; /* RO */
  485. unsigned long p:1; /* RO */
  486. unsigned long rsvd_14:1;
  487. unsigned long t:1; /* RO */
  488. unsigned long m:1; /* RW */
  489. unsigned long rsvd_17_31:15;
  490. unsigned long apic_id:32; /* RW */
  491. } s;
  492. };
  493. /* ========================================================================= */
  494. /* UVH_GR0_TLB_INT1_CONFIG */
  495. /* ========================================================================= */
  496. #define UVH_GR0_TLB_INT1_CONFIG 0x61b40UL
  497. #define UVH_GR0_TLB_INT1_CONFIG_VECTOR_SHFT 0
  498. #define UVH_GR0_TLB_INT1_CONFIG_DM_SHFT 8
  499. #define UVH_GR0_TLB_INT1_CONFIG_DESTMODE_SHFT 11
  500. #define UVH_GR0_TLB_INT1_CONFIG_STATUS_SHFT 12
  501. #define UVH_GR0_TLB_INT1_CONFIG_P_SHFT 13
  502. #define UVH_GR0_TLB_INT1_CONFIG_T_SHFT 15
  503. #define UVH_GR0_TLB_INT1_CONFIG_M_SHFT 16
  504. #define UVH_GR0_TLB_INT1_CONFIG_APIC_ID_SHFT 32
  505. #define UVH_GR0_TLB_INT1_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  506. #define UVH_GR0_TLB_INT1_CONFIG_DM_MASK 0x0000000000000700UL
  507. #define UVH_GR0_TLB_INT1_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  508. #define UVH_GR0_TLB_INT1_CONFIG_STATUS_MASK 0x0000000000001000UL
  509. #define UVH_GR0_TLB_INT1_CONFIG_P_MASK 0x0000000000002000UL
  510. #define UVH_GR0_TLB_INT1_CONFIG_T_MASK 0x0000000000008000UL
  511. #define UVH_GR0_TLB_INT1_CONFIG_M_MASK 0x0000000000010000UL
  512. #define UVH_GR0_TLB_INT1_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  513. union uvh_gr0_tlb_int1_config_u {
  514. unsigned long v;
  515. struct uvh_gr0_tlb_int1_config_s {
  516. unsigned long vector_:8; /* RW */
  517. unsigned long dm:3; /* RW */
  518. unsigned long destmode:1; /* RW */
  519. unsigned long status:1; /* RO */
  520. unsigned long p:1; /* RO */
  521. unsigned long rsvd_14:1;
  522. unsigned long t:1; /* RO */
  523. unsigned long m:1; /* RW */
  524. unsigned long rsvd_17_31:15;
  525. unsigned long apic_id:32; /* RW */
  526. } s;
  527. };
  528. /* ========================================================================= */
  529. /* UVH_GR0_TLB_MMR_CONTROL */
  530. /* ========================================================================= */
  531. #define UV1H_GR0_TLB_MMR_CONTROL 0x401080UL
  532. #define UV2H_GR0_TLB_MMR_CONTROL 0xc01080UL
  533. #define UV3H_GR0_TLB_MMR_CONTROL 0xc01080UL
  534. #define UVH_GR0_TLB_MMR_CONTROL \
  535. (is_uv1_hub() ? UV1H_GR0_TLB_MMR_CONTROL : \
  536. (is_uv2_hub() ? UV2H_GR0_TLB_MMR_CONTROL : \
  537. UV3H_GR0_TLB_MMR_CONTROL))
  538. #define UVH_GR0_TLB_MMR_CONTROL_INDEX_SHFT 0
  539. #define UVH_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
  540. #define UVH_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
  541. #define UVH_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
  542. #define UVH_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
  543. #define UVH_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT 31
  544. #define UVH_GR0_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
  545. #define UVH_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
  546. #define UVH_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
  547. #define UVH_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
  548. #define UVH_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
  549. #define UVH_GR0_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
  550. #define UV1H_GR0_TLB_MMR_CONTROL_INDEX_SHFT 0
  551. #define UV1H_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
  552. #define UV1H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
  553. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
  554. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
  555. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT 31
  556. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_CON_SHFT 48
  557. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_SHFT 52
  558. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBPGSIZE_SHFT 54
  559. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBRREG_SHFT 56
  560. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBLRUV_SHFT 60
  561. #define UV1H_GR0_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
  562. #define UV1H_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
  563. #define UV1H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
  564. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
  565. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
  566. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
  567. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_CON_MASK 0x0001000000000000UL
  568. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_MASK 0x0010000000000000UL
  569. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBPGSIZE_MASK 0x0040000000000000UL
  570. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBRREG_MASK 0x0100000000000000UL
  571. #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBLRUV_MASK 0x1000000000000000UL
  572. #define UVXH_GR0_TLB_MMR_CONTROL_INDEX_SHFT 0
  573. #define UVXH_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
  574. #define UVXH_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
  575. #define UVXH_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
  576. #define UVXH_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
  577. #define UVXH_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT 31
  578. #define UVXH_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT 32
  579. #define UVXH_GR0_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
  580. #define UVXH_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
  581. #define UVXH_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
  582. #define UVXH_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
  583. #define UVXH_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
  584. #define UVXH_GR0_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
  585. #define UVXH_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_MASK 0x0000000100000000UL
  586. #define UV2H_GR0_TLB_MMR_CONTROL_INDEX_SHFT 0
  587. #define UV2H_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
  588. #define UV2H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
  589. #define UV2H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
  590. #define UV2H_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
  591. #define UV2H_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT 31
  592. #define UV2H_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT 32
  593. #define UV2H_GR0_TLB_MMR_CONTROL_MMR_INJ_CON_SHFT 48
  594. #define UV2H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_SHFT 52
  595. #define UV2H_GR0_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
  596. #define UV2H_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
  597. #define UV2H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
  598. #define UV2H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
  599. #define UV2H_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
  600. #define UV2H_GR0_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
  601. #define UV2H_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_MASK 0x0000000100000000UL
  602. #define UV2H_GR0_TLB_MMR_CONTROL_MMR_INJ_CON_MASK 0x0001000000000000UL
  603. #define UV2H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_MASK 0x0010000000000000UL
  604. #define UV3H_GR0_TLB_MMR_CONTROL_INDEX_SHFT 0
  605. #define UV3H_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
  606. #define UV3H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
  607. #define UV3H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
  608. #define UV3H_GR0_TLB_MMR_CONTROL_ECC_SEL_SHFT 21
  609. #define UV3H_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
  610. #define UV3H_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT 31
  611. #define UV3H_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT 32
  612. #define UV3H_GR0_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
  613. #define UV3H_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
  614. #define UV3H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
  615. #define UV3H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
  616. #define UV3H_GR0_TLB_MMR_CONTROL_ECC_SEL_MASK 0x0000000000200000UL
  617. #define UV3H_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
  618. #define UV3H_GR0_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
  619. #define UV3H_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_MASK 0x0000000100000000UL
  620. union uvh_gr0_tlb_mmr_control_u {
  621. unsigned long v;
  622. struct uvh_gr0_tlb_mmr_control_s {
  623. unsigned long index:12; /* RW */
  624. unsigned long mem_sel:2; /* RW */
  625. unsigned long rsvd_14_15:2;
  626. unsigned long auto_valid_en:1; /* RW */
  627. unsigned long rsvd_17_19:3;
  628. unsigned long mmr_hash_index_en:1; /* RW */
  629. unsigned long rsvd_21_29:9;
  630. unsigned long mmr_write:1; /* WP */
  631. unsigned long mmr_read:1; /* WP */
  632. unsigned long rsvd_32_48:17;
  633. unsigned long rsvd_49_51:3;
  634. unsigned long rsvd_52_63:12;
  635. } s;
  636. struct uv1h_gr0_tlb_mmr_control_s {
  637. unsigned long index:12; /* RW */
  638. unsigned long mem_sel:2; /* RW */
  639. unsigned long rsvd_14_15:2;
  640. unsigned long auto_valid_en:1; /* RW */
  641. unsigned long rsvd_17_19:3;
  642. unsigned long mmr_hash_index_en:1; /* RW */
  643. unsigned long rsvd_21_29:9;
  644. unsigned long mmr_write:1; /* WP */
  645. unsigned long mmr_read:1; /* WP */
  646. unsigned long rsvd_32_47:16;
  647. unsigned long mmr_inj_con:1; /* RW */
  648. unsigned long rsvd_49_51:3;
  649. unsigned long mmr_inj_tlbram:1; /* RW */
  650. unsigned long rsvd_53:1;
  651. unsigned long mmr_inj_tlbpgsize:1; /* RW */
  652. unsigned long rsvd_55:1;
  653. unsigned long mmr_inj_tlbrreg:1; /* RW */
  654. unsigned long rsvd_57_59:3;
  655. unsigned long mmr_inj_tlblruv:1; /* RW */
  656. unsigned long rsvd_61_63:3;
  657. } s1;
  658. struct uvxh_gr0_tlb_mmr_control_s {
  659. unsigned long index:12; /* RW */
  660. unsigned long mem_sel:2; /* RW */
  661. unsigned long rsvd_14_15:2;
  662. unsigned long auto_valid_en:1; /* RW */
  663. unsigned long rsvd_17_19:3;
  664. unsigned long mmr_hash_index_en:1; /* RW */
  665. unsigned long rsvd_21_29:9;
  666. unsigned long mmr_write:1; /* WP */
  667. unsigned long mmr_read:1; /* WP */
  668. unsigned long mmr_op_done:1; /* RW */
  669. unsigned long rsvd_33_47:15;
  670. unsigned long rsvd_48:1;
  671. unsigned long rsvd_49_51:3;
  672. unsigned long rsvd_52:1;
  673. unsigned long rsvd_53_63:11;
  674. } sx;
  675. struct uv2h_gr0_tlb_mmr_control_s {
  676. unsigned long index:12; /* RW */
  677. unsigned long mem_sel:2; /* RW */
  678. unsigned long rsvd_14_15:2;
  679. unsigned long auto_valid_en:1; /* RW */
  680. unsigned long rsvd_17_19:3;
  681. unsigned long mmr_hash_index_en:1; /* RW */
  682. unsigned long rsvd_21_29:9;
  683. unsigned long mmr_write:1; /* WP */
  684. unsigned long mmr_read:1; /* WP */
  685. unsigned long mmr_op_done:1; /* RW */
  686. unsigned long rsvd_33_47:15;
  687. unsigned long mmr_inj_con:1; /* RW */
  688. unsigned long rsvd_49_51:3;
  689. unsigned long mmr_inj_tlbram:1; /* RW */
  690. unsigned long rsvd_53_63:11;
  691. } s2;
  692. struct uv3h_gr0_tlb_mmr_control_s {
  693. unsigned long index:12; /* RW */
  694. unsigned long mem_sel:2; /* RW */
  695. unsigned long rsvd_14_15:2;
  696. unsigned long auto_valid_en:1; /* RW */
  697. unsigned long rsvd_17_19:3;
  698. unsigned long mmr_hash_index_en:1; /* RW */
  699. unsigned long ecc_sel:1; /* RW */
  700. unsigned long rsvd_22_29:8;
  701. unsigned long mmr_write:1; /* WP */
  702. unsigned long mmr_read:1; /* WP */
  703. unsigned long mmr_op_done:1; /* RW */
  704. unsigned long rsvd_33_47:15;
  705. unsigned long undef_48:1; /* Undefined */
  706. unsigned long rsvd_49_51:3;
  707. unsigned long undef_52:1; /* Undefined */
  708. unsigned long rsvd_53_63:11;
  709. } s3;
  710. };
  711. /* ========================================================================= */
  712. /* UVH_GR0_TLB_MMR_READ_DATA_HI */
  713. /* ========================================================================= */
  714. #define UV1H_GR0_TLB_MMR_READ_DATA_HI 0x4010a0UL
  715. #define UV2H_GR0_TLB_MMR_READ_DATA_HI 0xc010a0UL
  716. #define UV3H_GR0_TLB_MMR_READ_DATA_HI 0xc010a0UL
  717. #define UVH_GR0_TLB_MMR_READ_DATA_HI \
  718. (is_uv1_hub() ? UV1H_GR0_TLB_MMR_READ_DATA_HI : \
  719. (is_uv2_hub() ? UV2H_GR0_TLB_MMR_READ_DATA_HI : \
  720. UV3H_GR0_TLB_MMR_READ_DATA_HI))
  721. #define UVH_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
  722. #define UVH_GR0_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
  723. #define UVH_GR0_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
  724. #define UVH_GR0_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
  725. #define UVH_GR0_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
  726. #define UVH_GR0_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
  727. #define UVH_GR0_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
  728. #define UVH_GR0_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
  729. #define UV1H_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
  730. #define UV1H_GR0_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
  731. #define UV1H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
  732. #define UV1H_GR0_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
  733. #define UV1H_GR0_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
  734. #define UV1H_GR0_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
  735. #define UV1H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
  736. #define UV1H_GR0_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
  737. #define UVXH_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
  738. #define UVXH_GR0_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
  739. #define UVXH_GR0_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
  740. #define UVXH_GR0_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
  741. #define UVXH_GR0_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
  742. #define UVXH_GR0_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
  743. #define UVXH_GR0_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
  744. #define UVXH_GR0_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
  745. #define UV2H_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
  746. #define UV2H_GR0_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
  747. #define UV2H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
  748. #define UV2H_GR0_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
  749. #define UV2H_GR0_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
  750. #define UV2H_GR0_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
  751. #define UV2H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
  752. #define UV2H_GR0_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
  753. #define UV3H_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
  754. #define UV3H_GR0_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
  755. #define UV3H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
  756. #define UV3H_GR0_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
  757. #define UV3H_GR0_TLB_MMR_READ_DATA_HI_AA_EXT_SHFT 45
  758. #define UV3H_GR0_TLB_MMR_READ_DATA_HI_WAY_ECC_SHFT 55
  759. #define UV3H_GR0_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
  760. #define UV3H_GR0_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
  761. #define UV3H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
  762. #define UV3H_GR0_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
  763. #define UV3H_GR0_TLB_MMR_READ_DATA_HI_AA_EXT_MASK 0x0000200000000000UL
  764. #define UV3H_GR0_TLB_MMR_READ_DATA_HI_WAY_ECC_MASK 0xff80000000000000UL
  765. union uvh_gr0_tlb_mmr_read_data_hi_u {
  766. unsigned long v;
  767. struct uvh_gr0_tlb_mmr_read_data_hi_s {
  768. unsigned long pfn:41; /* RO */
  769. unsigned long gaa:2; /* RO */
  770. unsigned long dirty:1; /* RO */
  771. unsigned long larger:1; /* RO */
  772. unsigned long rsvd_45_63:19;
  773. } s;
  774. struct uv1h_gr0_tlb_mmr_read_data_hi_s {
  775. unsigned long pfn:41; /* RO */
  776. unsigned long gaa:2; /* RO */
  777. unsigned long dirty:1; /* RO */
  778. unsigned long larger:1; /* RO */
  779. unsigned long rsvd_45_63:19;
  780. } s1;
  781. struct uvxh_gr0_tlb_mmr_read_data_hi_s {
  782. unsigned long pfn:41; /* RO */
  783. unsigned long gaa:2; /* RO */
  784. unsigned long dirty:1; /* RO */
  785. unsigned long larger:1; /* RO */
  786. unsigned long rsvd_45_63:19;
  787. } sx;
  788. struct uv2h_gr0_tlb_mmr_read_data_hi_s {
  789. unsigned long pfn:41; /* RO */
  790. unsigned long gaa:2; /* RO */
  791. unsigned long dirty:1; /* RO */
  792. unsigned long larger:1; /* RO */
  793. unsigned long rsvd_45_63:19;
  794. } s2;
  795. struct uv3h_gr0_tlb_mmr_read_data_hi_s {
  796. unsigned long pfn:41; /* RO */
  797. unsigned long gaa:2; /* RO */
  798. unsigned long dirty:1; /* RO */
  799. unsigned long larger:1; /* RO */
  800. unsigned long aa_ext:1; /* RO */
  801. unsigned long undef_46_54:9; /* Undefined */
  802. unsigned long way_ecc:9; /* RO */
  803. } s3;
  804. };
  805. /* ========================================================================= */
  806. /* UVH_GR0_TLB_MMR_READ_DATA_LO */
  807. /* ========================================================================= */
  808. #define UV1H_GR0_TLB_MMR_READ_DATA_LO 0x4010a8UL
  809. #define UV2H_GR0_TLB_MMR_READ_DATA_LO 0xc010a8UL
  810. #define UV3H_GR0_TLB_MMR_READ_DATA_LO 0xc010a8UL
  811. #define UVH_GR0_TLB_MMR_READ_DATA_LO \
  812. (is_uv1_hub() ? UV1H_GR0_TLB_MMR_READ_DATA_LO : \
  813. (is_uv2_hub() ? UV2H_GR0_TLB_MMR_READ_DATA_LO : \
  814. UV3H_GR0_TLB_MMR_READ_DATA_LO))
  815. #define UVH_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
  816. #define UVH_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
  817. #define UVH_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
  818. #define UVH_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
  819. #define UVH_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
  820. #define UVH_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
  821. #define UV1H_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
  822. #define UV1H_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
  823. #define UV1H_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
  824. #define UV1H_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
  825. #define UV1H_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
  826. #define UV1H_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
  827. #define UVXH_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
  828. #define UVXH_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
  829. #define UVXH_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
  830. #define UVXH_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
  831. #define UVXH_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
  832. #define UVXH_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
  833. #define UV2H_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
  834. #define UV2H_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
  835. #define UV2H_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
  836. #define UV2H_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
  837. #define UV2H_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
  838. #define UV2H_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
  839. #define UV3H_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
  840. #define UV3H_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
  841. #define UV3H_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
  842. #define UV3H_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
  843. #define UV3H_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
  844. #define UV3H_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
  845. union uvh_gr0_tlb_mmr_read_data_lo_u {
  846. unsigned long v;
  847. struct uvh_gr0_tlb_mmr_read_data_lo_s {
  848. unsigned long vpn:39; /* RO */
  849. unsigned long asid:24; /* RO */
  850. unsigned long valid:1; /* RO */
  851. } s;
  852. struct uv1h_gr0_tlb_mmr_read_data_lo_s {
  853. unsigned long vpn:39; /* RO */
  854. unsigned long asid:24; /* RO */
  855. unsigned long valid:1; /* RO */
  856. } s1;
  857. struct uvxh_gr0_tlb_mmr_read_data_lo_s {
  858. unsigned long vpn:39; /* RO */
  859. unsigned long asid:24; /* RO */
  860. unsigned long valid:1; /* RO */
  861. } sx;
  862. struct uv2h_gr0_tlb_mmr_read_data_lo_s {
  863. unsigned long vpn:39; /* RO */
  864. unsigned long asid:24; /* RO */
  865. unsigned long valid:1; /* RO */
  866. } s2;
  867. struct uv3h_gr0_tlb_mmr_read_data_lo_s {
  868. unsigned long vpn:39; /* RO */
  869. unsigned long asid:24; /* RO */
  870. unsigned long valid:1; /* RO */
  871. } s3;
  872. };
  873. /* ========================================================================= */
  874. /* UVH_GR1_TLB_INT0_CONFIG */
  875. /* ========================================================================= */
  876. #define UVH_GR1_TLB_INT0_CONFIG 0x61f00UL
  877. #define UVH_GR1_TLB_INT0_CONFIG_VECTOR_SHFT 0
  878. #define UVH_GR1_TLB_INT0_CONFIG_DM_SHFT 8
  879. #define UVH_GR1_TLB_INT0_CONFIG_DESTMODE_SHFT 11
  880. #define UVH_GR1_TLB_INT0_CONFIG_STATUS_SHFT 12
  881. #define UVH_GR1_TLB_INT0_CONFIG_P_SHFT 13
  882. #define UVH_GR1_TLB_INT0_CONFIG_T_SHFT 15
  883. #define UVH_GR1_TLB_INT0_CONFIG_M_SHFT 16
  884. #define UVH_GR1_TLB_INT0_CONFIG_APIC_ID_SHFT 32
  885. #define UVH_GR1_TLB_INT0_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  886. #define UVH_GR1_TLB_INT0_CONFIG_DM_MASK 0x0000000000000700UL
  887. #define UVH_GR1_TLB_INT0_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  888. #define UVH_GR1_TLB_INT0_CONFIG_STATUS_MASK 0x0000000000001000UL
  889. #define UVH_GR1_TLB_INT0_CONFIG_P_MASK 0x0000000000002000UL
  890. #define UVH_GR1_TLB_INT0_CONFIG_T_MASK 0x0000000000008000UL
  891. #define UVH_GR1_TLB_INT0_CONFIG_M_MASK 0x0000000000010000UL
  892. #define UVH_GR1_TLB_INT0_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  893. union uvh_gr1_tlb_int0_config_u {
  894. unsigned long v;
  895. struct uvh_gr1_tlb_int0_config_s {
  896. unsigned long vector_:8; /* RW */
  897. unsigned long dm:3; /* RW */
  898. unsigned long destmode:1; /* RW */
  899. unsigned long status:1; /* RO */
  900. unsigned long p:1; /* RO */
  901. unsigned long rsvd_14:1;
  902. unsigned long t:1; /* RO */
  903. unsigned long m:1; /* RW */
  904. unsigned long rsvd_17_31:15;
  905. unsigned long apic_id:32; /* RW */
  906. } s;
  907. };
  908. /* ========================================================================= */
  909. /* UVH_GR1_TLB_INT1_CONFIG */
  910. /* ========================================================================= */
  911. #define UVH_GR1_TLB_INT1_CONFIG 0x61f40UL
  912. #define UVH_GR1_TLB_INT1_CONFIG_VECTOR_SHFT 0
  913. #define UVH_GR1_TLB_INT1_CONFIG_DM_SHFT 8
  914. #define UVH_GR1_TLB_INT1_CONFIG_DESTMODE_SHFT 11
  915. #define UVH_GR1_TLB_INT1_CONFIG_STATUS_SHFT 12
  916. #define UVH_GR1_TLB_INT1_CONFIG_P_SHFT 13
  917. #define UVH_GR1_TLB_INT1_CONFIG_T_SHFT 15
  918. #define UVH_GR1_TLB_INT1_CONFIG_M_SHFT 16
  919. #define UVH_GR1_TLB_INT1_CONFIG_APIC_ID_SHFT 32
  920. #define UVH_GR1_TLB_INT1_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  921. #define UVH_GR1_TLB_INT1_CONFIG_DM_MASK 0x0000000000000700UL
  922. #define UVH_GR1_TLB_INT1_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  923. #define UVH_GR1_TLB_INT1_CONFIG_STATUS_MASK 0x0000000000001000UL
  924. #define UVH_GR1_TLB_INT1_CONFIG_P_MASK 0x0000000000002000UL
  925. #define UVH_GR1_TLB_INT1_CONFIG_T_MASK 0x0000000000008000UL
  926. #define UVH_GR1_TLB_INT1_CONFIG_M_MASK 0x0000000000010000UL
  927. #define UVH_GR1_TLB_INT1_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  928. union uvh_gr1_tlb_int1_config_u {
  929. unsigned long v;
  930. struct uvh_gr1_tlb_int1_config_s {
  931. unsigned long vector_:8; /* RW */
  932. unsigned long dm:3; /* RW */
  933. unsigned long destmode:1; /* RW */
  934. unsigned long status:1; /* RO */
  935. unsigned long p:1; /* RO */
  936. unsigned long rsvd_14:1;
  937. unsigned long t:1; /* RO */
  938. unsigned long m:1; /* RW */
  939. unsigned long rsvd_17_31:15;
  940. unsigned long apic_id:32; /* RW */
  941. } s;
  942. };
  943. /* ========================================================================= */
  944. /* UVH_GR1_TLB_MMR_CONTROL */
  945. /* ========================================================================= */
  946. #define UV1H_GR1_TLB_MMR_CONTROL 0x801080UL
  947. #define UV2H_GR1_TLB_MMR_CONTROL 0x1001080UL
  948. #define UV3H_GR1_TLB_MMR_CONTROL 0x1001080UL
  949. #define UVH_GR1_TLB_MMR_CONTROL \
  950. (is_uv1_hub() ? UV1H_GR1_TLB_MMR_CONTROL : \
  951. (is_uv2_hub() ? UV2H_GR1_TLB_MMR_CONTROL : \
  952. UV3H_GR1_TLB_MMR_CONTROL))
  953. #define UVH_GR1_TLB_MMR_CONTROL_INDEX_SHFT 0
  954. #define UVH_GR1_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
  955. #define UVH_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
  956. #define UVH_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
  957. #define UVH_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
  958. #define UVH_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT 31
  959. #define UVH_GR1_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
  960. #define UVH_GR1_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
  961. #define UVH_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
  962. #define UVH_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
  963. #define UVH_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
  964. #define UVH_GR1_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
  965. #define UV1H_GR1_TLB_MMR_CONTROL_INDEX_SHFT 0
  966. #define UV1H_GR1_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
  967. #define UV1H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
  968. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
  969. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
  970. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT 31
  971. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_CON_SHFT 48
  972. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_SHFT 52
  973. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBPGSIZE_SHFT 54
  974. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBRREG_SHFT 56
  975. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBLRUV_SHFT 60
  976. #define UV1H_GR1_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
  977. #define UV1H_GR1_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
  978. #define UV1H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
  979. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
  980. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
  981. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
  982. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_CON_MASK 0x0001000000000000UL
  983. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_MASK 0x0010000000000000UL
  984. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBPGSIZE_MASK 0x0040000000000000UL
  985. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBRREG_MASK 0x0100000000000000UL
  986. #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBLRUV_MASK 0x1000000000000000UL
  987. #define UVXH_GR1_TLB_MMR_CONTROL_INDEX_SHFT 0
  988. #define UVXH_GR1_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
  989. #define UVXH_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
  990. #define UVXH_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
  991. #define UVXH_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
  992. #define UVXH_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT 31
  993. #define UVXH_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT 32
  994. #define UVXH_GR1_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
  995. #define UVXH_GR1_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
  996. #define UVXH_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
  997. #define UVXH_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
  998. #define UVXH_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
  999. #define UVXH_GR1_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
  1000. #define UVXH_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_MASK 0x0000000100000000UL
  1001. #define UV2H_GR1_TLB_MMR_CONTROL_INDEX_SHFT 0
  1002. #define UV2H_GR1_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
  1003. #define UV2H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
  1004. #define UV2H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
  1005. #define UV2H_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
  1006. #define UV2H_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT 31
  1007. #define UV2H_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT 32
  1008. #define UV2H_GR1_TLB_MMR_CONTROL_MMR_INJ_CON_SHFT 48
  1009. #define UV2H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_SHFT 52
  1010. #define UV2H_GR1_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
  1011. #define UV2H_GR1_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
  1012. #define UV2H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
  1013. #define UV2H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
  1014. #define UV2H_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
  1015. #define UV2H_GR1_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
  1016. #define UV2H_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_MASK 0x0000000100000000UL
  1017. #define UV2H_GR1_TLB_MMR_CONTROL_MMR_INJ_CON_MASK 0x0001000000000000UL
  1018. #define UV2H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_MASK 0x0010000000000000UL
  1019. #define UV3H_GR1_TLB_MMR_CONTROL_INDEX_SHFT 0
  1020. #define UV3H_GR1_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
  1021. #define UV3H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
  1022. #define UV3H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
  1023. #define UV3H_GR1_TLB_MMR_CONTROL_ECC_SEL_SHFT 21
  1024. #define UV3H_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
  1025. #define UV3H_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT 31
  1026. #define UV3H_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT 32
  1027. #define UV3H_GR1_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
  1028. #define UV3H_GR1_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
  1029. #define UV3H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
  1030. #define UV3H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
  1031. #define UV3H_GR1_TLB_MMR_CONTROL_ECC_SEL_MASK 0x0000000000200000UL
  1032. #define UV3H_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
  1033. #define UV3H_GR1_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
  1034. #define UV3H_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_MASK 0x0000000100000000UL
  1035. union uvh_gr1_tlb_mmr_control_u {
  1036. unsigned long v;
  1037. struct uvh_gr1_tlb_mmr_control_s {
  1038. unsigned long index:12; /* RW */
  1039. unsigned long mem_sel:2; /* RW */
  1040. unsigned long rsvd_14_15:2;
  1041. unsigned long auto_valid_en:1; /* RW */
  1042. unsigned long rsvd_17_19:3;
  1043. unsigned long mmr_hash_index_en:1; /* RW */
  1044. unsigned long rsvd_21_29:9;
  1045. unsigned long mmr_write:1; /* WP */
  1046. unsigned long mmr_read:1; /* WP */
  1047. unsigned long rsvd_32_48:17;
  1048. unsigned long rsvd_49_51:3;
  1049. unsigned long rsvd_52_63:12;
  1050. } s;
  1051. struct uv1h_gr1_tlb_mmr_control_s {
  1052. unsigned long index:12; /* RW */
  1053. unsigned long mem_sel:2; /* RW */
  1054. unsigned long rsvd_14_15:2;
  1055. unsigned long auto_valid_en:1; /* RW */
  1056. unsigned long rsvd_17_19:3;
  1057. unsigned long mmr_hash_index_en:1; /* RW */
  1058. unsigned long rsvd_21_29:9;
  1059. unsigned long mmr_write:1; /* WP */
  1060. unsigned long mmr_read:1; /* WP */
  1061. unsigned long rsvd_32_47:16;
  1062. unsigned long mmr_inj_con:1; /* RW */
  1063. unsigned long rsvd_49_51:3;
  1064. unsigned long mmr_inj_tlbram:1; /* RW */
  1065. unsigned long rsvd_53:1;
  1066. unsigned long mmr_inj_tlbpgsize:1; /* RW */
  1067. unsigned long rsvd_55:1;
  1068. unsigned long mmr_inj_tlbrreg:1; /* RW */
  1069. unsigned long rsvd_57_59:3;
  1070. unsigned long mmr_inj_tlblruv:1; /* RW */
  1071. unsigned long rsvd_61_63:3;
  1072. } s1;
  1073. struct uvxh_gr1_tlb_mmr_control_s {
  1074. unsigned long index:12; /* RW */
  1075. unsigned long mem_sel:2; /* RW */
  1076. unsigned long rsvd_14_15:2;
  1077. unsigned long auto_valid_en:1; /* RW */
  1078. unsigned long rsvd_17_19:3;
  1079. unsigned long mmr_hash_index_en:1; /* RW */
  1080. unsigned long rsvd_21_29:9;
  1081. unsigned long mmr_write:1; /* WP */
  1082. unsigned long mmr_read:1; /* WP */
  1083. unsigned long mmr_op_done:1; /* RW */
  1084. unsigned long rsvd_33_47:15;
  1085. unsigned long rsvd_48:1;
  1086. unsigned long rsvd_49_51:3;
  1087. unsigned long rsvd_52:1;
  1088. unsigned long rsvd_53_63:11;
  1089. } sx;
  1090. struct uv2h_gr1_tlb_mmr_control_s {
  1091. unsigned long index:12; /* RW */
  1092. unsigned long mem_sel:2; /* RW */
  1093. unsigned long rsvd_14_15:2;
  1094. unsigned long auto_valid_en:1; /* RW */
  1095. unsigned long rsvd_17_19:3;
  1096. unsigned long mmr_hash_index_en:1; /* RW */
  1097. unsigned long rsvd_21_29:9;
  1098. unsigned long mmr_write:1; /* WP */
  1099. unsigned long mmr_read:1; /* WP */
  1100. unsigned long mmr_op_done:1; /* RW */
  1101. unsigned long rsvd_33_47:15;
  1102. unsigned long mmr_inj_con:1; /* RW */
  1103. unsigned long rsvd_49_51:3;
  1104. unsigned long mmr_inj_tlbram:1; /* RW */
  1105. unsigned long rsvd_53_63:11;
  1106. } s2;
  1107. struct uv3h_gr1_tlb_mmr_control_s {
  1108. unsigned long index:12; /* RW */
  1109. unsigned long mem_sel:2; /* RW */
  1110. unsigned long rsvd_14_15:2;
  1111. unsigned long auto_valid_en:1; /* RW */
  1112. unsigned long rsvd_17_19:3;
  1113. unsigned long mmr_hash_index_en:1; /* RW */
  1114. unsigned long ecc_sel:1; /* RW */
  1115. unsigned long rsvd_22_29:8;
  1116. unsigned long mmr_write:1; /* WP */
  1117. unsigned long mmr_read:1; /* WP */
  1118. unsigned long mmr_op_done:1; /* RW */
  1119. unsigned long rsvd_33_47:15;
  1120. unsigned long undef_48:1; /* Undefined */
  1121. unsigned long rsvd_49_51:3;
  1122. unsigned long undef_52:1; /* Undefined */
  1123. unsigned long rsvd_53_63:11;
  1124. } s3;
  1125. };
  1126. /* ========================================================================= */
  1127. /* UVH_GR1_TLB_MMR_READ_DATA_HI */
  1128. /* ========================================================================= */
  1129. #define UV1H_GR1_TLB_MMR_READ_DATA_HI 0x8010a0UL
  1130. #define UV2H_GR1_TLB_MMR_READ_DATA_HI 0x10010a0UL
  1131. #define UV3H_GR1_TLB_MMR_READ_DATA_HI 0x10010a0UL
  1132. #define UVH_GR1_TLB_MMR_READ_DATA_HI \
  1133. (is_uv1_hub() ? UV1H_GR1_TLB_MMR_READ_DATA_HI : \
  1134. (is_uv2_hub() ? UV2H_GR1_TLB_MMR_READ_DATA_HI : \
  1135. UV3H_GR1_TLB_MMR_READ_DATA_HI))
  1136. #define UVH_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
  1137. #define UVH_GR1_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
  1138. #define UVH_GR1_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
  1139. #define UVH_GR1_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
  1140. #define UVH_GR1_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
  1141. #define UVH_GR1_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
  1142. #define UVH_GR1_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
  1143. #define UVH_GR1_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
  1144. #define UV1H_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
  1145. #define UV1H_GR1_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
  1146. #define UV1H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
  1147. #define UV1H_GR1_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
  1148. #define UV1H_GR1_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
  1149. #define UV1H_GR1_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
  1150. #define UV1H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
  1151. #define UV1H_GR1_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
  1152. #define UVXH_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
  1153. #define UVXH_GR1_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
  1154. #define UVXH_GR1_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
  1155. #define UVXH_GR1_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
  1156. #define UVXH_GR1_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
  1157. #define UVXH_GR1_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
  1158. #define UVXH_GR1_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
  1159. #define UVXH_GR1_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
  1160. #define UV2H_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
  1161. #define UV2H_GR1_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
  1162. #define UV2H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
  1163. #define UV2H_GR1_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
  1164. #define UV2H_GR1_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
  1165. #define UV2H_GR1_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
  1166. #define UV2H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
  1167. #define UV2H_GR1_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
  1168. #define UV3H_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
  1169. #define UV3H_GR1_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
  1170. #define UV3H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
  1171. #define UV3H_GR1_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
  1172. #define UV3H_GR1_TLB_MMR_READ_DATA_HI_AA_EXT_SHFT 45
  1173. #define UV3H_GR1_TLB_MMR_READ_DATA_HI_WAY_ECC_SHFT 55
  1174. #define UV3H_GR1_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
  1175. #define UV3H_GR1_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
  1176. #define UV3H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
  1177. #define UV3H_GR1_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
  1178. #define UV3H_GR1_TLB_MMR_READ_DATA_HI_AA_EXT_MASK 0x0000200000000000UL
  1179. #define UV3H_GR1_TLB_MMR_READ_DATA_HI_WAY_ECC_MASK 0xff80000000000000UL
  1180. union uvh_gr1_tlb_mmr_read_data_hi_u {
  1181. unsigned long v;
  1182. struct uvh_gr1_tlb_mmr_read_data_hi_s {
  1183. unsigned long pfn:41; /* RO */
  1184. unsigned long gaa:2; /* RO */
  1185. unsigned long dirty:1; /* RO */
  1186. unsigned long larger:1; /* RO */
  1187. unsigned long rsvd_45_63:19;
  1188. } s;
  1189. struct uv1h_gr1_tlb_mmr_read_data_hi_s {
  1190. unsigned long pfn:41; /* RO */
  1191. unsigned long gaa:2; /* RO */
  1192. unsigned long dirty:1; /* RO */
  1193. unsigned long larger:1; /* RO */
  1194. unsigned long rsvd_45_63:19;
  1195. } s1;
  1196. struct uvxh_gr1_tlb_mmr_read_data_hi_s {
  1197. unsigned long pfn:41; /* RO */
  1198. unsigned long gaa:2; /* RO */
  1199. unsigned long dirty:1; /* RO */
  1200. unsigned long larger:1; /* RO */
  1201. unsigned long rsvd_45_63:19;
  1202. } sx;
  1203. struct uv2h_gr1_tlb_mmr_read_data_hi_s {
  1204. unsigned long pfn:41; /* RO */
  1205. unsigned long gaa:2; /* RO */
  1206. unsigned long dirty:1; /* RO */
  1207. unsigned long larger:1; /* RO */
  1208. unsigned long rsvd_45_63:19;
  1209. } s2;
  1210. struct uv3h_gr1_tlb_mmr_read_data_hi_s {
  1211. unsigned long pfn:41; /* RO */
  1212. unsigned long gaa:2; /* RO */
  1213. unsigned long dirty:1; /* RO */
  1214. unsigned long larger:1; /* RO */
  1215. unsigned long aa_ext:1; /* RO */
  1216. unsigned long undef_46_54:9; /* Undefined */
  1217. unsigned long way_ecc:9; /* RO */
  1218. } s3;
  1219. };
  1220. /* ========================================================================= */
  1221. /* UVH_GR1_TLB_MMR_READ_DATA_LO */
  1222. /* ========================================================================= */
  1223. #define UV1H_GR1_TLB_MMR_READ_DATA_LO 0x8010a8UL
  1224. #define UV2H_GR1_TLB_MMR_READ_DATA_LO 0x10010a8UL
  1225. #define UV3H_GR1_TLB_MMR_READ_DATA_LO 0x10010a8UL
  1226. #define UVH_GR1_TLB_MMR_READ_DATA_LO \
  1227. (is_uv1_hub() ? UV1H_GR1_TLB_MMR_READ_DATA_LO : \
  1228. (is_uv2_hub() ? UV2H_GR1_TLB_MMR_READ_DATA_LO : \
  1229. UV3H_GR1_TLB_MMR_READ_DATA_LO))
  1230. #define UVH_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
  1231. #define UVH_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
  1232. #define UVH_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
  1233. #define UVH_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
  1234. #define UVH_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
  1235. #define UVH_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
  1236. #define UV1H_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
  1237. #define UV1H_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
  1238. #define UV1H_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
  1239. #define UV1H_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
  1240. #define UV1H_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
  1241. #define UV1H_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
  1242. #define UVXH_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
  1243. #define UVXH_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
  1244. #define UVXH_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
  1245. #define UVXH_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
  1246. #define UVXH_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
  1247. #define UVXH_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
  1248. #define UV2H_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
  1249. #define UV2H_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
  1250. #define UV2H_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
  1251. #define UV2H_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
  1252. #define UV2H_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
  1253. #define UV2H_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
  1254. #define UV3H_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
  1255. #define UV3H_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
  1256. #define UV3H_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
  1257. #define UV3H_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
  1258. #define UV3H_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
  1259. #define UV3H_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
  1260. union uvh_gr1_tlb_mmr_read_data_lo_u {
  1261. unsigned long v;
  1262. struct uvh_gr1_tlb_mmr_read_data_lo_s {
  1263. unsigned long vpn:39; /* RO */
  1264. unsigned long asid:24; /* RO */
  1265. unsigned long valid:1; /* RO */
  1266. } s;
  1267. struct uv1h_gr1_tlb_mmr_read_data_lo_s {
  1268. unsigned long vpn:39; /* RO */
  1269. unsigned long asid:24; /* RO */
  1270. unsigned long valid:1; /* RO */
  1271. } s1;
  1272. struct uvxh_gr1_tlb_mmr_read_data_lo_s {
  1273. unsigned long vpn:39; /* RO */
  1274. unsigned long asid:24; /* RO */
  1275. unsigned long valid:1; /* RO */
  1276. } sx;
  1277. struct uv2h_gr1_tlb_mmr_read_data_lo_s {
  1278. unsigned long vpn:39; /* RO */
  1279. unsigned long asid:24; /* RO */
  1280. unsigned long valid:1; /* RO */
  1281. } s2;
  1282. struct uv3h_gr1_tlb_mmr_read_data_lo_s {
  1283. unsigned long vpn:39; /* RO */
  1284. unsigned long asid:24; /* RO */
  1285. unsigned long valid:1; /* RO */
  1286. } s3;
  1287. };
  1288. /* ========================================================================= */
  1289. /* UVH_INT_CMPB */
  1290. /* ========================================================================= */
  1291. #define UVH_INT_CMPB 0x22080UL
  1292. #define UVH_INT_CMPB_REAL_TIME_CMPB_SHFT 0
  1293. #define UVH_INT_CMPB_REAL_TIME_CMPB_MASK 0x00ffffffffffffffUL
  1294. union uvh_int_cmpb_u {
  1295. unsigned long v;
  1296. struct uvh_int_cmpb_s {
  1297. unsigned long real_time_cmpb:56; /* RW */
  1298. unsigned long rsvd_56_63:8;
  1299. } s;
  1300. };
  1301. /* ========================================================================= */
  1302. /* UVH_INT_CMPC */
  1303. /* ========================================================================= */
  1304. #define UVH_INT_CMPC 0x22100UL
  1305. #define UV1H_INT_CMPC_REAL_TIME_CMPC_SHFT 0
  1306. #define UV1H_INT_CMPC_REAL_TIME_CMPC_MASK 0x00ffffffffffffffUL
  1307. #define UVXH_INT_CMPC_REAL_TIME_CMP_2_SHFT 0
  1308. #define UVXH_INT_CMPC_REAL_TIME_CMP_2_MASK 0x00ffffffffffffffUL
  1309. union uvh_int_cmpc_u {
  1310. unsigned long v;
  1311. struct uvh_int_cmpc_s {
  1312. unsigned long real_time_cmpc:56; /* RW */
  1313. unsigned long rsvd_56_63:8;
  1314. } s;
  1315. };
  1316. /* ========================================================================= */
  1317. /* UVH_INT_CMPD */
  1318. /* ========================================================================= */
  1319. #define UVH_INT_CMPD 0x22180UL
  1320. #define UV1H_INT_CMPD_REAL_TIME_CMPD_SHFT 0
  1321. #define UV1H_INT_CMPD_REAL_TIME_CMPD_MASK 0x00ffffffffffffffUL
  1322. #define UVXH_INT_CMPD_REAL_TIME_CMP_3_SHFT 0
  1323. #define UVXH_INT_CMPD_REAL_TIME_CMP_3_MASK 0x00ffffffffffffffUL
  1324. union uvh_int_cmpd_u {
  1325. unsigned long v;
  1326. struct uvh_int_cmpd_s {
  1327. unsigned long real_time_cmpd:56; /* RW */
  1328. unsigned long rsvd_56_63:8;
  1329. } s;
  1330. };
  1331. /* ========================================================================= */
  1332. /* UVH_IPI_INT */
  1333. /* ========================================================================= */
  1334. #define UVH_IPI_INT 0x60500UL
  1335. #define UVH_IPI_INT_32 0x348
  1336. #define UVH_IPI_INT_VECTOR_SHFT 0
  1337. #define UVH_IPI_INT_DELIVERY_MODE_SHFT 8
  1338. #define UVH_IPI_INT_DESTMODE_SHFT 11
  1339. #define UVH_IPI_INT_APIC_ID_SHFT 16
  1340. #define UVH_IPI_INT_SEND_SHFT 63
  1341. #define UVH_IPI_INT_VECTOR_MASK 0x00000000000000ffUL
  1342. #define UVH_IPI_INT_DELIVERY_MODE_MASK 0x0000000000000700UL
  1343. #define UVH_IPI_INT_DESTMODE_MASK 0x0000000000000800UL
  1344. #define UVH_IPI_INT_APIC_ID_MASK 0x0000ffffffff0000UL
  1345. #define UVH_IPI_INT_SEND_MASK 0x8000000000000000UL
  1346. union uvh_ipi_int_u {
  1347. unsigned long v;
  1348. struct uvh_ipi_int_s {
  1349. unsigned long vector_:8; /* RW */
  1350. unsigned long delivery_mode:3; /* RW */
  1351. unsigned long destmode:1; /* RW */
  1352. unsigned long rsvd_12_15:4;
  1353. unsigned long apic_id:32; /* RW */
  1354. unsigned long rsvd_48_62:15;
  1355. unsigned long send:1; /* WP */
  1356. } s;
  1357. };
  1358. /* ========================================================================= */
  1359. /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST */
  1360. /* ========================================================================= */
  1361. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST 0x320050UL
  1362. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_32 0x9c0
  1363. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_ADDRESS_SHFT 4
  1364. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_NODE_ID_SHFT 49
  1365. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_ADDRESS_MASK 0x000007fffffffff0UL
  1366. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_NODE_ID_MASK 0x7ffe000000000000UL
  1367. union uvh_lb_bau_intd_payload_queue_first_u {
  1368. unsigned long v;
  1369. struct uvh_lb_bau_intd_payload_queue_first_s {
  1370. unsigned long rsvd_0_3:4;
  1371. unsigned long address:39; /* RW */
  1372. unsigned long rsvd_43_48:6;
  1373. unsigned long node_id:14; /* RW */
  1374. unsigned long rsvd_63:1;
  1375. } s;
  1376. };
  1377. /* ========================================================================= */
  1378. /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST */
  1379. /* ========================================================================= */
  1380. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST 0x320060UL
  1381. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_32 0x9c8
  1382. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_ADDRESS_SHFT 4
  1383. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_ADDRESS_MASK 0x000007fffffffff0UL
  1384. union uvh_lb_bau_intd_payload_queue_last_u {
  1385. unsigned long v;
  1386. struct uvh_lb_bau_intd_payload_queue_last_s {
  1387. unsigned long rsvd_0_3:4;
  1388. unsigned long address:39; /* RW */
  1389. unsigned long rsvd_43_63:21;
  1390. } s;
  1391. };
  1392. /* ========================================================================= */
  1393. /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL */
  1394. /* ========================================================================= */
  1395. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL 0x320070UL
  1396. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_32 0x9d0
  1397. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_ADDRESS_SHFT 4
  1398. #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_ADDRESS_MASK 0x000007fffffffff0UL
  1399. union uvh_lb_bau_intd_payload_queue_tail_u {
  1400. unsigned long v;
  1401. struct uvh_lb_bau_intd_payload_queue_tail_s {
  1402. unsigned long rsvd_0_3:4;
  1403. unsigned long address:39; /* RW */
  1404. unsigned long rsvd_43_63:21;
  1405. } s;
  1406. };
  1407. /* ========================================================================= */
  1408. /* UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE */
  1409. /* ========================================================================= */
  1410. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE 0x320080UL
  1411. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_32 0xa68
  1412. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_0_SHFT 0
  1413. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_1_SHFT 1
  1414. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_2_SHFT 2
  1415. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_3_SHFT 3
  1416. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_4_SHFT 4
  1417. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_5_SHFT 5
  1418. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_6_SHFT 6
  1419. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_7_SHFT 7
  1420. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_0_SHFT 8
  1421. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_1_SHFT 9
  1422. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_2_SHFT 10
  1423. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_3_SHFT 11
  1424. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_4_SHFT 12
  1425. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_5_SHFT 13
  1426. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_6_SHFT 14
  1427. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_7_SHFT 15
  1428. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_0_MASK 0x0000000000000001UL
  1429. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_1_MASK 0x0000000000000002UL
  1430. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_2_MASK 0x0000000000000004UL
  1431. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_3_MASK 0x0000000000000008UL
  1432. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_4_MASK 0x0000000000000010UL
  1433. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_5_MASK 0x0000000000000020UL
  1434. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_6_MASK 0x0000000000000040UL
  1435. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_7_MASK 0x0000000000000080UL
  1436. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_0_MASK 0x0000000000000100UL
  1437. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_1_MASK 0x0000000000000200UL
  1438. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_2_MASK 0x0000000000000400UL
  1439. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_3_MASK 0x0000000000000800UL
  1440. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_4_MASK 0x0000000000001000UL
  1441. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_5_MASK 0x0000000000002000UL
  1442. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_6_MASK 0x0000000000004000UL
  1443. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_7_MASK 0x0000000000008000UL
  1444. union uvh_lb_bau_intd_software_acknowledge_u {
  1445. unsigned long v;
  1446. struct uvh_lb_bau_intd_software_acknowledge_s {
  1447. unsigned long pending_0:1; /* RW, W1C */
  1448. unsigned long pending_1:1; /* RW, W1C */
  1449. unsigned long pending_2:1; /* RW, W1C */
  1450. unsigned long pending_3:1; /* RW, W1C */
  1451. unsigned long pending_4:1; /* RW, W1C */
  1452. unsigned long pending_5:1; /* RW, W1C */
  1453. unsigned long pending_6:1; /* RW, W1C */
  1454. unsigned long pending_7:1; /* RW, W1C */
  1455. unsigned long timeout_0:1; /* RW, W1C */
  1456. unsigned long timeout_1:1; /* RW, W1C */
  1457. unsigned long timeout_2:1; /* RW, W1C */
  1458. unsigned long timeout_3:1; /* RW, W1C */
  1459. unsigned long timeout_4:1; /* RW, W1C */
  1460. unsigned long timeout_5:1; /* RW, W1C */
  1461. unsigned long timeout_6:1; /* RW, W1C */
  1462. unsigned long timeout_7:1; /* RW, W1C */
  1463. unsigned long rsvd_16_63:48;
  1464. } s;
  1465. };
  1466. /* ========================================================================= */
  1467. /* UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS */
  1468. /* ========================================================================= */
  1469. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS 0x320088UL
  1470. #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS_32 0xa70
  1471. /* ========================================================================= */
  1472. /* UVH_LB_BAU_MISC_CONTROL */
  1473. /* ========================================================================= */
  1474. #define UVH_LB_BAU_MISC_CONTROL 0x320170UL
  1475. #define UV1H_LB_BAU_MISC_CONTROL 0x320170UL
  1476. #define UV2H_LB_BAU_MISC_CONTROL 0x320170UL
  1477. #define UV3H_LB_BAU_MISC_CONTROL 0x320170UL
  1478. #define UVH_LB_BAU_MISC_CONTROL_32 0xa10
  1479. #define UV1H_LB_BAU_MISC_CONTROL_32 0x320170UL
  1480. #define UV2H_LB_BAU_MISC_CONTROL_32 0x320170UL
  1481. #define UV3H_LB_BAU_MISC_CONTROL_32 0x320170UL
  1482. #define UVH_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT 0
  1483. #define UVH_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT 8
  1484. #define UVH_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT 9
  1485. #define UVH_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT 10
  1486. #define UVH_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
  1487. #define UVH_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
  1488. #define UVH_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
  1489. #define UVH_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
  1490. #define UVH_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
  1491. #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
  1492. #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
  1493. #define UVH_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
  1494. #define UVH_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
  1495. #define UVH_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
  1496. #define UVH_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
  1497. #define UVH_LB_BAU_MISC_CONTROL_FUN_SHFT 48
  1498. #define UVH_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK 0x00000000000000ffUL
  1499. #define UVH_LB_BAU_MISC_CONTROL_APIC_MODE_MASK 0x0000000000000100UL
  1500. #define UVH_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK 0x0000000000000200UL
  1501. #define UVH_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK 0x0000000000000400UL
  1502. #define UVH_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
  1503. #define UVH_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
  1504. #define UVH_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
  1505. #define UVH_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
  1506. #define UVH_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
  1507. #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
  1508. #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
  1509. #define UVH_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
  1510. #define UVH_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
  1511. #define UVH_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
  1512. #define UVH_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
  1513. #define UVH_LB_BAU_MISC_CONTROL_FUN_MASK 0xffff000000000000UL
  1514. #define UV1H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT 0
  1515. #define UV1H_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT 8
  1516. #define UV1H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT 9
  1517. #define UV1H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT 10
  1518. #define UV1H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
  1519. #define UV1H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
  1520. #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
  1521. #define UV1H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
  1522. #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
  1523. #define UV1H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
  1524. #define UV1H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
  1525. #define UV1H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
  1526. #define UV1H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
  1527. #define UV1H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
  1528. #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
  1529. #define UV1H_LB_BAU_MISC_CONTROL_FUN_SHFT 48
  1530. #define UV1H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK 0x00000000000000ffUL
  1531. #define UV1H_LB_BAU_MISC_CONTROL_APIC_MODE_MASK 0x0000000000000100UL
  1532. #define UV1H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK 0x0000000000000200UL
  1533. #define UV1H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK 0x0000000000000400UL
  1534. #define UV1H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
  1535. #define UV1H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
  1536. #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
  1537. #define UV1H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
  1538. #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
  1539. #define UV1H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
  1540. #define UV1H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
  1541. #define UV1H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
  1542. #define UV1H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
  1543. #define UV1H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
  1544. #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
  1545. #define UV1H_LB_BAU_MISC_CONTROL_FUN_MASK 0xffff000000000000UL
  1546. #define UVXH_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT 0
  1547. #define UVXH_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT 8
  1548. #define UVXH_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT 9
  1549. #define UVXH_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT 10
  1550. #define UVXH_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
  1551. #define UVXH_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
  1552. #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
  1553. #define UVXH_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
  1554. #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
  1555. #define UVXH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
  1556. #define UVXH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
  1557. #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
  1558. #define UVXH_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
  1559. #define UVXH_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
  1560. #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
  1561. #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_SHFT 29
  1562. #define UVXH_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_SHFT 30
  1563. #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_SHFT 31
  1564. #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_SHFT 32
  1565. #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_SHFT 33
  1566. #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_SHFT 34
  1567. #define UVXH_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_SHFT 35
  1568. #define UVXH_LB_BAU_MISC_CONTROL_FUN_SHFT 48
  1569. #define UVXH_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK 0x00000000000000ffUL
  1570. #define UVXH_LB_BAU_MISC_CONTROL_APIC_MODE_MASK 0x0000000000000100UL
  1571. #define UVXH_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK 0x0000000000000200UL
  1572. #define UVXH_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK 0x0000000000000400UL
  1573. #define UVXH_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
  1574. #define UVXH_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
  1575. #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
  1576. #define UVXH_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
  1577. #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
  1578. #define UVXH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
  1579. #define UVXH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
  1580. #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
  1581. #define UVXH_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
  1582. #define UVXH_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
  1583. #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
  1584. #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_MASK 0x0000000020000000UL
  1585. #define UVXH_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_MASK 0x0000000040000000UL
  1586. #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_MASK 0x0000000080000000UL
  1587. #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_MASK 0x0000000100000000UL
  1588. #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_MASK 0x0000000200000000UL
  1589. #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_MASK 0x0000000400000000UL
  1590. #define UVXH_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_MASK 0x0000000800000000UL
  1591. #define UVXH_LB_BAU_MISC_CONTROL_FUN_MASK 0xffff000000000000UL
  1592. #define UV2H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT 0
  1593. #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT 8
  1594. #define UV2H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT 9
  1595. #define UV2H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT 10
  1596. #define UV2H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
  1597. #define UV2H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
  1598. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
  1599. #define UV2H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
  1600. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
  1601. #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
  1602. #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
  1603. #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
  1604. #define UV2H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
  1605. #define UV2H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
  1606. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
  1607. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_SHFT 29
  1608. #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_SHFT 30
  1609. #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_SHFT 31
  1610. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_SHFT 32
  1611. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_SHFT 33
  1612. #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_SHFT 34
  1613. #define UV2H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_SHFT 35
  1614. #define UV2H_LB_BAU_MISC_CONTROL_FUN_SHFT 48
  1615. #define UV2H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK 0x00000000000000ffUL
  1616. #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_MASK 0x0000000000000100UL
  1617. #define UV2H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK 0x0000000000000200UL
  1618. #define UV2H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK 0x0000000000000400UL
  1619. #define UV2H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
  1620. #define UV2H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
  1621. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
  1622. #define UV2H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
  1623. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
  1624. #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
  1625. #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
  1626. #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
  1627. #define UV2H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
  1628. #define UV2H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
  1629. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
  1630. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_MASK 0x0000000020000000UL
  1631. #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_MASK 0x0000000040000000UL
  1632. #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_MASK 0x0000000080000000UL
  1633. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_MASK 0x0000000100000000UL
  1634. #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_MASK 0x0000000200000000UL
  1635. #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_MASK 0x0000000400000000UL
  1636. #define UV2H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_MASK 0x0000000800000000UL
  1637. #define UV2H_LB_BAU_MISC_CONTROL_FUN_MASK 0xffff000000000000UL
  1638. #define UV3H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT 0
  1639. #define UV3H_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT 8
  1640. #define UV3H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT 9
  1641. #define UV3H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT 10
  1642. #define UV3H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
  1643. #define UV3H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
  1644. #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
  1645. #define UV3H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
  1646. #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
  1647. #define UV3H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
  1648. #define UV3H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
  1649. #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
  1650. #define UV3H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
  1651. #define UV3H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
  1652. #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
  1653. #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_SHFT 29
  1654. #define UV3H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_SHFT 30
  1655. #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_SHFT 31
  1656. #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_SHFT 32
  1657. #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_SHFT 33
  1658. #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_SHFT 34
  1659. #define UV3H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_SHFT 35
  1660. #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_QUIESCE_MSGS_TO_QPI_SHFT 36
  1661. #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_INTD_PREFETCH_HINT_SHFT 37
  1662. #define UV3H_LB_BAU_MISC_CONTROL_THREAD_KILL_TIMEBASE_SHFT 38
  1663. #define UV3H_LB_BAU_MISC_CONTROL_FUN_SHFT 48
  1664. #define UV3H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK 0x00000000000000ffUL
  1665. #define UV3H_LB_BAU_MISC_CONTROL_APIC_MODE_MASK 0x0000000000000100UL
  1666. #define UV3H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK 0x0000000000000200UL
  1667. #define UV3H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK 0x0000000000000400UL
  1668. #define UV3H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
  1669. #define UV3H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
  1670. #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
  1671. #define UV3H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
  1672. #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
  1673. #define UV3H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
  1674. #define UV3H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
  1675. #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
  1676. #define UV3H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
  1677. #define UV3H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
  1678. #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
  1679. #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_MASK 0x0000000020000000UL
  1680. #define UV3H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_MASK 0x0000000040000000UL
  1681. #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_MASK 0x0000000080000000UL
  1682. #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_MASK 0x0000000100000000UL
  1683. #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_MASK 0x0000000200000000UL
  1684. #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_MASK 0x0000000400000000UL
  1685. #define UV3H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_MASK 0x0000000800000000UL
  1686. #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_QUIESCE_MSGS_TO_QPI_MASK 0x0000001000000000UL
  1687. #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_INTD_PREFETCH_HINT_MASK 0x0000002000000000UL
  1688. #define UV3H_LB_BAU_MISC_CONTROL_THREAD_KILL_TIMEBASE_MASK 0x00003fc000000000UL
  1689. #define UV3H_LB_BAU_MISC_CONTROL_FUN_MASK 0xffff000000000000UL
  1690. union uvh_lb_bau_misc_control_u {
  1691. unsigned long v;
  1692. struct uvh_lb_bau_misc_control_s {
  1693. unsigned long rejection_delay:8; /* RW */
  1694. unsigned long apic_mode:1; /* RW */
  1695. unsigned long force_broadcast:1; /* RW */
  1696. unsigned long force_lock_nop:1; /* RW */
  1697. unsigned long qpi_agent_presence_vector:3; /* RW */
  1698. unsigned long descriptor_fetch_mode:1; /* RW */
  1699. unsigned long enable_intd_soft_ack_mode:1; /* RW */
  1700. unsigned long intd_soft_ack_timeout_period:4; /* RW */
  1701. unsigned long enable_dual_mapping_mode:1; /* RW */
  1702. unsigned long vga_io_port_decode_enable:1; /* RW */
  1703. unsigned long vga_io_port_16_bit_decode:1; /* RW */
  1704. unsigned long suppress_dest_registration:1; /* RW */
  1705. unsigned long programmed_initial_priority:3; /* RW */
  1706. unsigned long use_incoming_priority:1; /* RW */
  1707. unsigned long enable_programmed_initial_priority:1;/* RW */
  1708. unsigned long rsvd_29_47:19;
  1709. unsigned long fun:16; /* RW */
  1710. } s;
  1711. struct uv1h_lb_bau_misc_control_s {
  1712. unsigned long rejection_delay:8; /* RW */
  1713. unsigned long apic_mode:1; /* RW */
  1714. unsigned long force_broadcast:1; /* RW */
  1715. unsigned long force_lock_nop:1; /* RW */
  1716. unsigned long qpi_agent_presence_vector:3; /* RW */
  1717. unsigned long descriptor_fetch_mode:1; /* RW */
  1718. unsigned long enable_intd_soft_ack_mode:1; /* RW */
  1719. unsigned long intd_soft_ack_timeout_period:4; /* RW */
  1720. unsigned long enable_dual_mapping_mode:1; /* RW */
  1721. unsigned long vga_io_port_decode_enable:1; /* RW */
  1722. unsigned long vga_io_port_16_bit_decode:1; /* RW */
  1723. unsigned long suppress_dest_registration:1; /* RW */
  1724. unsigned long programmed_initial_priority:3; /* RW */
  1725. unsigned long use_incoming_priority:1; /* RW */
  1726. unsigned long enable_programmed_initial_priority:1;/* RW */
  1727. unsigned long rsvd_29_47:19;
  1728. unsigned long fun:16; /* RW */
  1729. } s1;
  1730. struct uvxh_lb_bau_misc_control_s {
  1731. unsigned long rejection_delay:8; /* RW */
  1732. unsigned long apic_mode:1; /* RW */
  1733. unsigned long force_broadcast:1; /* RW */
  1734. unsigned long force_lock_nop:1; /* RW */
  1735. unsigned long qpi_agent_presence_vector:3; /* RW */
  1736. unsigned long descriptor_fetch_mode:1; /* RW */
  1737. unsigned long enable_intd_soft_ack_mode:1; /* RW */
  1738. unsigned long intd_soft_ack_timeout_period:4; /* RW */
  1739. unsigned long enable_dual_mapping_mode:1; /* RW */
  1740. unsigned long vga_io_port_decode_enable:1; /* RW */
  1741. unsigned long vga_io_port_16_bit_decode:1; /* RW */
  1742. unsigned long suppress_dest_registration:1; /* RW */
  1743. unsigned long programmed_initial_priority:3; /* RW */
  1744. unsigned long use_incoming_priority:1; /* RW */
  1745. unsigned long enable_programmed_initial_priority:1;/* RW */
  1746. unsigned long enable_automatic_apic_mode_selection:1;/* RW */
  1747. unsigned long apic_mode_status:1; /* RO */
  1748. unsigned long suppress_interrupts_to_self:1; /* RW */
  1749. unsigned long enable_lock_based_system_flush:1;/* RW */
  1750. unsigned long enable_extended_sb_status:1; /* RW */
  1751. unsigned long suppress_int_prio_udt_to_self:1;/* RW */
  1752. unsigned long use_legacy_descriptor_formats:1;/* RW */
  1753. unsigned long rsvd_36_47:12;
  1754. unsigned long fun:16; /* RW */
  1755. } sx;
  1756. struct uv2h_lb_bau_misc_control_s {
  1757. unsigned long rejection_delay:8; /* RW */
  1758. unsigned long apic_mode:1; /* RW */
  1759. unsigned long force_broadcast:1; /* RW */
  1760. unsigned long force_lock_nop:1; /* RW */
  1761. unsigned long qpi_agent_presence_vector:3; /* RW */
  1762. unsigned long descriptor_fetch_mode:1; /* RW */
  1763. unsigned long enable_intd_soft_ack_mode:1; /* RW */
  1764. unsigned long intd_soft_ack_timeout_period:4; /* RW */
  1765. unsigned long enable_dual_mapping_mode:1; /* RW */
  1766. unsigned long vga_io_port_decode_enable:1; /* RW */
  1767. unsigned long vga_io_port_16_bit_decode:1; /* RW */
  1768. unsigned long suppress_dest_registration:1; /* RW */
  1769. unsigned long programmed_initial_priority:3; /* RW */
  1770. unsigned long use_incoming_priority:1; /* RW */
  1771. unsigned long enable_programmed_initial_priority:1;/* RW */
  1772. unsigned long enable_automatic_apic_mode_selection:1;/* RW */
  1773. unsigned long apic_mode_status:1; /* RO */
  1774. unsigned long suppress_interrupts_to_self:1; /* RW */
  1775. unsigned long enable_lock_based_system_flush:1;/* RW */
  1776. unsigned long enable_extended_sb_status:1; /* RW */
  1777. unsigned long suppress_int_prio_udt_to_self:1;/* RW */
  1778. unsigned long use_legacy_descriptor_formats:1;/* RW */
  1779. unsigned long rsvd_36_47:12;
  1780. unsigned long fun:16; /* RW */
  1781. } s2;
  1782. struct uv3h_lb_bau_misc_control_s {
  1783. unsigned long rejection_delay:8; /* RW */
  1784. unsigned long apic_mode:1; /* RW */
  1785. unsigned long force_broadcast:1; /* RW */
  1786. unsigned long force_lock_nop:1; /* RW */
  1787. unsigned long qpi_agent_presence_vector:3; /* RW */
  1788. unsigned long descriptor_fetch_mode:1; /* RW */
  1789. unsigned long enable_intd_soft_ack_mode:1; /* RW */
  1790. unsigned long intd_soft_ack_timeout_period:4; /* RW */
  1791. unsigned long enable_dual_mapping_mode:1; /* RW */
  1792. unsigned long vga_io_port_decode_enable:1; /* RW */
  1793. unsigned long vga_io_port_16_bit_decode:1; /* RW */
  1794. unsigned long suppress_dest_registration:1; /* RW */
  1795. unsigned long programmed_initial_priority:3; /* RW */
  1796. unsigned long use_incoming_priority:1; /* RW */
  1797. unsigned long enable_programmed_initial_priority:1;/* RW */
  1798. unsigned long enable_automatic_apic_mode_selection:1;/* RW */
  1799. unsigned long apic_mode_status:1; /* RO */
  1800. unsigned long suppress_interrupts_to_self:1; /* RW */
  1801. unsigned long enable_lock_based_system_flush:1;/* RW */
  1802. unsigned long enable_extended_sb_status:1; /* RW */
  1803. unsigned long suppress_int_prio_udt_to_self:1;/* RW */
  1804. unsigned long use_legacy_descriptor_formats:1;/* RW */
  1805. unsigned long suppress_quiesce_msgs_to_qpi:1; /* RW */
  1806. unsigned long enable_intd_prefetch_hint:1; /* RW */
  1807. unsigned long thread_kill_timebase:8; /* RW */
  1808. unsigned long rsvd_46_47:2;
  1809. unsigned long fun:16; /* RW */
  1810. } s3;
  1811. };
  1812. /* ========================================================================= */
  1813. /* UVH_LB_BAU_SB_ACTIVATION_CONTROL */
  1814. /* ========================================================================= */
  1815. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL 0x320020UL
  1816. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_32 0x9a8
  1817. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INDEX_SHFT 0
  1818. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_PUSH_SHFT 62
  1819. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INIT_SHFT 63
  1820. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INDEX_MASK 0x000000000000003fUL
  1821. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_PUSH_MASK 0x4000000000000000UL
  1822. #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INIT_MASK 0x8000000000000000UL
  1823. union uvh_lb_bau_sb_activation_control_u {
  1824. unsigned long v;
  1825. struct uvh_lb_bau_sb_activation_control_s {
  1826. unsigned long index:6; /* RW */
  1827. unsigned long rsvd_6_61:56;
  1828. unsigned long push:1; /* WP */
  1829. unsigned long init:1; /* WP */
  1830. } s;
  1831. };
  1832. /* ========================================================================= */
  1833. /* UVH_LB_BAU_SB_ACTIVATION_STATUS_0 */
  1834. /* ========================================================================= */
  1835. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0 0x320030UL
  1836. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_32 0x9b0
  1837. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_STATUS_SHFT 0
  1838. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_STATUS_MASK 0xffffffffffffffffUL
  1839. union uvh_lb_bau_sb_activation_status_0_u {
  1840. unsigned long v;
  1841. struct uvh_lb_bau_sb_activation_status_0_s {
  1842. unsigned long status:64; /* RW */
  1843. } s;
  1844. };
  1845. /* ========================================================================= */
  1846. /* UVH_LB_BAU_SB_ACTIVATION_STATUS_1 */
  1847. /* ========================================================================= */
  1848. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1 0x320040UL
  1849. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_32 0x9b8
  1850. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_STATUS_SHFT 0
  1851. #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_STATUS_MASK 0xffffffffffffffffUL
  1852. union uvh_lb_bau_sb_activation_status_1_u {
  1853. unsigned long v;
  1854. struct uvh_lb_bau_sb_activation_status_1_s {
  1855. unsigned long status:64; /* RW */
  1856. } s;
  1857. };
  1858. /* ========================================================================= */
  1859. /* UVH_LB_BAU_SB_DESCRIPTOR_BASE */
  1860. /* ========================================================================= */
  1861. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE 0x320010UL
  1862. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_32 0x9a0
  1863. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_SHFT 12
  1864. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_SHFT 49
  1865. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_MASK 0x000007fffffff000UL
  1866. #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_MASK 0x7ffe000000000000UL
  1867. union uvh_lb_bau_sb_descriptor_base_u {
  1868. unsigned long v;
  1869. struct uvh_lb_bau_sb_descriptor_base_s {
  1870. unsigned long rsvd_0_11:12;
  1871. unsigned long page_address:31; /* RW */
  1872. unsigned long rsvd_43_48:6;
  1873. unsigned long node_id:14; /* RW */
  1874. unsigned long rsvd_63:1;
  1875. } s;
  1876. };
  1877. /* ========================================================================= */
  1878. /* UVH_NODE_ID */
  1879. /* ========================================================================= */
  1880. #define UVH_NODE_ID 0x0UL
  1881. #define UV1H_NODE_ID 0x0UL
  1882. #define UV2H_NODE_ID 0x0UL
  1883. #define UV3H_NODE_ID 0x0UL
  1884. #define UVH_NODE_ID_FORCE1_SHFT 0
  1885. #define UVH_NODE_ID_MANUFACTURER_SHFT 1
  1886. #define UVH_NODE_ID_PART_NUMBER_SHFT 12
  1887. #define UVH_NODE_ID_REVISION_SHFT 28
  1888. #define UVH_NODE_ID_NODE_ID_SHFT 32
  1889. #define UVH_NODE_ID_FORCE1_MASK 0x0000000000000001UL
  1890. #define UVH_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
  1891. #define UVH_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
  1892. #define UVH_NODE_ID_REVISION_MASK 0x00000000f0000000UL
  1893. #define UVH_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
  1894. #define UV1H_NODE_ID_FORCE1_SHFT 0
  1895. #define UV1H_NODE_ID_MANUFACTURER_SHFT 1
  1896. #define UV1H_NODE_ID_PART_NUMBER_SHFT 12
  1897. #define UV1H_NODE_ID_REVISION_SHFT 28
  1898. #define UV1H_NODE_ID_NODE_ID_SHFT 32
  1899. #define UV1H_NODE_ID_NODES_PER_BIT_SHFT 48
  1900. #define UV1H_NODE_ID_NI_PORT_SHFT 56
  1901. #define UV1H_NODE_ID_FORCE1_MASK 0x0000000000000001UL
  1902. #define UV1H_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
  1903. #define UV1H_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
  1904. #define UV1H_NODE_ID_REVISION_MASK 0x00000000f0000000UL
  1905. #define UV1H_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
  1906. #define UV1H_NODE_ID_NODES_PER_BIT_MASK 0x007f000000000000UL
  1907. #define UV1H_NODE_ID_NI_PORT_MASK 0x0f00000000000000UL
  1908. #define UVXH_NODE_ID_FORCE1_SHFT 0
  1909. #define UVXH_NODE_ID_MANUFACTURER_SHFT 1
  1910. #define UVXH_NODE_ID_PART_NUMBER_SHFT 12
  1911. #define UVXH_NODE_ID_REVISION_SHFT 28
  1912. #define UVXH_NODE_ID_NODE_ID_SHFT 32
  1913. #define UVXH_NODE_ID_NODES_PER_BIT_SHFT 50
  1914. #define UVXH_NODE_ID_NI_PORT_SHFT 57
  1915. #define UVXH_NODE_ID_FORCE1_MASK 0x0000000000000001UL
  1916. #define UVXH_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
  1917. #define UVXH_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
  1918. #define UVXH_NODE_ID_REVISION_MASK 0x00000000f0000000UL
  1919. #define UVXH_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
  1920. #define UVXH_NODE_ID_NODES_PER_BIT_MASK 0x01fc000000000000UL
  1921. #define UVXH_NODE_ID_NI_PORT_MASK 0x3e00000000000000UL
  1922. #define UV2H_NODE_ID_FORCE1_SHFT 0
  1923. #define UV2H_NODE_ID_MANUFACTURER_SHFT 1
  1924. #define UV2H_NODE_ID_PART_NUMBER_SHFT 12
  1925. #define UV2H_NODE_ID_REVISION_SHFT 28
  1926. #define UV2H_NODE_ID_NODE_ID_SHFT 32
  1927. #define UV2H_NODE_ID_NODES_PER_BIT_SHFT 50
  1928. #define UV2H_NODE_ID_NI_PORT_SHFT 57
  1929. #define UV2H_NODE_ID_FORCE1_MASK 0x0000000000000001UL
  1930. #define UV2H_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
  1931. #define UV2H_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
  1932. #define UV2H_NODE_ID_REVISION_MASK 0x00000000f0000000UL
  1933. #define UV2H_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
  1934. #define UV2H_NODE_ID_NODES_PER_BIT_MASK 0x01fc000000000000UL
  1935. #define UV2H_NODE_ID_NI_PORT_MASK 0x3e00000000000000UL
  1936. #define UV3H_NODE_ID_FORCE1_SHFT 0
  1937. #define UV3H_NODE_ID_MANUFACTURER_SHFT 1
  1938. #define UV3H_NODE_ID_PART_NUMBER_SHFT 12
  1939. #define UV3H_NODE_ID_REVISION_SHFT 28
  1940. #define UV3H_NODE_ID_NODE_ID_SHFT 32
  1941. #define UV3H_NODE_ID_ROUTER_SELECT_SHFT 48
  1942. #define UV3H_NODE_ID_RESERVED_2_SHFT 49
  1943. #define UV3H_NODE_ID_NODES_PER_BIT_SHFT 50
  1944. #define UV3H_NODE_ID_NI_PORT_SHFT 57
  1945. #define UV3H_NODE_ID_FORCE1_MASK 0x0000000000000001UL
  1946. #define UV3H_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
  1947. #define UV3H_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
  1948. #define UV3H_NODE_ID_REVISION_MASK 0x00000000f0000000UL
  1949. #define UV3H_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
  1950. #define UV3H_NODE_ID_ROUTER_SELECT_MASK 0x0001000000000000UL
  1951. #define UV3H_NODE_ID_RESERVED_2_MASK 0x0002000000000000UL
  1952. #define UV3H_NODE_ID_NODES_PER_BIT_MASK 0x01fc000000000000UL
  1953. #define UV3H_NODE_ID_NI_PORT_MASK 0x3e00000000000000UL
  1954. union uvh_node_id_u {
  1955. unsigned long v;
  1956. struct uvh_node_id_s {
  1957. unsigned long force1:1; /* RO */
  1958. unsigned long manufacturer:11; /* RO */
  1959. unsigned long part_number:16; /* RO */
  1960. unsigned long revision:4; /* RO */
  1961. unsigned long node_id:15; /* RW */
  1962. unsigned long rsvd_47_63:17;
  1963. } s;
  1964. struct uv1h_node_id_s {
  1965. unsigned long force1:1; /* RO */
  1966. unsigned long manufacturer:11; /* RO */
  1967. unsigned long part_number:16; /* RO */
  1968. unsigned long revision:4; /* RO */
  1969. unsigned long node_id:15; /* RW */
  1970. unsigned long rsvd_47:1;
  1971. unsigned long nodes_per_bit:7; /* RW */
  1972. unsigned long rsvd_55:1;
  1973. unsigned long ni_port:4; /* RO */
  1974. unsigned long rsvd_60_63:4;
  1975. } s1;
  1976. struct uvxh_node_id_s {
  1977. unsigned long force1:1; /* RO */
  1978. unsigned long manufacturer:11; /* RO */
  1979. unsigned long part_number:16; /* RO */
  1980. unsigned long revision:4; /* RO */
  1981. unsigned long node_id:15; /* RW */
  1982. unsigned long rsvd_47_49:3;
  1983. unsigned long nodes_per_bit:7; /* RO */
  1984. unsigned long ni_port:5; /* RO */
  1985. unsigned long rsvd_62_63:2;
  1986. } sx;
  1987. struct uv2h_node_id_s {
  1988. unsigned long force1:1; /* RO */
  1989. unsigned long manufacturer:11; /* RO */
  1990. unsigned long part_number:16; /* RO */
  1991. unsigned long revision:4; /* RO */
  1992. unsigned long node_id:15; /* RW */
  1993. unsigned long rsvd_47_49:3;
  1994. unsigned long nodes_per_bit:7; /* RO */
  1995. unsigned long ni_port:5; /* RO */
  1996. unsigned long rsvd_62_63:2;
  1997. } s2;
  1998. struct uv3h_node_id_s {
  1999. unsigned long force1:1; /* RO */
  2000. unsigned long manufacturer:11; /* RO */
  2001. unsigned long part_number:16; /* RO */
  2002. unsigned long revision:4; /* RO */
  2003. unsigned long node_id:15; /* RW */
  2004. unsigned long rsvd_47:1;
  2005. unsigned long router_select:1; /* RO */
  2006. unsigned long rsvd_49:1;
  2007. unsigned long nodes_per_bit:7; /* RO */
  2008. unsigned long ni_port:5; /* RO */
  2009. unsigned long rsvd_62_63:2;
  2010. } s3;
  2011. };
  2012. /* ========================================================================= */
  2013. /* UVH_NODE_PRESENT_TABLE */
  2014. /* ========================================================================= */
  2015. #define UVH_NODE_PRESENT_TABLE 0x1400UL
  2016. #define UVH_NODE_PRESENT_TABLE_DEPTH 16
  2017. #define UVH_NODE_PRESENT_TABLE_NODES_SHFT 0
  2018. #define UVH_NODE_PRESENT_TABLE_NODES_MASK 0xffffffffffffffffUL
  2019. union uvh_node_present_table_u {
  2020. unsigned long v;
  2021. struct uvh_node_present_table_s {
  2022. unsigned long nodes:64; /* RW */
  2023. } s;
  2024. };
  2025. /* ========================================================================= */
  2026. /* UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR */
  2027. /* ========================================================================= */
  2028. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR 0x16000c8UL
  2029. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_SHFT 24
  2030. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_SHFT 48
  2031. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_SHFT 63
  2032. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_MASK 0x00000000ff000000UL
  2033. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_MASK 0x001f000000000000UL
  2034. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_MASK 0x8000000000000000UL
  2035. union uvh_rh_gam_alias210_overlay_config_0_mmr_u {
  2036. unsigned long v;
  2037. struct uvh_rh_gam_alias210_overlay_config_0_mmr_s {
  2038. unsigned long rsvd_0_23:24;
  2039. unsigned long base:8; /* RW */
  2040. unsigned long rsvd_32_47:16;
  2041. unsigned long m_alias:5; /* RW */
  2042. unsigned long rsvd_53_62:10;
  2043. unsigned long enable:1; /* RW */
  2044. } s;
  2045. };
  2046. /* ========================================================================= */
  2047. /* UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR */
  2048. /* ========================================================================= */
  2049. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR 0x16000d8UL
  2050. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_SHFT 24
  2051. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_SHFT 48
  2052. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_SHFT 63
  2053. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_MASK 0x00000000ff000000UL
  2054. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_MASK 0x001f000000000000UL
  2055. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_MASK 0x8000000000000000UL
  2056. union uvh_rh_gam_alias210_overlay_config_1_mmr_u {
  2057. unsigned long v;
  2058. struct uvh_rh_gam_alias210_overlay_config_1_mmr_s {
  2059. unsigned long rsvd_0_23:24;
  2060. unsigned long base:8; /* RW */
  2061. unsigned long rsvd_32_47:16;
  2062. unsigned long m_alias:5; /* RW */
  2063. unsigned long rsvd_53_62:10;
  2064. unsigned long enable:1; /* RW */
  2065. } s;
  2066. };
  2067. /* ========================================================================= */
  2068. /* UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR */
  2069. /* ========================================================================= */
  2070. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR 0x16000e8UL
  2071. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_SHFT 24
  2072. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_SHFT 48
  2073. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_SHFT 63
  2074. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_MASK 0x00000000ff000000UL
  2075. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_MASK 0x001f000000000000UL
  2076. #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_MASK 0x8000000000000000UL
  2077. union uvh_rh_gam_alias210_overlay_config_2_mmr_u {
  2078. unsigned long v;
  2079. struct uvh_rh_gam_alias210_overlay_config_2_mmr_s {
  2080. unsigned long rsvd_0_23:24;
  2081. unsigned long base:8; /* RW */
  2082. unsigned long rsvd_32_47:16;
  2083. unsigned long m_alias:5; /* RW */
  2084. unsigned long rsvd_53_62:10;
  2085. unsigned long enable:1; /* RW */
  2086. } s;
  2087. };
  2088. /* ========================================================================= */
  2089. /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR */
  2090. /* ========================================================================= */
  2091. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR 0x16000d0UL
  2092. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_SHFT 24
  2093. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_MASK 0x00003fffff000000UL
  2094. union uvh_rh_gam_alias210_redirect_config_0_mmr_u {
  2095. unsigned long v;
  2096. struct uvh_rh_gam_alias210_redirect_config_0_mmr_s {
  2097. unsigned long rsvd_0_23:24;
  2098. unsigned long dest_base:22; /* RW */
  2099. unsigned long rsvd_46_63:18;
  2100. } s;
  2101. };
  2102. /* ========================================================================= */
  2103. /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR */
  2104. /* ========================================================================= */
  2105. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR 0x16000e0UL
  2106. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_SHFT 24
  2107. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_MASK 0x00003fffff000000UL
  2108. union uvh_rh_gam_alias210_redirect_config_1_mmr_u {
  2109. unsigned long v;
  2110. struct uvh_rh_gam_alias210_redirect_config_1_mmr_s {
  2111. unsigned long rsvd_0_23:24;
  2112. unsigned long dest_base:22; /* RW */
  2113. unsigned long rsvd_46_63:18;
  2114. } s;
  2115. };
  2116. /* ========================================================================= */
  2117. /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR */
  2118. /* ========================================================================= */
  2119. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR 0x16000f0UL
  2120. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_SHFT 24
  2121. #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_MASK 0x00003fffff000000UL
  2122. union uvh_rh_gam_alias210_redirect_config_2_mmr_u {
  2123. unsigned long v;
  2124. struct uvh_rh_gam_alias210_redirect_config_2_mmr_s {
  2125. unsigned long rsvd_0_23:24;
  2126. unsigned long dest_base:22; /* RW */
  2127. unsigned long rsvd_46_63:18;
  2128. } s;
  2129. };
  2130. /* ========================================================================= */
  2131. /* UVH_RH_GAM_CONFIG_MMR */
  2132. /* ========================================================================= */
  2133. #define UVH_RH_GAM_CONFIG_MMR 0x1600000UL
  2134. #define UV1H_RH_GAM_CONFIG_MMR 0x1600000UL
  2135. #define UV2H_RH_GAM_CONFIG_MMR 0x1600000UL
  2136. #define UV3H_RH_GAM_CONFIG_MMR 0x1600000UL
  2137. #define UVH_RH_GAM_CONFIG_MMR_M_SKT_SHFT 0
  2138. #define UVH_RH_GAM_CONFIG_MMR_N_SKT_SHFT 6
  2139. #define UVH_RH_GAM_CONFIG_MMR_M_SKT_MASK 0x000000000000003fUL
  2140. #define UVH_RH_GAM_CONFIG_MMR_N_SKT_MASK 0x00000000000003c0UL
  2141. #define UV1H_RH_GAM_CONFIG_MMR_M_SKT_SHFT 0
  2142. #define UV1H_RH_GAM_CONFIG_MMR_N_SKT_SHFT 6
  2143. #define UV1H_RH_GAM_CONFIG_MMR_MMIOL_CFG_SHFT 12
  2144. #define UV1H_RH_GAM_CONFIG_MMR_M_SKT_MASK 0x000000000000003fUL
  2145. #define UV1H_RH_GAM_CONFIG_MMR_N_SKT_MASK 0x00000000000003c0UL
  2146. #define UV1H_RH_GAM_CONFIG_MMR_MMIOL_CFG_MASK 0x0000000000001000UL
  2147. #define UVXH_RH_GAM_CONFIG_MMR_M_SKT_SHFT 0
  2148. #define UVXH_RH_GAM_CONFIG_MMR_N_SKT_SHFT 6
  2149. #define UVXH_RH_GAM_CONFIG_MMR_M_SKT_MASK 0x000000000000003fUL
  2150. #define UVXH_RH_GAM_CONFIG_MMR_N_SKT_MASK 0x00000000000003c0UL
  2151. #define UV2H_RH_GAM_CONFIG_MMR_M_SKT_SHFT 0
  2152. #define UV2H_RH_GAM_CONFIG_MMR_N_SKT_SHFT 6
  2153. #define UV2H_RH_GAM_CONFIG_MMR_M_SKT_MASK 0x000000000000003fUL
  2154. #define UV2H_RH_GAM_CONFIG_MMR_N_SKT_MASK 0x00000000000003c0UL
  2155. #define UV3H_RH_GAM_CONFIG_MMR_M_SKT_SHFT 0
  2156. #define UV3H_RH_GAM_CONFIG_MMR_N_SKT_SHFT 6
  2157. #define UV3H_RH_GAM_CONFIG_MMR_M_SKT_MASK 0x000000000000003fUL
  2158. #define UV3H_RH_GAM_CONFIG_MMR_N_SKT_MASK 0x00000000000003c0UL
  2159. union uvh_rh_gam_config_mmr_u {
  2160. unsigned long v;
  2161. struct uvh_rh_gam_config_mmr_s {
  2162. unsigned long m_skt:6; /* RW */
  2163. unsigned long n_skt:4; /* RW */
  2164. unsigned long rsvd_10_63:54;
  2165. } s;
  2166. struct uv1h_rh_gam_config_mmr_s {
  2167. unsigned long m_skt:6; /* RW */
  2168. unsigned long n_skt:4; /* RW */
  2169. unsigned long rsvd_10_11:2;
  2170. unsigned long mmiol_cfg:1; /* RW */
  2171. unsigned long rsvd_13_63:51;
  2172. } s1;
  2173. struct uvxh_rh_gam_config_mmr_s {
  2174. unsigned long m_skt:6; /* RW */
  2175. unsigned long n_skt:4; /* RW */
  2176. unsigned long rsvd_10_63:54;
  2177. } sx;
  2178. struct uv2h_rh_gam_config_mmr_s {
  2179. unsigned long m_skt:6; /* RW */
  2180. unsigned long n_skt:4; /* RW */
  2181. unsigned long rsvd_10_63:54;
  2182. } s2;
  2183. struct uv3h_rh_gam_config_mmr_s {
  2184. unsigned long m_skt:6; /* RW */
  2185. unsigned long n_skt:4; /* RW */
  2186. unsigned long rsvd_10_63:54;
  2187. } s3;
  2188. };
  2189. /* ========================================================================= */
  2190. /* UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR */
  2191. /* ========================================================================= */
  2192. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL
  2193. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL
  2194. #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL
  2195. #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL
  2196. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
  2197. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52
  2198. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  2199. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
  2200. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL
  2201. #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  2202. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
  2203. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_GR4_SHFT 48
  2204. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52
  2205. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  2206. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
  2207. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_GR4_MASK 0x0001000000000000UL
  2208. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL
  2209. #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  2210. #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
  2211. #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52
  2212. #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  2213. #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
  2214. #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL
  2215. #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  2216. #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
  2217. #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52
  2218. #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  2219. #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
  2220. #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL
  2221. #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  2222. #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
  2223. #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52
  2224. #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_MODE_SHFT 62
  2225. #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  2226. #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
  2227. #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL
  2228. #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_MODE_MASK 0x4000000000000000UL
  2229. #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  2230. union uvh_rh_gam_gru_overlay_config_mmr_u {
  2231. unsigned long v;
  2232. struct uvh_rh_gam_gru_overlay_config_mmr_s {
  2233. unsigned long rsvd_0_27:28;
  2234. unsigned long base:18; /* RW */
  2235. unsigned long rsvd_46_51:6;
  2236. unsigned long n_gru:4; /* RW */
  2237. unsigned long rsvd_56_62:7;
  2238. unsigned long enable:1; /* RW */
  2239. } s;
  2240. struct uv1h_rh_gam_gru_overlay_config_mmr_s {
  2241. unsigned long rsvd_0_27:28;
  2242. unsigned long base:18; /* RW */
  2243. unsigned long rsvd_46_47:2;
  2244. unsigned long gr4:1; /* RW */
  2245. unsigned long rsvd_49_51:3;
  2246. unsigned long n_gru:4; /* RW */
  2247. unsigned long rsvd_56_62:7;
  2248. unsigned long enable:1; /* RW */
  2249. } s1;
  2250. struct uvxh_rh_gam_gru_overlay_config_mmr_s {
  2251. unsigned long rsvd_0_27:28;
  2252. unsigned long base:18; /* RW */
  2253. unsigned long rsvd_46_51:6;
  2254. unsigned long n_gru:4; /* RW */
  2255. unsigned long rsvd_56_62:7;
  2256. unsigned long enable:1; /* RW */
  2257. } sx;
  2258. struct uv2h_rh_gam_gru_overlay_config_mmr_s {
  2259. unsigned long rsvd_0_27:28;
  2260. unsigned long base:18; /* RW */
  2261. unsigned long rsvd_46_51:6;
  2262. unsigned long n_gru:4; /* RW */
  2263. unsigned long rsvd_56_62:7;
  2264. unsigned long enable:1; /* RW */
  2265. } s2;
  2266. struct uv3h_rh_gam_gru_overlay_config_mmr_s {
  2267. unsigned long rsvd_0_27:28;
  2268. unsigned long base:18; /* RW */
  2269. unsigned long rsvd_46_51:6;
  2270. unsigned long n_gru:4; /* RW */
  2271. unsigned long rsvd_56_61:6;
  2272. unsigned long mode:1; /* RW */
  2273. unsigned long enable:1; /* RW */
  2274. } s3;
  2275. };
  2276. /* ========================================================================= */
  2277. /* UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR */
  2278. /* ========================================================================= */
  2279. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR 0x1600030UL
  2280. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR 0x1600030UL
  2281. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_SHFT 30
  2282. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_SHFT 46
  2283. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_SHFT 52
  2284. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  2285. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003fffc0000000UL
  2286. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_MASK 0x000fc00000000000UL
  2287. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_MASK 0x00f0000000000000UL
  2288. #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  2289. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_SHFT 27
  2290. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_SHFT 46
  2291. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_SHFT 52
  2292. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  2293. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff8000000UL
  2294. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_MASK 0x000fc00000000000UL
  2295. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_MASK 0x00f0000000000000UL
  2296. #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  2297. union uvh_rh_gam_mmioh_overlay_config_mmr_u {
  2298. unsigned long v;
  2299. struct uv1h_rh_gam_mmioh_overlay_config_mmr_s {
  2300. unsigned long rsvd_0_29:30;
  2301. unsigned long base:16; /* RW */
  2302. unsigned long m_io:6; /* RW */
  2303. unsigned long n_io:4; /* RW */
  2304. unsigned long rsvd_56_62:7;
  2305. unsigned long enable:1; /* RW */
  2306. } s1;
  2307. struct uv2h_rh_gam_mmioh_overlay_config_mmr_s {
  2308. unsigned long rsvd_0_26:27;
  2309. unsigned long base:19; /* RW */
  2310. unsigned long m_io:6; /* RW */
  2311. unsigned long n_io:4; /* RW */
  2312. unsigned long rsvd_56_62:7;
  2313. unsigned long enable:1; /* RW */
  2314. } s2;
  2315. };
  2316. /* ========================================================================= */
  2317. /* UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR */
  2318. /* ========================================================================= */
  2319. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL
  2320. #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL
  2321. #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL
  2322. #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL
  2323. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
  2324. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  2325. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
  2326. #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  2327. #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
  2328. #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_DUAL_HUB_SHFT 46
  2329. #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  2330. #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
  2331. #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_DUAL_HUB_MASK 0x0000400000000000UL
  2332. #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  2333. #define UVXH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
  2334. #define UVXH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  2335. #define UVXH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
  2336. #define UVXH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  2337. #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
  2338. #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  2339. #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
  2340. #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  2341. #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
  2342. #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
  2343. #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
  2344. #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
  2345. union uvh_rh_gam_mmr_overlay_config_mmr_u {
  2346. unsigned long v;
  2347. struct uvh_rh_gam_mmr_overlay_config_mmr_s {
  2348. unsigned long rsvd_0_25:26;
  2349. unsigned long base:20; /* RW */
  2350. unsigned long rsvd_46_62:17;
  2351. unsigned long enable:1; /* RW */
  2352. } s;
  2353. struct uv1h_rh_gam_mmr_overlay_config_mmr_s {
  2354. unsigned long rsvd_0_25:26;
  2355. unsigned long base:20; /* RW */
  2356. unsigned long dual_hub:1; /* RW */
  2357. unsigned long rsvd_47_62:16;
  2358. unsigned long enable:1; /* RW */
  2359. } s1;
  2360. struct uvxh_rh_gam_mmr_overlay_config_mmr_s {
  2361. unsigned long rsvd_0_25:26;
  2362. unsigned long base:20; /* RW */
  2363. unsigned long rsvd_46_62:17;
  2364. unsigned long enable:1; /* RW */
  2365. } sx;
  2366. struct uv2h_rh_gam_mmr_overlay_config_mmr_s {
  2367. unsigned long rsvd_0_25:26;
  2368. unsigned long base:20; /* RW */
  2369. unsigned long rsvd_46_62:17;
  2370. unsigned long enable:1; /* RW */
  2371. } s2;
  2372. struct uv3h_rh_gam_mmr_overlay_config_mmr_s {
  2373. unsigned long rsvd_0_25:26;
  2374. unsigned long base:20; /* RW */
  2375. unsigned long rsvd_46_62:17;
  2376. unsigned long enable:1; /* RW */
  2377. } s3;
  2378. };
  2379. /* ========================================================================= */
  2380. /* UVH_RTC */
  2381. /* ========================================================================= */
  2382. #define UVH_RTC 0x340000UL
  2383. #define UVH_RTC_REAL_TIME_CLOCK_SHFT 0
  2384. #define UVH_RTC_REAL_TIME_CLOCK_MASK 0x00ffffffffffffffUL
  2385. union uvh_rtc_u {
  2386. unsigned long v;
  2387. struct uvh_rtc_s {
  2388. unsigned long real_time_clock:56; /* RW */
  2389. unsigned long rsvd_56_63:8;
  2390. } s;
  2391. };
  2392. /* ========================================================================= */
  2393. /* UVH_RTC1_INT_CONFIG */
  2394. /* ========================================================================= */
  2395. #define UVH_RTC1_INT_CONFIG 0x615c0UL
  2396. #define UVH_RTC1_INT_CONFIG_VECTOR_SHFT 0
  2397. #define UVH_RTC1_INT_CONFIG_DM_SHFT 8
  2398. #define UVH_RTC1_INT_CONFIG_DESTMODE_SHFT 11
  2399. #define UVH_RTC1_INT_CONFIG_STATUS_SHFT 12
  2400. #define UVH_RTC1_INT_CONFIG_P_SHFT 13
  2401. #define UVH_RTC1_INT_CONFIG_T_SHFT 15
  2402. #define UVH_RTC1_INT_CONFIG_M_SHFT 16
  2403. #define UVH_RTC1_INT_CONFIG_APIC_ID_SHFT 32
  2404. #define UVH_RTC1_INT_CONFIG_VECTOR_MASK 0x00000000000000ffUL
  2405. #define UVH_RTC1_INT_CONFIG_DM_MASK 0x0000000000000700UL
  2406. #define UVH_RTC1_INT_CONFIG_DESTMODE_MASK 0x0000000000000800UL
  2407. #define UVH_RTC1_INT_CONFIG_STATUS_MASK 0x0000000000001000UL
  2408. #define UVH_RTC1_INT_CONFIG_P_MASK 0x0000000000002000UL
  2409. #define UVH_RTC1_INT_CONFIG_T_MASK 0x0000000000008000UL
  2410. #define UVH_RTC1_INT_CONFIG_M_MASK 0x0000000000010000UL
  2411. #define UVH_RTC1_INT_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
  2412. union uvh_rtc1_int_config_u {
  2413. unsigned long v;
  2414. struct uvh_rtc1_int_config_s {
  2415. unsigned long vector_:8; /* RW */
  2416. unsigned long dm:3; /* RW */
  2417. unsigned long destmode:1; /* RW */
  2418. unsigned long status:1; /* RO */
  2419. unsigned long p:1; /* RO */
  2420. unsigned long rsvd_14:1;
  2421. unsigned long t:1; /* RO */
  2422. unsigned long m:1; /* RW */
  2423. unsigned long rsvd_17_31:15;
  2424. unsigned long apic_id:32; /* RW */
  2425. } s;
  2426. };
  2427. /* ========================================================================= */
  2428. /* UVH_SCRATCH5 */
  2429. /* ========================================================================= */
  2430. #define UVH_SCRATCH5 0x2d0200UL
  2431. #define UVH_SCRATCH5_32 0x778
  2432. #define UVH_SCRATCH5_SCRATCH5_SHFT 0
  2433. #define UVH_SCRATCH5_SCRATCH5_MASK 0xffffffffffffffffUL
  2434. union uvh_scratch5_u {
  2435. unsigned long v;
  2436. struct uvh_scratch5_s {
  2437. unsigned long scratch5:64; /* RW, W1CS */
  2438. } s;
  2439. };
  2440. /* ========================================================================= */
  2441. /* UVH_SCRATCH5_ALIAS */
  2442. /* ========================================================================= */
  2443. #define UVH_SCRATCH5_ALIAS 0x2d0208UL
  2444. #define UVH_SCRATCH5_ALIAS_32 0x780
  2445. /* ========================================================================= */
  2446. /* UVH_SCRATCH5_ALIAS_2 */
  2447. /* ========================================================================= */
  2448. #define UVH_SCRATCH5_ALIAS_2 0x2d0210UL
  2449. #define UVH_SCRATCH5_ALIAS_2_32 0x788
  2450. /* ========================================================================= */
  2451. /* UVXH_EVENT_OCCURRED2 */
  2452. /* ========================================================================= */
  2453. #define UVXH_EVENT_OCCURRED2 0x70100UL
  2454. #define UVXH_EVENT_OCCURRED2_32 0xb68
  2455. #define UVXH_EVENT_OCCURRED2_RTC_0_SHFT 0
  2456. #define UVXH_EVENT_OCCURRED2_RTC_1_SHFT 1
  2457. #define UVXH_EVENT_OCCURRED2_RTC_2_SHFT 2
  2458. #define UVXH_EVENT_OCCURRED2_RTC_3_SHFT 3
  2459. #define UVXH_EVENT_OCCURRED2_RTC_4_SHFT 4
  2460. #define UVXH_EVENT_OCCURRED2_RTC_5_SHFT 5
  2461. #define UVXH_EVENT_OCCURRED2_RTC_6_SHFT 6
  2462. #define UVXH_EVENT_OCCURRED2_RTC_7_SHFT 7
  2463. #define UVXH_EVENT_OCCURRED2_RTC_8_SHFT 8
  2464. #define UVXH_EVENT_OCCURRED2_RTC_9_SHFT 9
  2465. #define UVXH_EVENT_OCCURRED2_RTC_10_SHFT 10
  2466. #define UVXH_EVENT_OCCURRED2_RTC_11_SHFT 11
  2467. #define UVXH_EVENT_OCCURRED2_RTC_12_SHFT 12
  2468. #define UVXH_EVENT_OCCURRED2_RTC_13_SHFT 13
  2469. #define UVXH_EVENT_OCCURRED2_RTC_14_SHFT 14
  2470. #define UVXH_EVENT_OCCURRED2_RTC_15_SHFT 15
  2471. #define UVXH_EVENT_OCCURRED2_RTC_16_SHFT 16
  2472. #define UVXH_EVENT_OCCURRED2_RTC_17_SHFT 17
  2473. #define UVXH_EVENT_OCCURRED2_RTC_18_SHFT 18
  2474. #define UVXH_EVENT_OCCURRED2_RTC_19_SHFT 19
  2475. #define UVXH_EVENT_OCCURRED2_RTC_20_SHFT 20
  2476. #define UVXH_EVENT_OCCURRED2_RTC_21_SHFT 21
  2477. #define UVXH_EVENT_OCCURRED2_RTC_22_SHFT 22
  2478. #define UVXH_EVENT_OCCURRED2_RTC_23_SHFT 23
  2479. #define UVXH_EVENT_OCCURRED2_RTC_24_SHFT 24
  2480. #define UVXH_EVENT_OCCURRED2_RTC_25_SHFT 25
  2481. #define UVXH_EVENT_OCCURRED2_RTC_26_SHFT 26
  2482. #define UVXH_EVENT_OCCURRED2_RTC_27_SHFT 27
  2483. #define UVXH_EVENT_OCCURRED2_RTC_28_SHFT 28
  2484. #define UVXH_EVENT_OCCURRED2_RTC_29_SHFT 29
  2485. #define UVXH_EVENT_OCCURRED2_RTC_30_SHFT 30
  2486. #define UVXH_EVENT_OCCURRED2_RTC_31_SHFT 31
  2487. #define UVXH_EVENT_OCCURRED2_RTC_0_MASK 0x0000000000000001UL
  2488. #define UVXH_EVENT_OCCURRED2_RTC_1_MASK 0x0000000000000002UL
  2489. #define UVXH_EVENT_OCCURRED2_RTC_2_MASK 0x0000000000000004UL
  2490. #define UVXH_EVENT_OCCURRED2_RTC_3_MASK 0x0000000000000008UL
  2491. #define UVXH_EVENT_OCCURRED2_RTC_4_MASK 0x0000000000000010UL
  2492. #define UVXH_EVENT_OCCURRED2_RTC_5_MASK 0x0000000000000020UL
  2493. #define UVXH_EVENT_OCCURRED2_RTC_6_MASK 0x0000000000000040UL
  2494. #define UVXH_EVENT_OCCURRED2_RTC_7_MASK 0x0000000000000080UL
  2495. #define UVXH_EVENT_OCCURRED2_RTC_8_MASK 0x0000000000000100UL
  2496. #define UVXH_EVENT_OCCURRED2_RTC_9_MASK 0x0000000000000200UL
  2497. #define UVXH_EVENT_OCCURRED2_RTC_10_MASK 0x0000000000000400UL
  2498. #define UVXH_EVENT_OCCURRED2_RTC_11_MASK 0x0000000000000800UL
  2499. #define UVXH_EVENT_OCCURRED2_RTC_12_MASK 0x0000000000001000UL
  2500. #define UVXH_EVENT_OCCURRED2_RTC_13_MASK 0x0000000000002000UL
  2501. #define UVXH_EVENT_OCCURRED2_RTC_14_MASK 0x0000000000004000UL
  2502. #define UVXH_EVENT_OCCURRED2_RTC_15_MASK 0x0000000000008000UL
  2503. #define UVXH_EVENT_OCCURRED2_RTC_16_MASK 0x0000000000010000UL
  2504. #define UVXH_EVENT_OCCURRED2_RTC_17_MASK 0x0000000000020000UL
  2505. #define UVXH_EVENT_OCCURRED2_RTC_18_MASK 0x0000000000040000UL
  2506. #define UVXH_EVENT_OCCURRED2_RTC_19_MASK 0x0000000000080000UL
  2507. #define UVXH_EVENT_OCCURRED2_RTC_20_MASK 0x0000000000100000UL
  2508. #define UVXH_EVENT_OCCURRED2_RTC_21_MASK 0x0000000000200000UL
  2509. #define UVXH_EVENT_OCCURRED2_RTC_22_MASK 0x0000000000400000UL
  2510. #define UVXH_EVENT_OCCURRED2_RTC_23_MASK 0x0000000000800000UL
  2511. #define UVXH_EVENT_OCCURRED2_RTC_24_MASK 0x0000000001000000UL
  2512. #define UVXH_EVENT_OCCURRED2_RTC_25_MASK 0x0000000002000000UL
  2513. #define UVXH_EVENT_OCCURRED2_RTC_26_MASK 0x0000000004000000UL
  2514. #define UVXH_EVENT_OCCURRED2_RTC_27_MASK 0x0000000008000000UL
  2515. #define UVXH_EVENT_OCCURRED2_RTC_28_MASK 0x0000000010000000UL
  2516. #define UVXH_EVENT_OCCURRED2_RTC_29_MASK 0x0000000020000000UL
  2517. #define UVXH_EVENT_OCCURRED2_RTC_30_MASK 0x0000000040000000UL
  2518. #define UVXH_EVENT_OCCURRED2_RTC_31_MASK 0x0000000080000000UL
  2519. union uvxh_event_occurred2_u {
  2520. unsigned long v;
  2521. struct uvxh_event_occurred2_s {
  2522. unsigned long rtc_0:1; /* RW */
  2523. unsigned long rtc_1:1; /* RW */
  2524. unsigned long rtc_2:1; /* RW */
  2525. unsigned long rtc_3:1; /* RW */
  2526. unsigned long rtc_4:1; /* RW */
  2527. unsigned long rtc_5:1; /* RW */
  2528. unsigned long rtc_6:1; /* RW */
  2529. unsigned long rtc_7:1; /* RW */
  2530. unsigned long rtc_8:1; /* RW */
  2531. unsigned long rtc_9:1; /* RW */
  2532. unsigned long rtc_10:1; /* RW */
  2533. unsigned long rtc_11:1; /* RW */
  2534. unsigned long rtc_12:1; /* RW */
  2535. unsigned long rtc_13:1; /* RW */
  2536. unsigned long rtc_14:1; /* RW */
  2537. unsigned long rtc_15:1; /* RW */
  2538. unsigned long rtc_16:1; /* RW */
  2539. unsigned long rtc_17:1; /* RW */
  2540. unsigned long rtc_18:1; /* RW */
  2541. unsigned long rtc_19:1; /* RW */
  2542. unsigned long rtc_20:1; /* RW */
  2543. unsigned long rtc_21:1; /* RW */
  2544. unsigned long rtc_22:1; /* RW */
  2545. unsigned long rtc_23:1; /* RW */
  2546. unsigned long rtc_24:1; /* RW */
  2547. unsigned long rtc_25:1; /* RW */
  2548. unsigned long rtc_26:1; /* RW */
  2549. unsigned long rtc_27:1; /* RW */
  2550. unsigned long rtc_28:1; /* RW */
  2551. unsigned long rtc_29:1; /* RW */
  2552. unsigned long rtc_30:1; /* RW */
  2553. unsigned long rtc_31:1; /* RW */
  2554. unsigned long rsvd_32_63:32;
  2555. } sx;
  2556. };
  2557. /* ========================================================================= */
  2558. /* UVXH_EVENT_OCCURRED2_ALIAS */
  2559. /* ========================================================================= */
  2560. #define UVXH_EVENT_OCCURRED2_ALIAS 0x70108UL
  2561. #define UVXH_EVENT_OCCURRED2_ALIAS_32 0xb70
  2562. /* ========================================================================= */
  2563. /* UVXH_LB_BAU_SB_ACTIVATION_STATUS_2 */
  2564. /* ========================================================================= */
  2565. #define UVXH_LB_BAU_SB_ACTIVATION_STATUS_2 0x320130UL
  2566. #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2 0x320130UL
  2567. #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_2 0x320130UL
  2568. #define UVXH_LB_BAU_SB_ACTIVATION_STATUS_2_32 0x9f0
  2569. #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2_32 0x320130UL
  2570. #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_2_32 0x320130UL
  2571. #define UVXH_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_SHFT 0
  2572. #define UVXH_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_MASK 0xffffffffffffffffUL
  2573. #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_SHFT 0
  2574. #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_MASK 0xffffffffffffffffUL
  2575. #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_SHFT 0
  2576. #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_MASK 0xffffffffffffffffUL
  2577. union uvxh_lb_bau_sb_activation_status_2_u {
  2578. unsigned long v;
  2579. struct uvxh_lb_bau_sb_activation_status_2_s {
  2580. unsigned long aux_error:64; /* RW */
  2581. } sx;
  2582. struct uv2h_lb_bau_sb_activation_status_2_s {
  2583. unsigned long aux_error:64; /* RW */
  2584. } s2;
  2585. struct uv3h_lb_bau_sb_activation_status_2_s {
  2586. unsigned long aux_error:64; /* RW */
  2587. } s3;
  2588. };
  2589. /* ========================================================================= */
  2590. /* UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK */
  2591. /* ========================================================================= */
  2592. #define UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK 0x320130UL
  2593. #define UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK_32 0x9f0
  2594. #define UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK_BIT_ENABLES_SHFT 0
  2595. #define UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK_BIT_ENABLES_MASK 0x00000000ffffffffUL
  2596. union uv1h_lb_target_physical_apic_id_mask_u {
  2597. unsigned long v;
  2598. struct uv1h_lb_target_physical_apic_id_mask_s {
  2599. unsigned long bit_enables:32; /* RW */
  2600. unsigned long rsvd_32_63:32;
  2601. } s1;
  2602. };
  2603. /* ========================================================================= */
  2604. /* UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR */
  2605. /* ========================================================================= */
  2606. #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR 0x1603000UL
  2607. #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_BASE_SHFT 26
  2608. #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_SHFT 46
  2609. #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_ENABLE_SHFT 63
  2610. #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_BASE_MASK 0x00003ffffc000000UL
  2611. #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_MASK 0x000fc00000000000UL
  2612. #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_ENABLE_MASK 0x8000000000000000UL
  2613. union uv3h_rh_gam_mmioh_overlay_config0_mmr_u {
  2614. unsigned long v;
  2615. struct uv3h_rh_gam_mmioh_overlay_config0_mmr_s {
  2616. unsigned long rsvd_0_25:26;
  2617. unsigned long base:20; /* RW */
  2618. unsigned long m_io:6; /* RW */
  2619. unsigned long n_io:4;
  2620. unsigned long rsvd_56_62:7;
  2621. unsigned long enable:1; /* RW */
  2622. } s3;
  2623. };
  2624. /* ========================================================================= */
  2625. /* UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR */
  2626. /* ========================================================================= */
  2627. #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR 0x1604000UL
  2628. #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_BASE_SHFT 26
  2629. #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_SHFT 46
  2630. #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_ENABLE_SHFT 63
  2631. #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_BASE_MASK 0x00003ffffc000000UL
  2632. #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_MASK 0x000fc00000000000UL
  2633. #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_ENABLE_MASK 0x8000000000000000UL
  2634. union uv3h_rh_gam_mmioh_overlay_config1_mmr_u {
  2635. unsigned long v;
  2636. struct uv3h_rh_gam_mmioh_overlay_config1_mmr_s {
  2637. unsigned long rsvd_0_25:26;
  2638. unsigned long base:20; /* RW */
  2639. unsigned long m_io:6; /* RW */
  2640. unsigned long n_io:4;
  2641. unsigned long rsvd_56_62:7;
  2642. unsigned long enable:1; /* RW */
  2643. } s3;
  2644. };
  2645. /* ========================================================================= */
  2646. /* UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR */
  2647. /* ========================================================================= */
  2648. #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR 0x1603800UL
  2649. #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_DEPTH 128
  2650. #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_NASID_SHFT 0
  2651. #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_NASID_MASK 0x0000000000007fffUL
  2652. union uv3h_rh_gam_mmioh_redirect_config0_mmr_u {
  2653. unsigned long v;
  2654. struct uv3h_rh_gam_mmioh_redirect_config0_mmr_s {
  2655. unsigned long nasid:15; /* RW */
  2656. unsigned long rsvd_15_63:49;
  2657. } s3;
  2658. };
  2659. /* ========================================================================= */
  2660. /* UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR */
  2661. /* ========================================================================= */
  2662. #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR 0x1604800UL
  2663. #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_DEPTH 128
  2664. #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_NASID_SHFT 0
  2665. #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_NASID_MASK 0x0000000000007fffUL
  2666. union uv3h_rh_gam_mmioh_redirect_config1_mmr_u {
  2667. unsigned long v;
  2668. struct uv3h_rh_gam_mmioh_redirect_config1_mmr_s {
  2669. unsigned long nasid:15; /* RW */
  2670. unsigned long rsvd_15_63:49;
  2671. } s3;
  2672. };
  2673. #endif /* _ASM_X86_UV_UV_MMRS_H */