gsi_hwio.h 111 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2019, The Linux Foundation. All rights reserved.
  4. */
  5. #if !defined(_GSI_HWIO_H_)
  6. #define _GSI_HWIO_H_
  7. /*
  8. *
  9. * HWIO register definitions to follow:
  10. *
  11. */
  12. #define GSI_REG_BASE (IPA_0_IPA_WRAPPER_BASE + 0x00004000)
  13. #define GSI_REG_BASE_PHYS (IPA_0_IPA_WRAPPER_BASE_PHYS + 0x00004000)
  14. #define GSI_REG_BASE_OFFS 0x00004000
  15. #define HWIO_GSI_CFG_ADDR (GSI_REG_BASE + 0x00000000)
  16. #define HWIO_GSI_CFG_PHYS (GSI_REG_BASE_PHYS + 0x00000000)
  17. #define HWIO_GSI_CFG_OFFS (GSI_REG_BASE_OFFS + 0x00000000)
  18. #define HWIO_GSI_CFG_RMSK 0xf3f
  19. #define HWIO_GSI_CFG_ATTR 0x3
  20. #define HWIO_GSI_CFG_IN in_dword_masked(HWIO_GSI_CFG_ADDR, \
  21. HWIO_GSI_CFG_RMSK)
  22. #define HWIO_GSI_CFG_INM(m) in_dword_masked(HWIO_GSI_CFG_ADDR, m)
  23. #define HWIO_GSI_CFG_OUT(v) out_dword(HWIO_GSI_CFG_ADDR, v)
  24. #define HWIO_GSI_CFG_OUTM(m, v) out_dword_masked_ns(HWIO_GSI_CFG_ADDR, \
  25. m, \
  26. v, \
  27. HWIO_GSI_CFG_IN)
  28. #define HWIO_GSI_CFG_SLEEP_CLK_DIV_BMSK 0xf00
  29. #define HWIO_GSI_CFG_SLEEP_CLK_DIV_SHFT 0x8
  30. #define HWIO_GSI_CFG_BP_MTRIX_DISABLE_BMSK 0x20
  31. #define HWIO_GSI_CFG_BP_MTRIX_DISABLE_SHFT 0x5
  32. #define HWIO_GSI_CFG_GSI_PWR_CLPS_BMSK 0x10
  33. #define HWIO_GSI_CFG_GSI_PWR_CLPS_SHFT 0x4
  34. #define HWIO_GSI_CFG_UC_IS_MCS_BMSK 0x8
  35. #define HWIO_GSI_CFG_UC_IS_MCS_SHFT 0x3
  36. #define HWIO_GSI_CFG_DOUBLE_MCS_CLK_FREQ_BMSK 0x4
  37. #define HWIO_GSI_CFG_DOUBLE_MCS_CLK_FREQ_SHFT 0x2
  38. #define HWIO_GSI_CFG_MCS_ENABLE_BMSK 0x2
  39. #define HWIO_GSI_CFG_MCS_ENABLE_SHFT 0x1
  40. #define HWIO_GSI_CFG_GSI_ENABLE_BMSK 0x1
  41. #define HWIO_GSI_CFG_GSI_ENABLE_SHFT 0x0
  42. #define HWIO_GSI_MANAGER_MCS_CODE_VER_ADDR (GSI_REG_BASE + 0x00000008)
  43. #define HWIO_GSI_MANAGER_MCS_CODE_VER_PHYS (GSI_REG_BASE_PHYS + 0x00000008)
  44. #define HWIO_GSI_MANAGER_MCS_CODE_VER_OFFS (GSI_REG_BASE_OFFS + 0x00000008)
  45. #define HWIO_GSI_ZEROS_ADDR (GSI_REG_BASE + 0x00000010)
  46. #define HWIO_GSI_ZEROS_PHYS (GSI_REG_BASE_PHYS + 0x00000010)
  47. #define HWIO_GSI_ZEROS_OFFS (GSI_REG_BASE_OFFS + 0x00000010)
  48. #define HWIO_GSI_PERIPH_BASE_ADDR_LSB_ADDR (GSI_REG_BASE + 0x00000018)
  49. #define HWIO_GSI_PERIPH_BASE_ADDR_LSB_PHYS (GSI_REG_BASE_PHYS + 0x00000018)
  50. #define HWIO_GSI_PERIPH_BASE_ADDR_LSB_OFFS (GSI_REG_BASE_OFFS + 0x00000018)
  51. #define HWIO_GSI_PERIPH_BASE_ADDR_MSB_ADDR (GSI_REG_BASE + 0x0000001c)
  52. #define HWIO_GSI_PERIPH_BASE_ADDR_MSB_PHYS (GSI_REG_BASE_PHYS + 0x0000001c)
  53. #define HWIO_GSI_PERIPH_BASE_ADDR_MSB_OFFS (GSI_REG_BASE_OFFS + 0x0000001c)
  54. #define HWIO_GSI_PERIPH_PENDING_ADDR (GSI_REG_BASE + 0x00000020)
  55. #define HWIO_GSI_PERIPH_PENDING_PHYS (GSI_REG_BASE_PHYS + 0x00000020)
  56. #define HWIO_GSI_PERIPH_PENDING_OFFS (GSI_REG_BASE_OFFS + 0x00000020)
  57. #define HWIO_GSI_MOQA_CFG_ADDR (GSI_REG_BASE + 0x00000030)
  58. #define HWIO_GSI_MOQA_CFG_PHYS (GSI_REG_BASE_PHYS + 0x00000030)
  59. #define HWIO_GSI_MOQA_CFG_OFFS (GSI_REG_BASE_OFFS + 0x00000030)
  60. #define HWIO_GSI_REE_CFG_ADDR (GSI_REG_BASE + 0x00000038)
  61. #define HWIO_GSI_REE_CFG_PHYS (GSI_REG_BASE_PHYS + 0x00000038)
  62. #define HWIO_GSI_REE_CFG_OFFS (GSI_REG_BASE_OFFS + 0x00000038)
  63. #define HWIO_GSI_REE_CFG_RMSK 0xff03
  64. #define HWIO_GSI_REE_CFG_ATTR 0x3
  65. #define HWIO_GSI_REE_CFG_IN in_dword_masked(HWIO_GSI_REE_CFG_ADDR, \
  66. HWIO_GSI_REE_CFG_RMSK)
  67. #define HWIO_GSI_REE_CFG_INM(m) in_dword_masked(HWIO_GSI_REE_CFG_ADDR, m)
  68. #define HWIO_GSI_REE_CFG_OUT(v) out_dword(HWIO_GSI_REE_CFG_ADDR, v)
  69. #define HWIO_GSI_REE_CFG_OUTM(m, v) out_dword_masked_ns( \
  70. HWIO_GSI_REE_CFG_ADDR, \
  71. m, \
  72. v, \
  73. HWIO_GSI_REE_CFG_IN)
  74. #define HWIO_GSI_REE_CFG_MAX_BURST_SIZE_BMSK 0xff00
  75. #define HWIO_GSI_REE_CFG_MAX_BURST_SIZE_SHFT 0x8
  76. #define HWIO_GSI_REE_CFG_CHANNEL_EMPTY_INT_ENABLE_BMSK 0x2
  77. #define HWIO_GSI_REE_CFG_CHANNEL_EMPTY_INT_ENABLE_SHFT 0x1
  78. #define HWIO_GSI_REE_CFG_MOVE_TO_ESC_CLR_MODE_TRSH_BMSK 0x1
  79. #define HWIO_GSI_REE_CFG_MOVE_TO_ESC_CLR_MODE_TRSH_SHFT 0x0
  80. #define HWIO_GSI_CGC_CTRL_ADDR (GSI_REG_BASE + 0x00000060)
  81. #define HWIO_GSI_CGC_CTRL_PHYS (GSI_REG_BASE_PHYS + 0x00000060)
  82. #define HWIO_GSI_CGC_CTRL_OFFS (GSI_REG_BASE_OFFS + 0x00000060)
  83. #define HWIO_GSI_MSI_CACHEATTR_ADDR (GSI_REG_BASE + 0x00000080)
  84. #define HWIO_GSI_MSI_CACHEATTR_PHYS (GSI_REG_BASE_PHYS + 0x00000080)
  85. #define HWIO_GSI_MSI_CACHEATTR_OFFS (GSI_REG_BASE_OFFS + 0x00000080)
  86. #define HWIO_GSI_EVENT_CACHEATTR_ADDR (GSI_REG_BASE + 0x00000084)
  87. #define HWIO_GSI_EVENT_CACHEATTR_PHYS (GSI_REG_BASE_PHYS + 0x00000084)
  88. #define HWIO_GSI_EVENT_CACHEATTR_OFFS (GSI_REG_BASE_OFFS + 0x00000084)
  89. #define HWIO_GSI_DATA_CACHEATTR_ADDR (GSI_REG_BASE + 0x00000088)
  90. #define HWIO_GSI_DATA_CACHEATTR_PHYS (GSI_REG_BASE_PHYS + 0x00000088)
  91. #define HWIO_GSI_DATA_CACHEATTR_OFFS (GSI_REG_BASE_OFFS + 0x00000088)
  92. #define HWIO_GSI_TRE_CACHEATTR_ADDR (GSI_REG_BASE + 0x00000090)
  93. #define HWIO_GSI_TRE_CACHEATTR_PHYS (GSI_REG_BASE_PHYS + 0x00000090)
  94. #define HWIO_GSI_TRE_CACHEATTR_OFFS (GSI_REG_BASE_OFFS + 0x00000090)
  95. #define HWIO_IC_DISABLE_CHNL_BCK_PRS_LSB_ADDR (GSI_REG_BASE + 0x000000a0)
  96. #define HWIO_IC_DISABLE_CHNL_BCK_PRS_LSB_PHYS (GSI_REG_BASE_PHYS + \
  97. 0x000000a0)
  98. #define HWIO_IC_DISABLE_CHNL_BCK_PRS_LSB_OFFS (GSI_REG_BASE_OFFS + \
  99. 0x000000a0)
  100. #define HWIO_IC_DISABLE_CHNL_BCK_PRS_MSB_ADDR (GSI_REG_BASE + 0x000000a4)
  101. #define HWIO_IC_DISABLE_CHNL_BCK_PRS_MSB_PHYS (GSI_REG_BASE_PHYS + \
  102. 0x000000a4)
  103. #define HWIO_IC_DISABLE_CHNL_BCK_PRS_MSB_OFFS (GSI_REG_BASE_OFFS + \
  104. 0x000000a4)
  105. #define HWIO_IC_GEN_EVNT_BCK_PRS_LSB_ADDR (GSI_REG_BASE + 0x000000a8)
  106. #define HWIO_IC_GEN_EVNT_BCK_PRS_LSB_PHYS (GSI_REG_BASE_PHYS + 0x000000a8)
  107. #define HWIO_IC_GEN_EVNT_BCK_PRS_LSB_OFFS (GSI_REG_BASE_OFFS + 0x000000a8)
  108. #define HWIO_IC_GEN_EVNT_BCK_PRS_MSB_ADDR (GSI_REG_BASE + 0x000000ac)
  109. #define HWIO_IC_GEN_EVNT_BCK_PRS_MSB_PHYS (GSI_REG_BASE_PHYS + 0x000000ac)
  110. #define HWIO_IC_GEN_EVNT_BCK_PRS_MSB_OFFS (GSI_REG_BASE_OFFS + 0x000000ac)
  111. #define HWIO_IC_GEN_INT_BCK_PRS_LSB_ADDR (GSI_REG_BASE + 0x000000b0)
  112. #define HWIO_IC_GEN_INT_BCK_PRS_LSB_PHYS (GSI_REG_BASE_PHYS + 0x000000b0)
  113. #define HWIO_IC_GEN_INT_BCK_PRS_LSB_OFFS (GSI_REG_BASE_OFFS + 0x000000b0)
  114. #define HWIO_IC_GEN_INT_BCK_PRS_MSB_ADDR (GSI_REG_BASE + 0x000000b4)
  115. #define HWIO_IC_GEN_INT_BCK_PRS_MSB_PHYS (GSI_REG_BASE_PHYS + 0x000000b4)
  116. #define HWIO_IC_GEN_INT_BCK_PRS_MSB_OFFS (GSI_REG_BASE_OFFS + 0x000000b4)
  117. #define HWIO_IC_STOP_INT_MOD_BCK_PRS_LSB_ADDR (GSI_REG_BASE + 0x000000b8)
  118. #define HWIO_IC_STOP_INT_MOD_BCK_PRS_LSB_PHYS (GSI_REG_BASE_PHYS + \
  119. 0x000000b8)
  120. #define HWIO_IC_STOP_INT_MOD_BCK_PRS_LSB_OFFS (GSI_REG_BASE_OFFS + \
  121. 0x000000b8)
  122. #define HWIO_IC_STOP_INT_MOD_BCK_PRS_MSB_ADDR (GSI_REG_BASE + 0x000000bc)
  123. #define HWIO_IC_STOP_INT_MOD_BCK_PRS_MSB_PHYS (GSI_REG_BASE_PHYS + \
  124. 0x000000bc)
  125. #define HWIO_IC_STOP_INT_MOD_BCK_PRS_MSB_OFFS (GSI_REG_BASE_OFFS + \
  126. 0x000000bc)
  127. #define HWIO_IC_PROCESS_DESC_BCK_PRS_LSB_ADDR (GSI_REG_BASE + 0x000000c0)
  128. #define HWIO_IC_PROCESS_DESC_BCK_PRS_LSB_PHYS (GSI_REG_BASE_PHYS + \
  129. 0x000000c0)
  130. #define HWIO_IC_PROCESS_DESC_BCK_PRS_LSB_OFFS (GSI_REG_BASE_OFFS + \
  131. 0x000000c0)
  132. #define HWIO_IC_PROCESS_DESC_BCK_PRS_MSB_ADDR (GSI_REG_BASE + 0x000000c4)
  133. #define HWIO_IC_PROCESS_DESC_BCK_PRS_MSB_PHYS (GSI_REG_BASE_PHYS + \
  134. 0x000000c4)
  135. #define HWIO_IC_PROCESS_DESC_BCK_PRS_MSB_OFFS (GSI_REG_BASE_OFFS + \
  136. 0x000000c4)
  137. #define HWIO_IC_TLV_STOP_BCK_PRS_LSB_ADDR (GSI_REG_BASE + 0x000000c8)
  138. #define HWIO_IC_TLV_STOP_BCK_PRS_LSB_PHYS (GSI_REG_BASE_PHYS + 0x000000c8)
  139. #define HWIO_IC_TLV_STOP_BCK_PRS_LSB_OFFS (GSI_REG_BASE_OFFS + 0x000000c8)
  140. #define HWIO_IC_TLV_STOP_BCK_PRS_MSB_ADDR (GSI_REG_BASE + 0x000000cc)
  141. #define HWIO_IC_TLV_STOP_BCK_PRS_MSB_PHYS (GSI_REG_BASE_PHYS + 0x000000cc)
  142. #define HWIO_IC_TLV_STOP_BCK_PRS_MSB_OFFS (GSI_REG_BASE_OFFS + 0x000000cc)
  143. #define HWIO_IC_TLV_RESET_BCK_PRS_LSB_ADDR (GSI_REG_BASE + 0x000000d0)
  144. #define HWIO_IC_TLV_RESET_BCK_PRS_LSB_PHYS (GSI_REG_BASE_PHYS + 0x000000d0)
  145. #define HWIO_IC_TLV_RESET_BCK_PRS_LSB_OFFS (GSI_REG_BASE_OFFS + 0x000000d0)
  146. #define HWIO_IC_TLV_RESET_BCK_PRS_MSB_ADDR (GSI_REG_BASE + 0x000000d4)
  147. #define HWIO_IC_TLV_RESET_BCK_PRS_MSB_PHYS (GSI_REG_BASE_PHYS + 0x000000d4)
  148. #define HWIO_IC_TLV_RESET_BCK_PRS_MSB_OFFS (GSI_REG_BASE_OFFS + 0x000000d4)
  149. #define HWIO_IC_RGSTR_TIMER_BCK_PRS_LSB_ADDR (GSI_REG_BASE + 0x000000d8)
  150. #define HWIO_IC_RGSTR_TIMER_BCK_PRS_LSB_PHYS (GSI_REG_BASE_PHYS + \
  151. 0x000000d8)
  152. #define HWIO_IC_RGSTR_TIMER_BCK_PRS_LSB_OFFS (GSI_REG_BASE_OFFS + \
  153. 0x000000d8)
  154. #define HWIO_IC_RGSTR_TIMER_BCK_PRS_MSB_ADDR (GSI_REG_BASE + 0x000000dc)
  155. #define HWIO_IC_RGSTR_TIMER_BCK_PRS_MSB_PHYS (GSI_REG_BASE_PHYS + \
  156. 0x000000dc)
  157. #define HWIO_IC_RGSTR_TIMER_BCK_PRS_MSB_OFFS (GSI_REG_BASE_OFFS + \
  158. 0x000000dc)
  159. #define HWIO_IC_READ_BCK_PRS_LSB_ADDR (GSI_REG_BASE + 0x000000e0)
  160. #define HWIO_IC_READ_BCK_PRS_LSB_PHYS (GSI_REG_BASE_PHYS + 0x000000e0)
  161. #define HWIO_IC_READ_BCK_PRS_LSB_OFFS (GSI_REG_BASE_OFFS + 0x000000e0)
  162. #define HWIO_IC_READ_BCK_PRS_MSB_ADDR (GSI_REG_BASE + 0x000000e4)
  163. #define HWIO_IC_READ_BCK_PRS_MSB_PHYS (GSI_REG_BASE_PHYS + 0x000000e4)
  164. #define HWIO_IC_READ_BCK_PRS_MSB_OFFS (GSI_REG_BASE_OFFS + 0x000000e4)
  165. #define HWIO_IC_WRITE_BCK_PRS_LSB_ADDR (GSI_REG_BASE + 0x000000e8)
  166. #define HWIO_IC_WRITE_BCK_PRS_LSB_PHYS (GSI_REG_BASE_PHYS + 0x000000e8)
  167. #define HWIO_IC_WRITE_BCK_PRS_LSB_OFFS (GSI_REG_BASE_OFFS + 0x000000e8)
  168. #define HWIO_IC_WRITE_BCK_PRS_MSB_ADDR (GSI_REG_BASE + 0x000000ec)
  169. #define HWIO_IC_WRITE_BCK_PRS_MSB_PHYS (GSI_REG_BASE_PHYS + 0x000000ec)
  170. #define HWIO_IC_WRITE_BCK_PRS_MSB_OFFS (GSI_REG_BASE_OFFS + 0x000000ec)
  171. #define HWIO_IC_UCONTROLLER_GPR_BCK_PRS_LSB_ADDR (GSI_REG_BASE + \
  172. 0x000000f0)
  173. #define HWIO_IC_UCONTROLLER_GPR_BCK_PRS_LSB_PHYS (GSI_REG_BASE_PHYS + \
  174. 0x000000f0)
  175. #define HWIO_IC_UCONTROLLER_GPR_BCK_PRS_LSB_OFFS (GSI_REG_BASE_OFFS + \
  176. 0x000000f0)
  177. #define HWIO_IC_UCONTROLLER_GPR_BCK_PRS_MSB_ADDR (GSI_REG_BASE + \
  178. 0x000000f4)
  179. #define HWIO_IC_UCONTROLLER_GPR_BCK_PRS_MSB_PHYS (GSI_REG_BASE_PHYS + \
  180. 0x000000f4)
  181. #define HWIO_IC_UCONTROLLER_GPR_BCK_PRS_MSB_OFFS (GSI_REG_BASE_OFFS + \
  182. 0x000000f4)
  183. #define HWIO_IC_INT_WEIGHT_REE_ADDR (GSI_REG_BASE + 0x00000100)
  184. #define HWIO_IC_INT_WEIGHT_REE_PHYS (GSI_REG_BASE_PHYS + 0x00000100)
  185. #define HWIO_IC_INT_WEIGHT_REE_OFFS (GSI_REG_BASE_OFFS + 0x00000100)
  186. #define HWIO_IC_INT_WEIGHT_EVT_ENG_ADDR (GSI_REG_BASE + 0x00000104)
  187. #define HWIO_IC_INT_WEIGHT_EVT_ENG_PHYS (GSI_REG_BASE_PHYS + 0x00000104)
  188. #define HWIO_IC_INT_WEIGHT_EVT_ENG_OFFS (GSI_REG_BASE_OFFS + 0x00000104)
  189. #define HWIO_IC_INT_WEIGHT_INT_ENG_ADDR (GSI_REG_BASE + 0x00000108)
  190. #define HWIO_IC_INT_WEIGHT_INT_ENG_PHYS (GSI_REG_BASE_PHYS + 0x00000108)
  191. #define HWIO_IC_INT_WEIGHT_INT_ENG_OFFS (GSI_REG_BASE_OFFS + 0x00000108)
  192. #define HWIO_IC_INT_WEIGHT_CSR_ADDR (GSI_REG_BASE + 0x0000010c)
  193. #define HWIO_IC_INT_WEIGHT_CSR_PHYS (GSI_REG_BASE_PHYS + 0x0000010c)
  194. #define HWIO_IC_INT_WEIGHT_CSR_OFFS (GSI_REG_BASE_OFFS + 0x0000010c)
  195. #define HWIO_IC_INT_WEIGHT_TLV_ENG_ADDR (GSI_REG_BASE + 0x00000110)
  196. #define HWIO_IC_INT_WEIGHT_TLV_ENG_PHYS (GSI_REG_BASE_PHYS + 0x00000110)
  197. #define HWIO_IC_INT_WEIGHT_TLV_ENG_OFFS (GSI_REG_BASE_OFFS + 0x00000110)
  198. #define HWIO_IC_INT_WEIGHT_TIMER_ENG_ADDR (GSI_REG_BASE + 0x00000114)
  199. #define HWIO_IC_INT_WEIGHT_TIMER_ENG_PHYS (GSI_REG_BASE_PHYS + 0x00000114)
  200. #define HWIO_IC_INT_WEIGHT_TIMER_ENG_OFFS (GSI_REG_BASE_OFFS + 0x00000114)
  201. #define HWIO_IC_INT_WEIGHT_DB_ENG_ADDR (GSI_REG_BASE + 0x00000118)
  202. #define HWIO_IC_INT_WEIGHT_DB_ENG_PHYS (GSI_REG_BASE_PHYS + 0x00000118)
  203. #define HWIO_IC_INT_WEIGHT_DB_ENG_OFFS (GSI_REG_BASE_OFFS + 0x00000118)
  204. #define HWIO_IC_INT_WEIGHT_RD_WR_ENG_ADDR (GSI_REG_BASE + 0x0000011c)
  205. #define HWIO_IC_INT_WEIGHT_RD_WR_ENG_PHYS (GSI_REG_BASE_PHYS + 0x0000011c)
  206. #define HWIO_IC_INT_WEIGHT_RD_WR_ENG_OFFS (GSI_REG_BASE_OFFS + 0x0000011c)
  207. #define HWIO_IC_INT_WEIGHT_UCONTROLLER_ENG_ADDR (GSI_REG_BASE + 0x00000120)
  208. #define HWIO_IC_INT_WEIGHT_UCONTROLLER_ENG_PHYS (GSI_REG_BASE_PHYS + \
  209. 0x00000120)
  210. #define HWIO_IC_INT_WEIGHT_UCONTROLLER_ENG_OFFS (GSI_REG_BASE_OFFS + \
  211. 0x00000120)
  212. #define HWIO_IC_INT_WEIGHT_SDMA_ADDR (GSI_REG_BASE + 0x00000124)
  213. #define HWIO_IC_INT_WEIGHT_SDMA_PHYS (GSI_REG_BASE_PHYS + 0x00000124)
  214. #define HWIO_IC_INT_WEIGHT_SDMA_OFFS (GSI_REG_BASE_OFFS + 0x00000124)
  215. #define HWIO_GSI_SDMA_CFG_ADDR (GSI_REG_BASE + 0x0000003c)
  216. #define HWIO_GSI_SDMA_CFG_PHYS (GSI_REG_BASE_PHYS + 0x0000003c)
  217. #define HWIO_GSI_SDMA_CFG_OFFS (GSI_REG_BASE_OFFS + 0x0000003c)
  218. #define HWIO_GSI_SDMA_CACHEATTR_ADDR (GSI_REG_BASE + 0x00000094)
  219. #define HWIO_GSI_SDMA_CACHEATTR_PHYS (GSI_REG_BASE_PHYS + 0x00000094)
  220. #define HWIO_GSI_SDMA_CACHEATTR_OFFS (GSI_REG_BASE_OFFS + 0x00000094)
  221. #define HWIO_GSI_SDMA_SG_IOVEC_LSB_n_ADDR(n) (GSI_REG_BASE + 0x00000140 + \
  222. 0x8 * (n))
  223. #define HWIO_GSI_SDMA_SG_IOVEC_LSB_n_PHYS(n) (GSI_REG_BASE_PHYS + \
  224. 0x00000140 + 0x8 * (n))
  225. #define HWIO_GSI_SDMA_SG_IOVEC_LSB_n_OFFS(n) (GSI_REG_BASE_OFFS + \
  226. 0x00000140 + 0x8 * (n))
  227. #define HWIO_GSI_SDMA_SG_IOVEC_MSB_n_ADDR(n) (GSI_REG_BASE + 0x00000144 + \
  228. 0x8 * (n))
  229. #define HWIO_GSI_SDMA_SG_IOVEC_MSB_n_PHYS(n) (GSI_REG_BASE_PHYS + \
  230. 0x00000144 + 0x8 * (n))
  231. #define HWIO_GSI_SDMA_SG_IOVEC_MSB_n_OFFS(n) (GSI_REG_BASE_OFFS + \
  232. 0x00000144 + 0x8 * (n))
  233. #define HWIO_GSI_MANAGER_EE_QOS_n_ADDR(n) (GSI_REG_BASE + 0x00000300 + \
  234. 0x4 * (n))
  235. #define HWIO_GSI_MANAGER_EE_QOS_n_PHYS(n) (GSI_REG_BASE_PHYS + \
  236. 0x00000300 + 0x4 * (n))
  237. #define HWIO_GSI_MANAGER_EE_QOS_n_OFFS(n) (GSI_REG_BASE_OFFS + \
  238. 0x00000300 + 0x4 * (n))
  239. #define HWIO_GSI_SHRAM_PTR_CH_CNTXT_BASE_ADDR_ADDR (GSI_REG_BASE + \
  240. 0x00000200)
  241. #define HWIO_GSI_SHRAM_PTR_CH_CNTXT_BASE_ADDR_PHYS (GSI_REG_BASE_PHYS + \
  242. 0x00000200)
  243. #define HWIO_GSI_SHRAM_PTR_CH_CNTXT_BASE_ADDR_OFFS (GSI_REG_BASE_OFFS + \
  244. 0x00000200)
  245. #define HWIO_GSI_SHRAM_PTR_EV_CNTXT_BASE_ADDR_ADDR (GSI_REG_BASE + \
  246. 0x00000204)
  247. #define HWIO_GSI_SHRAM_PTR_EV_CNTXT_BASE_ADDR_PHYS (GSI_REG_BASE_PHYS + \
  248. 0x00000204)
  249. #define HWIO_GSI_SHRAM_PTR_EV_CNTXT_BASE_ADDR_OFFS (GSI_REG_BASE_OFFS + \
  250. 0x00000204)
  251. #define HWIO_GSI_SHRAM_PTR_RE_STORAGE_BASE_ADDR_ADDR (GSI_REG_BASE + \
  252. 0x00000208)
  253. #define HWIO_GSI_SHRAM_PTR_RE_STORAGE_BASE_ADDR_PHYS (GSI_REG_BASE_PHYS + \
  254. 0x00000208)
  255. #define HWIO_GSI_SHRAM_PTR_RE_STORAGE_BASE_ADDR_OFFS (GSI_REG_BASE_OFFS + \
  256. 0x00000208)
  257. #define HWIO_GSI_SHRAM_PTR_RE_ESC_BUF_BASE_ADDR_ADDR (GSI_REG_BASE + \
  258. 0x0000020c)
  259. #define HWIO_GSI_SHRAM_PTR_RE_ESC_BUF_BASE_ADDR_PHYS (GSI_REG_BASE_PHYS + \
  260. 0x0000020c)
  261. #define HWIO_GSI_SHRAM_PTR_RE_ESC_BUF_BASE_ADDR_OFFS (GSI_REG_BASE_OFFS + \
  262. 0x0000020c)
  263. #define HWIO_GSI_SHRAM_PTR_EE_SCRACH_BASE_ADDR_ADDR (GSI_REG_BASE + \
  264. 0x00000240)
  265. #define HWIO_GSI_SHRAM_PTR_EE_SCRACH_BASE_ADDR_PHYS (GSI_REG_BASE_PHYS + \
  266. 0x00000240)
  267. #define HWIO_GSI_SHRAM_PTR_EE_SCRACH_BASE_ADDR_OFFS (GSI_REG_BASE_OFFS + \
  268. 0x00000240)
  269. #define HWIO_GSI_SHRAM_PTR_FUNC_STACK_BASE_ADDR_ADDR (GSI_REG_BASE + \
  270. 0x00000244)
  271. #define HWIO_GSI_SHRAM_PTR_FUNC_STACK_BASE_ADDR_PHYS (GSI_REG_BASE_PHYS + \
  272. 0x00000244)
  273. #define HWIO_GSI_SHRAM_PTR_FUNC_STACK_BASE_ADDR_OFFS (GSI_REG_BASE_OFFS + \
  274. 0x00000244)
  275. #define HWIO_GSI_SHRAM_PTR_MCS_SCRATCH_BASE_ADDR_ADDR (GSI_REG_BASE + \
  276. 0x00000248)
  277. #define HWIO_GSI_SHRAM_PTR_MCS_SCRATCH_BASE_ADDR_PHYS (GSI_REG_BASE_PHYS + \
  278. 0x00000248)
  279. #define HWIO_GSI_SHRAM_PTR_MCS_SCRATCH_BASE_ADDR_OFFS (GSI_REG_BASE_OFFS + \
  280. 0x00000248)
  281. #define HWIO_GSI_SHRAM_PTR_MCS_SCRATCH1_BASE_ADDR_ADDR (GSI_REG_BASE + \
  282. 0x0000024c)
  283. #define HWIO_GSI_SHRAM_PTR_MCS_SCRATCH1_BASE_ADDR_PHYS (GSI_REG_BASE_PHYS \
  284. + 0x0000024c)
  285. #define HWIO_GSI_SHRAM_PTR_MCS_SCRATCH1_BASE_ADDR_OFFS (GSI_REG_BASE_OFFS \
  286. + 0x0000024c)
  287. #define HWIO_GSI_SHRAM_PTR_MCS_SCRATCH2_BASE_ADDR_ADDR (GSI_REG_BASE + \
  288. 0x00000250)
  289. #define HWIO_GSI_SHRAM_PTR_MCS_SCRATCH2_BASE_ADDR_PHYS (GSI_REG_BASE_PHYS \
  290. + 0x00000250)
  291. #define HWIO_GSI_SHRAM_PTR_MCS_SCRATCH2_BASE_ADDR_OFFS (GSI_REG_BASE_OFFS \
  292. + 0x00000250)
  293. #define HWIO_GSI_SHRAM_PTR_CH_VP_TRANS_TABLE_BASE_ADDR_ADDR (GSI_REG_BASE \
  294. + 0x00000254)
  295. #define HWIO_GSI_SHRAM_PTR_CH_VP_TRANS_TABLE_BASE_ADDR_PHYS ( \
  296. GSI_REG_BASE_PHYS + 0x00000254)
  297. #define HWIO_GSI_SHRAM_PTR_CH_VP_TRANS_TABLE_BASE_ADDR_OFFS ( \
  298. GSI_REG_BASE_OFFS + 0x00000254)
  299. #define HWIO_GSI_SHRAM_PTR_EV_VP_TRANS_TABLE_BASE_ADDR_ADDR (GSI_REG_BASE \
  300. + 0x00000258)
  301. #define HWIO_GSI_SHRAM_PTR_EV_VP_TRANS_TABLE_BASE_ADDR_PHYS ( \
  302. GSI_REG_BASE_PHYS + 0x00000258)
  303. #define HWIO_GSI_SHRAM_PTR_EV_VP_TRANS_TABLE_BASE_ADDR_OFFS ( \
  304. GSI_REG_BASE_OFFS + 0x00000258)
  305. #define HWIO_GSI_SHRAM_PTR_USER_INFO_DATA_BASE_ADDR_ADDR (GSI_REG_BASE + \
  306. 0x0000025c)
  307. #define HWIO_GSI_SHRAM_PTR_USER_INFO_DATA_BASE_ADDR_PHYS ( \
  308. GSI_REG_BASE_PHYS + 0x0000025c)
  309. #define HWIO_GSI_SHRAM_PTR_USER_INFO_DATA_BASE_ADDR_OFFS ( \
  310. GSI_REG_BASE_OFFS + 0x0000025c)
  311. #define HWIO_GSI_SHRAM_PTR_EE_CMD_FIFO_BASE_ADDR_ADDR (GSI_REG_BASE + \
  312. 0x00000260)
  313. #define HWIO_GSI_SHRAM_PTR_EE_CMD_FIFO_BASE_ADDR_PHYS (GSI_REG_BASE_PHYS + \
  314. 0x00000260)
  315. #define HWIO_GSI_SHRAM_PTR_EE_CMD_FIFO_BASE_ADDR_OFFS (GSI_REG_BASE_OFFS + \
  316. 0x00000260)
  317. #define HWIO_GSI_SHRAM_PTR_CH_CMD_FIFO_BASE_ADDR_ADDR (GSI_REG_BASE + \
  318. 0x00000264)
  319. #define HWIO_GSI_SHRAM_PTR_CH_CMD_FIFO_BASE_ADDR_PHYS (GSI_REG_BASE_PHYS + \
  320. 0x00000264)
  321. #define HWIO_GSI_SHRAM_PTR_CH_CMD_FIFO_BASE_ADDR_OFFS (GSI_REG_BASE_OFFS + \
  322. 0x00000264)
  323. #define HWIO_GSI_IRAM_PTR_CH_CMD_ADDR (GSI_REG_BASE + 0x00000400)
  324. #define HWIO_GSI_IRAM_PTR_CH_CMD_PHYS (GSI_REG_BASE_PHYS + 0x00000400)
  325. #define HWIO_GSI_IRAM_PTR_CH_CMD_OFFS (GSI_REG_BASE_OFFS + 0x00000400)
  326. #define HWIO_GSI_IRAM_PTR_EE_GENERIC_CMD_ADDR (GSI_REG_BASE + 0x00000404)
  327. #define HWIO_GSI_IRAM_PTR_EE_GENERIC_CMD_PHYS (GSI_REG_BASE_PHYS + \
  328. 0x00000404)
  329. #define HWIO_GSI_IRAM_PTR_EE_GENERIC_CMD_OFFS (GSI_REG_BASE_OFFS + \
  330. 0x00000404)
  331. #define HWIO_GSI_IRAM_PTR_TLV_CH_NOT_FULL_ADDR (GSI_REG_BASE + 0x00000408)
  332. #define HWIO_GSI_IRAM_PTR_TLV_CH_NOT_FULL_PHYS (GSI_REG_BASE_PHYS + \
  333. 0x00000408)
  334. #define HWIO_GSI_IRAM_PTR_TLV_CH_NOT_FULL_OFFS (GSI_REG_BASE_OFFS + \
  335. 0x00000408)
  336. #define HWIO_GSI_IRAM_PTR_CH_DB_ADDR (GSI_REG_BASE + 0x00000418)
  337. #define HWIO_GSI_IRAM_PTR_CH_DB_PHYS (GSI_REG_BASE_PHYS + 0x00000418)
  338. #define HWIO_GSI_IRAM_PTR_CH_DB_OFFS (GSI_REG_BASE_OFFS + 0x00000418)
  339. #define HWIO_GSI_IRAM_PTR_EV_DB_ADDR (GSI_REG_BASE + 0x0000041c)
  340. #define HWIO_GSI_IRAM_PTR_EV_DB_PHYS (GSI_REG_BASE_PHYS + 0x0000041c)
  341. #define HWIO_GSI_IRAM_PTR_EV_DB_OFFS (GSI_REG_BASE_OFFS + 0x0000041c)
  342. #define HWIO_GSI_IRAM_PTR_NEW_RE_ADDR (GSI_REG_BASE + 0x00000420)
  343. #define HWIO_GSI_IRAM_PTR_NEW_RE_PHYS (GSI_REG_BASE_PHYS + 0x00000420)
  344. #define HWIO_GSI_IRAM_PTR_NEW_RE_OFFS (GSI_REG_BASE_OFFS + 0x00000420)
  345. #define HWIO_GSI_IRAM_PTR_CH_DIS_COMP_ADDR (GSI_REG_BASE + 0x00000424)
  346. #define HWIO_GSI_IRAM_PTR_CH_DIS_COMP_PHYS (GSI_REG_BASE_PHYS + 0x00000424)
  347. #define HWIO_GSI_IRAM_PTR_CH_DIS_COMP_OFFS (GSI_REG_BASE_OFFS + 0x00000424)
  348. #define HWIO_GSI_IRAM_PTR_CH_EMPTY_ADDR (GSI_REG_BASE + 0x00000428)
  349. #define HWIO_GSI_IRAM_PTR_CH_EMPTY_PHYS (GSI_REG_BASE_PHYS + 0x00000428)
  350. #define HWIO_GSI_IRAM_PTR_CH_EMPTY_OFFS (GSI_REG_BASE_OFFS + 0x00000428)
  351. #define HWIO_GSI_IRAM_PTR_EVENT_GEN_COMP_ADDR (GSI_REG_BASE + 0x0000042c)
  352. #define HWIO_GSI_IRAM_PTR_EVENT_GEN_COMP_PHYS (GSI_REG_BASE_PHYS + \
  353. 0x0000042c)
  354. #define HWIO_GSI_IRAM_PTR_EVENT_GEN_COMP_OFFS (GSI_REG_BASE_OFFS + \
  355. 0x0000042c)
  356. #define HWIO_GSI_IRAM_PTR_PERIPH_IF_TLV_IN_0_ADDR (GSI_REG_BASE + \
  357. 0x00000430)
  358. #define HWIO_GSI_IRAM_PTR_PERIPH_IF_TLV_IN_0_PHYS (GSI_REG_BASE_PHYS + \
  359. 0x00000430)
  360. #define HWIO_GSI_IRAM_PTR_PERIPH_IF_TLV_IN_0_OFFS (GSI_REG_BASE_OFFS + \
  361. 0x00000430)
  362. #define HWIO_GSI_IRAM_PTR_PERIPH_IF_TLV_IN_2_ADDR (GSI_REG_BASE + \
  363. 0x00000434)
  364. #define HWIO_GSI_IRAM_PTR_PERIPH_IF_TLV_IN_2_PHYS (GSI_REG_BASE_PHYS + \
  365. 0x00000434)
  366. #define HWIO_GSI_IRAM_PTR_PERIPH_IF_TLV_IN_2_OFFS (GSI_REG_BASE_OFFS + \
  367. 0x00000434)
  368. #define HWIO_GSI_IRAM_PTR_PERIPH_IF_TLV_IN_1_ADDR (GSI_REG_BASE + \
  369. 0x00000438)
  370. #define HWIO_GSI_IRAM_PTR_PERIPH_IF_TLV_IN_1_PHYS (GSI_REG_BASE_PHYS + \
  371. 0x00000438)
  372. #define HWIO_GSI_IRAM_PTR_PERIPH_IF_TLV_IN_1_OFFS (GSI_REG_BASE_OFFS + \
  373. 0x00000438)
  374. #define HWIO_GSI_IRAM_PTR_TIMER_EXPIRED_ADDR (GSI_REG_BASE + 0x0000043c)
  375. #define HWIO_GSI_IRAM_PTR_TIMER_EXPIRED_PHYS (GSI_REG_BASE_PHYS + \
  376. 0x0000043c)
  377. #define HWIO_GSI_IRAM_PTR_TIMER_EXPIRED_OFFS (GSI_REG_BASE_OFFS + \
  378. 0x0000043c)
  379. #define HWIO_GSI_IRAM_PTR_WRITE_ENG_COMP_ADDR (GSI_REG_BASE + 0x00000440)
  380. #define HWIO_GSI_IRAM_PTR_WRITE_ENG_COMP_PHYS (GSI_REG_BASE_PHYS + \
  381. 0x00000440)
  382. #define HWIO_GSI_IRAM_PTR_WRITE_ENG_COMP_OFFS (GSI_REG_BASE_OFFS + \
  383. 0x00000440)
  384. #define HWIO_GSI_IRAM_PTR_READ_ENG_COMP_ADDR (GSI_REG_BASE + 0x00000444)
  385. #define HWIO_GSI_IRAM_PTR_READ_ENG_COMP_PHYS (GSI_REG_BASE_PHYS + \
  386. 0x00000444)
  387. #define HWIO_GSI_IRAM_PTR_READ_ENG_COMP_OFFS (GSI_REG_BASE_OFFS + \
  388. 0x00000444)
  389. #define HWIO_GSI_IRAM_PTR_UC_GP_INT_ADDR (GSI_REG_BASE + 0x00000448)
  390. #define HWIO_GSI_IRAM_PTR_UC_GP_INT_PHYS (GSI_REG_BASE_PHYS + 0x00000448)
  391. #define HWIO_GSI_IRAM_PTR_UC_GP_INT_OFFS (GSI_REG_BASE_OFFS + 0x00000448)
  392. #define HWIO_GSI_IRAM_PTR_INT_MOD_STOPPED_ADDR (GSI_REG_BASE + 0x0000044c)
  393. #define HWIO_GSI_IRAM_PTR_INT_MOD_STOPPED_PHYS (GSI_REG_BASE_PHYS + \
  394. 0x0000044c)
  395. #define HWIO_GSI_IRAM_PTR_INT_MOD_STOPPED_OFFS (GSI_REG_BASE_OFFS + \
  396. 0x0000044c)
  397. #define HWIO_GSI_IRAM_PTR_SDMA_INT_n_ADDR(n) (GSI_REG_BASE + 0x00000450 + \
  398. 0x4 * (n))
  399. #define HWIO_GSI_IRAM_PTR_SDMA_INT_n_PHYS(n) (GSI_REG_BASE_PHYS + \
  400. 0x00000450 + 0x4 * (n))
  401. #define HWIO_GSI_IRAM_PTR_SDMA_INT_n_OFFS(n) (GSI_REG_BASE_OFFS + \
  402. 0x00000450 + 0x4 * (n))
  403. #define HWIO_GSI_INST_RAM_n_ADDR(n) (GSI_REG_BASE + 0x0001b000 + 0x4 * (n))
  404. #define HWIO_GSI_INST_RAM_n_PHYS(n) (GSI_REG_BASE_PHYS + 0x0001b000 + \
  405. 0x4 * (n))
  406. #define HWIO_GSI_INST_RAM_n_OFFS(n) (GSI_REG_BASE_OFFS + 0x0001b000 + \
  407. 0x4 * (n))
  408. #define HWIO_GSI_SHRAM_n_ADDR(n) (GSI_REG_BASE + 0x00002000 + 0x4 * (n))
  409. #define HWIO_GSI_SHRAM_n_PHYS(n) (GSI_REG_BASE_PHYS + 0x00002000 + 0x4 * \
  410. (n))
  411. #define HWIO_GSI_SHRAM_n_OFFS(n) (GSI_REG_BASE_OFFS + 0x00002000 + 0x4 * \
  412. (n))
  413. #define HWIO_GSI_SHRAM_n_RMSK 0xffffffff
  414. #define HWIO_GSI_SHRAM_n_MAXn 1343
  415. #define HWIO_GSI_SHRAM_n_ATTR 0x3
  416. #define HWIO_GSI_SHRAM_n_INI(n) in_dword_masked(HWIO_GSI_SHRAM_n_ADDR( \
  417. n), \
  418. HWIO_GSI_SHRAM_n_RMSK)
  419. #define HWIO_GSI_SHRAM_n_INMI(n, mask) in_dword_masked( \
  420. HWIO_GSI_SHRAM_n_ADDR(n), \
  421. mask)
  422. #define HWIO_GSI_SHRAM_n_OUTI(n, val) out_dword(HWIO_GSI_SHRAM_n_ADDR( \
  423. n), val)
  424. #define HWIO_GSI_SHRAM_n_OUTMI(n, mask, val) out_dword_masked_ns( \
  425. HWIO_GSI_SHRAM_n_ADDR(n), \
  426. mask, \
  427. val, \
  428. HWIO_GSI_SHRAM_n_INI(n))
  429. #define HWIO_GSI_SHRAM_n_SHRAM_BMSK 0xffffffff
  430. #define HWIO_GSI_SHRAM_n_SHRAM_SHFT 0x0
  431. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_ADDR(n, k) (GSI_REG_BASE + \
  432. 0x00003800 + 0x80 * \
  433. (n) + 0x4 * (k))
  434. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  435. 0x00003800 + 0x80 * \
  436. (n) + 0x4 * (k))
  437. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  438. 0x00003800 + 0x80 * \
  439. (n) + 0x4 * (k))
  440. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_RMSK 0x3f
  441. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_MAXn 2
  442. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_MAXk 22
  443. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_ATTR 0x3
  444. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_INI2(n, k) in_dword_masked( \
  445. HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_ADDR(n, k), \
  446. HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_RMSK)
  447. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_INMI2(n, k, mask) in_dword_masked( \
  448. HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_ADDR(n, k), \
  449. mask)
  450. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_OUTI2(n, k, val) out_dword( \
  451. HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_ADDR(n, k), \
  452. val)
  453. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_OUTMI2(n, k, mask, \
  454. val) out_dword_masked_ns( \
  455. HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_ADDR(n, \
  456. k), \
  457. mask, \
  458. val, \
  459. HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_INI2(n, k))
  460. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_VALID_BMSK 0x20
  461. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_VALID_SHFT 0x5
  462. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_PHY_CH_BMSK 0x1f
  463. #define HWIO_GSI_MAP_EE_n_CH_k_VP_TABLE_PHY_CH_SHFT 0x0
  464. #define HWIO_GSI_TEST_BUS_SEL_ADDR (GSI_REG_BASE + 0x00001000)
  465. #define HWIO_GSI_TEST_BUS_SEL_PHYS (GSI_REG_BASE_PHYS + 0x00001000)
  466. #define HWIO_GSI_TEST_BUS_SEL_OFFS (GSI_REG_BASE_OFFS + 0x00001000)
  467. #define HWIO_GSI_TEST_BUS_SEL_RMSK 0xf00ff
  468. #define HWIO_GSI_TEST_BUS_SEL_ATTR 0x3
  469. #define HWIO_GSI_TEST_BUS_SEL_IN in_dword_masked( \
  470. HWIO_GSI_TEST_BUS_SEL_ADDR, \
  471. HWIO_GSI_TEST_BUS_SEL_RMSK)
  472. #define HWIO_GSI_TEST_BUS_SEL_INM(m) in_dword_masked( \
  473. HWIO_GSI_TEST_BUS_SEL_ADDR, \
  474. m)
  475. #define HWIO_GSI_TEST_BUS_SEL_OUT(v) out_dword(HWIO_GSI_TEST_BUS_SEL_ADDR, \
  476. v)
  477. #define HWIO_GSI_TEST_BUS_SEL_OUTM(m, v) out_dword_masked_ns( \
  478. HWIO_GSI_TEST_BUS_SEL_ADDR, \
  479. m, \
  480. v, \
  481. HWIO_GSI_TEST_BUS_SEL_IN)
  482. #define HWIO_GSI_TEST_BUS_SEL_GSI_HW_EVENTS_SEL_BMSK 0xf0000
  483. #define HWIO_GSI_TEST_BUS_SEL_GSI_HW_EVENTS_SEL_SHFT 0x10
  484. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_BMSK 0xff
  485. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_SHFT 0x0
  486. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_ZEROS_FVAL 0x0
  487. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_MCS_0_FVAL 0x1
  488. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_MCS_1_FVAL 0x2
  489. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_MCS_2_FVAL 0x3
  490. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_MCS_3_FVAL 0x4
  491. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_MCS_4_FVAL 0x5
  492. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_DB_ENG_FVAL 0x9
  493. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_REE_0_FVAL 0xb
  494. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_REE_1_FVAL 0xc
  495. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_REE_2_FVAL 0xd
  496. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_REE_3_FVAL 0xe
  497. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_REE_4_FVAL 0xf
  498. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_REE_5_FVAL 0x10
  499. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_REE_6_FVAL 0x11
  500. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_REE_7_FVAL 0x12
  501. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_EVE_0_FVAL 0x13
  502. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_EVE_1_FVAL 0x14
  503. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_EVE_2_FVAL 0x15
  504. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_EVE_3_FVAL 0x16
  505. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_EVE_4_FVAL 0x17
  506. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_EVE_5_FVAL 0x18
  507. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_IE_0_FVAL 0x1b
  508. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_IE_1_FVAL 0x1c
  509. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_IE_2_FVAL 0x1d
  510. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_IC_0_FVAL 0x1f
  511. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_IC_1_FVAL 0x20
  512. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_IC_2_FVAL 0x21
  513. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_IC_3_FVAL 0x22
  514. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_IC_4_FVAL 0x23
  515. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_MOQA_0_FVAL 0x27
  516. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_MOQA_1_FVAL 0x28
  517. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_MOQA_2_FVAL 0x29
  518. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_MOQA_3_FVAL 0x2a
  519. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_TMR_0_FVAL 0x2b
  520. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_TMR_1_FVAL 0x2c
  521. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_TMR_2_FVAL 0x2d
  522. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_TMR_3_FVAL 0x2e
  523. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_RD_WR_0_FVAL 0x33
  524. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_RD_WR_1_FVAL 0x34
  525. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_RD_WR_2_FVAL 0x35
  526. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_RD_WR_3_FVAL 0x36
  527. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_CSR_FVAL 0x3a
  528. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_SDMA_0_FVAL 0x3c
  529. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_SMDA_1_FVAL 0x3d
  530. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_CSR_1_FVAL 0x3e
  531. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_CSR_2_FVAL 0x3f
  532. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_MCS_5_FVAL 0x40
  533. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_IC_5_FVAL 0x41
  534. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_CSR_3_FVAL 0x42
  535. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_TLV_0_FVAL 0x43
  536. #define HWIO_GSI_TEST_BUS_SEL_GSI_TESTBUS_SEL_REE_8_FVAL 0x44
  537. #define HWIO_GSI_TEST_BUS_REG_ADDR (GSI_REG_BASE + 0x00001008)
  538. #define HWIO_GSI_TEST_BUS_REG_PHYS (GSI_REG_BASE_PHYS + 0x00001008)
  539. #define HWIO_GSI_TEST_BUS_REG_OFFS (GSI_REG_BASE_OFFS + 0x00001008)
  540. #define HWIO_GSI_TEST_BUS_REG_RMSK 0xffffffff
  541. #define HWIO_GSI_TEST_BUS_REG_ATTR 0x1
  542. #define HWIO_GSI_TEST_BUS_REG_IN in_dword_masked( \
  543. HWIO_GSI_TEST_BUS_REG_ADDR, \
  544. HWIO_GSI_TEST_BUS_REG_RMSK)
  545. #define HWIO_GSI_TEST_BUS_REG_INM(m) in_dword_masked( \
  546. HWIO_GSI_TEST_BUS_REG_ADDR, \
  547. m)
  548. #define HWIO_GSI_TEST_BUS_REG_GSI_TESTBUS_REG_BMSK 0xffffffff
  549. #define HWIO_GSI_TEST_BUS_REG_GSI_TESTBUS_REG_SHFT 0x0
  550. #define HWIO_GSI_DEBUG_BUSY_REG_ADDR (GSI_REG_BASE + 0x00001010)
  551. #define HWIO_GSI_DEBUG_BUSY_REG_PHYS (GSI_REG_BASE_PHYS + 0x00001010)
  552. #define HWIO_GSI_DEBUG_BUSY_REG_OFFS (GSI_REG_BASE_OFFS + 0x00001010)
  553. #define HWIO_GSI_DEBUG_EVENT_PENDING_ADDR (GSI_REG_BASE + 0x00001014)
  554. #define HWIO_GSI_DEBUG_EVENT_PENDING_PHYS (GSI_REG_BASE_PHYS + 0x00001014)
  555. #define HWIO_GSI_DEBUG_EVENT_PENDING_OFFS (GSI_REG_BASE_OFFS + 0x00001014)
  556. #define HWIO_GSI_DEBUG_TIMER_PENDING_ADDR (GSI_REG_BASE + 0x00001018)
  557. #define HWIO_GSI_DEBUG_TIMER_PENDING_PHYS (GSI_REG_BASE_PHYS + 0x00001018)
  558. #define HWIO_GSI_DEBUG_TIMER_PENDING_OFFS (GSI_REG_BASE_OFFS + 0x00001018)
  559. #define HWIO_GSI_DEBUG_RD_WR_PENDING_ADDR (GSI_REG_BASE + 0x0000101c)
  560. #define HWIO_GSI_DEBUG_RD_WR_PENDING_PHYS (GSI_REG_BASE_PHYS + 0x0000101c)
  561. #define HWIO_GSI_DEBUG_RD_WR_PENDING_OFFS (GSI_REG_BASE_OFFS + 0x0000101c)
  562. #define HWIO_GSI_DEBUG_COUNTER_CFGn_ADDR(n) (GSI_REG_BASE + 0x00001200 + \
  563. 0x4 * (n))
  564. #define HWIO_GSI_DEBUG_COUNTER_CFGn_PHYS(n) (GSI_REG_BASE_PHYS + \
  565. 0x00001200 + 0x4 * (n))
  566. #define HWIO_GSI_DEBUG_COUNTER_CFGn_OFFS(n) (GSI_REG_BASE_OFFS + \
  567. 0x00001200 + 0x4 * (n))
  568. #define HWIO_GSI_DEBUG_COUNTERn_ADDR(n) (GSI_REG_BASE + 0x00001240 + 0x4 * \
  569. (n))
  570. #define HWIO_GSI_DEBUG_COUNTERn_PHYS(n) (GSI_REG_BASE_PHYS + 0x00001240 + \
  571. 0x4 * (n))
  572. #define HWIO_GSI_DEBUG_COUNTERn_OFFS(n) (GSI_REG_BASE_OFFS + 0x00001240 + \
  573. 0x4 * (n))
  574. #define HWIO_GSI_DEBUG_COUNTERn_RMSK 0xffff
  575. #define HWIO_GSI_DEBUG_COUNTERn_MAXn 7
  576. #define HWIO_GSI_DEBUG_COUNTERn_ATTR 0x1
  577. #define HWIO_GSI_DEBUG_COUNTERn_INI(n) in_dword_masked( \
  578. HWIO_GSI_DEBUG_COUNTERn_ADDR(n), \
  579. HWIO_GSI_DEBUG_COUNTERn_RMSK)
  580. #define HWIO_GSI_DEBUG_COUNTERn_INMI(n, mask) in_dword_masked( \
  581. HWIO_GSI_DEBUG_COUNTERn_ADDR(n), \
  582. mask)
  583. #define HWIO_GSI_DEBUG_COUNTERn_COUNTER_VALUE_BMSK 0xffff
  584. #define HWIO_GSI_DEBUG_COUNTERn_COUNTER_VALUE_SHFT 0x0
  585. #define HWIO_GSI_DEBUG_PC_FROM_SW_ADDR (GSI_REG_BASE + 0x00001040)
  586. #define HWIO_GSI_DEBUG_PC_FROM_SW_PHYS (GSI_REG_BASE_PHYS + 0x00001040)
  587. #define HWIO_GSI_DEBUG_PC_FROM_SW_OFFS (GSI_REG_BASE_OFFS + 0x00001040)
  588. #define HWIO_GSI_DEBUG_SW_STALL_ADDR (GSI_REG_BASE + 0x00001044)
  589. #define HWIO_GSI_DEBUG_SW_STALL_PHYS (GSI_REG_BASE_PHYS + 0x00001044)
  590. #define HWIO_GSI_DEBUG_SW_STALL_OFFS (GSI_REG_BASE_OFFS + 0x00001044)
  591. #define HWIO_GSI_DEBUG_PC_FOR_DEBUG_ADDR (GSI_REG_BASE + 0x00001048)
  592. #define HWIO_GSI_DEBUG_PC_FOR_DEBUG_PHYS (GSI_REG_BASE_PHYS + 0x00001048)
  593. #define HWIO_GSI_DEBUG_PC_FOR_DEBUG_OFFS (GSI_REG_BASE_OFFS + 0x00001048)
  594. #define HWIO_GSI_DEBUG_QSB_LOG_SEL_ADDR (GSI_REG_BASE + 0x00001050)
  595. #define HWIO_GSI_DEBUG_QSB_LOG_SEL_PHYS (GSI_REG_BASE_PHYS + 0x00001050)
  596. #define HWIO_GSI_DEBUG_QSB_LOG_SEL_OFFS (GSI_REG_BASE_OFFS + 0x00001050)
  597. #define HWIO_GSI_DEBUG_QSB_LOG_CLR_ADDR (GSI_REG_BASE + 0x00001058)
  598. #define HWIO_GSI_DEBUG_QSB_LOG_CLR_PHYS (GSI_REG_BASE_PHYS + 0x00001058)
  599. #define HWIO_GSI_DEBUG_QSB_LOG_CLR_OFFS (GSI_REG_BASE_OFFS + 0x00001058)
  600. #define HWIO_GSI_DEBUG_QSB_LOG_ERR_TRNS_ID_ADDR (GSI_REG_BASE + 0x00001060)
  601. #define HWIO_GSI_DEBUG_QSB_LOG_ERR_TRNS_ID_PHYS (GSI_REG_BASE_PHYS + \
  602. 0x00001060)
  603. #define HWIO_GSI_DEBUG_QSB_LOG_ERR_TRNS_ID_OFFS (GSI_REG_BASE_OFFS + \
  604. 0x00001060)
  605. #define HWIO_GSI_DEBUG_QSB_LOG_0_ADDR (GSI_REG_BASE + 0x00001064)
  606. #define HWIO_GSI_DEBUG_QSB_LOG_0_PHYS (GSI_REG_BASE_PHYS + 0x00001064)
  607. #define HWIO_GSI_DEBUG_QSB_LOG_0_OFFS (GSI_REG_BASE_OFFS + 0x00001064)
  608. #define HWIO_GSI_DEBUG_QSB_LOG_1_ADDR (GSI_REG_BASE + 0x00001068)
  609. #define HWIO_GSI_DEBUG_QSB_LOG_1_PHYS (GSI_REG_BASE_PHYS + 0x00001068)
  610. #define HWIO_GSI_DEBUG_QSB_LOG_1_OFFS (GSI_REG_BASE_OFFS + 0x00001068)
  611. #define HWIO_GSI_DEBUG_QSB_LOG_2_ADDR (GSI_REG_BASE + 0x0000106c)
  612. #define HWIO_GSI_DEBUG_QSB_LOG_2_PHYS (GSI_REG_BASE_PHYS + 0x0000106c)
  613. #define HWIO_GSI_DEBUG_QSB_LOG_2_OFFS (GSI_REG_BASE_OFFS + 0x0000106c)
  614. #define HWIO_GSI_DEBUG_QSB_LOG_LAST_MISC_IDn_ADDR(n) (GSI_REG_BASE + \
  615. 0x00001070 + 0x4 * \
  616. (n))
  617. #define HWIO_GSI_DEBUG_QSB_LOG_LAST_MISC_IDn_PHYS(n) (GSI_REG_BASE_PHYS + \
  618. 0x00001070 + 0x4 * \
  619. (n))
  620. #define HWIO_GSI_DEBUG_QSB_LOG_LAST_MISC_IDn_OFFS(n) (GSI_REG_BASE_OFFS + \
  621. 0x00001070 + 0x4 * \
  622. (n))
  623. #define HWIO_GSI_DEBUG_SW_RF_n_WRITE_ADDR(n) (GSI_REG_BASE + 0x00001080 + \
  624. 0x4 * (n))
  625. #define HWIO_GSI_DEBUG_SW_RF_n_WRITE_PHYS(n) (GSI_REG_BASE_PHYS + \
  626. 0x00001080 + 0x4 * (n))
  627. #define HWIO_GSI_DEBUG_SW_RF_n_WRITE_OFFS(n) (GSI_REG_BASE_OFFS + \
  628. 0x00001080 + 0x4 * (n))
  629. #define HWIO_GSI_DEBUG_SW_RF_n_READ_ADDR(n) (GSI_REG_BASE + 0x00001100 + \
  630. 0x4 * (n))
  631. #define HWIO_GSI_DEBUG_SW_RF_n_READ_PHYS(n) (GSI_REG_BASE_PHYS + \
  632. 0x00001100 + 0x4 * (n))
  633. #define HWIO_GSI_DEBUG_SW_RF_n_READ_OFFS(n) (GSI_REG_BASE_OFFS + \
  634. 0x00001100 + 0x4 * (n))
  635. #define HWIO_GSI_DEBUG_SW_RF_n_READ_RMSK 0xffffffff
  636. #define HWIO_GSI_DEBUG_SW_RF_n_READ_MAXn 31
  637. #define HWIO_GSI_DEBUG_SW_RF_n_READ_ATTR 0x1
  638. #define HWIO_GSI_DEBUG_SW_RF_n_READ_INI(n) in_dword_masked( \
  639. HWIO_GSI_DEBUG_SW_RF_n_READ_ADDR(n), \
  640. HWIO_GSI_DEBUG_SW_RF_n_READ_RMSK)
  641. #define HWIO_GSI_DEBUG_SW_RF_n_READ_INMI(n, mask) in_dword_masked( \
  642. HWIO_GSI_DEBUG_SW_RF_n_READ_ADDR(n), \
  643. mask)
  644. #define HWIO_GSI_DEBUG_SW_RF_n_READ_RF_REG_BMSK 0xffffffff
  645. #define HWIO_GSI_DEBUG_SW_RF_n_READ_RF_REG_SHFT 0x0
  646. #define HWIO_GSI_DEBUG_EE_n_CH_k_VP_TABLE_ADDR(n, k) (GSI_REG_BASE + \
  647. 0x00001400 + 0x80 * \
  648. (n) + 0x4 * (k))
  649. #define HWIO_GSI_DEBUG_EE_n_CH_k_VP_TABLE_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  650. 0x00001400 + 0x80 * \
  651. (n) + 0x4 * (k))
  652. #define HWIO_GSI_DEBUG_EE_n_CH_k_VP_TABLE_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  653. 0x00001400 + 0x80 * \
  654. (n) + 0x4 * (k))
  655. #define HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_ADDR(n, k) (GSI_REG_BASE + \
  656. 0x00001600 + 0x80 * \
  657. (n) + 0x4 * (k))
  658. #define HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  659. 0x00001600 + 0x80 * \
  660. (n) + 0x4 * (k))
  661. #define HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  662. 0x00001600 + 0x80 * \
  663. (n) + 0x4 * (k))
  664. #define HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_RMSK 0x3f
  665. #define HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_MAXn 3
  666. #define HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_MAXk 19
  667. #define HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_ATTR 0x1
  668. #define HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_INI2(n, k) in_dword_masked( \
  669. HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_ADDR(n, k), \
  670. HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_RMSK)
  671. #define HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_INMI2(n, k, \
  672. mask) in_dword_masked( \
  673. HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_ADDR(n, \
  674. k), \
  675. mask)
  676. #define HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_VALID_BMSK 0x20
  677. #define HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_VALID_SHFT 0x5
  678. #define HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_PHY_EV_CH_BMSK 0x1f
  679. #define HWIO_GSI_DEBUG_EE_n_EV_k_VP_TABLE_PHY_EV_CH_SHFT 0x0
  680. #define HWIO_GSI_DEBUG_SDMA_TRANS_DB_n_ADDR(n) (GSI_REG_BASE + \
  681. 0x00001800 + 0x4 * (n))
  682. #define HWIO_GSI_DEBUG_SDMA_TRANS_DB_n_PHYS(n) (GSI_REG_BASE_PHYS + \
  683. 0x00001800 + 0x4 * (n))
  684. #define HWIO_GSI_DEBUG_SDMA_TRANS_DB_n_OFFS(n) (GSI_REG_BASE_OFFS + \
  685. 0x00001800 + 0x4 * (n))
  686. #define HWIO_GSI_UC_SRC_IRQ_ADDR (GSI_REG_BASE + 0x00000500)
  687. #define HWIO_GSI_UC_SRC_IRQ_PHYS (GSI_REG_BASE_PHYS + 0x00000500)
  688. #define HWIO_GSI_UC_SRC_IRQ_OFFS (GSI_REG_BASE_OFFS + 0x00000500)
  689. #define HWIO_GSI_UC_SRC_IRQ_MSK_ADDR (GSI_REG_BASE + 0x00000504)
  690. #define HWIO_GSI_UC_SRC_IRQ_MSK_PHYS (GSI_REG_BASE_PHYS + 0x00000504)
  691. #define HWIO_GSI_UC_SRC_IRQ_MSK_OFFS (GSI_REG_BASE_OFFS + 0x00000504)
  692. #define HWIO_GSI_UC_SRC_IRQ_CLR_ADDR (GSI_REG_BASE + 0x00000508)
  693. #define HWIO_GSI_UC_SRC_IRQ_CLR_PHYS (GSI_REG_BASE_PHYS + 0x00000508)
  694. #define HWIO_GSI_UC_SRC_IRQ_CLR_OFFS (GSI_REG_BASE_OFFS + 0x00000508)
  695. #define HWIO_GSI_ACC_ARGS_n_ADDR(n) (GSI_REG_BASE + 0x0000050c + 0x4 * (n))
  696. #define HWIO_GSI_ACC_ARGS_n_PHYS(n) (GSI_REG_BASE_PHYS + 0x0000050c + \
  697. 0x4 * (n))
  698. #define HWIO_GSI_ACC_ARGS_n_OFFS(n) (GSI_REG_BASE_OFFS + 0x0000050c + \
  699. 0x4 * (n))
  700. #define HWIO_GSI_ACC_ROUTINE_ADDR (GSI_REG_BASE + 0x00000524)
  701. #define HWIO_GSI_ACC_ROUTINE_PHYS (GSI_REG_BASE_PHYS + 0x00000524)
  702. #define HWIO_GSI_ACC_ROUTINE_OFFS (GSI_REG_BASE_OFFS + 0x00000524)
  703. #define HWIO_GSI_ACC_GO_ADDR (GSI_REG_BASE + 0x00000528)
  704. #define HWIO_GSI_ACC_GO_PHYS (GSI_REG_BASE_PHYS + 0x00000528)
  705. #define HWIO_GSI_ACC_GO_OFFS (GSI_REG_BASE_OFFS + 0x00000528)
  706. #define HWIO_GSI_ACC_2_UC_MCS_STTS_ADDR (GSI_REG_BASE + 0x0000052c)
  707. #define HWIO_GSI_ACC_2_UC_MCS_STTS_PHYS (GSI_REG_BASE_PHYS + 0x0000052c)
  708. #define HWIO_GSI_ACC_2_UC_MCS_STTS_OFFS (GSI_REG_BASE_OFFS + 0x0000052c)
  709. #define HWIO_GSI_ACC_2_UC_MCS_RET_VAL_LSB_ADDR (GSI_REG_BASE + 0x00000530)
  710. #define HWIO_GSI_ACC_2_UC_MCS_RET_VAL_LSB_PHYS (GSI_REG_BASE_PHYS + \
  711. 0x00000530)
  712. #define HWIO_GSI_ACC_2_UC_MCS_RET_VAL_LSB_OFFS (GSI_REG_BASE_OFFS + \
  713. 0x00000530)
  714. #define HWIO_GSI_ACC_2_UC_MCS_RET_VAL_MSB_ADDR (GSI_REG_BASE + 0x00000534)
  715. #define HWIO_GSI_ACC_2_UC_MCS_RET_VAL_MSB_PHYS (GSI_REG_BASE_PHYS + \
  716. 0x00000534)
  717. #define HWIO_GSI_ACC_2_UC_MCS_RET_VAL_MSB_OFFS (GSI_REG_BASE_OFFS + \
  718. 0x00000534)
  719. #define HWIO_GSI_IC_2_UC_MCS_VLD_ADDR (GSI_REG_BASE + 0x00000538)
  720. #define HWIO_GSI_IC_2_UC_MCS_VLD_PHYS (GSI_REG_BASE_PHYS + 0x00000538)
  721. #define HWIO_GSI_IC_2_UC_MCS_VLD_OFFS (GSI_REG_BASE_OFFS + 0x00000538)
  722. #define HWIO_GSI_IC_2_UC_MCS_PC_ADDR (GSI_REG_BASE + 0x0000053c)
  723. #define HWIO_GSI_IC_2_UC_MCS_PC_PHYS (GSI_REG_BASE_PHYS + 0x0000053c)
  724. #define HWIO_GSI_IC_2_UC_MCS_PC_OFFS (GSI_REG_BASE_OFFS + 0x0000053c)
  725. #define HWIO_GSI_IC_2_UC_MCS_ARGS_n_ADDR(n) (GSI_REG_BASE + 0x00000540 + \
  726. 0x4 * (n))
  727. #define HWIO_GSI_IC_2_UC_MCS_ARGS_n_PHYS(n) (GSI_REG_BASE_PHYS + \
  728. 0x00000540 + 0x4 * (n))
  729. #define HWIO_GSI_IC_2_UC_MCS_ARGS_n_OFFS(n) (GSI_REG_BASE_OFFS + \
  730. 0x00000540 + 0x4 * (n))
  731. #define HWIO_GSI_UC_TLV_IN_VLD_ADDR (GSI_REG_BASE + 0x00000558)
  732. #define HWIO_GSI_UC_TLV_IN_VLD_PHYS (GSI_REG_BASE_PHYS + 0x00000558)
  733. #define HWIO_GSI_UC_TLV_IN_VLD_OFFS (GSI_REG_BASE_OFFS + 0x00000558)
  734. #define HWIO_GSI_UC_TLV_IN_ROUTINE_ADDR (GSI_REG_BASE + 0x0000055c)
  735. #define HWIO_GSI_UC_TLV_IN_ROUTINE_PHYS (GSI_REG_BASE_PHYS + 0x0000055c)
  736. #define HWIO_GSI_UC_TLV_IN_ROUTINE_OFFS (GSI_REG_BASE_OFFS + 0x0000055c)
  737. #define HWIO_GSI_UC_TLV_IN_ARGS_n_ADDR(n) (GSI_REG_BASE + 0x00000560 + \
  738. 0x4 * (n))
  739. #define HWIO_GSI_UC_TLV_IN_ARGS_n_PHYS(n) (GSI_REG_BASE_PHYS + \
  740. 0x00000560 + 0x4 * (n))
  741. #define HWIO_GSI_UC_TLV_IN_ARGS_n_OFFS(n) (GSI_REG_BASE_OFFS + \
  742. 0x00000560 + 0x4 * (n))
  743. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_ADDR(n, k) (GSI_REG_BASE + 0x0000f000 + \
  744. 0x4000 * (n) + 0x80 * (k))
  745. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  746. 0x0000f000 + 0x4000 * (n) + \
  747. 0x80 * (k))
  748. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  749. 0x0000f000 + 0x4000 * (n) + \
  750. 0x80 * (k))
  751. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_RMSK 0xfff7ffff
  752. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_MAXn 2
  753. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_MAXk 22
  754. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_ATTR 0x3
  755. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_INI2(n, k) in_dword_masked( \
  756. HWIO_EE_n_GSI_CH_k_CNTXT_0_ADDR(n, k), \
  757. HWIO_EE_n_GSI_CH_k_CNTXT_0_RMSK)
  758. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_INMI2(n, k, mask) in_dword_masked( \
  759. HWIO_EE_n_GSI_CH_k_CNTXT_0_ADDR(n, k), \
  760. mask)
  761. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_OUTI2(n, k, val) out_dword( \
  762. HWIO_EE_n_GSI_CH_k_CNTXT_0_ADDR(n, k), \
  763. val)
  764. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_OUTMI2(n, k, mask, \
  765. val) out_dword_masked_ns( \
  766. HWIO_EE_n_GSI_CH_k_CNTXT_0_ADDR(n, \
  767. k), \
  768. mask, \
  769. val, \
  770. HWIO_EE_n_GSI_CH_k_CNTXT_0_INI2(n, k))
  771. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_ELEMENT_SIZE_BMSK 0xff000000
  772. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_ELEMENT_SIZE_SHFT 0x18
  773. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHSTATE_BMSK 0xf00000
  774. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHSTATE_SHFT 0x14
  775. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHSTATE_NOT_ALLOCATED_FVAL 0x0
  776. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHSTATE_ALLOCATED_FVAL 0x1
  777. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHSTATE_STARTED_FVAL 0x2
  778. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHSTATE_STOPPED_FVAL 0x3
  779. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHSTATE_STOP_IN_PROC_FVAL 0x4
  780. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHSTATE_ERROR_FVAL 0xf
  781. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_ERINDEX_BMSK 0x7c000
  782. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_ERINDEX_SHFT 0xe
  783. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_MSB_BMSK 0x2000
  784. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_MSB_SHFT 0xd
  785. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHID_BMSK 0x1f00
  786. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHID_SHFT 0x8
  787. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_EE_BMSK 0xf0
  788. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_EE_SHFT 0x4
  789. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_DIR_BMSK 0x8
  790. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_DIR_SHFT 0x3
  791. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_DIR_INBOUND_FVAL 0x0
  792. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_DIR_OUTBOUND_FVAL 0x1
  793. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_BMSK 0x7
  794. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_SHFT 0x0
  795. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_MHI_FVAL 0x0
  796. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_XHCI_FVAL 0x1
  797. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_GPI_FVAL 0x2
  798. #define HWIO_EE_n_GSI_CH_k_CNTXT_0_CHTYPE_PROTOCOL_XDCI_FVAL 0x3
  799. #define HWIO_EE_n_GSI_CH_k_CNTXT_1_ADDR(n, k) (GSI_REG_BASE + 0x0000f004 + \
  800. 0x4000 * (n) + 0x80 * (k))
  801. #define HWIO_EE_n_GSI_CH_k_CNTXT_1_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  802. 0x0000f004 + 0x4000 * (n) + \
  803. 0x80 * (k))
  804. #define HWIO_EE_n_GSI_CH_k_CNTXT_1_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  805. 0x0000f004 + 0x4000 * (n) + \
  806. 0x80 * (k))
  807. #define HWIO_EE_n_GSI_CH_k_CNTXT_1_RMSK 0xffff
  808. #define HWIO_EE_n_GSI_CH_k_CNTXT_1_MAXn 2
  809. #define HWIO_EE_n_GSI_CH_k_CNTXT_1_MAXk 22
  810. #define HWIO_EE_n_GSI_CH_k_CNTXT_1_ATTR 0x3
  811. #define HWIO_EE_n_GSI_CH_k_CNTXT_1_INI2(n, k) in_dword_masked( \
  812. HWIO_EE_n_GSI_CH_k_CNTXT_1_ADDR(n, k), \
  813. HWIO_EE_n_GSI_CH_k_CNTXT_1_RMSK)
  814. #define HWIO_EE_n_GSI_CH_k_CNTXT_1_INMI2(n, k, mask) in_dword_masked( \
  815. HWIO_EE_n_GSI_CH_k_CNTXT_1_ADDR(n, k), \
  816. mask)
  817. #define HWIO_EE_n_GSI_CH_k_CNTXT_1_OUTI2(n, k, val) out_dword( \
  818. HWIO_EE_n_GSI_CH_k_CNTXT_1_ADDR(n, k), \
  819. val)
  820. #define HWIO_EE_n_GSI_CH_k_CNTXT_1_OUTMI2(n, k, mask, \
  821. val) out_dword_masked_ns( \
  822. HWIO_EE_n_GSI_CH_k_CNTXT_1_ADDR(n, \
  823. k), \
  824. mask, \
  825. val, \
  826. HWIO_EE_n_GSI_CH_k_CNTXT_1_INI2(n, k))
  827. #define HWIO_EE_n_GSI_CH_k_CNTXT_1_R_LENGTH_BMSK 0xffff
  828. #define HWIO_EE_n_GSI_CH_k_CNTXT_1_R_LENGTH_SHFT 0x0
  829. #define HWIO_EE_n_GSI_CH_k_CNTXT_2_ADDR(n, k) (GSI_REG_BASE + 0x0000f008 + \
  830. 0x4000 * (n) + 0x80 * (k))
  831. #define HWIO_EE_n_GSI_CH_k_CNTXT_2_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  832. 0x0000f008 + 0x4000 * (n) + \
  833. 0x80 * (k))
  834. #define HWIO_EE_n_GSI_CH_k_CNTXT_2_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  835. 0x0000f008 + 0x4000 * (n) + \
  836. 0x80 * (k))
  837. #define HWIO_EE_n_GSI_CH_k_CNTXT_2_RMSK 0xffffffff
  838. #define HWIO_EE_n_GSI_CH_k_CNTXT_2_MAXn 2
  839. #define HWIO_EE_n_GSI_CH_k_CNTXT_2_MAXk 22
  840. #define HWIO_EE_n_GSI_CH_k_CNTXT_2_ATTR 0x3
  841. #define HWIO_EE_n_GSI_CH_k_CNTXT_2_INI2(n, k) in_dword_masked( \
  842. HWIO_EE_n_GSI_CH_k_CNTXT_2_ADDR(n, k), \
  843. HWIO_EE_n_GSI_CH_k_CNTXT_2_RMSK)
  844. #define HWIO_EE_n_GSI_CH_k_CNTXT_2_INMI2(n, k, mask) in_dword_masked( \
  845. HWIO_EE_n_GSI_CH_k_CNTXT_2_ADDR(n, k), \
  846. mask)
  847. #define HWIO_EE_n_GSI_CH_k_CNTXT_2_OUTI2(n, k, val) out_dword( \
  848. HWIO_EE_n_GSI_CH_k_CNTXT_2_ADDR(n, k), \
  849. val)
  850. #define HWIO_EE_n_GSI_CH_k_CNTXT_2_OUTMI2(n, k, mask, \
  851. val) out_dword_masked_ns( \
  852. HWIO_EE_n_GSI_CH_k_CNTXT_2_ADDR(n, \
  853. k), \
  854. mask, \
  855. val, \
  856. HWIO_EE_n_GSI_CH_k_CNTXT_2_INI2(n, k))
  857. #define HWIO_EE_n_GSI_CH_k_CNTXT_2_R_BASE_ADDR_LSBS_BMSK 0xffffffff
  858. #define HWIO_EE_n_GSI_CH_k_CNTXT_2_R_BASE_ADDR_LSBS_SHFT 0x0
  859. #define HWIO_EE_n_GSI_CH_k_CNTXT_3_ADDR(n, k) (GSI_REG_BASE + 0x0000f00c + \
  860. 0x4000 * (n) + 0x80 * (k))
  861. #define HWIO_EE_n_GSI_CH_k_CNTXT_3_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  862. 0x0000f00c + 0x4000 * (n) + \
  863. 0x80 * (k))
  864. #define HWIO_EE_n_GSI_CH_k_CNTXT_3_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  865. 0x0000f00c + 0x4000 * (n) + \
  866. 0x80 * (k))
  867. #define HWIO_EE_n_GSI_CH_k_CNTXT_3_RMSK 0xffffffff
  868. #define HWIO_EE_n_GSI_CH_k_CNTXT_3_MAXn 2
  869. #define HWIO_EE_n_GSI_CH_k_CNTXT_3_MAXk 22
  870. #define HWIO_EE_n_GSI_CH_k_CNTXT_3_ATTR 0x3
  871. #define HWIO_EE_n_GSI_CH_k_CNTXT_3_INI2(n, k) in_dword_masked( \
  872. HWIO_EE_n_GSI_CH_k_CNTXT_3_ADDR(n, k), \
  873. HWIO_EE_n_GSI_CH_k_CNTXT_3_RMSK)
  874. #define HWIO_EE_n_GSI_CH_k_CNTXT_3_INMI2(n, k, mask) in_dword_masked( \
  875. HWIO_EE_n_GSI_CH_k_CNTXT_3_ADDR(n, k), \
  876. mask)
  877. #define HWIO_EE_n_GSI_CH_k_CNTXT_3_OUTI2(n, k, val) out_dword( \
  878. HWIO_EE_n_GSI_CH_k_CNTXT_3_ADDR(n, k), \
  879. val)
  880. #define HWIO_EE_n_GSI_CH_k_CNTXT_3_OUTMI2(n, k, mask, \
  881. val) out_dword_masked_ns( \
  882. HWIO_EE_n_GSI_CH_k_CNTXT_3_ADDR(n, \
  883. k), \
  884. mask, \
  885. val, \
  886. HWIO_EE_n_GSI_CH_k_CNTXT_3_INI2(n, k))
  887. #define HWIO_EE_n_GSI_CH_k_CNTXT_3_R_BASE_ADDR_MSBS_BMSK 0xffffffff
  888. #define HWIO_EE_n_GSI_CH_k_CNTXT_3_R_BASE_ADDR_MSBS_SHFT 0x0
  889. #define HWIO_EE_n_GSI_CH_k_CNTXT_4_ADDR(n, k) (GSI_REG_BASE + 0x0000f010 + \
  890. 0x4000 * (n) + 0x80 * (k))
  891. #define HWIO_EE_n_GSI_CH_k_CNTXT_4_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  892. 0x0000f010 + 0x4000 * (n) + \
  893. 0x80 * (k))
  894. #define HWIO_EE_n_GSI_CH_k_CNTXT_4_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  895. 0x0000f010 + 0x4000 * (n) + \
  896. 0x80 * (k))
  897. #define HWIO_EE_n_GSI_CH_k_CNTXT_4_RMSK 0xffffffff
  898. #define HWIO_EE_n_GSI_CH_k_CNTXT_4_MAXn 2
  899. #define HWIO_EE_n_GSI_CH_k_CNTXT_4_MAXk 22
  900. #define HWIO_EE_n_GSI_CH_k_CNTXT_4_ATTR 0x3
  901. #define HWIO_EE_n_GSI_CH_k_CNTXT_4_INI2(n, k) in_dword_masked( \
  902. HWIO_EE_n_GSI_CH_k_CNTXT_4_ADDR(n, k), \
  903. HWIO_EE_n_GSI_CH_k_CNTXT_4_RMSK)
  904. #define HWIO_EE_n_GSI_CH_k_CNTXT_4_INMI2(n, k, mask) in_dword_masked( \
  905. HWIO_EE_n_GSI_CH_k_CNTXT_4_ADDR(n, k), \
  906. mask)
  907. #define HWIO_EE_n_GSI_CH_k_CNTXT_4_OUTI2(n, k, val) out_dword( \
  908. HWIO_EE_n_GSI_CH_k_CNTXT_4_ADDR(n, k), \
  909. val)
  910. #define HWIO_EE_n_GSI_CH_k_CNTXT_4_OUTMI2(n, k, mask, \
  911. val) out_dword_masked_ns( \
  912. HWIO_EE_n_GSI_CH_k_CNTXT_4_ADDR(n, \
  913. k), \
  914. mask, \
  915. val, \
  916. HWIO_EE_n_GSI_CH_k_CNTXT_4_INI2(n, k))
  917. #define HWIO_EE_n_GSI_CH_k_CNTXT_4_READ_PTR_LSB_BMSK 0xffffffff
  918. #define HWIO_EE_n_GSI_CH_k_CNTXT_4_READ_PTR_LSB_SHFT 0x0
  919. #define HWIO_EE_n_GSI_CH_k_CNTXT_5_ADDR(n, k) (GSI_REG_BASE + 0x0000f014 + \
  920. 0x4000 * (n) + 0x80 * (k))
  921. #define HWIO_EE_n_GSI_CH_k_CNTXT_5_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  922. 0x0000f014 + 0x4000 * (n) + \
  923. 0x80 * (k))
  924. #define HWIO_EE_n_GSI_CH_k_CNTXT_5_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  925. 0x0000f014 + 0x4000 * (n) + \
  926. 0x80 * (k))
  927. #define HWIO_EE_n_GSI_CH_k_CNTXT_5_RMSK 0xffffffff
  928. #define HWIO_EE_n_GSI_CH_k_CNTXT_5_MAXn 2
  929. #define HWIO_EE_n_GSI_CH_k_CNTXT_5_MAXk 22
  930. #define HWIO_EE_n_GSI_CH_k_CNTXT_5_ATTR 0x1
  931. #define HWIO_EE_n_GSI_CH_k_CNTXT_5_INI2(n, k) in_dword_masked( \
  932. HWIO_EE_n_GSI_CH_k_CNTXT_5_ADDR(n, k), \
  933. HWIO_EE_n_GSI_CH_k_CNTXT_5_RMSK)
  934. #define HWIO_EE_n_GSI_CH_k_CNTXT_5_INMI2(n, k, mask) in_dword_masked( \
  935. HWIO_EE_n_GSI_CH_k_CNTXT_5_ADDR(n, k), \
  936. mask)
  937. #define HWIO_EE_n_GSI_CH_k_CNTXT_5_READ_PTR_MSB_BMSK 0xffffffff
  938. #define HWIO_EE_n_GSI_CH_k_CNTXT_5_READ_PTR_MSB_SHFT 0x0
  939. #define HWIO_EE_n_GSI_CH_k_CNTXT_6_ADDR(n, k) (GSI_REG_BASE + 0x0000f018 + \
  940. 0x4000 * (n) + 0x80 * (k))
  941. #define HWIO_EE_n_GSI_CH_k_CNTXT_6_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  942. 0x0000f018 + 0x4000 * (n) + \
  943. 0x80 * (k))
  944. #define HWIO_EE_n_GSI_CH_k_CNTXT_6_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  945. 0x0000f018 + 0x4000 * (n) + \
  946. 0x80 * (k))
  947. #define HWIO_EE_n_GSI_CH_k_CNTXT_6_RMSK 0xffffffff
  948. #define HWIO_EE_n_GSI_CH_k_CNTXT_6_MAXn 2
  949. #define HWIO_EE_n_GSI_CH_k_CNTXT_6_MAXk 22
  950. #define HWIO_EE_n_GSI_CH_k_CNTXT_6_ATTR 0x1
  951. #define HWIO_EE_n_GSI_CH_k_CNTXT_6_INI2(n, k) in_dword_masked( \
  952. HWIO_EE_n_GSI_CH_k_CNTXT_6_ADDR(n, k), \
  953. HWIO_EE_n_GSI_CH_k_CNTXT_6_RMSK)
  954. #define HWIO_EE_n_GSI_CH_k_CNTXT_6_INMI2(n, k, mask) in_dword_masked( \
  955. HWIO_EE_n_GSI_CH_k_CNTXT_6_ADDR(n, k), \
  956. mask)
  957. #define HWIO_EE_n_GSI_CH_k_CNTXT_6_WRITE_PTR_LSB_BMSK 0xffffffff
  958. #define HWIO_EE_n_GSI_CH_k_CNTXT_6_WRITE_PTR_LSB_SHFT 0x0
  959. #define HWIO_EE_n_GSI_CH_k_CNTXT_7_ADDR(n, k) (GSI_REG_BASE + 0x0000f01c + \
  960. 0x4000 * (n) + 0x80 * (k))
  961. #define HWIO_EE_n_GSI_CH_k_CNTXT_7_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  962. 0x0000f01c + 0x4000 * (n) + \
  963. 0x80 * (k))
  964. #define HWIO_EE_n_GSI_CH_k_CNTXT_7_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  965. 0x0000f01c + 0x4000 * (n) + \
  966. 0x80 * (k))
  967. #define HWIO_EE_n_GSI_CH_k_CNTXT_7_RMSK 0xffffffff
  968. #define HWIO_EE_n_GSI_CH_k_CNTXT_7_MAXn 2
  969. #define HWIO_EE_n_GSI_CH_k_CNTXT_7_MAXk 22
  970. #define HWIO_EE_n_GSI_CH_k_CNTXT_7_ATTR 0x1
  971. #define HWIO_EE_n_GSI_CH_k_CNTXT_7_INI2(n, k) in_dword_masked( \
  972. HWIO_EE_n_GSI_CH_k_CNTXT_7_ADDR(n, k), \
  973. HWIO_EE_n_GSI_CH_k_CNTXT_7_RMSK)
  974. #define HWIO_EE_n_GSI_CH_k_CNTXT_7_INMI2(n, k, mask) in_dword_masked( \
  975. HWIO_EE_n_GSI_CH_k_CNTXT_7_ADDR(n, k), \
  976. mask)
  977. #define HWIO_EE_n_GSI_CH_k_CNTXT_7_WRITE_PTR_MSB_BMSK 0xffffffff
  978. #define HWIO_EE_n_GSI_CH_k_CNTXT_7_WRITE_PTR_MSB_SHFT 0x0
  979. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_ADDR(n, k) (GSI_REG_BASE + \
  980. 0x0000f054 + \
  981. 0x4000 * (n) + \
  982. 0x80 * (k))
  983. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_PHYS(n, \
  984. k) (GSI_REG_BASE_PHYS + \
  985. 0x0000f054 + \
  986. 0x4000 * (n) + \
  987. 0x80 * (k))
  988. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_OFFS(n, \
  989. k) (GSI_REG_BASE_OFFS + \
  990. 0x0000f054 + \
  991. 0x4000 * (n) + \
  992. 0x80 * (k))
  993. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_RMSK 0xffff
  994. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_MAXn 2
  995. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_MAXk 22
  996. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_ATTR 0x3
  997. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_INI2(n, k) in_dword_masked( \
  998. HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_ADDR(n, k), \
  999. HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_RMSK)
  1000. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_INMI2(n, k, \
  1001. mask) in_dword_masked( \
  1002. HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_ADDR(n, \
  1003. k), \
  1004. mask)
  1005. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_OUTI2(n, k, val) out_dword( \
  1006. HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_ADDR(n, k), \
  1007. val)
  1008. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_OUTMI2(n, k, mask, \
  1009. val) \
  1010. out_dword_masked_ns(HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_ADDR( \
  1011. n, \
  1012. k), mask, val, \
  1013. HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_INI2(n, k))
  1014. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_READ_PTR_BMSK 0xffff
  1015. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_READ_PTR_READ_PTR_SHFT 0x0
  1016. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_ADDR(n, k) (GSI_REG_BASE + \
  1017. 0x0000f058 + \
  1018. 0x4000 * (n) + \
  1019. 0x80 * (k))
  1020. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_PHYS(n, \
  1021. k) (GSI_REG_BASE_PHYS + \
  1022. 0x0000f058 + \
  1023. 0x4000 * (n) + \
  1024. 0x80 * (k))
  1025. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_OFFS(n, \
  1026. k) (GSI_REG_BASE_OFFS + \
  1027. 0x0000f058 + \
  1028. 0x4000 * (n) + \
  1029. 0x80 * (k))
  1030. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_RMSK 0xffff
  1031. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_MAXn 2
  1032. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_MAXk 22
  1033. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_ATTR 0x3
  1034. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_INI2(n, k) in_dword_masked( \
  1035. HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_ADDR(n, k), \
  1036. HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_RMSK)
  1037. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_INMI2(n, k, \
  1038. mask) in_dword_masked( \
  1039. HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_ADDR(n, \
  1040. k), \
  1041. mask)
  1042. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_OUTI2(n, k, val) out_dword( \
  1043. HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_ADDR(n, k), \
  1044. val)
  1045. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_OUTMI2(n, k, mask, \
  1046. val) \
  1047. out_dword_masked_ns(HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_ADDR( \
  1048. n, \
  1049. k), mask, val, \
  1050. HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_INI2(n, \
  1051. k))
  1052. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_RE_INTR_DB_BMSK 0xffff
  1053. #define HWIO_EE_n_GSI_CH_k_RE_FETCH_WRITE_PTR_RE_INTR_DB_SHFT 0x0
  1054. #define HWIO_EE_n_GSI_CH_k_QOS_ADDR(n, k) (GSI_REG_BASE + 0x0000f05c + \
  1055. 0x4000 * (n) + 0x80 * (k))
  1056. #define HWIO_EE_n_GSI_CH_k_QOS_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1057. 0x0000f05c + 0x4000 * (n) + \
  1058. 0x80 * (k))
  1059. #define HWIO_EE_n_GSI_CH_k_QOS_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1060. 0x0000f05c + 0x4000 * (n) + \
  1061. 0x80 * (k))
  1062. #define HWIO_EE_n_GSI_CH_k_QOS_RMSK 0xff3f0f
  1063. #define HWIO_EE_n_GSI_CH_k_QOS_MAXn 2
  1064. #define HWIO_EE_n_GSI_CH_k_QOS_MAXk 22
  1065. #define HWIO_EE_n_GSI_CH_k_QOS_ATTR 0x3
  1066. #define HWIO_EE_n_GSI_CH_k_QOS_INI2(n, k) in_dword_masked( \
  1067. HWIO_EE_n_GSI_CH_k_QOS_ADDR(n, k), \
  1068. HWIO_EE_n_GSI_CH_k_QOS_RMSK)
  1069. #define HWIO_EE_n_GSI_CH_k_QOS_INMI2(n, k, mask) in_dword_masked( \
  1070. HWIO_EE_n_GSI_CH_k_QOS_ADDR(n, k), \
  1071. mask)
  1072. #define HWIO_EE_n_GSI_CH_k_QOS_OUTI2(n, k, val) out_dword( \
  1073. HWIO_EE_n_GSI_CH_k_QOS_ADDR(n, k), \
  1074. val)
  1075. #define HWIO_EE_n_GSI_CH_k_QOS_OUTMI2(n, k, mask, val) out_dword_masked_ns( \
  1076. HWIO_EE_n_GSI_CH_k_QOS_ADDR(n, k), \
  1077. mask, \
  1078. val, \
  1079. HWIO_EE_n_GSI_CH_k_QOS_INI2(n, k))
  1080. #define HWIO_EE_n_GSI_CH_k_QOS_EMPTY_LVL_THRSHOLD_BMSK 0xff0000
  1081. #define HWIO_EE_n_GSI_CH_k_QOS_EMPTY_LVL_THRSHOLD_SHFT 0x10
  1082. #define HWIO_EE_n_GSI_CH_k_QOS_PREFETCH_MODE_BMSK 0x3c00
  1083. #define HWIO_EE_n_GSI_CH_k_QOS_PREFETCH_MODE_SHFT 0xa
  1084. #define HWIO_EE_n_GSI_CH_k_QOS_PREFETCH_MODE_USE_PREFETCH_BUFS_FVAL 0x0
  1085. #define HWIO_EE_n_GSI_CH_k_QOS_PREFETCH_MODE_ESCAPE_BUF_ONLY_FVAL 0x1
  1086. #define HWIO_EE_n_GSI_CH_k_QOS_PREFETCH_MODE_SMART_PRE_FETCH_FVAL 0x2
  1087. #define HWIO_EE_n_GSI_CH_k_QOS_PREFETCH_MODE_FREE_PRE_FETCH_FVAL 0x3
  1088. #define HWIO_EE_n_GSI_CH_k_QOS_USE_DB_ENG_BMSK 0x200
  1089. #define HWIO_EE_n_GSI_CH_k_QOS_USE_DB_ENG_SHFT 0x9
  1090. #define HWIO_EE_n_GSI_CH_k_QOS_MAX_PREFETCH_BMSK 0x100
  1091. #define HWIO_EE_n_GSI_CH_k_QOS_MAX_PREFETCH_SHFT 0x8
  1092. #define HWIO_EE_n_GSI_CH_k_QOS_MAX_PREFETCH_ONE_PREFETCH_SEG_FVAL 0x0
  1093. #define HWIO_EE_n_GSI_CH_k_QOS_MAX_PREFETCH_TWO_PREFETCH_SEG_FVAL 0x1
  1094. #define HWIO_EE_n_GSI_CH_k_QOS_WRR_WEIGHT_BMSK 0xf
  1095. #define HWIO_EE_n_GSI_CH_k_QOS_WRR_WEIGHT_SHFT 0x0
  1096. #define HWIO_EE_n_GSI_CH_k_SCRATCH_0_ADDR(n, k) (GSI_REG_BASE + \
  1097. 0x0000f060 + 0x4000 * \
  1098. (n) + 0x80 * (k))
  1099. #define HWIO_EE_n_GSI_CH_k_SCRATCH_0_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1100. 0x0000f060 + 0x4000 * \
  1101. (n) + 0x80 * (k))
  1102. #define HWIO_EE_n_GSI_CH_k_SCRATCH_0_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1103. 0x0000f060 + 0x4000 * \
  1104. (n) + 0x80 * (k))
  1105. #define HWIO_EE_n_GSI_CH_k_SCRATCH_0_RMSK 0xffffffff
  1106. #define HWIO_EE_n_GSI_CH_k_SCRATCH_0_MAXn 2
  1107. #define HWIO_EE_n_GSI_CH_k_SCRATCH_0_MAXk 22
  1108. #define HWIO_EE_n_GSI_CH_k_SCRATCH_0_ATTR 0x3
  1109. #define HWIO_EE_n_GSI_CH_k_SCRATCH_0_INI2(n, k) in_dword_masked( \
  1110. HWIO_EE_n_GSI_CH_k_SCRATCH_0_ADDR(n, k), \
  1111. HWIO_EE_n_GSI_CH_k_SCRATCH_0_RMSK)
  1112. #define HWIO_EE_n_GSI_CH_k_SCRATCH_0_INMI2(n, k, mask) in_dword_masked( \
  1113. HWIO_EE_n_GSI_CH_k_SCRATCH_0_ADDR(n, k), \
  1114. mask)
  1115. #define HWIO_EE_n_GSI_CH_k_SCRATCH_0_OUTI2(n, k, val) out_dword( \
  1116. HWIO_EE_n_GSI_CH_k_SCRATCH_0_ADDR(n, k), \
  1117. val)
  1118. #define HWIO_EE_n_GSI_CH_k_SCRATCH_0_OUTMI2(n, k, mask, \
  1119. val) out_dword_masked_ns( \
  1120. HWIO_EE_n_GSI_CH_k_SCRATCH_0_ADDR(n, \
  1121. k), \
  1122. mask, \
  1123. val, \
  1124. HWIO_EE_n_GSI_CH_k_SCRATCH_0_INI2(n, k))
  1125. #define HWIO_EE_n_GSI_CH_k_SCRATCH_0_SCRATCH_BMSK 0xffffffff
  1126. #define HWIO_EE_n_GSI_CH_k_SCRATCH_0_SCRATCH_SHFT 0x0
  1127. #define HWIO_EE_n_GSI_CH_k_SCRATCH_1_ADDR(n, k) (GSI_REG_BASE + \
  1128. 0x0000f064 + 0x4000 * \
  1129. (n) + 0x80 * (k))
  1130. #define HWIO_EE_n_GSI_CH_k_SCRATCH_1_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1131. 0x0000f064 + 0x4000 * \
  1132. (n) + 0x80 * (k))
  1133. #define HWIO_EE_n_GSI_CH_k_SCRATCH_1_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1134. 0x0000f064 + 0x4000 * \
  1135. (n) + 0x80 * (k))
  1136. #define HWIO_EE_n_GSI_CH_k_SCRATCH_1_RMSK 0xffffffff
  1137. #define HWIO_EE_n_GSI_CH_k_SCRATCH_1_MAXn 2
  1138. #define HWIO_EE_n_GSI_CH_k_SCRATCH_1_MAXk 22
  1139. #define HWIO_EE_n_GSI_CH_k_SCRATCH_1_ATTR 0x3
  1140. #define HWIO_EE_n_GSI_CH_k_SCRATCH_1_INI2(n, k) in_dword_masked( \
  1141. HWIO_EE_n_GSI_CH_k_SCRATCH_1_ADDR(n, k), \
  1142. HWIO_EE_n_GSI_CH_k_SCRATCH_1_RMSK)
  1143. #define HWIO_EE_n_GSI_CH_k_SCRATCH_1_INMI2(n, k, mask) in_dword_masked( \
  1144. HWIO_EE_n_GSI_CH_k_SCRATCH_1_ADDR(n, k), \
  1145. mask)
  1146. #define HWIO_EE_n_GSI_CH_k_SCRATCH_1_OUTI2(n, k, val) out_dword( \
  1147. HWIO_EE_n_GSI_CH_k_SCRATCH_1_ADDR(n, k), \
  1148. val)
  1149. #define HWIO_EE_n_GSI_CH_k_SCRATCH_1_OUTMI2(n, k, mask, \
  1150. val) out_dword_masked_ns( \
  1151. HWIO_EE_n_GSI_CH_k_SCRATCH_1_ADDR(n, \
  1152. k), \
  1153. mask, \
  1154. val, \
  1155. HWIO_EE_n_GSI_CH_k_SCRATCH_1_INI2(n, k))
  1156. #define HWIO_EE_n_GSI_CH_k_SCRATCH_1_SCRATCH_BMSK 0xffffffff
  1157. #define HWIO_EE_n_GSI_CH_k_SCRATCH_1_SCRATCH_SHFT 0x0
  1158. #define HWIO_EE_n_GSI_CH_k_SCRATCH_2_ADDR(n, k) (GSI_REG_BASE + \
  1159. 0x0000f068 + 0x4000 * \
  1160. (n) + 0x80 * (k))
  1161. #define HWIO_EE_n_GSI_CH_k_SCRATCH_2_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1162. 0x0000f068 + 0x4000 * \
  1163. (n) + 0x80 * (k))
  1164. #define HWIO_EE_n_GSI_CH_k_SCRATCH_2_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1165. 0x0000f068 + 0x4000 * \
  1166. (n) + 0x80 * (k))
  1167. #define HWIO_EE_n_GSI_CH_k_SCRATCH_2_RMSK 0xffffffff
  1168. #define HWIO_EE_n_GSI_CH_k_SCRATCH_2_MAXn 2
  1169. #define HWIO_EE_n_GSI_CH_k_SCRATCH_2_MAXk 22
  1170. #define HWIO_EE_n_GSI_CH_k_SCRATCH_2_ATTR 0x3
  1171. #define HWIO_EE_n_GSI_CH_k_SCRATCH_2_INI2(n, k) in_dword_masked( \
  1172. HWIO_EE_n_GSI_CH_k_SCRATCH_2_ADDR(n, k), \
  1173. HWIO_EE_n_GSI_CH_k_SCRATCH_2_RMSK)
  1174. #define HWIO_EE_n_GSI_CH_k_SCRATCH_2_INMI2(n, k, mask) in_dword_masked( \
  1175. HWIO_EE_n_GSI_CH_k_SCRATCH_2_ADDR(n, k), \
  1176. mask)
  1177. #define HWIO_EE_n_GSI_CH_k_SCRATCH_2_OUTI2(n, k, val) out_dword( \
  1178. HWIO_EE_n_GSI_CH_k_SCRATCH_2_ADDR(n, k), \
  1179. val)
  1180. #define HWIO_EE_n_GSI_CH_k_SCRATCH_2_OUTMI2(n, k, mask, \
  1181. val) out_dword_masked_ns( \
  1182. HWIO_EE_n_GSI_CH_k_SCRATCH_2_ADDR(n, \
  1183. k), \
  1184. mask, \
  1185. val, \
  1186. HWIO_EE_n_GSI_CH_k_SCRATCH_2_INI2(n, k))
  1187. #define HWIO_EE_n_GSI_CH_k_SCRATCH_2_SCRATCH_BMSK 0xffffffff
  1188. #define HWIO_EE_n_GSI_CH_k_SCRATCH_2_SCRATCH_SHFT 0x0
  1189. #define HWIO_EE_n_GSI_CH_k_SCRATCH_3_ADDR(n, k) (GSI_REG_BASE + \
  1190. 0x0000f06c + 0x4000 * \
  1191. (n) + 0x80 * (k))
  1192. #define HWIO_EE_n_GSI_CH_k_SCRATCH_3_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1193. 0x0000f06c + 0x4000 * \
  1194. (n) + 0x80 * (k))
  1195. #define HWIO_EE_n_GSI_CH_k_SCRATCH_3_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1196. 0x0000f06c + 0x4000 * \
  1197. (n) + 0x80 * (k))
  1198. #define HWIO_EE_n_GSI_CH_k_SCRATCH_3_RMSK 0xffffffff
  1199. #define HWIO_EE_n_GSI_CH_k_SCRATCH_3_MAXn 2
  1200. #define HWIO_EE_n_GSI_CH_k_SCRATCH_3_MAXk 22
  1201. #define HWIO_EE_n_GSI_CH_k_SCRATCH_3_ATTR 0x3
  1202. #define HWIO_EE_n_GSI_CH_k_SCRATCH_3_INI2(n, k) in_dword_masked( \
  1203. HWIO_EE_n_GSI_CH_k_SCRATCH_3_ADDR(n, k), \
  1204. HWIO_EE_n_GSI_CH_k_SCRATCH_3_RMSK)
  1205. #define HWIO_EE_n_GSI_CH_k_SCRATCH_3_INMI2(n, k, mask) in_dword_masked( \
  1206. HWIO_EE_n_GSI_CH_k_SCRATCH_3_ADDR(n, k), \
  1207. mask)
  1208. #define HWIO_EE_n_GSI_CH_k_SCRATCH_3_OUTI2(n, k, val) out_dword( \
  1209. HWIO_EE_n_GSI_CH_k_SCRATCH_3_ADDR(n, k), \
  1210. val)
  1211. #define HWIO_EE_n_GSI_CH_k_SCRATCH_3_OUTMI2(n, k, mask, \
  1212. val) out_dword_masked_ns( \
  1213. HWIO_EE_n_GSI_CH_k_SCRATCH_3_ADDR(n, \
  1214. k), \
  1215. mask, \
  1216. val, \
  1217. HWIO_EE_n_GSI_CH_k_SCRATCH_3_INI2(n, k))
  1218. #define HWIO_EE_n_GSI_CH_k_SCRATCH_3_SCRATCH_BMSK 0xffffffff
  1219. #define HWIO_EE_n_GSI_CH_k_SCRATCH_3_SCRATCH_SHFT 0x0
  1220. #define HWIO_EE_n_GSI_CH_k_DB_ENG_WRITE_PTR_ADDR(n, k) (GSI_REG_BASE + \
  1221. 0x0000f070 + \
  1222. 0x4000 * (n) + \
  1223. 0x80 * (k))
  1224. #define HWIO_EE_n_GSI_CH_k_DB_ENG_WRITE_PTR_PHYS(n, \
  1225. k) (GSI_REG_BASE_PHYS + \
  1226. 0x0000f070 + 0x4000 * \
  1227. (n) + 0x80 * (k))
  1228. #define HWIO_EE_n_GSI_CH_k_DB_ENG_WRITE_PTR_OFFS(n, \
  1229. k) (GSI_REG_BASE_OFFS + \
  1230. 0x0000f070 + 0x4000 * \
  1231. (n) + 0x80 * (k))
  1232. #define HWIO_EE_n_EV_CH_k_CNTXT_0_ADDR(n, k) (GSI_REG_BASE + 0x00010000 + \
  1233. 0x4000 * (n) + 0x80 * (k))
  1234. #define HWIO_EE_n_EV_CH_k_CNTXT_0_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1235. 0x00010000 + 0x4000 * (n) + \
  1236. 0x80 * (k))
  1237. #define HWIO_EE_n_EV_CH_k_CNTXT_0_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1238. 0x00010000 + 0x4000 * (n) + \
  1239. 0x80 * (k))
  1240. #define HWIO_EE_n_EV_CH_k_CNTXT_0_RMSK 0xfff1ffff
  1241. #define HWIO_EE_n_EV_CH_k_CNTXT_0_MAXn 2
  1242. #define HWIO_EE_n_EV_CH_k_CNTXT_0_MAXk 19
  1243. #define HWIO_EE_n_EV_CH_k_CNTXT_0_ATTR 0x3
  1244. #define HWIO_EE_n_EV_CH_k_CNTXT_0_INI2(n, k) in_dword_masked( \
  1245. HWIO_EE_n_EV_CH_k_CNTXT_0_ADDR(n, k), \
  1246. HWIO_EE_n_EV_CH_k_CNTXT_0_RMSK)
  1247. #define HWIO_EE_n_EV_CH_k_CNTXT_0_INMI2(n, k, mask) in_dword_masked( \
  1248. HWIO_EE_n_EV_CH_k_CNTXT_0_ADDR(n, k), \
  1249. mask)
  1250. #define HWIO_EE_n_EV_CH_k_CNTXT_0_OUTI2(n, k, val) out_dword( \
  1251. HWIO_EE_n_EV_CH_k_CNTXT_0_ADDR(n, k), \
  1252. val)
  1253. #define HWIO_EE_n_EV_CH_k_CNTXT_0_OUTMI2(n, k, mask, \
  1254. val) out_dword_masked_ns( \
  1255. HWIO_EE_n_EV_CH_k_CNTXT_0_ADDR(n, \
  1256. k), \
  1257. mask, \
  1258. val, \
  1259. HWIO_EE_n_EV_CH_k_CNTXT_0_INI2(n, k))
  1260. #define HWIO_EE_n_EV_CH_k_CNTXT_0_ELEMENT_SIZE_BMSK 0xff000000
  1261. #define HWIO_EE_n_EV_CH_k_CNTXT_0_ELEMENT_SIZE_SHFT 0x18
  1262. #define HWIO_EE_n_EV_CH_k_CNTXT_0_CHSTATE_BMSK 0xf00000
  1263. #define HWIO_EE_n_EV_CH_k_CNTXT_0_CHSTATE_SHFT 0x14
  1264. #define HWIO_EE_n_EV_CH_k_CNTXT_0_CHSTATE_NOT_ALLOCATED_FVAL 0x0
  1265. #define HWIO_EE_n_EV_CH_k_CNTXT_0_CHSTATE_ALLOCATED_FVAL 0x1
  1266. #define HWIO_EE_n_EV_CH_k_CNTXT_0_INTYPE_BMSK 0x10000
  1267. #define HWIO_EE_n_EV_CH_k_CNTXT_0_INTYPE_SHFT 0x10
  1268. #define HWIO_EE_n_EV_CH_k_CNTXT_0_INTYPE_MSI_FVAL 0x0
  1269. #define HWIO_EE_n_EV_CH_k_CNTXT_0_INTYPE_IRQ_FVAL 0x1
  1270. #define HWIO_EE_n_EV_CH_k_CNTXT_0_EVCHID_BMSK 0xff00
  1271. #define HWIO_EE_n_EV_CH_k_CNTXT_0_EVCHID_SHFT 0x8
  1272. #define HWIO_EE_n_EV_CH_k_CNTXT_0_EE_BMSK 0xf0
  1273. #define HWIO_EE_n_EV_CH_k_CNTXT_0_EE_SHFT 0x4
  1274. #define HWIO_EE_n_EV_CH_k_CNTXT_0_CHTYPE_BMSK 0xf
  1275. #define HWIO_EE_n_EV_CH_k_CNTXT_0_CHTYPE_SHFT 0x0
  1276. #define HWIO_EE_n_EV_CH_k_CNTXT_0_CHTYPE_MHI_EV_FVAL 0x0
  1277. #define HWIO_EE_n_EV_CH_k_CNTXT_0_CHTYPE_XHCI_EV_FVAL 0x1
  1278. #define HWIO_EE_n_EV_CH_k_CNTXT_0_CHTYPE_GPI_EV_FVAL 0x2
  1279. #define HWIO_EE_n_EV_CH_k_CNTXT_0_CHTYPE_XDCI_FVAL 0x3
  1280. #define HWIO_EE_n_EV_CH_k_CNTXT_1_ADDR(n, k) (GSI_REG_BASE + 0x00010004 + \
  1281. 0x4000 * (n) + 0x80 * (k))
  1282. #define HWIO_EE_n_EV_CH_k_CNTXT_1_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1283. 0x00010004 + 0x4000 * (n) + \
  1284. 0x80 * (k))
  1285. #define HWIO_EE_n_EV_CH_k_CNTXT_1_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1286. 0x00010004 + 0x4000 * (n) + \
  1287. 0x80 * (k))
  1288. #define HWIO_EE_n_EV_CH_k_CNTXT_1_RMSK 0xffff
  1289. #define HWIO_EE_n_EV_CH_k_CNTXT_1_MAXn 2
  1290. #define HWIO_EE_n_EV_CH_k_CNTXT_1_MAXk 19
  1291. #define HWIO_EE_n_EV_CH_k_CNTXT_1_ATTR 0x3
  1292. #define HWIO_EE_n_EV_CH_k_CNTXT_1_INI2(n, k) in_dword_masked( \
  1293. HWIO_EE_n_EV_CH_k_CNTXT_1_ADDR(n, k), \
  1294. HWIO_EE_n_EV_CH_k_CNTXT_1_RMSK)
  1295. #define HWIO_EE_n_EV_CH_k_CNTXT_1_INMI2(n, k, mask) in_dword_masked( \
  1296. HWIO_EE_n_EV_CH_k_CNTXT_1_ADDR(n, k), \
  1297. mask)
  1298. #define HWIO_EE_n_EV_CH_k_CNTXT_1_OUTI2(n, k, val) out_dword( \
  1299. HWIO_EE_n_EV_CH_k_CNTXT_1_ADDR(n, k), \
  1300. val)
  1301. #define HWIO_EE_n_EV_CH_k_CNTXT_1_OUTMI2(n, k, mask, \
  1302. val) out_dword_masked_ns( \
  1303. HWIO_EE_n_EV_CH_k_CNTXT_1_ADDR(n, \
  1304. k), \
  1305. mask, \
  1306. val, \
  1307. HWIO_EE_n_EV_CH_k_CNTXT_1_INI2(n, k))
  1308. #define HWIO_EE_n_EV_CH_k_CNTXT_1_R_LENGTH_BMSK 0xffff
  1309. #define HWIO_EE_n_EV_CH_k_CNTXT_1_R_LENGTH_SHFT 0x0
  1310. #define HWIO_EE_n_EV_CH_k_CNTXT_2_ADDR(n, k) (GSI_REG_BASE + 0x00010008 + \
  1311. 0x4000 * (n) + 0x80 * (k))
  1312. #define HWIO_EE_n_EV_CH_k_CNTXT_2_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1313. 0x00010008 + 0x4000 * (n) + \
  1314. 0x80 * (k))
  1315. #define HWIO_EE_n_EV_CH_k_CNTXT_2_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1316. 0x00010008 + 0x4000 * (n) + \
  1317. 0x80 * (k))
  1318. #define HWIO_EE_n_EV_CH_k_CNTXT_2_RMSK 0xffffffff
  1319. #define HWIO_EE_n_EV_CH_k_CNTXT_2_MAXn 2
  1320. #define HWIO_EE_n_EV_CH_k_CNTXT_2_MAXk 19
  1321. #define HWIO_EE_n_EV_CH_k_CNTXT_2_ATTR 0x3
  1322. #define HWIO_EE_n_EV_CH_k_CNTXT_2_INI2(n, k) in_dword_masked( \
  1323. HWIO_EE_n_EV_CH_k_CNTXT_2_ADDR(n, k), \
  1324. HWIO_EE_n_EV_CH_k_CNTXT_2_RMSK)
  1325. #define HWIO_EE_n_EV_CH_k_CNTXT_2_INMI2(n, k, mask) in_dword_masked( \
  1326. HWIO_EE_n_EV_CH_k_CNTXT_2_ADDR(n, k), \
  1327. mask)
  1328. #define HWIO_EE_n_EV_CH_k_CNTXT_2_OUTI2(n, k, val) out_dword( \
  1329. HWIO_EE_n_EV_CH_k_CNTXT_2_ADDR(n, k), \
  1330. val)
  1331. #define HWIO_EE_n_EV_CH_k_CNTXT_2_OUTMI2(n, k, mask, \
  1332. val) out_dword_masked_ns( \
  1333. HWIO_EE_n_EV_CH_k_CNTXT_2_ADDR(n, \
  1334. k), \
  1335. mask, \
  1336. val, \
  1337. HWIO_EE_n_EV_CH_k_CNTXT_2_INI2(n, k))
  1338. #define HWIO_EE_n_EV_CH_k_CNTXT_2_R_BASE_ADDR_LSBS_BMSK 0xffffffff
  1339. #define HWIO_EE_n_EV_CH_k_CNTXT_2_R_BASE_ADDR_LSBS_SHFT 0x0
  1340. #define HWIO_EE_n_EV_CH_k_CNTXT_3_ADDR(n, k) (GSI_REG_BASE + 0x0001000c + \
  1341. 0x4000 * (n) + 0x80 * (k))
  1342. #define HWIO_EE_n_EV_CH_k_CNTXT_3_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1343. 0x0001000c + 0x4000 * (n) + \
  1344. 0x80 * (k))
  1345. #define HWIO_EE_n_EV_CH_k_CNTXT_3_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1346. 0x0001000c + 0x4000 * (n) + \
  1347. 0x80 * (k))
  1348. #define HWIO_EE_n_EV_CH_k_CNTXT_3_RMSK 0xffffffff
  1349. #define HWIO_EE_n_EV_CH_k_CNTXT_3_MAXn 2
  1350. #define HWIO_EE_n_EV_CH_k_CNTXT_3_MAXk 19
  1351. #define HWIO_EE_n_EV_CH_k_CNTXT_3_ATTR 0x3
  1352. #define HWIO_EE_n_EV_CH_k_CNTXT_3_INI2(n, k) in_dword_masked( \
  1353. HWIO_EE_n_EV_CH_k_CNTXT_3_ADDR(n, k), \
  1354. HWIO_EE_n_EV_CH_k_CNTXT_3_RMSK)
  1355. #define HWIO_EE_n_EV_CH_k_CNTXT_3_INMI2(n, k, mask) in_dword_masked( \
  1356. HWIO_EE_n_EV_CH_k_CNTXT_3_ADDR(n, k), \
  1357. mask)
  1358. #define HWIO_EE_n_EV_CH_k_CNTXT_3_OUTI2(n, k, val) out_dword( \
  1359. HWIO_EE_n_EV_CH_k_CNTXT_3_ADDR(n, k), \
  1360. val)
  1361. #define HWIO_EE_n_EV_CH_k_CNTXT_3_OUTMI2(n, k, mask, \
  1362. val) out_dword_masked_ns( \
  1363. HWIO_EE_n_EV_CH_k_CNTXT_3_ADDR(n, \
  1364. k), \
  1365. mask, \
  1366. val, \
  1367. HWIO_EE_n_EV_CH_k_CNTXT_3_INI2(n, k))
  1368. #define HWIO_EE_n_EV_CH_k_CNTXT_3_R_BASE_ADDR_MSBS_BMSK 0xffffffff
  1369. #define HWIO_EE_n_EV_CH_k_CNTXT_3_R_BASE_ADDR_MSBS_SHFT 0x0
  1370. #define HWIO_EE_n_EV_CH_k_CNTXT_4_ADDR(n, k) (GSI_REG_BASE + 0x00010010 + \
  1371. 0x4000 * (n) + 0x80 * (k))
  1372. #define HWIO_EE_n_EV_CH_k_CNTXT_4_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1373. 0x00010010 + 0x4000 * (n) + \
  1374. 0x80 * (k))
  1375. #define HWIO_EE_n_EV_CH_k_CNTXT_4_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1376. 0x00010010 + 0x4000 * (n) + \
  1377. 0x80 * (k))
  1378. #define HWIO_EE_n_EV_CH_k_CNTXT_4_RMSK 0xffffffff
  1379. #define HWIO_EE_n_EV_CH_k_CNTXT_4_MAXn 2
  1380. #define HWIO_EE_n_EV_CH_k_CNTXT_4_MAXk 19
  1381. #define HWIO_EE_n_EV_CH_k_CNTXT_4_ATTR 0x3
  1382. #define HWIO_EE_n_EV_CH_k_CNTXT_4_INI2(n, k) in_dword_masked( \
  1383. HWIO_EE_n_EV_CH_k_CNTXT_4_ADDR(n, k), \
  1384. HWIO_EE_n_EV_CH_k_CNTXT_4_RMSK)
  1385. #define HWIO_EE_n_EV_CH_k_CNTXT_4_INMI2(n, k, mask) in_dword_masked( \
  1386. HWIO_EE_n_EV_CH_k_CNTXT_4_ADDR(n, k), \
  1387. mask)
  1388. #define HWIO_EE_n_EV_CH_k_CNTXT_4_OUTI2(n, k, val) out_dword( \
  1389. HWIO_EE_n_EV_CH_k_CNTXT_4_ADDR(n, k), \
  1390. val)
  1391. #define HWIO_EE_n_EV_CH_k_CNTXT_4_OUTMI2(n, k, mask, \
  1392. val) out_dword_masked_ns( \
  1393. HWIO_EE_n_EV_CH_k_CNTXT_4_ADDR(n, \
  1394. k), \
  1395. mask, \
  1396. val, \
  1397. HWIO_EE_n_EV_CH_k_CNTXT_4_INI2(n, k))
  1398. #define HWIO_EE_n_EV_CH_k_CNTXT_4_READ_PTR_LSB_BMSK 0xffffffff
  1399. #define HWIO_EE_n_EV_CH_k_CNTXT_4_READ_PTR_LSB_SHFT 0x0
  1400. #define HWIO_EE_n_EV_CH_k_CNTXT_5_ADDR(n, k) (GSI_REG_BASE + 0x00010014 + \
  1401. 0x4000 * (n) + 0x80 * (k))
  1402. #define HWIO_EE_n_EV_CH_k_CNTXT_5_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1403. 0x00010014 + 0x4000 * (n) + \
  1404. 0x80 * (k))
  1405. #define HWIO_EE_n_EV_CH_k_CNTXT_5_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1406. 0x00010014 + 0x4000 * (n) + \
  1407. 0x80 * (k))
  1408. #define HWIO_EE_n_EV_CH_k_CNTXT_5_RMSK 0xffffffff
  1409. #define HWIO_EE_n_EV_CH_k_CNTXT_5_MAXn 2
  1410. #define HWIO_EE_n_EV_CH_k_CNTXT_5_MAXk 19
  1411. #define HWIO_EE_n_EV_CH_k_CNTXT_5_ATTR 0x1
  1412. #define HWIO_EE_n_EV_CH_k_CNTXT_5_INI2(n, k) in_dword_masked( \
  1413. HWIO_EE_n_EV_CH_k_CNTXT_5_ADDR(n, k), \
  1414. HWIO_EE_n_EV_CH_k_CNTXT_5_RMSK)
  1415. #define HWIO_EE_n_EV_CH_k_CNTXT_5_INMI2(n, k, mask) in_dword_masked( \
  1416. HWIO_EE_n_EV_CH_k_CNTXT_5_ADDR(n, k), \
  1417. mask)
  1418. #define HWIO_EE_n_EV_CH_k_CNTXT_5_READ_PTR_MSB_BMSK 0xffffffff
  1419. #define HWIO_EE_n_EV_CH_k_CNTXT_5_READ_PTR_MSB_SHFT 0x0
  1420. #define HWIO_EE_n_EV_CH_k_CNTXT_6_ADDR(n, k) (GSI_REG_BASE + 0x00010018 + \
  1421. 0x4000 * (n) + 0x80 * (k))
  1422. #define HWIO_EE_n_EV_CH_k_CNTXT_6_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1423. 0x00010018 + 0x4000 * (n) + \
  1424. 0x80 * (k))
  1425. #define HWIO_EE_n_EV_CH_k_CNTXT_6_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1426. 0x00010018 + 0x4000 * (n) + \
  1427. 0x80 * (k))
  1428. #define HWIO_EE_n_EV_CH_k_CNTXT_6_RMSK 0xffffffff
  1429. #define HWIO_EE_n_EV_CH_k_CNTXT_6_MAXn 2
  1430. #define HWIO_EE_n_EV_CH_k_CNTXT_6_MAXk 19
  1431. #define HWIO_EE_n_EV_CH_k_CNTXT_6_ATTR 0x1
  1432. #define HWIO_EE_n_EV_CH_k_CNTXT_6_INI2(n, k) in_dword_masked( \
  1433. HWIO_EE_n_EV_CH_k_CNTXT_6_ADDR(n, k), \
  1434. HWIO_EE_n_EV_CH_k_CNTXT_6_RMSK)
  1435. #define HWIO_EE_n_EV_CH_k_CNTXT_6_INMI2(n, k, mask) in_dword_masked( \
  1436. HWIO_EE_n_EV_CH_k_CNTXT_6_ADDR(n, k), \
  1437. mask)
  1438. #define HWIO_EE_n_EV_CH_k_CNTXT_6_WRITE_PTR_LSB_BMSK 0xffffffff
  1439. #define HWIO_EE_n_EV_CH_k_CNTXT_6_WRITE_PTR_LSB_SHFT 0x0
  1440. #define HWIO_EE_n_EV_CH_k_CNTXT_7_ADDR(n, k) (GSI_REG_BASE + 0x0001001c + \
  1441. 0x4000 * (n) + 0x80 * (k))
  1442. #define HWIO_EE_n_EV_CH_k_CNTXT_7_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1443. 0x0001001c + 0x4000 * (n) + \
  1444. 0x80 * (k))
  1445. #define HWIO_EE_n_EV_CH_k_CNTXT_7_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1446. 0x0001001c + 0x4000 * (n) + \
  1447. 0x80 * (k))
  1448. #define HWIO_EE_n_EV_CH_k_CNTXT_7_RMSK 0xffffffff
  1449. #define HWIO_EE_n_EV_CH_k_CNTXT_7_MAXn 2
  1450. #define HWIO_EE_n_EV_CH_k_CNTXT_7_MAXk 19
  1451. #define HWIO_EE_n_EV_CH_k_CNTXT_7_ATTR 0x1
  1452. #define HWIO_EE_n_EV_CH_k_CNTXT_7_INI2(n, k) in_dword_masked( \
  1453. HWIO_EE_n_EV_CH_k_CNTXT_7_ADDR(n, k), \
  1454. HWIO_EE_n_EV_CH_k_CNTXT_7_RMSK)
  1455. #define HWIO_EE_n_EV_CH_k_CNTXT_7_INMI2(n, k, mask) in_dword_masked( \
  1456. HWIO_EE_n_EV_CH_k_CNTXT_7_ADDR(n, k), \
  1457. mask)
  1458. #define HWIO_EE_n_EV_CH_k_CNTXT_7_WRITE_PTR_MSB_BMSK 0xffffffff
  1459. #define HWIO_EE_n_EV_CH_k_CNTXT_7_WRITE_PTR_MSB_SHFT 0x0
  1460. #define HWIO_EE_n_EV_CH_k_CNTXT_8_ADDR(n, k) (GSI_REG_BASE + 0x00010020 + \
  1461. 0x4000 * (n) + 0x80 * (k))
  1462. #define HWIO_EE_n_EV_CH_k_CNTXT_8_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1463. 0x00010020 + 0x4000 * (n) + \
  1464. 0x80 * (k))
  1465. #define HWIO_EE_n_EV_CH_k_CNTXT_8_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1466. 0x00010020 + 0x4000 * (n) + \
  1467. 0x80 * (k))
  1468. #define HWIO_EE_n_EV_CH_k_CNTXT_8_RMSK 0xffffffff
  1469. #define HWIO_EE_n_EV_CH_k_CNTXT_8_MAXn 2
  1470. #define HWIO_EE_n_EV_CH_k_CNTXT_8_MAXk 19
  1471. #define HWIO_EE_n_EV_CH_k_CNTXT_8_ATTR 0x3
  1472. #define HWIO_EE_n_EV_CH_k_CNTXT_8_INI2(n, k) in_dword_masked( \
  1473. HWIO_EE_n_EV_CH_k_CNTXT_8_ADDR(n, k), \
  1474. HWIO_EE_n_EV_CH_k_CNTXT_8_RMSK)
  1475. #define HWIO_EE_n_EV_CH_k_CNTXT_8_INMI2(n, k, mask) in_dword_masked( \
  1476. HWIO_EE_n_EV_CH_k_CNTXT_8_ADDR(n, k), \
  1477. mask)
  1478. #define HWIO_EE_n_EV_CH_k_CNTXT_8_OUTI2(n, k, val) out_dword( \
  1479. HWIO_EE_n_EV_CH_k_CNTXT_8_ADDR(n, k), \
  1480. val)
  1481. #define HWIO_EE_n_EV_CH_k_CNTXT_8_OUTMI2(n, k, mask, \
  1482. val) out_dword_masked_ns( \
  1483. HWIO_EE_n_EV_CH_k_CNTXT_8_ADDR(n, \
  1484. k), \
  1485. mask, \
  1486. val, \
  1487. HWIO_EE_n_EV_CH_k_CNTXT_8_INI2(n, k))
  1488. #define HWIO_EE_n_EV_CH_k_CNTXT_8_INT_MOD_CNT_BMSK 0xff000000
  1489. #define HWIO_EE_n_EV_CH_k_CNTXT_8_INT_MOD_CNT_SHFT 0x18
  1490. #define HWIO_EE_n_EV_CH_k_CNTXT_8_INT_MODC_BMSK 0xff0000
  1491. #define HWIO_EE_n_EV_CH_k_CNTXT_8_INT_MODC_SHFT 0x10
  1492. #define HWIO_EE_n_EV_CH_k_CNTXT_8_INT_MODT_BMSK 0xffff
  1493. #define HWIO_EE_n_EV_CH_k_CNTXT_8_INT_MODT_SHFT 0x0
  1494. #define HWIO_EE_n_EV_CH_k_CNTXT_9_ADDR(n, k) (GSI_REG_BASE + 0x00010024 + \
  1495. 0x4000 * (n) + 0x80 * (k))
  1496. #define HWIO_EE_n_EV_CH_k_CNTXT_9_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1497. 0x00010024 + 0x4000 * (n) + \
  1498. 0x80 * (k))
  1499. #define HWIO_EE_n_EV_CH_k_CNTXT_9_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1500. 0x00010024 + 0x4000 * (n) + \
  1501. 0x80 * (k))
  1502. #define HWIO_EE_n_EV_CH_k_CNTXT_9_RMSK 0xffffffff
  1503. #define HWIO_EE_n_EV_CH_k_CNTXT_9_MAXn 2
  1504. #define HWIO_EE_n_EV_CH_k_CNTXT_9_MAXk 19
  1505. #define HWIO_EE_n_EV_CH_k_CNTXT_9_ATTR 0x3
  1506. #define HWIO_EE_n_EV_CH_k_CNTXT_9_INI2(n, k) in_dword_masked( \
  1507. HWIO_EE_n_EV_CH_k_CNTXT_9_ADDR(n, k), \
  1508. HWIO_EE_n_EV_CH_k_CNTXT_9_RMSK)
  1509. #define HWIO_EE_n_EV_CH_k_CNTXT_9_INMI2(n, k, mask) in_dword_masked( \
  1510. HWIO_EE_n_EV_CH_k_CNTXT_9_ADDR(n, k), \
  1511. mask)
  1512. #define HWIO_EE_n_EV_CH_k_CNTXT_9_OUTI2(n, k, val) out_dword( \
  1513. HWIO_EE_n_EV_CH_k_CNTXT_9_ADDR(n, k), \
  1514. val)
  1515. #define HWIO_EE_n_EV_CH_k_CNTXT_9_OUTMI2(n, k, mask, \
  1516. val) out_dword_masked_ns( \
  1517. HWIO_EE_n_EV_CH_k_CNTXT_9_ADDR(n, \
  1518. k), \
  1519. mask, \
  1520. val, \
  1521. HWIO_EE_n_EV_CH_k_CNTXT_9_INI2(n, k))
  1522. #define HWIO_EE_n_EV_CH_k_CNTXT_9_INTVEC_BMSK 0xffffffff
  1523. #define HWIO_EE_n_EV_CH_k_CNTXT_9_INTVEC_SHFT 0x0
  1524. #define HWIO_EE_n_EV_CH_k_CNTXT_10_ADDR(n, k) (GSI_REG_BASE + 0x00010028 + \
  1525. 0x4000 * (n) + 0x80 * (k))
  1526. #define HWIO_EE_n_EV_CH_k_CNTXT_10_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1527. 0x00010028 + 0x4000 * (n) + \
  1528. 0x80 * (k))
  1529. #define HWIO_EE_n_EV_CH_k_CNTXT_10_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1530. 0x00010028 + 0x4000 * (n) + \
  1531. 0x80 * (k))
  1532. #define HWIO_EE_n_EV_CH_k_CNTXT_10_RMSK 0xffffffff
  1533. #define HWIO_EE_n_EV_CH_k_CNTXT_10_MAXn 2
  1534. #define HWIO_EE_n_EV_CH_k_CNTXT_10_MAXk 19
  1535. #define HWIO_EE_n_EV_CH_k_CNTXT_10_ATTR 0x3
  1536. #define HWIO_EE_n_EV_CH_k_CNTXT_10_INI2(n, k) in_dword_masked( \
  1537. HWIO_EE_n_EV_CH_k_CNTXT_10_ADDR(n, k), \
  1538. HWIO_EE_n_EV_CH_k_CNTXT_10_RMSK)
  1539. #define HWIO_EE_n_EV_CH_k_CNTXT_10_INMI2(n, k, mask) in_dword_masked( \
  1540. HWIO_EE_n_EV_CH_k_CNTXT_10_ADDR(n, k), \
  1541. mask)
  1542. #define HWIO_EE_n_EV_CH_k_CNTXT_10_OUTI2(n, k, val) out_dword( \
  1543. HWIO_EE_n_EV_CH_k_CNTXT_10_ADDR(n, k), \
  1544. val)
  1545. #define HWIO_EE_n_EV_CH_k_CNTXT_10_OUTMI2(n, k, mask, \
  1546. val) out_dword_masked_ns( \
  1547. HWIO_EE_n_EV_CH_k_CNTXT_10_ADDR(n, \
  1548. k), \
  1549. mask, \
  1550. val, \
  1551. HWIO_EE_n_EV_CH_k_CNTXT_10_INI2(n, k))
  1552. #define HWIO_EE_n_EV_CH_k_CNTXT_10_MSI_ADDR_LSB_BMSK 0xffffffff
  1553. #define HWIO_EE_n_EV_CH_k_CNTXT_10_MSI_ADDR_LSB_SHFT 0x0
  1554. #define HWIO_EE_n_EV_CH_k_CNTXT_11_ADDR(n, k) (GSI_REG_BASE + 0x0001002c + \
  1555. 0x4000 * (n) + 0x80 * (k))
  1556. #define HWIO_EE_n_EV_CH_k_CNTXT_11_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1557. 0x0001002c + 0x4000 * (n) + \
  1558. 0x80 * (k))
  1559. #define HWIO_EE_n_EV_CH_k_CNTXT_11_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1560. 0x0001002c + 0x4000 * (n) + \
  1561. 0x80 * (k))
  1562. #define HWIO_EE_n_EV_CH_k_CNTXT_11_RMSK 0xffffffff
  1563. #define HWIO_EE_n_EV_CH_k_CNTXT_11_MAXn 2
  1564. #define HWIO_EE_n_EV_CH_k_CNTXT_11_MAXk 19
  1565. #define HWIO_EE_n_EV_CH_k_CNTXT_11_ATTR 0x3
  1566. #define HWIO_EE_n_EV_CH_k_CNTXT_11_INI2(n, k) in_dword_masked( \
  1567. HWIO_EE_n_EV_CH_k_CNTXT_11_ADDR(n, k), \
  1568. HWIO_EE_n_EV_CH_k_CNTXT_11_RMSK)
  1569. #define HWIO_EE_n_EV_CH_k_CNTXT_11_INMI2(n, k, mask) in_dword_masked( \
  1570. HWIO_EE_n_EV_CH_k_CNTXT_11_ADDR(n, k), \
  1571. mask)
  1572. #define HWIO_EE_n_EV_CH_k_CNTXT_11_OUTI2(n, k, val) out_dword( \
  1573. HWIO_EE_n_EV_CH_k_CNTXT_11_ADDR(n, k), \
  1574. val)
  1575. #define HWIO_EE_n_EV_CH_k_CNTXT_11_OUTMI2(n, k, mask, \
  1576. val) out_dword_masked_ns( \
  1577. HWIO_EE_n_EV_CH_k_CNTXT_11_ADDR(n, \
  1578. k), \
  1579. mask, \
  1580. val, \
  1581. HWIO_EE_n_EV_CH_k_CNTXT_11_INI2(n, k))
  1582. #define HWIO_EE_n_EV_CH_k_CNTXT_11_MSI_ADDR_MSB_BMSK 0xffffffff
  1583. #define HWIO_EE_n_EV_CH_k_CNTXT_11_MSI_ADDR_MSB_SHFT 0x0
  1584. #define HWIO_EE_n_EV_CH_k_CNTXT_12_ADDR(n, k) (GSI_REG_BASE + 0x00010030 + \
  1585. 0x4000 * (n) + 0x80 * (k))
  1586. #define HWIO_EE_n_EV_CH_k_CNTXT_12_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1587. 0x00010030 + 0x4000 * (n) + \
  1588. 0x80 * (k))
  1589. #define HWIO_EE_n_EV_CH_k_CNTXT_12_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1590. 0x00010030 + 0x4000 * (n) + \
  1591. 0x80 * (k))
  1592. #define HWIO_EE_n_EV_CH_k_CNTXT_12_RMSK 0xffffffff
  1593. #define HWIO_EE_n_EV_CH_k_CNTXT_12_MAXn 2
  1594. #define HWIO_EE_n_EV_CH_k_CNTXT_12_MAXk 19
  1595. #define HWIO_EE_n_EV_CH_k_CNTXT_12_ATTR 0x3
  1596. #define HWIO_EE_n_EV_CH_k_CNTXT_12_INI2(n, k) in_dword_masked( \
  1597. HWIO_EE_n_EV_CH_k_CNTXT_12_ADDR(n, k), \
  1598. HWIO_EE_n_EV_CH_k_CNTXT_12_RMSK)
  1599. #define HWIO_EE_n_EV_CH_k_CNTXT_12_INMI2(n, k, mask) in_dword_masked( \
  1600. HWIO_EE_n_EV_CH_k_CNTXT_12_ADDR(n, k), \
  1601. mask)
  1602. #define HWIO_EE_n_EV_CH_k_CNTXT_12_OUTI2(n, k, val) out_dword( \
  1603. HWIO_EE_n_EV_CH_k_CNTXT_12_ADDR(n, k), \
  1604. val)
  1605. #define HWIO_EE_n_EV_CH_k_CNTXT_12_OUTMI2(n, k, mask, \
  1606. val) out_dword_masked_ns( \
  1607. HWIO_EE_n_EV_CH_k_CNTXT_12_ADDR(n, \
  1608. k), \
  1609. mask, \
  1610. val, \
  1611. HWIO_EE_n_EV_CH_k_CNTXT_12_INI2(n, k))
  1612. #define HWIO_EE_n_EV_CH_k_CNTXT_12_RP_UPDATE_ADDR_LSB_BMSK 0xffffffff
  1613. #define HWIO_EE_n_EV_CH_k_CNTXT_12_RP_UPDATE_ADDR_LSB_SHFT 0x0
  1614. #define HWIO_EE_n_EV_CH_k_CNTXT_13_ADDR(n, k) (GSI_REG_BASE + 0x00010034 + \
  1615. 0x4000 * (n) + 0x80 * (k))
  1616. #define HWIO_EE_n_EV_CH_k_CNTXT_13_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1617. 0x00010034 + 0x4000 * (n) + \
  1618. 0x80 * (k))
  1619. #define HWIO_EE_n_EV_CH_k_CNTXT_13_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1620. 0x00010034 + 0x4000 * (n) + \
  1621. 0x80 * (k))
  1622. #define HWIO_EE_n_EV_CH_k_CNTXT_13_RMSK 0xffffffff
  1623. #define HWIO_EE_n_EV_CH_k_CNTXT_13_MAXn 2
  1624. #define HWIO_EE_n_EV_CH_k_CNTXT_13_MAXk 19
  1625. #define HWIO_EE_n_EV_CH_k_CNTXT_13_ATTR 0x3
  1626. #define HWIO_EE_n_EV_CH_k_CNTXT_13_INI2(n, k) in_dword_masked( \
  1627. HWIO_EE_n_EV_CH_k_CNTXT_13_ADDR(n, k), \
  1628. HWIO_EE_n_EV_CH_k_CNTXT_13_RMSK)
  1629. #define HWIO_EE_n_EV_CH_k_CNTXT_13_INMI2(n, k, mask) in_dword_masked( \
  1630. HWIO_EE_n_EV_CH_k_CNTXT_13_ADDR(n, k), \
  1631. mask)
  1632. #define HWIO_EE_n_EV_CH_k_CNTXT_13_OUTI2(n, k, val) out_dword( \
  1633. HWIO_EE_n_EV_CH_k_CNTXT_13_ADDR(n, k), \
  1634. val)
  1635. #define HWIO_EE_n_EV_CH_k_CNTXT_13_OUTMI2(n, k, mask, \
  1636. val) out_dword_masked_ns( \
  1637. HWIO_EE_n_EV_CH_k_CNTXT_13_ADDR(n, \
  1638. k), \
  1639. mask, \
  1640. val, \
  1641. HWIO_EE_n_EV_CH_k_CNTXT_13_INI2(n, k))
  1642. #define HWIO_EE_n_EV_CH_k_CNTXT_13_RP_UPDATE_ADDR_MSB_BMSK 0xffffffff
  1643. #define HWIO_EE_n_EV_CH_k_CNTXT_13_RP_UPDATE_ADDR_MSB_SHFT 0x0
  1644. #define HWIO_EE_n_EV_CH_k_SCRATCH_0_ADDR(n, k) (GSI_REG_BASE + \
  1645. 0x00010048 + 0x4000 * \
  1646. (n) + 0x80 * (k))
  1647. #define HWIO_EE_n_EV_CH_k_SCRATCH_0_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1648. 0x00010048 + 0x4000 * \
  1649. (n) + 0x80 * (k))
  1650. #define HWIO_EE_n_EV_CH_k_SCRATCH_0_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1651. 0x00010048 + 0x4000 * \
  1652. (n) + 0x80 * (k))
  1653. #define HWIO_EE_n_EV_CH_k_SCRATCH_0_RMSK 0xffffffff
  1654. #define HWIO_EE_n_EV_CH_k_SCRATCH_0_MAXn 2
  1655. #define HWIO_EE_n_EV_CH_k_SCRATCH_0_MAXk 19
  1656. #define HWIO_EE_n_EV_CH_k_SCRATCH_0_ATTR 0x3
  1657. #define HWIO_EE_n_EV_CH_k_SCRATCH_0_INI2(n, k) in_dword_masked( \
  1658. HWIO_EE_n_EV_CH_k_SCRATCH_0_ADDR(n, k), \
  1659. HWIO_EE_n_EV_CH_k_SCRATCH_0_RMSK)
  1660. #define HWIO_EE_n_EV_CH_k_SCRATCH_0_INMI2(n, k, mask) in_dword_masked( \
  1661. HWIO_EE_n_EV_CH_k_SCRATCH_0_ADDR(n, k), \
  1662. mask)
  1663. #define HWIO_EE_n_EV_CH_k_SCRATCH_0_OUTI2(n, k, val) out_dword( \
  1664. HWIO_EE_n_EV_CH_k_SCRATCH_0_ADDR(n, k), \
  1665. val)
  1666. #define HWIO_EE_n_EV_CH_k_SCRATCH_0_OUTMI2(n, k, mask, \
  1667. val) out_dword_masked_ns( \
  1668. HWIO_EE_n_EV_CH_k_SCRATCH_0_ADDR(n, \
  1669. k), \
  1670. mask, \
  1671. val, \
  1672. HWIO_EE_n_EV_CH_k_SCRATCH_0_INI2(n, k))
  1673. #define HWIO_EE_n_EV_CH_k_SCRATCH_0_SCRATCH_BMSK 0xffffffff
  1674. #define HWIO_EE_n_EV_CH_k_SCRATCH_0_SCRATCH_SHFT 0x0
  1675. #define HWIO_EE_n_EV_CH_k_SCRATCH_1_ADDR(n, k) (GSI_REG_BASE + \
  1676. 0x0001004c + 0x4000 * \
  1677. (n) + 0x80 * (k))
  1678. #define HWIO_EE_n_EV_CH_k_SCRATCH_1_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1679. 0x0001004c + 0x4000 * \
  1680. (n) + 0x80 * (k))
  1681. #define HWIO_EE_n_EV_CH_k_SCRATCH_1_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1682. 0x0001004c + 0x4000 * \
  1683. (n) + 0x80 * (k))
  1684. #define HWIO_EE_n_EV_CH_k_SCRATCH_1_RMSK 0xffffffff
  1685. #define HWIO_EE_n_EV_CH_k_SCRATCH_1_MAXn 2
  1686. #define HWIO_EE_n_EV_CH_k_SCRATCH_1_MAXk 19
  1687. #define HWIO_EE_n_EV_CH_k_SCRATCH_1_ATTR 0x3
  1688. #define HWIO_EE_n_EV_CH_k_SCRATCH_1_INI2(n, k) in_dword_masked( \
  1689. HWIO_EE_n_EV_CH_k_SCRATCH_1_ADDR(n, k), \
  1690. HWIO_EE_n_EV_CH_k_SCRATCH_1_RMSK)
  1691. #define HWIO_EE_n_EV_CH_k_SCRATCH_1_INMI2(n, k, mask) in_dword_masked( \
  1692. HWIO_EE_n_EV_CH_k_SCRATCH_1_ADDR(n, k), \
  1693. mask)
  1694. #define HWIO_EE_n_EV_CH_k_SCRATCH_1_OUTI2(n, k, val) out_dword( \
  1695. HWIO_EE_n_EV_CH_k_SCRATCH_1_ADDR(n, k), \
  1696. val)
  1697. #define HWIO_EE_n_EV_CH_k_SCRATCH_1_OUTMI2(n, k, mask, \
  1698. val) out_dword_masked_ns( \
  1699. HWIO_EE_n_EV_CH_k_SCRATCH_1_ADDR(n, \
  1700. k), \
  1701. mask, \
  1702. val, \
  1703. HWIO_EE_n_EV_CH_k_SCRATCH_1_INI2(n, k))
  1704. #define HWIO_EE_n_EV_CH_k_SCRATCH_1_SCRATCH_BMSK 0xffffffff
  1705. #define HWIO_EE_n_EV_CH_k_SCRATCH_1_SCRATCH_SHFT 0x0
  1706. #define HWIO_EE_n_GSI_CH_k_DOORBELL_0_ADDR(n, k) (GSI_REG_BASE + \
  1707. 0x00011000 + 0x4000 * \
  1708. (n) + 0x8 * (k))
  1709. #define HWIO_EE_n_GSI_CH_k_DOORBELL_0_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1710. 0x00011000 + 0x4000 * \
  1711. (n) + 0x8 * (k))
  1712. #define HWIO_EE_n_GSI_CH_k_DOORBELL_0_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1713. 0x00011000 + 0x4000 * \
  1714. (n) + 0x8 * (k))
  1715. #define HWIO_EE_n_GSI_CH_k_DOORBELL_1_ADDR(n, k) (GSI_REG_BASE + \
  1716. 0x00011004 + 0x4000 * \
  1717. (n) + 0x8 * (k))
  1718. #define HWIO_EE_n_GSI_CH_k_DOORBELL_1_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1719. 0x00011004 + 0x4000 * \
  1720. (n) + 0x8 * (k))
  1721. #define HWIO_EE_n_GSI_CH_k_DOORBELL_1_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1722. 0x00011004 + 0x4000 * \
  1723. (n) + 0x8 * (k))
  1724. #define HWIO_EE_n_EV_CH_k_DOORBELL_0_ADDR(n, k) (GSI_REG_BASE + \
  1725. 0x00011100 + 0x4000 * \
  1726. (n) + 0x8 * (k))
  1727. #define HWIO_EE_n_EV_CH_k_DOORBELL_0_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1728. 0x00011100 + 0x4000 * \
  1729. (n) + 0x8 * (k))
  1730. #define HWIO_EE_n_EV_CH_k_DOORBELL_0_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1731. 0x00011100 + 0x4000 * \
  1732. (n) + 0x8 * (k))
  1733. #define HWIO_EE_n_EV_CH_k_DOORBELL_1_ADDR(n, k) (GSI_REG_BASE + \
  1734. 0x00011104 + 0x4000 * \
  1735. (n) + 0x8 * (k))
  1736. #define HWIO_EE_n_EV_CH_k_DOORBELL_1_PHYS(n, k) (GSI_REG_BASE_PHYS + \
  1737. 0x00011104 + 0x4000 * \
  1738. (n) + 0x8 * (k))
  1739. #define HWIO_EE_n_EV_CH_k_DOORBELL_1_OFFS(n, k) (GSI_REG_BASE_OFFS + \
  1740. 0x00011104 + 0x4000 * \
  1741. (n) + 0x8 * (k))
  1742. #define HWIO_EE_n_GSI_STATUS_ADDR(n) (GSI_REG_BASE + 0x00012000 + 0x4000 * \
  1743. (n))
  1744. #define HWIO_EE_n_GSI_STATUS_PHYS(n) (GSI_REG_BASE_PHYS + 0x00012000 + \
  1745. 0x4000 * (n))
  1746. #define HWIO_EE_n_GSI_STATUS_OFFS(n) (GSI_REG_BASE_OFFS + 0x00012000 + \
  1747. 0x4000 * (n))
  1748. #define HWIO_EE_n_GSI_STATUS_RMSK 0x1
  1749. #define HWIO_EE_n_GSI_STATUS_MAXn 2
  1750. #define HWIO_EE_n_GSI_STATUS_ATTR 0x1
  1751. #define HWIO_EE_n_GSI_STATUS_INI(n) in_dword_masked( \
  1752. HWIO_EE_n_GSI_STATUS_ADDR(n), \
  1753. HWIO_EE_n_GSI_STATUS_RMSK)
  1754. #define HWIO_EE_n_GSI_STATUS_INMI(n, mask) in_dword_masked( \
  1755. HWIO_EE_n_GSI_STATUS_ADDR(n), \
  1756. mask)
  1757. #define HWIO_EE_n_GSI_STATUS_ENABLED_BMSK 0x1
  1758. #define HWIO_EE_n_GSI_STATUS_ENABLED_SHFT 0x0
  1759. #define HWIO_EE_n_GSI_CH_CMD_ADDR(n) (GSI_REG_BASE + 0x00012008 + 0x4000 * \
  1760. (n))
  1761. #define HWIO_EE_n_GSI_CH_CMD_PHYS(n) (GSI_REG_BASE_PHYS + 0x00012008 + \
  1762. 0x4000 * (n))
  1763. #define HWIO_EE_n_GSI_CH_CMD_OFFS(n) (GSI_REG_BASE_OFFS + 0x00012008 + \
  1764. 0x4000 * (n))
  1765. #define HWIO_EE_n_EV_CH_CMD_ADDR(n) (GSI_REG_BASE + 0x00012010 + 0x4000 * \
  1766. (n))
  1767. #define HWIO_EE_n_EV_CH_CMD_PHYS(n) (GSI_REG_BASE_PHYS + 0x00012010 + \
  1768. 0x4000 * (n))
  1769. #define HWIO_EE_n_EV_CH_CMD_OFFS(n) (GSI_REG_BASE_OFFS + 0x00012010 + \
  1770. 0x4000 * (n))
  1771. #define HWIO_EE_n_GSI_EE_GENERIC_CMD_ADDR(n) (GSI_REG_BASE + 0x00012018 + \
  1772. 0x4000 * (n))
  1773. #define HWIO_EE_n_GSI_EE_GENERIC_CMD_PHYS(n) (GSI_REG_BASE_PHYS + \
  1774. 0x00012018 + 0x4000 * (n))
  1775. #define HWIO_EE_n_GSI_EE_GENERIC_CMD_OFFS(n) (GSI_REG_BASE_OFFS + \
  1776. 0x00012018 + 0x4000 * (n))
  1777. #define HWIO_EE_n_GSI_HW_PARAM_0_ADDR(n) (GSI_REG_BASE + 0x00012038 + \
  1778. 0x4000 * (n))
  1779. #define HWIO_EE_n_GSI_HW_PARAM_0_PHYS(n) (GSI_REG_BASE_PHYS + 0x00012038 + \
  1780. 0x4000 * (n))
  1781. #define HWIO_EE_n_GSI_HW_PARAM_0_OFFS(n) (GSI_REG_BASE_OFFS + 0x00012038 + \
  1782. 0x4000 * (n))
  1783. #define HWIO_EE_n_GSI_HW_PARAM_1_ADDR(n) (GSI_REG_BASE + 0x0001203c + \
  1784. 0x4000 * (n))
  1785. #define HWIO_EE_n_GSI_HW_PARAM_1_PHYS(n) (GSI_REG_BASE_PHYS + 0x0001203c + \
  1786. 0x4000 * (n))
  1787. #define HWIO_EE_n_GSI_HW_PARAM_1_OFFS(n) (GSI_REG_BASE_OFFS + 0x0001203c + \
  1788. 0x4000 * (n))
  1789. #define HWIO_EE_n_GSI_HW_PARAM_2_ADDR(n) (GSI_REG_BASE + 0x00012040 + \
  1790. 0x4000 * (n))
  1791. #define HWIO_EE_n_GSI_HW_PARAM_2_PHYS(n) (GSI_REG_BASE_PHYS + 0x00012040 + \
  1792. 0x4000 * (n))
  1793. #define HWIO_EE_n_GSI_HW_PARAM_2_OFFS(n) (GSI_REG_BASE_OFFS + 0x00012040 + \
  1794. 0x4000 * (n))
  1795. #define HWIO_EE_n_GSI_SW_VERSION_ADDR(n) (GSI_REG_BASE + 0x00012044 + \
  1796. 0x4000 * (n))
  1797. #define HWIO_EE_n_GSI_SW_VERSION_PHYS(n) (GSI_REG_BASE_PHYS + 0x00012044 + \
  1798. 0x4000 * (n))
  1799. #define HWIO_EE_n_GSI_SW_VERSION_OFFS(n) (GSI_REG_BASE_OFFS + 0x00012044 + \
  1800. 0x4000 * (n))
  1801. #define HWIO_EE_n_GSI_MCS_CODE_VER_ADDR(n) (GSI_REG_BASE + 0x00012048 + \
  1802. 0x4000 * (n))
  1803. #define HWIO_EE_n_GSI_MCS_CODE_VER_PHYS(n) (GSI_REG_BASE_PHYS + \
  1804. 0x00012048 + 0x4000 * (n))
  1805. #define HWIO_EE_n_GSI_MCS_CODE_VER_OFFS(n) (GSI_REG_BASE_OFFS + \
  1806. 0x00012048 + 0x4000 * (n))
  1807. #define HWIO_EE_n_GSI_HW_PARAM_3_ADDR(n) (GSI_REG_BASE + 0x0001204c + \
  1808. 0x4000 * (n))
  1809. #define HWIO_EE_n_GSI_HW_PARAM_3_PHYS(n) (GSI_REG_BASE_PHYS + 0x0001204c + \
  1810. 0x4000 * (n))
  1811. #define HWIO_EE_n_GSI_HW_PARAM_3_OFFS(n) (GSI_REG_BASE_OFFS + 0x0001204c + \
  1812. 0x4000 * (n))
  1813. #define HWIO_EE_n_CNTXT_TYPE_IRQ_ADDR(n) (GSI_REG_BASE + 0x00012080 + \
  1814. 0x4000 * (n))
  1815. #define HWIO_EE_n_CNTXT_TYPE_IRQ_PHYS(n) (GSI_REG_BASE_PHYS + 0x00012080 + \
  1816. 0x4000 * (n))
  1817. #define HWIO_EE_n_CNTXT_TYPE_IRQ_OFFS(n) (GSI_REG_BASE_OFFS + 0x00012080 + \
  1818. 0x4000 * (n))
  1819. #define HWIO_EE_n_CNTXT_TYPE_IRQ_RMSK 0x7f
  1820. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MAXn 2
  1821. #define HWIO_EE_n_CNTXT_TYPE_IRQ_ATTR 0x1
  1822. #define HWIO_EE_n_CNTXT_TYPE_IRQ_INI(n) in_dword_masked( \
  1823. HWIO_EE_n_CNTXT_TYPE_IRQ_ADDR(n), \
  1824. HWIO_EE_n_CNTXT_TYPE_IRQ_RMSK)
  1825. #define HWIO_EE_n_CNTXT_TYPE_IRQ_INMI(n, mask) in_dword_masked( \
  1826. HWIO_EE_n_CNTXT_TYPE_IRQ_ADDR(n), \
  1827. mask)
  1828. #define HWIO_EE_n_CNTXT_TYPE_IRQ_GENERAL_BMSK 0x40
  1829. #define HWIO_EE_n_CNTXT_TYPE_IRQ_GENERAL_SHFT 0x6
  1830. #define HWIO_EE_n_CNTXT_TYPE_IRQ_INTER_EE_EV_CTRL_BMSK 0x20
  1831. #define HWIO_EE_n_CNTXT_TYPE_IRQ_INTER_EE_EV_CTRL_SHFT 0x5
  1832. #define HWIO_EE_n_CNTXT_TYPE_IRQ_INTER_EE_CH_CTRL_BMSK 0x10
  1833. #define HWIO_EE_n_CNTXT_TYPE_IRQ_INTER_EE_CH_CTRL_SHFT 0x4
  1834. #define HWIO_EE_n_CNTXT_TYPE_IRQ_IEOB_BMSK 0x8
  1835. #define HWIO_EE_n_CNTXT_TYPE_IRQ_IEOB_SHFT 0x3
  1836. #define HWIO_EE_n_CNTXT_TYPE_IRQ_GLOB_EE_BMSK 0x4
  1837. #define HWIO_EE_n_CNTXT_TYPE_IRQ_GLOB_EE_SHFT 0x2
  1838. #define HWIO_EE_n_CNTXT_TYPE_IRQ_EV_CTRL_BMSK 0x2
  1839. #define HWIO_EE_n_CNTXT_TYPE_IRQ_EV_CTRL_SHFT 0x1
  1840. #define HWIO_EE_n_CNTXT_TYPE_IRQ_CH_CTRL_BMSK 0x1
  1841. #define HWIO_EE_n_CNTXT_TYPE_IRQ_CH_CTRL_SHFT 0x0
  1842. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_ADDR(n) (GSI_REG_BASE + 0x00012088 + \
  1843. 0x4000 * (n))
  1844. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_PHYS(n) (GSI_REG_BASE_PHYS + \
  1845. 0x00012088 + 0x4000 * (n))
  1846. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_OFFS(n) (GSI_REG_BASE_OFFS + \
  1847. 0x00012088 + 0x4000 * (n))
  1848. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_RMSK 0x7f
  1849. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_MAXn 2
  1850. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_ATTR 0x3
  1851. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_INI(n) in_dword_masked( \
  1852. HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_ADDR(n), \
  1853. HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_RMSK)
  1854. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_INMI(n, mask) in_dword_masked( \
  1855. HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_ADDR(n), \
  1856. mask)
  1857. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_OUTI(n, val) out_dword( \
  1858. HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_ADDR(n), \
  1859. val)
  1860. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_OUTMI(n, mask, \
  1861. val) out_dword_masked_ns( \
  1862. HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_ADDR( \
  1863. n), \
  1864. mask, \
  1865. val, \
  1866. HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_INI(n))
  1867. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_GENERAL_BMSK 0x40
  1868. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_GENERAL_SHFT 0x6
  1869. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_INTER_EE_EV_CTRL_BMSK 0x20
  1870. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_INTER_EE_EV_CTRL_SHFT 0x5
  1871. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_INTER_EE_CH_CTRL_BMSK 0x10
  1872. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_INTER_EE_CH_CTRL_SHFT 0x4
  1873. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_IEOB_BMSK 0x8
  1874. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_IEOB_SHFT 0x3
  1875. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_GLOB_EE_BMSK 0x4
  1876. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_GLOB_EE_SHFT 0x2
  1877. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_EV_CTRL_BMSK 0x2
  1878. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_EV_CTRL_SHFT 0x1
  1879. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_CH_CTRL_BMSK 0x1
  1880. #define HWIO_EE_n_CNTXT_TYPE_IRQ_MSK_CH_CTRL_SHFT 0x0
  1881. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_ADDR(n) (GSI_REG_BASE + \
  1882. 0x00012090 + 0x4000 * (n))
  1883. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_PHYS(n) (GSI_REG_BASE_PHYS + \
  1884. 0x00012090 + 0x4000 * (n))
  1885. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_OFFS(n) (GSI_REG_BASE_OFFS + \
  1886. 0x00012090 + 0x4000 * (n))
  1887. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_RMSK 0xffffffff
  1888. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MAXn 2
  1889. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_ATTR 0x1
  1890. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_INI(n) in_dword_masked( \
  1891. HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_ADDR(n), \
  1892. HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_RMSK)
  1893. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_INMI(n, mask) in_dword_masked( \
  1894. HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_ADDR(n), \
  1895. mask)
  1896. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_GSI_CH_BIT_MAP_BMSK 0xffffffff
  1897. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_GSI_CH_BIT_MAP_SHFT 0x0
  1898. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_ADDR(n) (GSI_REG_BASE + 0x00012094 + \
  1899. 0x4000 * (n))
  1900. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_PHYS(n) (GSI_REG_BASE_PHYS + \
  1901. 0x00012094 + 0x4000 * (n))
  1902. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_OFFS(n) (GSI_REG_BASE_OFFS + \
  1903. 0x00012094 + 0x4000 * (n))
  1904. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_RMSK 0xffffffff
  1905. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MAXn 2
  1906. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_ATTR 0x1
  1907. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_INI(n) in_dword_masked( \
  1908. HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_ADDR(n), \
  1909. HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_RMSK)
  1910. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_INMI(n, mask) in_dword_masked( \
  1911. HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_ADDR(n), \
  1912. mask)
  1913. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_EV_CH_BIT_MAP_BMSK 0xffffffff
  1914. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_EV_CH_BIT_MAP_SHFT 0x0
  1915. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_ADDR(n) (GSI_REG_BASE + \
  1916. 0x00012098 + 0x4000 * \
  1917. (n))
  1918. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_PHYS(n) (GSI_REG_BASE_PHYS + \
  1919. 0x00012098 + 0x4000 * \
  1920. (n))
  1921. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_OFFS(n) (GSI_REG_BASE_OFFS + \
  1922. 0x00012098 + 0x4000 * \
  1923. (n))
  1924. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_RMSK 0x7fffff
  1925. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_MAXn 2
  1926. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_ATTR 0x3
  1927. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_INI(n) in_dword_masked( \
  1928. HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_ADDR(n), \
  1929. HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_RMSK)
  1930. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_INMI(n, mask) in_dword_masked( \
  1931. HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_ADDR(n), \
  1932. mask)
  1933. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_OUTI(n, val) out_dword( \
  1934. HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_ADDR(n), \
  1935. val)
  1936. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_OUTMI(n, mask, \
  1937. val) out_dword_masked_ns( \
  1938. HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_ADDR( \
  1939. n), \
  1940. mask, \
  1941. val, \
  1942. HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_INI(n))
  1943. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_GSI_CH_BIT_MAP_MSK_BMSK \
  1944. 0x7fffff
  1945. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_MSK_GSI_CH_BIT_MAP_MSK_SHFT 0x0
  1946. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_ADDR(n) (GSI_REG_BASE + \
  1947. 0x0001209c + 0x4000 * \
  1948. (n))
  1949. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_PHYS(n) (GSI_REG_BASE_PHYS + \
  1950. 0x0001209c + 0x4000 * \
  1951. (n))
  1952. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_OFFS(n) (GSI_REG_BASE_OFFS + \
  1953. 0x0001209c + 0x4000 * \
  1954. (n))
  1955. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_RMSK 0xfffff
  1956. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_MAXn 2
  1957. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_ATTR 0x3
  1958. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_INI(n) in_dword_masked( \
  1959. HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_ADDR(n), \
  1960. HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_RMSK)
  1961. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_INMI(n, mask) in_dword_masked( \
  1962. HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_ADDR(n), \
  1963. mask)
  1964. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_OUTI(n, val) out_dword( \
  1965. HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_ADDR(n), \
  1966. val)
  1967. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_OUTMI(n, mask, \
  1968. val) out_dword_masked_ns( \
  1969. HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_ADDR( \
  1970. n), \
  1971. mask, \
  1972. val, \
  1973. HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_INI(n))
  1974. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_EV_CH_BIT_MAP_MSK_BMSK 0xfffff
  1975. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_MSK_EV_CH_BIT_MAP_MSK_SHFT 0x0
  1976. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_CLR_ADDR(n) (GSI_REG_BASE + \
  1977. 0x000120a0 + 0x4000 * \
  1978. (n))
  1979. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_CLR_PHYS(n) (GSI_REG_BASE_PHYS + \
  1980. 0x000120a0 + 0x4000 * \
  1981. (n))
  1982. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_CLR_OFFS(n) (GSI_REG_BASE_OFFS + \
  1983. 0x000120a0 + 0x4000 * \
  1984. (n))
  1985. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_CLR_RMSK 0xffffffff
  1986. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_CLR_MAXn 2
  1987. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_CLR_ATTR 0x2
  1988. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_CLR_OUTI(n, val) out_dword( \
  1989. HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_CLR_ADDR(n), \
  1990. val)
  1991. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_CLR_GSI_CH_BIT_MAP_BMSK 0xffffffff
  1992. #define HWIO_EE_n_CNTXT_SRC_GSI_CH_IRQ_CLR_GSI_CH_BIT_MAP_SHFT 0x0
  1993. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_CLR_ADDR(n) (GSI_REG_BASE + \
  1994. 0x000120a4 + 0x4000 * \
  1995. (n))
  1996. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_CLR_PHYS(n) (GSI_REG_BASE_PHYS + \
  1997. 0x000120a4 + 0x4000 * \
  1998. (n))
  1999. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_CLR_OFFS(n) (GSI_REG_BASE_OFFS + \
  2000. 0x000120a4 + 0x4000 * \
  2001. (n))
  2002. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_CLR_RMSK 0xffffffff
  2003. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_CLR_MAXn 2
  2004. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_CLR_ATTR 0x2
  2005. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_CLR_OUTI(n, val) out_dword( \
  2006. HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_CLR_ADDR(n), \
  2007. val)
  2008. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_CLR_EV_CH_BIT_MAP_BMSK 0xffffffff
  2009. #define HWIO_EE_n_CNTXT_SRC_EV_CH_IRQ_CLR_EV_CH_BIT_MAP_SHFT 0x0
  2010. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_ADDR(n) (GSI_REG_BASE + 0x000120b0 + \
  2011. 0x4000 * (n))
  2012. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_PHYS(n) (GSI_REG_BASE_PHYS + \
  2013. 0x000120b0 + 0x4000 * (n))
  2014. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_OFFS(n) (GSI_REG_BASE_OFFS + \
  2015. 0x000120b0 + 0x4000 * (n))
  2016. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_RMSK 0xffffffff
  2017. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MAXn 2
  2018. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_ATTR 0x1
  2019. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_INI(n) in_dword_masked( \
  2020. HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_ADDR(n), \
  2021. HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_RMSK)
  2022. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_INMI(n, mask) in_dword_masked( \
  2023. HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_ADDR(n), \
  2024. mask)
  2025. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_EV_CH_BIT_MAP_BMSK 0xffffffff
  2026. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_EV_CH_BIT_MAP_SHFT 0x0
  2027. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_ADDR(n) (GSI_REG_BASE + \
  2028. 0x000120b8 + 0x4000 * (n))
  2029. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_PHYS(n) (GSI_REG_BASE_PHYS + \
  2030. 0x000120b8 + 0x4000 * (n))
  2031. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_OFFS(n) (GSI_REG_BASE_OFFS + \
  2032. 0x000120b8 + 0x4000 * (n))
  2033. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_RMSK 0xfffff
  2034. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_MAXn 2
  2035. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_ATTR 0x3
  2036. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_INI(n) in_dword_masked( \
  2037. HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_ADDR(n), \
  2038. HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_RMSK)
  2039. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_INMI(n, mask) in_dword_masked( \
  2040. HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_ADDR(n), \
  2041. mask)
  2042. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_OUTI(n, val) out_dword( \
  2043. HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_ADDR(n), \
  2044. val)
  2045. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_OUTMI(n, mask, \
  2046. val) out_dword_masked_ns( \
  2047. HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_ADDR( \
  2048. n), \
  2049. mask, \
  2050. val, \
  2051. HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_INI(n))
  2052. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_EV_CH_BIT_MAP_MSK_BMSK 0xfffff
  2053. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_MSK_EV_CH_BIT_MAP_MSK_SHFT 0x0
  2054. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_CLR_ADDR(n) (GSI_REG_BASE + \
  2055. 0x000120c0 + 0x4000 * (n))
  2056. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_CLR_PHYS(n) (GSI_REG_BASE_PHYS + \
  2057. 0x000120c0 + 0x4000 * (n))
  2058. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_CLR_OFFS(n) (GSI_REG_BASE_OFFS + \
  2059. 0x000120c0 + 0x4000 * (n))
  2060. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_CLR_RMSK 0xffffffff
  2061. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_CLR_MAXn 2
  2062. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_CLR_ATTR 0x2
  2063. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_CLR_OUTI(n, val) out_dword( \
  2064. HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_CLR_ADDR(n), \
  2065. val)
  2066. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_CLR_EV_CH_BIT_MAP_BMSK 0xffffffff
  2067. #define HWIO_EE_n_CNTXT_SRC_IEOB_IRQ_CLR_EV_CH_BIT_MAP_SHFT 0x0
  2068. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_ADDR(n) (GSI_REG_BASE + 0x00012100 + \
  2069. 0x4000 * (n))
  2070. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_PHYS(n) (GSI_REG_BASE_PHYS + \
  2071. 0x00012100 + 0x4000 * (n))
  2072. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_OFFS(n) (GSI_REG_BASE_OFFS + \
  2073. 0x00012100 + 0x4000 * (n))
  2074. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_RMSK 0xf
  2075. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_MAXn 2
  2076. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_ATTR 0x1
  2077. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_INI(n) in_dword_masked( \
  2078. HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_ADDR(n), \
  2079. HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_RMSK)
  2080. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_INMI(n, mask) in_dword_masked( \
  2081. HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_ADDR(n), \
  2082. mask)
  2083. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_GP_INT3_BMSK 0x8
  2084. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_GP_INT3_SHFT 0x3
  2085. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_GP_INT2_BMSK 0x4
  2086. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_GP_INT2_SHFT 0x2
  2087. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_GP_INT1_BMSK 0x2
  2088. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_GP_INT1_SHFT 0x1
  2089. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_ERROR_INT_BMSK 0x1
  2090. #define HWIO_EE_n_CNTXT_GLOB_IRQ_STTS_ERROR_INT_SHFT 0x0
  2091. #define HWIO_EE_n_CNTXT_GLOB_IRQ_EN_ADDR(n) (GSI_REG_BASE + 0x00012108 + \
  2092. 0x4000 * (n))
  2093. #define HWIO_EE_n_CNTXT_GLOB_IRQ_EN_PHYS(n) (GSI_REG_BASE_PHYS + \
  2094. 0x00012108 + 0x4000 * (n))
  2095. #define HWIO_EE_n_CNTXT_GLOB_IRQ_EN_OFFS(n) (GSI_REG_BASE_OFFS + \
  2096. 0x00012108 + 0x4000 * (n))
  2097. #define HWIO_EE_n_CNTXT_GLOB_IRQ_CLR_ADDR(n) (GSI_REG_BASE + 0x00012110 + \
  2098. 0x4000 * (n))
  2099. #define HWIO_EE_n_CNTXT_GLOB_IRQ_CLR_PHYS(n) (GSI_REG_BASE_PHYS + \
  2100. 0x00012110 + 0x4000 * (n))
  2101. #define HWIO_EE_n_CNTXT_GLOB_IRQ_CLR_OFFS(n) (GSI_REG_BASE_OFFS + \
  2102. 0x00012110 + 0x4000 * (n))
  2103. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_ADDR(n) (GSI_REG_BASE + 0x00012118 + \
  2104. 0x4000 * (n))
  2105. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_PHYS(n) (GSI_REG_BASE_PHYS + \
  2106. 0x00012118 + 0x4000 * (n))
  2107. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_OFFS(n) (GSI_REG_BASE_OFFS + \
  2108. 0x00012118 + 0x4000 * (n))
  2109. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_RMSK 0xf
  2110. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_MAXn 2
  2111. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_ATTR 0x1
  2112. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_INI(n) in_dword_masked( \
  2113. HWIO_EE_n_CNTXT_GSI_IRQ_STTS_ADDR(n), \
  2114. HWIO_EE_n_CNTXT_GSI_IRQ_STTS_RMSK)
  2115. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_INMI(n, mask) in_dword_masked( \
  2116. HWIO_EE_n_CNTXT_GSI_IRQ_STTS_ADDR(n), \
  2117. mask)
  2118. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_GSI_MCS_STACK_OVRFLOW_BMSK 0x8
  2119. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_GSI_MCS_STACK_OVRFLOW_SHFT 0x3
  2120. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_GSI_CMD_FIFO_OVRFLOW_BMSK 0x4
  2121. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_GSI_CMD_FIFO_OVRFLOW_SHFT 0x2
  2122. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_GSI_BUS_ERROR_BMSK 0x2
  2123. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_GSI_BUS_ERROR_SHFT 0x1
  2124. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_GSI_BREAK_POINT_BMSK 0x1
  2125. #define HWIO_EE_n_CNTXT_GSI_IRQ_STTS_GSI_BREAK_POINT_SHFT 0x0
  2126. #define HWIO_EE_n_CNTXT_GSI_IRQ_EN_ADDR(n) (GSI_REG_BASE + 0x00012120 + \
  2127. 0x4000 * (n))
  2128. #define HWIO_EE_n_CNTXT_GSI_IRQ_EN_PHYS(n) (GSI_REG_BASE_PHYS + \
  2129. 0x00012120 + 0x4000 * (n))
  2130. #define HWIO_EE_n_CNTXT_GSI_IRQ_EN_OFFS(n) (GSI_REG_BASE_OFFS + \
  2131. 0x00012120 + 0x4000 * (n))
  2132. #define HWIO_EE_n_CNTXT_GSI_IRQ_CLR_ADDR(n) (GSI_REG_BASE + 0x00012128 + \
  2133. 0x4000 * (n))
  2134. #define HWIO_EE_n_CNTXT_GSI_IRQ_CLR_PHYS(n) (GSI_REG_BASE_PHYS + \
  2135. 0x00012128 + 0x4000 * (n))
  2136. #define HWIO_EE_n_CNTXT_GSI_IRQ_CLR_OFFS(n) (GSI_REG_BASE_OFFS + \
  2137. 0x00012128 + 0x4000 * (n))
  2138. #define HWIO_EE_n_CNTXT_INTSET_ADDR(n) (GSI_REG_BASE + 0x00012180 + \
  2139. 0x4000 * (n))
  2140. #define HWIO_EE_n_CNTXT_INTSET_PHYS(n) (GSI_REG_BASE_PHYS + 0x00012180 + \
  2141. 0x4000 * (n))
  2142. #define HWIO_EE_n_CNTXT_INTSET_OFFS(n) (GSI_REG_BASE_OFFS + 0x00012180 + \
  2143. 0x4000 * (n))
  2144. #define HWIO_EE_n_CNTXT_INTSET_RMSK 0x1
  2145. #define HWIO_EE_n_CNTXT_INTSET_MAXn 2
  2146. #define HWIO_EE_n_CNTXT_INTSET_ATTR 0x3
  2147. #define HWIO_EE_n_CNTXT_INTSET_INI(n) in_dword_masked( \
  2148. HWIO_EE_n_CNTXT_INTSET_ADDR(n), \
  2149. HWIO_EE_n_CNTXT_INTSET_RMSK)
  2150. #define HWIO_EE_n_CNTXT_INTSET_INMI(n, mask) in_dword_masked( \
  2151. HWIO_EE_n_CNTXT_INTSET_ADDR(n), \
  2152. mask)
  2153. #define HWIO_EE_n_CNTXT_INTSET_OUTI(n, val) out_dword( \
  2154. HWIO_EE_n_CNTXT_INTSET_ADDR(n), \
  2155. val)
  2156. #define HWIO_EE_n_CNTXT_INTSET_OUTMI(n, mask, val) out_dword_masked_ns( \
  2157. HWIO_EE_n_CNTXT_INTSET_ADDR(n), \
  2158. mask, \
  2159. val, \
  2160. HWIO_EE_n_CNTXT_INTSET_INI(n))
  2161. #define HWIO_EE_n_CNTXT_INTSET_INTYPE_BMSK 0x1
  2162. #define HWIO_EE_n_CNTXT_INTSET_INTYPE_SHFT 0x0
  2163. #define HWIO_EE_n_CNTXT_INTSET_INTYPE_MSI_FVAL 0x0
  2164. #define HWIO_EE_n_CNTXT_INTSET_INTYPE_IRQ_FVAL 0x1
  2165. #define HWIO_EE_n_CNTXT_MSI_BASE_LSB_ADDR(n) (GSI_REG_BASE + 0x00012188 + \
  2166. 0x4000 * (n))
  2167. #define HWIO_EE_n_CNTXT_MSI_BASE_LSB_PHYS(n) (GSI_REG_BASE_PHYS + \
  2168. 0x00012188 + 0x4000 * (n))
  2169. #define HWIO_EE_n_CNTXT_MSI_BASE_LSB_OFFS(n) (GSI_REG_BASE_OFFS + \
  2170. 0x00012188 + 0x4000 * (n))
  2171. #define HWIO_EE_n_CNTXT_MSI_BASE_LSB_RMSK 0xffffffff
  2172. #define HWIO_EE_n_CNTXT_MSI_BASE_LSB_MAXn 2
  2173. #define HWIO_EE_n_CNTXT_MSI_BASE_LSB_ATTR 0x3
  2174. #define HWIO_EE_n_CNTXT_MSI_BASE_LSB_INI(n) in_dword_masked( \
  2175. HWIO_EE_n_CNTXT_MSI_BASE_LSB_ADDR(n), \
  2176. HWIO_EE_n_CNTXT_MSI_BASE_LSB_RMSK)
  2177. #define HWIO_EE_n_CNTXT_MSI_BASE_LSB_INMI(n, mask) in_dword_masked( \
  2178. HWIO_EE_n_CNTXT_MSI_BASE_LSB_ADDR(n), \
  2179. mask)
  2180. #define HWIO_EE_n_CNTXT_MSI_BASE_LSB_OUTI(n, val) out_dword( \
  2181. HWIO_EE_n_CNTXT_MSI_BASE_LSB_ADDR(n), \
  2182. val)
  2183. #define HWIO_EE_n_CNTXT_MSI_BASE_LSB_OUTMI(n, mask, \
  2184. val) out_dword_masked_ns( \
  2185. HWIO_EE_n_CNTXT_MSI_BASE_LSB_ADDR( \
  2186. n), \
  2187. mask, \
  2188. val, \
  2189. HWIO_EE_n_CNTXT_MSI_BASE_LSB_INI(n))
  2190. #define HWIO_EE_n_CNTXT_MSI_BASE_LSB_MSI_ADDR_LSB_BMSK 0xffffffff
  2191. #define HWIO_EE_n_CNTXT_MSI_BASE_LSB_MSI_ADDR_LSB_SHFT 0x0
  2192. #define HWIO_EE_n_CNTXT_MSI_BASE_MSB_ADDR(n) (GSI_REG_BASE + 0x0001218c + \
  2193. 0x4000 * (n))
  2194. #define HWIO_EE_n_CNTXT_MSI_BASE_MSB_PHYS(n) (GSI_REG_BASE_PHYS + \
  2195. 0x0001218c + 0x4000 * (n))
  2196. #define HWIO_EE_n_CNTXT_MSI_BASE_MSB_OFFS(n) (GSI_REG_BASE_OFFS + \
  2197. 0x0001218c + 0x4000 * (n))
  2198. #define HWIO_EE_n_CNTXT_MSI_BASE_MSB_RMSK 0xffffffff
  2199. #define HWIO_EE_n_CNTXT_MSI_BASE_MSB_MAXn 2
  2200. #define HWIO_EE_n_CNTXT_MSI_BASE_MSB_ATTR 0x3
  2201. #define HWIO_EE_n_CNTXT_MSI_BASE_MSB_INI(n) in_dword_masked( \
  2202. HWIO_EE_n_CNTXT_MSI_BASE_MSB_ADDR(n), \
  2203. HWIO_EE_n_CNTXT_MSI_BASE_MSB_RMSK)
  2204. #define HWIO_EE_n_CNTXT_MSI_BASE_MSB_INMI(n, mask) in_dword_masked( \
  2205. HWIO_EE_n_CNTXT_MSI_BASE_MSB_ADDR(n), \
  2206. mask)
  2207. #define HWIO_EE_n_CNTXT_MSI_BASE_MSB_OUTI(n, val) out_dword( \
  2208. HWIO_EE_n_CNTXT_MSI_BASE_MSB_ADDR(n), \
  2209. val)
  2210. #define HWIO_EE_n_CNTXT_MSI_BASE_MSB_OUTMI(n, mask, \
  2211. val) out_dword_masked_ns( \
  2212. HWIO_EE_n_CNTXT_MSI_BASE_MSB_ADDR( \
  2213. n), \
  2214. mask, \
  2215. val, \
  2216. HWIO_EE_n_CNTXT_MSI_BASE_MSB_INI(n))
  2217. #define HWIO_EE_n_CNTXT_MSI_BASE_MSB_MSI_ADDR_MSB_BMSK 0xffffffff
  2218. #define HWIO_EE_n_CNTXT_MSI_BASE_MSB_MSI_ADDR_MSB_SHFT 0x0
  2219. #define HWIO_EE_n_CNTXT_INT_VEC_ADDR(n) (GSI_REG_BASE + 0x00012190 + \
  2220. 0x4000 * (n))
  2221. #define HWIO_EE_n_CNTXT_INT_VEC_PHYS(n) (GSI_REG_BASE_PHYS + 0x00012190 + \
  2222. 0x4000 * (n))
  2223. #define HWIO_EE_n_CNTXT_INT_VEC_OFFS(n) (GSI_REG_BASE_OFFS + 0x00012190 + \
  2224. 0x4000 * (n))
  2225. #define HWIO_EE_n_ERROR_LOG_ADDR(n) (GSI_REG_BASE + 0x00012200 + 0x4000 * \
  2226. (n))
  2227. #define HWIO_EE_n_ERROR_LOG_PHYS(n) (GSI_REG_BASE_PHYS + 0x00012200 + \
  2228. 0x4000 * (n))
  2229. #define HWIO_EE_n_ERROR_LOG_OFFS(n) (GSI_REG_BASE_OFFS + 0x00012200 + \
  2230. 0x4000 * (n))
  2231. #define HWIO_EE_n_ERROR_LOG_RMSK 0xffffffff
  2232. #define HWIO_EE_n_ERROR_LOG_MAXn 2
  2233. #define HWIO_EE_n_ERROR_LOG_ATTR 0x3
  2234. #define HWIO_EE_n_ERROR_LOG_INI(n) in_dword_masked( \
  2235. HWIO_EE_n_ERROR_LOG_ADDR(n), \
  2236. HWIO_EE_n_ERROR_LOG_RMSK)
  2237. #define HWIO_EE_n_ERROR_LOG_INMI(n, mask) in_dword_masked( \
  2238. HWIO_EE_n_ERROR_LOG_ADDR(n), \
  2239. mask)
  2240. #define HWIO_EE_n_ERROR_LOG_OUTI(n, val) out_dword( \
  2241. HWIO_EE_n_ERROR_LOG_ADDR(n), \
  2242. val)
  2243. #define HWIO_EE_n_ERROR_LOG_OUTMI(n, mask, val) out_dword_masked_ns( \
  2244. HWIO_EE_n_ERROR_LOG_ADDR(n), \
  2245. mask, \
  2246. val, \
  2247. HWIO_EE_n_ERROR_LOG_INI(n))
  2248. #define HWIO_EE_n_ERROR_LOG_ERROR_LOG_BMSK 0xffffffff
  2249. #define HWIO_EE_n_ERROR_LOG_ERROR_LOG_SHFT 0x0
  2250. #define HWIO_EE_n_ERROR_LOG_CLR_ADDR(n) (GSI_REG_BASE + 0x00012210 + \
  2251. 0x4000 * (n))
  2252. #define HWIO_EE_n_ERROR_LOG_CLR_PHYS(n) (GSI_REG_BASE_PHYS + 0x00012210 + \
  2253. 0x4000 * (n))
  2254. #define HWIO_EE_n_ERROR_LOG_CLR_OFFS(n) (GSI_REG_BASE_OFFS + 0x00012210 + \
  2255. 0x4000 * (n))
  2256. #define HWIO_EE_n_ERROR_LOG_CLR_RMSK 0xffffffff
  2257. #define HWIO_EE_n_ERROR_LOG_CLR_MAXn 2
  2258. #define HWIO_EE_n_ERROR_LOG_CLR_ATTR 0x2
  2259. #define HWIO_EE_n_ERROR_LOG_CLR_OUTI(n, val) out_dword( \
  2260. HWIO_EE_n_ERROR_LOG_CLR_ADDR(n), \
  2261. val)
  2262. #define HWIO_EE_n_ERROR_LOG_CLR_ERROR_LOG_CLR_BMSK 0xffffffff
  2263. #define HWIO_EE_n_ERROR_LOG_CLR_ERROR_LOG_CLR_SHFT 0x0
  2264. #define HWIO_EE_n_CNTXT_SCRATCH_0_ADDR(n) (GSI_REG_BASE + 0x00012400 + \
  2265. 0x4000 * (n))
  2266. #define HWIO_EE_n_CNTXT_SCRATCH_0_PHYS(n) (GSI_REG_BASE_PHYS + \
  2267. 0x00012400 + 0x4000 * (n))
  2268. #define HWIO_EE_n_CNTXT_SCRATCH_0_OFFS(n) (GSI_REG_BASE_OFFS + \
  2269. 0x00012400 + 0x4000 * (n))
  2270. #define HWIO_EE_n_CNTXT_SCRATCH_0_RMSK 0xffffffff
  2271. #define HWIO_EE_n_CNTXT_SCRATCH_0_MAXn 2
  2272. #define HWIO_EE_n_CNTXT_SCRATCH_0_ATTR 0x3
  2273. #define HWIO_EE_n_CNTXT_SCRATCH_0_INI(n) in_dword_masked( \
  2274. HWIO_EE_n_CNTXT_SCRATCH_0_ADDR(n), \
  2275. HWIO_EE_n_CNTXT_SCRATCH_0_RMSK)
  2276. #define HWIO_EE_n_CNTXT_SCRATCH_0_INMI(n, mask) in_dword_masked( \
  2277. HWIO_EE_n_CNTXT_SCRATCH_0_ADDR(n), \
  2278. mask)
  2279. #define HWIO_EE_n_CNTXT_SCRATCH_0_OUTI(n, val) out_dword( \
  2280. HWIO_EE_n_CNTXT_SCRATCH_0_ADDR(n), \
  2281. val)
  2282. #define HWIO_EE_n_CNTXT_SCRATCH_0_OUTMI(n, mask, val) out_dword_masked_ns( \
  2283. HWIO_EE_n_CNTXT_SCRATCH_0_ADDR(n), \
  2284. mask, \
  2285. val, \
  2286. HWIO_EE_n_CNTXT_SCRATCH_0_INI(n))
  2287. #define HWIO_EE_n_CNTXT_SCRATCH_0_SCRATCH_BMSK 0xffffffff
  2288. #define HWIO_EE_n_CNTXT_SCRATCH_0_SCRATCH_SHFT 0x0
  2289. #define HWIO_EE_n_CNTXT_SCRATCH_1_ADDR(n) (GSI_REG_BASE + 0x00012404 + \
  2290. 0x4000 * (n))
  2291. #define HWIO_EE_n_CNTXT_SCRATCH_1_PHYS(n) (GSI_REG_BASE_PHYS + \
  2292. 0x00012404 + 0x4000 * (n))
  2293. #define HWIO_EE_n_CNTXT_SCRATCH_1_OFFS(n) (GSI_REG_BASE_OFFS + \
  2294. 0x00012404 + 0x4000 * (n))
  2295. #define HWIO_EE_n_CNTXT_SCRATCH_1_RMSK 0xffffffff
  2296. #define HWIO_EE_n_CNTXT_SCRATCH_1_MAXn 2
  2297. #define HWIO_EE_n_CNTXT_SCRATCH_1_ATTR 0x3
  2298. #define HWIO_EE_n_CNTXT_SCRATCH_1_INI(n) in_dword_masked( \
  2299. HWIO_EE_n_CNTXT_SCRATCH_1_ADDR(n), \
  2300. HWIO_EE_n_CNTXT_SCRATCH_1_RMSK)
  2301. #define HWIO_EE_n_CNTXT_SCRATCH_1_INMI(n, mask) in_dword_masked( \
  2302. HWIO_EE_n_CNTXT_SCRATCH_1_ADDR(n), \
  2303. mask)
  2304. #define HWIO_EE_n_CNTXT_SCRATCH_1_OUTI(n, val) out_dword( \
  2305. HWIO_EE_n_CNTXT_SCRATCH_1_ADDR(n), \
  2306. val)
  2307. #define HWIO_EE_n_CNTXT_SCRATCH_1_OUTMI(n, mask, val) out_dword_masked_ns( \
  2308. HWIO_EE_n_CNTXT_SCRATCH_1_ADDR(n), \
  2309. mask, \
  2310. val, \
  2311. HWIO_EE_n_CNTXT_SCRATCH_1_INI(n))
  2312. #define HWIO_EE_n_CNTXT_SCRATCH_1_SCRATCH_BMSK 0xffffffff
  2313. #define HWIO_EE_n_CNTXT_SCRATCH_1_SCRATCH_SHFT 0x0
  2314. #define HWIO_GSI_MCS_CFG_ADDR (GSI_REG_BASE + 0x0000b000)
  2315. #define HWIO_GSI_MCS_CFG_PHYS (GSI_REG_BASE_PHYS + 0x0000b000)
  2316. #define HWIO_GSI_MCS_CFG_OFFS (GSI_REG_BASE_OFFS + 0x0000b000)
  2317. #define HWIO_GSI_TZ_FW_AUTH_LOCK_ADDR (GSI_REG_BASE + 0x0000b008)
  2318. #define HWIO_GSI_TZ_FW_AUTH_LOCK_PHYS (GSI_REG_BASE_PHYS + 0x0000b008)
  2319. #define HWIO_GSI_TZ_FW_AUTH_LOCK_OFFS (GSI_REG_BASE_OFFS + 0x0000b008)
  2320. #define HWIO_GSI_MSA_FW_AUTH_LOCK_ADDR (GSI_REG_BASE + 0x0000b010)
  2321. #define HWIO_GSI_MSA_FW_AUTH_LOCK_PHYS (GSI_REG_BASE_PHYS + 0x0000b010)
  2322. #define HWIO_GSI_MSA_FW_AUTH_LOCK_OFFS (GSI_REG_BASE_OFFS + 0x0000b010)
  2323. #define HWIO_GSI_SP_FW_AUTH_LOCK_ADDR (GSI_REG_BASE + 0x0000b018)
  2324. #define HWIO_GSI_SP_FW_AUTH_LOCK_PHYS (GSI_REG_BASE_PHYS + 0x0000b018)
  2325. #define HWIO_GSI_SP_FW_AUTH_LOCK_OFFS (GSI_REG_BASE_OFFS + 0x0000b018)
  2326. #define HWIO_INTER_EE_n_ORIGINATOR_EE_ADDR(n) (GSI_REG_BASE + 0x0000c000 + \
  2327. 0x1000 * (n))
  2328. #define HWIO_INTER_EE_n_ORIGINATOR_EE_PHYS(n) (GSI_REG_BASE_PHYS + \
  2329. 0x0000c000 + 0x1000 * (n))
  2330. #define HWIO_INTER_EE_n_ORIGINATOR_EE_OFFS(n) (GSI_REG_BASE_OFFS + \
  2331. 0x0000c000 + 0x1000 * (n))
  2332. #define HWIO_INTER_EE_n_GSI_CH_CMD_ADDR(n) (GSI_REG_BASE + 0x0000c008 + \
  2333. 0x1000 * (n))
  2334. #define HWIO_INTER_EE_n_GSI_CH_CMD_PHYS(n) (GSI_REG_BASE_PHYS + \
  2335. 0x0000c008 + 0x1000 * (n))
  2336. #define HWIO_INTER_EE_n_GSI_CH_CMD_OFFS(n) (GSI_REG_BASE_OFFS + \
  2337. 0x0000c008 + 0x1000 * (n))
  2338. #define HWIO_INTER_EE_n_EV_CH_CMD_ADDR(n) (GSI_REG_BASE + 0x0000c010 + \
  2339. 0x1000 * (n))
  2340. #define HWIO_INTER_EE_n_EV_CH_CMD_PHYS(n) (GSI_REG_BASE_PHYS + \
  2341. 0x0000c010 + 0x1000 * (n))
  2342. #define HWIO_INTER_EE_n_EV_CH_CMD_OFFS(n) (GSI_REG_BASE_OFFS + \
  2343. 0x0000c010 + 0x1000 * (n))
  2344. #define HWIO_INTER_EE_n_SRC_GSI_CH_IRQ_ADDR(n) (GSI_REG_BASE + \
  2345. 0x0000c018 + 0x1000 * (n))
  2346. #define HWIO_INTER_EE_n_SRC_GSI_CH_IRQ_PHYS(n) (GSI_REG_BASE_PHYS + \
  2347. 0x0000c018 + 0x1000 * (n))
  2348. #define HWIO_INTER_EE_n_SRC_GSI_CH_IRQ_OFFS(n) (GSI_REG_BASE_OFFS + \
  2349. 0x0000c018 + 0x1000 * (n))
  2350. #define HWIO_INTER_EE_n_SRC_EV_CH_IRQ_ADDR(n) (GSI_REG_BASE + 0x0000c01c + \
  2351. 0x1000 * (n))
  2352. #define HWIO_INTER_EE_n_SRC_EV_CH_IRQ_PHYS(n) (GSI_REG_BASE_PHYS + \
  2353. 0x0000c01c + 0x1000 * (n))
  2354. #define HWIO_INTER_EE_n_SRC_EV_CH_IRQ_OFFS(n) (GSI_REG_BASE_OFFS + \
  2355. 0x0000c01c + 0x1000 * (n))
  2356. #define HWIO_INTER_EE_n_SRC_GSI_CH_IRQ_MSK_ADDR(n) (GSI_REG_BASE + \
  2357. 0x0000c020 + 0x1000 * \
  2358. (n))
  2359. #define HWIO_INTER_EE_n_SRC_GSI_CH_IRQ_MSK_PHYS(n) (GSI_REG_BASE_PHYS + \
  2360. 0x0000c020 + 0x1000 * \
  2361. (n))
  2362. #define HWIO_INTER_EE_n_SRC_GSI_CH_IRQ_MSK_OFFS(n) (GSI_REG_BASE_OFFS + \
  2363. 0x0000c020 + 0x1000 * \
  2364. (n))
  2365. #define HWIO_INTER_EE_n_SRC_EV_CH_IRQ_MSK_ADDR(n) (GSI_REG_BASE + \
  2366. 0x0000c024 + 0x1000 * \
  2367. (n))
  2368. #define HWIO_INTER_EE_n_SRC_EV_CH_IRQ_MSK_PHYS(n) (GSI_REG_BASE_PHYS + \
  2369. 0x0000c024 + 0x1000 * \
  2370. (n))
  2371. #define HWIO_INTER_EE_n_SRC_EV_CH_IRQ_MSK_OFFS(n) (GSI_REG_BASE_OFFS + \
  2372. 0x0000c024 + 0x1000 * \
  2373. (n))
  2374. #define HWIO_INTER_EE_n_SRC_GSI_CH_IRQ_CLR_ADDR(n) (GSI_REG_BASE + \
  2375. 0x0000c028 + 0x1000 * \
  2376. (n))
  2377. #define HWIO_INTER_EE_n_SRC_GSI_CH_IRQ_CLR_PHYS(n) (GSI_REG_BASE_PHYS + \
  2378. 0x0000c028 + 0x1000 * \
  2379. (n))
  2380. #define HWIO_INTER_EE_n_SRC_GSI_CH_IRQ_CLR_OFFS(n) (GSI_REG_BASE_OFFS + \
  2381. 0x0000c028 + 0x1000 * \
  2382. (n))
  2383. #define HWIO_INTER_EE_n_SRC_EV_CH_IRQ_CLR_ADDR(n) (GSI_REG_BASE + \
  2384. 0x0000c02c + 0x1000 * \
  2385. (n))
  2386. #define HWIO_INTER_EE_n_SRC_EV_CH_IRQ_CLR_PHYS(n) (GSI_REG_BASE_PHYS + \
  2387. 0x0000c02c + 0x1000 * \
  2388. (n))
  2389. #define HWIO_INTER_EE_n_SRC_EV_CH_IRQ_CLR_OFFS(n) (GSI_REG_BASE_OFFS + \
  2390. 0x0000c02c + 0x1000 * \
  2391. (n))
  2392. #endif