regsbch.h 72 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087
  1. /*
  2. * Copyright (C) 2011-2012, Freescale Semiconductor, Inc. All Rights Reserved
  3. * THIS SOURCE CODE IS CONFIDENTIAL AND PROPRIETARY AND MAY NOT
  4. * BE USED OR DISTRIBUTED WITHOUT THE WRITTEN PERMISSION OF
  5. * Freescale Semiconductor, Inc.
  6. */
  7. #ifndef _BCH_H
  8. #define _BCH_H 1
  9. #include "regs.h"
  10. //#include "registers.h"
  11. #ifndef REGS_BCH_BASE
  12. #define REGS_BCH_BASE (REGS_BASE + 0x114000)
  13. #endif
  14. /*
  15. * HW_BCH_CTRL - Hardware BCH ECC Accelerator Control Register
  16. */
  17. #ifndef __LANGUAGE_ASM__
  18. typedef union {
  19. reg32_t U;
  20. struct {
  21. unsigned COMPLETE_IRQ:1;
  22. unsigned RSVD0:1;
  23. unsigned DEBUG_STALL_IRQ:1;
  24. unsigned BM_ERROR_IRQ:1;
  25. unsigned RSVD1:4;
  26. unsigned COMPLETE_IRQ_EN:1;
  27. unsigned RSVD2:1;
  28. unsigned DEBUG_STALL_IRQ_EN:1;
  29. unsigned RSVD3:5;
  30. unsigned M2M_ENABLE:1;
  31. unsigned M2M_ENCODE:1;
  32. unsigned M2M_LAYOUT:2;
  33. unsigned RSVD4:2;
  34. unsigned DEBUGSYNDROME:1;
  35. unsigned RSVD5:7;
  36. unsigned CLKGATE:1;
  37. unsigned SFTRST:1;
  38. } B;
  39. } hw_bch_ctrl_t;
  40. #endif
  41. /*
  42. * constants & macros for entire HW_BCH_CTRL register
  43. */
  44. #define HW_BCH_CTRL_ADDR (0x00114000)
  45. #define HW_BCH_CTRL_SET_ADDR (0x00114004)
  46. #define HW_BCH_CTRL_CLR_ADDR (0x00114008)
  47. #define HW_BCH_CTRL_TOG_ADDR (0x0011400c)
  48. #ifndef __LANGUAGE_ASM__
  49. #ifndef ROCOO_TEST
  50. #define HW_BCH_CTRL (*(volatile hw_bch_ctrl_t *) HW_BCH_CTRL_ADDR)
  51. #define HW_BCH_CTRL_RD() (HW_BCH_CTRL.U)
  52. #define HW_BCH_CTRL_WR(v) (HW_BCH_CTRL.U = (v))
  53. #define HW_BCH_CTRL_SET(v) ((*(volatile reg32_t *) HW_BCH_CTRL_SET_ADDR) = (v))
  54. #define HW_BCH_CTRL_CLR(v) ((*(volatile reg32_t *) HW_BCH_CTRL_CLR_ADDR) = (v))
  55. #define HW_BCH_CTRL_TOG(v) ((*(volatile reg32_t *) HW_BCH_CTRL_TOG_ADDR) = (v))
  56. #else
  57. #define HW_BCH_CTRL_RD() (_rbase->mem32_read(HW_BCH_CTRL_ADDR))
  58. #define HW_BCH_CTRL_WR(v) (_rbase->mem32_write(HW_BCH_CTRL_ADDR,(v)))
  59. #define HW_BCH_CTRL_SET(v) (_rbase->mem32_write(HW_BCH_CTRL_SET_ADDR,(v)))
  60. #define HW_BCH_CTRL_CLR(v) (_rbase->mem32_write(HW_BCH_CTRL_CLR_ADDR,(v)))
  61. #define HW_BCH_CTRL_TOG(v) (_rbase->mem32_write(HW_BCH_CTRL_TOG_ADDR,(v)))
  62. #endif
  63. #endif
  64. /*
  65. * constants & macros for individual HW_BCH_CTRL bitfields
  66. */
  67. /* --- Register HW_BCH_CTRL, field SFTRST */
  68. #define BP_BCH_CTRL_SFTRST 31
  69. #define BM_BCH_CTRL_SFTRST 0x80000000
  70. #ifndef __LANGUAGE_ASM__
  71. #define BF_BCH_CTRL_SFTRST(v) ((((reg32_t) v) << 31) & BM_BCH_CTRL_SFTRST)
  72. #else
  73. #define BF_BCH_CTRL_SFTRST(v) (((v) << 31) & BM_BCH_CTRL_SFTRST)
  74. #endif
  75. #ifndef __LANGUAGE_ASM__
  76. #define BW_BCH_CTRL_SFTRST(v) BF_CS1(BCH_CTRL, SFTRST, v)
  77. #endif
  78. #define BV_BCH_CTRL_SFTRST__RUN 0x0
  79. #define BV_BCH_CTRL_SFTRST__RESET 0x1
  80. /* --- Register HW_BCH_CTRL, field CLKGATE */
  81. #define BP_BCH_CTRL_CLKGATE 30
  82. #define BM_BCH_CTRL_CLKGATE 0x40000000
  83. #define BF_BCH_CTRL_CLKGATE(v) (((v) << 30) & BM_BCH_CTRL_CLKGATE)
  84. #ifndef __LANGUAGE_ASM__
  85. #define BW_BCH_CTRL_CLKGATE(v) BF_CS1(BCH_CTRL, CLKGATE, v)
  86. #endif
  87. #define BV_BCH_CTRL_CLKGATE__RUN 0x0
  88. #define BV_BCH_CTRL_CLKGATE__NO_CLKS 0x1
  89. /* --- Register HW_BCH_CTRL, field RSVD5 */
  90. #define BP_BCH_CTRL_RSVD5 23
  91. #define BM_BCH_CTRL_RSVD5 0x3F800000
  92. #define BF_BCH_CTRL_RSVD5(v) (((v) << 23) & BM_BCH_CTRL_RSVD5)
  93. /* --- Register HW_BCH_CTRL, field DEBUGSYNDROME */
  94. #define BP_BCH_CTRL_DEBUGSYNDROME 22
  95. #define BM_BCH_CTRL_DEBUGSYNDROME 0x00400000
  96. #define BF_BCH_CTRL_DEBUGSYNDROME(v) (((v) << 22) & BM_BCH_CTRL_DEBUGSYNDROME)
  97. #ifndef __LANGUAGE_ASM__
  98. #define BW_BCH_CTRL_DEBUGSYNDROME(v) BF_CS1(BCH_CTRL, DEBUGSYNDROME, v)
  99. #endif
  100. /* --- Register HW_BCH_CTRL, field RSVD4 */
  101. #define BP_BCH_CTRL_RSVD4 20
  102. #define BM_BCH_CTRL_RSVD4 0x00300000
  103. #define BF_BCH_CTRL_RSVD4(v) (((v) << 20) & BM_BCH_CTRL_RSVD4)
  104. /* --- Register HW_BCH_CTRL, field M2M_LAYOUT */
  105. #define BP_BCH_CTRL_M2M_LAYOUT 18
  106. #define BM_BCH_CTRL_M2M_LAYOUT 0x000C0000
  107. #define BF_BCH_CTRL_M2M_LAYOUT(v) (((v) << 18) & BM_BCH_CTRL_M2M_LAYOUT)
  108. #ifndef __LANGUAGE_ASM__
  109. #define BW_BCH_CTRL_M2M_LAYOUT(v) BF_CS1(BCH_CTRL, M2M_LAYOUT, v)
  110. #endif
  111. /* --- Register HW_BCH_CTRL, field M2M_ENCODE */
  112. #define BP_BCH_CTRL_M2M_ENCODE 17
  113. #define BM_BCH_CTRL_M2M_ENCODE 0x00020000
  114. #define BF_BCH_CTRL_M2M_ENCODE(v) (((v) << 17) & BM_BCH_CTRL_M2M_ENCODE)
  115. #ifndef __LANGUAGE_ASM__
  116. #define BW_BCH_CTRL_M2M_ENCODE(v) BF_CS1(BCH_CTRL, M2M_ENCODE, v)
  117. #endif
  118. /* --- Register HW_BCH_CTRL, field M2M_ENABLE */
  119. #define BP_BCH_CTRL_M2M_ENABLE 16
  120. #define BM_BCH_CTRL_M2M_ENABLE 0x00010000
  121. #define BF_BCH_CTRL_M2M_ENABLE(v) (((v) << 16) & BM_BCH_CTRL_M2M_ENABLE)
  122. #ifndef __LANGUAGE_ASM__
  123. #define BW_BCH_CTRL_M2M_ENABLE(v) BF_CS1(BCH_CTRL, M2M_ENABLE, v)
  124. #endif
  125. /* --- Register HW_BCH_CTRL, field RSVD3 */
  126. #define BP_BCH_CTRL_RSVD3 11
  127. #define BM_BCH_CTRL_RSVD3 0x0000F800
  128. #define BF_BCH_CTRL_RSVD3(v) (((v) << 11) & BM_BCH_CTRL_RSVD3)
  129. /* --- Register HW_BCH_CTRL, field DEBUG_STALL_IRQ_EN */
  130. #define BP_BCH_CTRL_DEBUG_STALL_IRQ_EN 10
  131. #define BM_BCH_CTRL_DEBUG_STALL_IRQ_EN 0x00000400
  132. #define BF_BCH_CTRL_DEBUG_STALL_IRQ_EN(v) (((v) << 10) & BM_BCH_CTRL_DEBUG_STALL_IRQ_EN)
  133. #ifndef __LANGUAGE_ASM__
  134. #define BW_BCH_CTRL_DEBUG_STALL_IRQ_EN(v) BF_CS1(BCH_CTRL, DEBUG_STALL_IRQ_EN, v)
  135. #endif
  136. /* --- Register HW_BCH_CTRL, field RSVD2 */
  137. #define BP_BCH_CTRL_RSVD2 9
  138. #define BM_BCH_CTRL_RSVD2 0x00000200
  139. #define BF_BCH_CTRL_RSVD2(v) (((v) << 9) & BM_BCH_CTRL_RSVD2)
  140. /* --- Register HW_BCH_CTRL, field COMPLETE_IRQ_EN */
  141. #define BP_BCH_CTRL_COMPLETE_IRQ_EN 8
  142. #define BM_BCH_CTRL_COMPLETE_IRQ_EN 0x00000100
  143. #define BF_BCH_CTRL_COMPLETE_IRQ_EN(v) (((v) << 8) & BM_BCH_CTRL_COMPLETE_IRQ_EN)
  144. #ifndef __LANGUAGE_ASM__
  145. #define BW_BCH_CTRL_COMPLETE_IRQ_EN(v) BF_CS1(BCH_CTRL, COMPLETE_IRQ_EN, v)
  146. #endif
  147. /* --- Register HW_BCH_CTRL, field RSVD1 */
  148. #define BP_BCH_CTRL_RSVD1 4
  149. #define BM_BCH_CTRL_RSVD1 0x000000F0
  150. #define BF_BCH_CTRL_RSVD1(v) (((v) << 4) & BM_BCH_CTRL_RSVD1)
  151. /* --- Register HW_BCH_CTRL, field BM_ERROR_IRQ */
  152. #define BP_BCH_CTRL_BM_ERROR_IRQ 3
  153. #define BM_BCH_CTRL_BM_ERROR_IRQ 0x00000008
  154. #define BF_BCH_CTRL_BM_ERROR_IRQ(v) (((v) << 3) & BM_BCH_CTRL_BM_ERROR_IRQ)
  155. #ifndef __LANGUAGE_ASM__
  156. #define BW_BCH_CTRL_BM_ERROR_IRQ(v) BF_CS1(BCH_CTRL, BM_ERROR_IRQ, v)
  157. #endif
  158. /* --- Register HW_BCH_CTRL, field DEBUG_STALL_IRQ */
  159. #define BP_BCH_CTRL_DEBUG_STALL_IRQ 2
  160. #define BM_BCH_CTRL_DEBUG_STALL_IRQ 0x00000004
  161. #define BF_BCH_CTRL_DEBUG_STALL_IRQ(v) (((v) << 2) & BM_BCH_CTRL_DEBUG_STALL_IRQ)
  162. #ifndef __LANGUAGE_ASM__
  163. #define BW_BCH_CTRL_DEBUG_STALL_IRQ(v) BF_CS1(BCH_CTRL, DEBUG_STALL_IRQ, v)
  164. #endif
  165. /* --- Register HW_BCH_CTRL, field RSVD0 */
  166. #define BP_BCH_CTRL_RSVD0 1
  167. #define BM_BCH_CTRL_RSVD0 0x00000002
  168. #define BF_BCH_CTRL_RSVD0(v) (((v) << 1) & BM_BCH_CTRL_RSVD0)
  169. /* --- Register HW_BCH_CTRL, field COMPLETE_IRQ */
  170. #define BP_BCH_CTRL_COMPLETE_IRQ 0
  171. #define BM_BCH_CTRL_COMPLETE_IRQ 0x00000001
  172. #define BF_BCH_CTRL_COMPLETE_IRQ(v) (((v) << 0) & BM_BCH_CTRL_COMPLETE_IRQ)
  173. #ifndef __LANGUAGE_ASM__
  174. #define BW_BCH_CTRL_COMPLETE_IRQ(v) BF_CS1(BCH_CTRL, COMPLETE_IRQ, v)
  175. #endif
  176. /*
  177. * HW_BCH_STATUS0 - Hardware ECC Accelerator Status Register 0
  178. */
  179. #ifndef __LANGUAGE_ASM__
  180. typedef union {
  181. reg32_t U;
  182. struct {
  183. unsigned RSVD0:2;
  184. unsigned UNCORRECTABLE:1;
  185. unsigned CORRECTED:1;
  186. unsigned ALLONES:1;
  187. unsigned RSVD1:3;
  188. unsigned STATUS_BLK0:8;
  189. unsigned COMPLETED_CE:4;
  190. unsigned HANDLE:12;
  191. } B;
  192. } hw_bch_status0_t;
  193. #endif
  194. /*
  195. * constants & macros for entire HW_BCH_STATUS0 register
  196. */
  197. #define HW_BCH_STATUS0_ADDR (0x00114010)
  198. #ifndef __LANGUAGE_ASM__
  199. #ifndef ROCOO_TEST
  200. #define HW_BCH_STATUS0 (*(volatile hw_bch_status0_t *) HW_BCH_STATUS0_ADDR)
  201. #define HW_BCH_STATUS0_RD() (HW_BCH_STATUS0.U)
  202. #else
  203. #define HW_BCH_STATUS0_RD() (_rbase->mem32_read(HW_BCH_STATUS0_ADDR))
  204. #endif
  205. #endif
  206. /*
  207. * constants & macros for individual HW_BCH_STATUS0 bitfields
  208. */
  209. /* --- Register HW_BCH_STATUS0, field HANDLE */
  210. #define BP_BCH_STATUS0_HANDLE 20
  211. #define BM_BCH_STATUS0_HANDLE 0xFFF00000
  212. #ifndef __LANGUAGE_ASM__
  213. #define BF_BCH_STATUS0_HANDLE(v) ((((reg32_t) v) << 20) & BM_BCH_STATUS0_HANDLE)
  214. #else
  215. #define BF_BCH_STATUS0_HANDLE(v) (((v) << 20) & BM_BCH_STATUS0_HANDLE)
  216. #endif
  217. /* --- Register HW_BCH_STATUS0, field COMPLETED_CE */
  218. #define BP_BCH_STATUS0_COMPLETED_CE 16
  219. #define BM_BCH_STATUS0_COMPLETED_CE 0x000F0000
  220. #define BF_BCH_STATUS0_COMPLETED_CE(v) (((v) << 16) & BM_BCH_STATUS0_COMPLETED_CE)
  221. /* --- Register HW_BCH_STATUS0, field STATUS_BLK0 */
  222. #define BP_BCH_STATUS0_STATUS_BLK0 8
  223. #define BM_BCH_STATUS0_STATUS_BLK0 0x0000FF00
  224. #define BF_BCH_STATUS0_STATUS_BLK0(v) (((v) << 8) & BM_BCH_STATUS0_STATUS_BLK0)
  225. #define BV_BCH_STATUS0_STATUS_BLK0__ZERO 0x00
  226. #define BV_BCH_STATUS0_STATUS_BLK0__ERROR1 0x01
  227. #define BV_BCH_STATUS0_STATUS_BLK0__ERROR2 0x02
  228. #define BV_BCH_STATUS0_STATUS_BLK0__ERROR3 0x03
  229. #define BV_BCH_STATUS0_STATUS_BLK0__ERROR4 0x04
  230. #define BV_BCH_STATUS0_STATUS_BLK0__UNCORRECTABLE 0xFE
  231. #define BV_BCH_STATUS0_STATUS_BLK0__ERASED 0xFF
  232. /* --- Register HW_BCH_STATUS0, field RSVD1 */
  233. #define BP_BCH_STATUS0_RSVD1 5
  234. #define BM_BCH_STATUS0_RSVD1 0x000000E0
  235. #define BF_BCH_STATUS0_RSVD1(v) (((v) << 5) & BM_BCH_STATUS0_RSVD1)
  236. /* --- Register HW_BCH_STATUS0, field ALLONES */
  237. #define BP_BCH_STATUS0_ALLONES 4
  238. #define BM_BCH_STATUS0_ALLONES 0x00000010
  239. #define BF_BCH_STATUS0_ALLONES(v) (((v) << 4) & BM_BCH_STATUS0_ALLONES)
  240. /* --- Register HW_BCH_STATUS0, field CORRECTED */
  241. #define BP_BCH_STATUS0_CORRECTED 3
  242. #define BM_BCH_STATUS0_CORRECTED 0x00000008
  243. #define BF_BCH_STATUS0_CORRECTED(v) (((v) << 3) & BM_BCH_STATUS0_CORRECTED)
  244. /* --- Register HW_BCH_STATUS0, field UNCORRECTABLE */
  245. #define BP_BCH_STATUS0_UNCORRECTABLE 2
  246. #define BM_BCH_STATUS0_UNCORRECTABLE 0x00000004
  247. #define BF_BCH_STATUS0_UNCORRECTABLE(v) (((v) << 2) & BM_BCH_STATUS0_UNCORRECTABLE)
  248. /* --- Register HW_BCH_STATUS0, field RSVD0 */
  249. #define BP_BCH_STATUS0_RSVD0 0
  250. #define BM_BCH_STATUS0_RSVD0 0x00000003
  251. #define BF_BCH_STATUS0_RSVD0(v) (((v) << 0) & BM_BCH_STATUS0_RSVD0)
  252. /*
  253. * HW_BCH_MODE - Hardware ECC Accelerator Mode Register
  254. */
  255. #ifndef __LANGUAGE_ASM__
  256. typedef union {
  257. reg32_t U;
  258. struct {
  259. unsigned ERASE_THRESHOLD:8;
  260. unsigned RSVD:24;
  261. } B;
  262. } hw_bch_mode_t;
  263. #endif
  264. /*
  265. * constants & macros for entire HW_BCH_MODE register
  266. */
  267. #define HW_BCH_MODE_ADDR (0x00114020)
  268. #ifndef __LANGUAGE_ASM__
  269. #ifndef ROCOO_TEST
  270. #define HW_BCH_MODE (*(volatile hw_bch_mode_t *) HW_BCH_MODE_ADDR)
  271. #define HW_BCH_MODE_RD() (HW_BCH_MODE.U)
  272. #define HW_BCH_MODE_WR(v) (HW_BCH_MODE.U = (v))
  273. #define HW_BCH_MODE_SET(v) (HW_BCH_MODE_WR(HW_BCH_MODE_RD() | (v)))
  274. #define HW_BCH_MODE_CLR(v) (HW_BCH_MODE_WR(HW_BCH_MODE_RD() & ~(v)))
  275. #define HW_BCH_MODE_TOG(v) (HW_BCH_MODE_WR(HW_BCH_MODE_RD() ^ (v)))
  276. #else
  277. #define HW_BCH_MODE_RD() (_rbase->mem32_read(HW_BCH_MODE_ADDR))
  278. #define HW_BCH_MODE_WR(v) (_rbase->mem32_write(HW_BCH_MODE_ADDR,(v)))
  279. #define HW_BCH_MODE_SET(v) (HW_BCH_MODE_WR(HW_BCH_MODE_RD() | (v)))
  280. #define HW_BCH_MODE_CLR(v) (HW_BCH_MODE_WR(HW_BCH_MODE_RD() & ~(v)))
  281. #define HW_BCH_MODE_TOG(v) (HW_BCH_MODE_WR(HW_BCH_MODE_RD() ^ (v)))
  282. #endif
  283. #endif
  284. /*
  285. * constants & macros for individual HW_BCH_MODE bitfields
  286. */
  287. /* --- Register HW_BCH_MODE, field RSVD */
  288. #define BP_BCH_MODE_RSVD 8
  289. #define BM_BCH_MODE_RSVD 0xFFFFFF00
  290. #ifndef __LANGUAGE_ASM__
  291. #define BF_BCH_MODE_RSVD(v) ((((reg32_t) v) << 8) & BM_BCH_MODE_RSVD)
  292. #else
  293. #define BF_BCH_MODE_RSVD(v) (((v) << 8) & BM_BCH_MODE_RSVD)
  294. #endif
  295. /* --- Register HW_BCH_MODE, field ERASE_THRESHOLD */
  296. #define BP_BCH_MODE_ERASE_THRESHOLD 0
  297. #define BM_BCH_MODE_ERASE_THRESHOLD 0x000000FF
  298. #define BF_BCH_MODE_ERASE_THRESHOLD(v) (((v) << 0) & BM_BCH_MODE_ERASE_THRESHOLD)
  299. #ifndef __LANGUAGE_ASM__
  300. #define BW_BCH_MODE_ERASE_THRESHOLD(v) (HW_BCH_MODE.B.ERASE_THRESHOLD = (v))
  301. #endif
  302. /*
  303. * HW_BCH_ENCODEPTR - Hardware BCH ECC Loopback Encode Buffer Register
  304. */
  305. #ifndef __LANGUAGE_ASM__
  306. typedef union {
  307. reg32_t U;
  308. struct {
  309. unsigned ADDR:32;
  310. } B;
  311. } hw_bch_encodeptr_t;
  312. #endif
  313. /*
  314. * constants & macros for entire HW_BCH_ENCODEPTR register
  315. */
  316. #define HW_BCH_ENCODEPTR_ADDR (0x00114030)
  317. #ifndef __LANGUAGE_ASM__
  318. #ifndef ROCOO_TEST
  319. #define HW_BCH_ENCODEPTR (*(volatile hw_bch_encodeptr_t *) HW_BCH_ENCODEPTR_ADDR)
  320. #define HW_BCH_ENCODEPTR_RD() (HW_BCH_ENCODEPTR.U)
  321. #define HW_BCH_ENCODEPTR_WR(v) (HW_BCH_ENCODEPTR.U = (v))
  322. #define HW_BCH_ENCODEPTR_SET(v) (HW_BCH_ENCODEPTR_WR(HW_BCH_ENCODEPTR_RD() | (v)))
  323. #define HW_BCH_ENCODEPTR_CLR(v) (HW_BCH_ENCODEPTR_WR(HW_BCH_ENCODEPTR_RD() & ~(v)))
  324. #define HW_BCH_ENCODEPTR_TOG(v) (HW_BCH_ENCODEPTR_WR(HW_BCH_ENCODEPTR_RD() ^ (v)))
  325. #else
  326. #define HW_BCH_ENCODEPTR_RD() (_rbase->mem32_read(HW_BCH_ENCODEPTR_ADDR))
  327. #define HW_BCH_ENCODEPTR_WR(v) (_rbase->mem32_write(HW_BCH_ENCODEPTR_ADDR,(v)))
  328. #define HW_BCH_ENCODEPTR_SET(v) (HW_BCH_ENCODEPTR_WR(HW_BCH_ENCODEPTR_RD() | (v)))
  329. #define HW_BCH_ENCODEPTR_CLR(v) (HW_BCH_ENCODEPTR_WR(HW_BCH_ENCODEPTR_RD() & ~(v)))
  330. #define HW_BCH_ENCODEPTR_TOG(v) (HW_BCH_ENCODEPTR_WR(HW_BCH_ENCODEPTR_RD() ^ (v)))
  331. #endif
  332. #endif
  333. /*
  334. * constants & macros for individual HW_BCH_ENCODEPTR bitfields
  335. */
  336. /* --- Register HW_BCH_ENCODEPTR, field ADDR */
  337. #define BP_BCH_ENCODEPTR_ADDR 0
  338. #define BM_BCH_ENCODEPTR_ADDR 0xFFFFFFFF
  339. #ifndef __LANGUAGE_ASM__
  340. #define BF_BCH_ENCODEPTR_ADDR(v) ((reg32_t) v)
  341. #else
  342. #define BF_BCH_ENCODEPTR_ADDR(v) (v)
  343. #endif
  344. #ifndef __LANGUAGE_ASM__
  345. #define BW_BCH_ENCODEPTR_ADDR(v) (HW_BCH_ENCODEPTR.B.ADDR = (v))
  346. #endif
  347. /*
  348. * HW_BCH_DATAPTR - Hardware BCH ECC Loopback Data Buffer Register
  349. */
  350. #ifndef __LANGUAGE_ASM__
  351. typedef union {
  352. reg32_t U;
  353. struct {
  354. unsigned ADDR:32;
  355. } B;
  356. } hw_bch_dataptr_t;
  357. #endif
  358. /*
  359. * constants & macros for entire HW_BCH_DATAPTR register
  360. */
  361. #define HW_BCH_DATAPTR_ADDR (0x00114040)
  362. #ifndef __LANGUAGE_ASM__
  363. #ifndef ROCOO_TEST
  364. #define HW_BCH_DATAPTR (*(volatile hw_bch_dataptr_t *) HW_BCH_DATAPTR_ADDR)
  365. #define HW_BCH_DATAPTR_RD() (HW_BCH_DATAPTR.U)
  366. #define HW_BCH_DATAPTR_WR(v) (HW_BCH_DATAPTR.U = (v))
  367. #define HW_BCH_DATAPTR_SET(v) (HW_BCH_DATAPTR_WR(HW_BCH_DATAPTR_RD() | (v)))
  368. #define HW_BCH_DATAPTR_CLR(v) (HW_BCH_DATAPTR_WR(HW_BCH_DATAPTR_RD() & ~(v)))
  369. #define HW_BCH_DATAPTR_TOG(v) (HW_BCH_DATAPTR_WR(HW_BCH_DATAPTR_RD() ^ (v)))
  370. #else
  371. #define HW_BCH_DATAPTR_RD() (_rbase->mem32_read(HW_BCH_DATAPTR_ADDR))
  372. #define HW_BCH_DATAPTR_WR(v) (_rbase->mem32_write(HW_BCH_DATAPTR_ADDR,(v)))
  373. #define HW_BCH_DATAPTR_SET(v) (HW_BCH_DATAPTR_WR(HW_BCH_DATAPTR_RD() | (v)))
  374. #define HW_BCH_DATAPTR_CLR(v) (HW_BCH_DATAPTR_WR(HW_BCH_DATAPTR_RD() & ~(v)))
  375. #define HW_BCH_DATAPTR_TOG(v) (HW_BCH_DATAPTR_WR(HW_BCH_DATAPTR_RD() ^ (v)))
  376. #endif
  377. #endif
  378. /*
  379. * constants & macros for individual HW_BCH_DATAPTR bitfields
  380. */
  381. /* --- Register HW_BCH_DATAPTR, field ADDR */
  382. #define BP_BCH_DATAPTR_ADDR 0
  383. #define BM_BCH_DATAPTR_ADDR 0xFFFFFFFF
  384. #ifndef __LANGUAGE_ASM__
  385. #define BF_BCH_DATAPTR_ADDR(v) ((reg32_t) v)
  386. #else
  387. #define BF_BCH_DATAPTR_ADDR(v) (v)
  388. #endif
  389. #ifndef __LANGUAGE_ASM__
  390. #define BW_BCH_DATAPTR_ADDR(v) (HW_BCH_DATAPTR.B.ADDR = (v))
  391. #endif
  392. /*
  393. * HW_BCH_METAPTR - Hardware BCH ECC Loopback Metadata Buffer Register
  394. */
  395. #ifndef __LANGUAGE_ASM__
  396. typedef union {
  397. reg32_t U;
  398. struct {
  399. unsigned ADDR:32;
  400. } B;
  401. } hw_bch_metaptr_t;
  402. #endif
  403. /*
  404. * constants & macros for entire HW_BCH_METAPTR register
  405. */
  406. #define HW_BCH_METAPTR_ADDR (0x00114050)
  407. #ifndef __LANGUAGE_ASM__
  408. #ifndef ROCOO_TEST
  409. #define HW_BCH_METAPTR (*(volatile hw_bch_metaptr_t *) HW_BCH_METAPTR_ADDR)
  410. #define HW_BCH_METAPTR_RD() (HW_BCH_METAPTR.U)
  411. #define HW_BCH_METAPTR_WR(v) (HW_BCH_METAPTR.U = (v))
  412. #define HW_BCH_METAPTR_SET(v) (HW_BCH_METAPTR_WR(HW_BCH_METAPTR_RD() | (v)))
  413. #define HW_BCH_METAPTR_CLR(v) (HW_BCH_METAPTR_WR(HW_BCH_METAPTR_RD() & ~(v)))
  414. #define HW_BCH_METAPTR_TOG(v) (HW_BCH_METAPTR_WR(HW_BCH_METAPTR_RD() ^ (v)))
  415. #else
  416. #define HW_BCH_METAPTR_RD() (_rbase->mem32_read(HW_BCH_METAPTR_ADDR))
  417. #define HW_BCH_METAPTR_WR(v) (_rbase->mem32_write(HW_BCH_METAPTR_ADDR,(v)))
  418. #define HW_BCH_METAPTR_SET(v) (HW_BCH_METAPTR_WR(HW_BCH_METAPTR_RD() | (v)))
  419. #define HW_BCH_METAPTR_CLR(v) (HW_BCH_METAPTR_WR(HW_BCH_METAPTR_RD() & ~(v)))
  420. #define HW_BCH_METAPTR_TOG(v) (HW_BCH_METAPTR_WR(HW_BCH_METAPTR_RD() ^ (v)))
  421. #endif
  422. #endif
  423. /*
  424. * constants & macros for individual HW_BCH_METAPTR bitfields
  425. */
  426. /* --- Register HW_BCH_METAPTR, field ADDR */
  427. #define BP_BCH_METAPTR_ADDR 0
  428. #define BM_BCH_METAPTR_ADDR 0xFFFFFFFF
  429. #ifndef __LANGUAGE_ASM__
  430. #define BF_BCH_METAPTR_ADDR(v) ((reg32_t) v)
  431. #else
  432. #define BF_BCH_METAPTR_ADDR(v) (v)
  433. #endif
  434. #ifndef __LANGUAGE_ASM__
  435. #define BW_BCH_METAPTR_ADDR(v) (HW_BCH_METAPTR.B.ADDR = (v))
  436. #endif
  437. /*
  438. * HW_BCH_LAYOUTSELECT - Hardware ECC Accelerator Layout Select Register
  439. */
  440. #ifndef __LANGUAGE_ASM__
  441. typedef union {
  442. reg32_t U;
  443. struct {
  444. unsigned CS0_SELECT:2;
  445. unsigned CS1_SELECT:2;
  446. unsigned CS2_SELECT:2;
  447. unsigned CS3_SELECT:2;
  448. unsigned CS4_SELECT:2;
  449. unsigned CS5_SELECT:2;
  450. unsigned CS6_SELECT:2;
  451. unsigned CS7_SELECT:2;
  452. unsigned CS8_SELECT:2;
  453. unsigned CS9_SELECT:2;
  454. unsigned CS10_SELECT:2;
  455. unsigned CS11_SELECT:2;
  456. unsigned CS12_SELECT:2;
  457. unsigned CS13_SELECT:2;
  458. unsigned CS14_SELECT:2;
  459. unsigned CS15_SELECT:2;
  460. } B;
  461. } hw_bch_layoutselect_t;
  462. #endif
  463. /*
  464. * constants & macros for entire HW_BCH_LAYOUTSELECT register
  465. */
  466. #define HW_BCH_LAYOUTSELECT_ADDR (0x00114070)
  467. #ifndef __LANGUAGE_ASM__
  468. #ifndef ROCOO_TEST
  469. #define HW_BCH_LAYOUTSELECT (*(volatile hw_bch_layoutselect_t *) HW_BCH_LAYOUTSELECT_ADDR)
  470. #define HW_BCH_LAYOUTSELECT_RD() (HW_BCH_LAYOUTSELECT.U)
  471. #define HW_BCH_LAYOUTSELECT_WR(v) (HW_BCH_LAYOUTSELECT.U = (v))
  472. #define HW_BCH_LAYOUTSELECT_SET(v) (HW_BCH_LAYOUTSELECT_WR(HW_BCH_LAYOUTSELECT_RD() | (v)))
  473. #define HW_BCH_LAYOUTSELECT_CLR(v) (HW_BCH_LAYOUTSELECT_WR(HW_BCH_LAYOUTSELECT_RD() & ~(v)))
  474. #define HW_BCH_LAYOUTSELECT_TOG(v) (HW_BCH_LAYOUTSELECT_WR(HW_BCH_LAYOUTSELECT_RD() ^ (v)))
  475. #else
  476. #define HW_BCH_LAYOUTSELECT_RD() (_rbase->mem32_read(HW_BCH_LAYOUTSELECT_ADDR))
  477. #define HW_BCH_LAYOUTSELECT_WR(v) (_rbase->mem32_write(HW_BCH_LAYOUTSELECT_ADDR,(v)))
  478. #define HW_BCH_LAYOUTSELECT_SET(v) (HW_BCH_LAYOUTSELECT_WR(HW_BCH_LAYOUTSELECT_RD() | (v)))
  479. #define HW_BCH_LAYOUTSELECT_CLR(v) (HW_BCH_LAYOUTSELECT_WR(HW_BCH_LAYOUTSELECT_RD() & ~(v)))
  480. #define HW_BCH_LAYOUTSELECT_TOG(v) (HW_BCH_LAYOUTSELECT_WR(HW_BCH_LAYOUTSELECT_RD() ^ (v)))
  481. #endif
  482. #endif
  483. /*
  484. * constants & macros for individual HW_BCH_LAYOUTSELECT bitfields
  485. */
  486. /* --- Register HW_BCH_LAYOUTSELECT, field CS15_SELECT */
  487. #define BP_BCH_LAYOUTSELECT_CS15_SELECT 30
  488. #define BM_BCH_LAYOUTSELECT_CS15_SELECT 0xC0000000
  489. #ifndef __LANGUAGE_ASM__
  490. #define BF_BCH_LAYOUTSELECT_CS15_SELECT(v) ((((reg32_t) v) << 30) & BM_BCH_LAYOUTSELECT_CS15_SELECT)
  491. #else
  492. #define BF_BCH_LAYOUTSELECT_CS15_SELECT(v) (((v) << 30) & BM_BCH_LAYOUTSELECT_CS15_SELECT)
  493. #endif
  494. #ifndef __LANGUAGE_ASM__
  495. #define BW_BCH_LAYOUTSELECT_CS15_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS15_SELECT, v)
  496. #endif
  497. /* --- Register HW_BCH_LAYOUTSELECT, field CS14_SELECT */
  498. #define BP_BCH_LAYOUTSELECT_CS14_SELECT 28
  499. #define BM_BCH_LAYOUTSELECT_CS14_SELECT 0x30000000
  500. #define BF_BCH_LAYOUTSELECT_CS14_SELECT(v) (((v) << 28) & BM_BCH_LAYOUTSELECT_CS14_SELECT)
  501. #ifndef __LANGUAGE_ASM__
  502. #define BW_BCH_LAYOUTSELECT_CS14_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS14_SELECT, v)
  503. #endif
  504. /* --- Register HW_BCH_LAYOUTSELECT, field CS13_SELECT */
  505. #define BP_BCH_LAYOUTSELECT_CS13_SELECT 26
  506. #define BM_BCH_LAYOUTSELECT_CS13_SELECT 0x0C000000
  507. #define BF_BCH_LAYOUTSELECT_CS13_SELECT(v) (((v) << 26) & BM_BCH_LAYOUTSELECT_CS13_SELECT)
  508. #ifndef __LANGUAGE_ASM__
  509. #define BW_BCH_LAYOUTSELECT_CS13_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS13_SELECT, v)
  510. #endif
  511. /* --- Register HW_BCH_LAYOUTSELECT, field CS12_SELECT */
  512. #define BP_BCH_LAYOUTSELECT_CS12_SELECT 24
  513. #define BM_BCH_LAYOUTSELECT_CS12_SELECT 0x03000000
  514. #define BF_BCH_LAYOUTSELECT_CS12_SELECT(v) (((v) << 24) & BM_BCH_LAYOUTSELECT_CS12_SELECT)
  515. #ifndef __LANGUAGE_ASM__
  516. #define BW_BCH_LAYOUTSELECT_CS12_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS12_SELECT, v)
  517. #endif
  518. /* --- Register HW_BCH_LAYOUTSELECT, field CS11_SELECT */
  519. #define BP_BCH_LAYOUTSELECT_CS11_SELECT 22
  520. #define BM_BCH_LAYOUTSELECT_CS11_SELECT 0x00C00000
  521. #define BF_BCH_LAYOUTSELECT_CS11_SELECT(v) (((v) << 22) & BM_BCH_LAYOUTSELECT_CS11_SELECT)
  522. #ifndef __LANGUAGE_ASM__
  523. #define BW_BCH_LAYOUTSELECT_CS11_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS11_SELECT, v)
  524. #endif
  525. /* --- Register HW_BCH_LAYOUTSELECT, field CS10_SELECT */
  526. #define BP_BCH_LAYOUTSELECT_CS10_SELECT 20
  527. #define BM_BCH_LAYOUTSELECT_CS10_SELECT 0x00300000
  528. #define BF_BCH_LAYOUTSELECT_CS10_SELECT(v) (((v) << 20) & BM_BCH_LAYOUTSELECT_CS10_SELECT)
  529. #ifndef __LANGUAGE_ASM__
  530. #define BW_BCH_LAYOUTSELECT_CS10_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS10_SELECT, v)
  531. #endif
  532. /* --- Register HW_BCH_LAYOUTSELECT, field CS9_SELECT */
  533. #define BP_BCH_LAYOUTSELECT_CS9_SELECT 18
  534. #define BM_BCH_LAYOUTSELECT_CS9_SELECT 0x000C0000
  535. #define BF_BCH_LAYOUTSELECT_CS9_SELECT(v) (((v) << 18) & BM_BCH_LAYOUTSELECT_CS9_SELECT)
  536. #ifndef __LANGUAGE_ASM__
  537. #define BW_BCH_LAYOUTSELECT_CS9_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS9_SELECT, v)
  538. #endif
  539. /* --- Register HW_BCH_LAYOUTSELECT, field CS8_SELECT */
  540. #define BP_BCH_LAYOUTSELECT_CS8_SELECT 16
  541. #define BM_BCH_LAYOUTSELECT_CS8_SELECT 0x00030000
  542. #define BF_BCH_LAYOUTSELECT_CS8_SELECT(v) (((v) << 16) & BM_BCH_LAYOUTSELECT_CS8_SELECT)
  543. #ifndef __LANGUAGE_ASM__
  544. #define BW_BCH_LAYOUTSELECT_CS8_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS8_SELECT, v)
  545. #endif
  546. /* --- Register HW_BCH_LAYOUTSELECT, field CS7_SELECT */
  547. #define BP_BCH_LAYOUTSELECT_CS7_SELECT 14
  548. #define BM_BCH_LAYOUTSELECT_CS7_SELECT 0x0000C000
  549. #define BF_BCH_LAYOUTSELECT_CS7_SELECT(v) (((v) << 14) & BM_BCH_LAYOUTSELECT_CS7_SELECT)
  550. #ifndef __LANGUAGE_ASM__
  551. #define BW_BCH_LAYOUTSELECT_CS7_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS7_SELECT, v)
  552. #endif
  553. /* --- Register HW_BCH_LAYOUTSELECT, field CS6_SELECT */
  554. #define BP_BCH_LAYOUTSELECT_CS6_SELECT 12
  555. #define BM_BCH_LAYOUTSELECT_CS6_SELECT 0x00003000
  556. #define BF_BCH_LAYOUTSELECT_CS6_SELECT(v) (((v) << 12) & BM_BCH_LAYOUTSELECT_CS6_SELECT)
  557. #ifndef __LANGUAGE_ASM__
  558. #define BW_BCH_LAYOUTSELECT_CS6_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS6_SELECT, v)
  559. #endif
  560. /* --- Register HW_BCH_LAYOUTSELECT, field CS5_SELECT */
  561. #define BP_BCH_LAYOUTSELECT_CS5_SELECT 10
  562. #define BM_BCH_LAYOUTSELECT_CS5_SELECT 0x00000C00
  563. #define BF_BCH_LAYOUTSELECT_CS5_SELECT(v) (((v) << 10) & BM_BCH_LAYOUTSELECT_CS5_SELECT)
  564. #ifndef __LANGUAGE_ASM__
  565. #define BW_BCH_LAYOUTSELECT_CS5_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS5_SELECT, v)
  566. #endif
  567. /* --- Register HW_BCH_LAYOUTSELECT, field CS4_SELECT */
  568. #define BP_BCH_LAYOUTSELECT_CS4_SELECT 8
  569. #define BM_BCH_LAYOUTSELECT_CS4_SELECT 0x00000300
  570. #define BF_BCH_LAYOUTSELECT_CS4_SELECT(v) (((v) << 8) & BM_BCH_LAYOUTSELECT_CS4_SELECT)
  571. #ifndef __LANGUAGE_ASM__
  572. #define BW_BCH_LAYOUTSELECT_CS4_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS4_SELECT, v)
  573. #endif
  574. /* --- Register HW_BCH_LAYOUTSELECT, field CS3_SELECT */
  575. #define BP_BCH_LAYOUTSELECT_CS3_SELECT 6
  576. #define BM_BCH_LAYOUTSELECT_CS3_SELECT 0x000000C0
  577. #define BF_BCH_LAYOUTSELECT_CS3_SELECT(v) (((v) << 6) & BM_BCH_LAYOUTSELECT_CS3_SELECT)
  578. #ifndef __LANGUAGE_ASM__
  579. #define BW_BCH_LAYOUTSELECT_CS3_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS3_SELECT, v)
  580. #endif
  581. /* --- Register HW_BCH_LAYOUTSELECT, field CS2_SELECT */
  582. #define BP_BCH_LAYOUTSELECT_CS2_SELECT 4
  583. #define BM_BCH_LAYOUTSELECT_CS2_SELECT 0x00000030
  584. #define BF_BCH_LAYOUTSELECT_CS2_SELECT(v) (((v) << 4) & BM_BCH_LAYOUTSELECT_CS2_SELECT)
  585. #ifndef __LANGUAGE_ASM__
  586. #define BW_BCH_LAYOUTSELECT_CS2_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS2_SELECT, v)
  587. #endif
  588. /* --- Register HW_BCH_LAYOUTSELECT, field CS1_SELECT */
  589. #define BP_BCH_LAYOUTSELECT_CS1_SELECT 2
  590. #define BM_BCH_LAYOUTSELECT_CS1_SELECT 0x0000000C
  591. #define BF_BCH_LAYOUTSELECT_CS1_SELECT(v) (((v) << 2) & BM_BCH_LAYOUTSELECT_CS1_SELECT)
  592. #ifndef __LANGUAGE_ASM__
  593. #define BW_BCH_LAYOUTSELECT_CS1_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS1_SELECT, v)
  594. #endif
  595. /* --- Register HW_BCH_LAYOUTSELECT, field CS0_SELECT */
  596. #define BP_BCH_LAYOUTSELECT_CS0_SELECT 0
  597. #define BM_BCH_LAYOUTSELECT_CS0_SELECT 0x00000003
  598. #define BF_BCH_LAYOUTSELECT_CS0_SELECT(v) (((v) << 0) & BM_BCH_LAYOUTSELECT_CS0_SELECT)
  599. #ifndef __LANGUAGE_ASM__
  600. #define BW_BCH_LAYOUTSELECT_CS0_SELECT(v) BF_CS1(BCH_LAYOUTSELECT, CS0_SELECT, v)
  601. #endif
  602. /*
  603. * HW_BCH_FLASH0LAYOUT0 - Hardware BCH ECC Flash 0 Layout 0 Register
  604. */
  605. #ifndef __LANGUAGE_ASM__
  606. typedef union {
  607. reg32_t U;
  608. struct {
  609. unsigned DATA0_SIZE:10;
  610. unsigned GF13_0_GF14_1:1;
  611. unsigned ECC0:5;
  612. unsigned META_SIZE:8;
  613. unsigned NBLOCKS:8;
  614. } B;
  615. } hw_bch_flash0layout0_t;
  616. #endif
  617. /*
  618. * constants & macros for entire HW_BCH_FLASH0LAYOUT0 register
  619. */
  620. #define HW_BCH_FLASH0LAYOUT0_ADDR (0x00114080)
  621. #ifndef __LANGUAGE_ASM__
  622. #ifndef ROCOO_TEST
  623. #define HW_BCH_FLASH0LAYOUT0 (*(volatile hw_bch_flash0layout0_t *) HW_BCH_FLASH0LAYOUT0_ADDR)
  624. #define HW_BCH_FLASH0LAYOUT0_RD() (HW_BCH_FLASH0LAYOUT0.U)
  625. #define HW_BCH_FLASH0LAYOUT0_WR(v) (HW_BCH_FLASH0LAYOUT0.U = (v))
  626. #define HW_BCH_FLASH0LAYOUT0_SET(v) (HW_BCH_FLASH0LAYOUT0_WR(HW_BCH_FLASH0LAYOUT0_RD() | (v)))
  627. #define HW_BCH_FLASH0LAYOUT0_CLR(v) (HW_BCH_FLASH0LAYOUT0_WR(HW_BCH_FLASH0LAYOUT0_RD() & ~(v)))
  628. #define HW_BCH_FLASH0LAYOUT0_TOG(v) (HW_BCH_FLASH0LAYOUT0_WR(HW_BCH_FLASH0LAYOUT0_RD() ^ (v)))
  629. #else
  630. #define HW_BCH_FLASH0LAYOUT0_RD() (_rbase->mem32_read(HW_BCH_FLASH0LAYOUT0_ADDR))
  631. #define HW_BCH_FLASH0LAYOUT0_WR(v) (_rbase->mem32_write(HW_BCH_FLASH0LAYOUT0_ADDR,(v)))
  632. #define HW_BCH_FLASH0LAYOUT0_SET(v) (HW_BCH_FLASH0LAYOUT0_WR(HW_BCH_FLASH0LAYOUT0_RD() | (v)))
  633. #define HW_BCH_FLASH0LAYOUT0_CLR(v) (HW_BCH_FLASH0LAYOUT0_WR(HW_BCH_FLASH0LAYOUT0_RD() & ~(v)))
  634. #define HW_BCH_FLASH0LAYOUT0_TOG(v) (HW_BCH_FLASH0LAYOUT0_WR(HW_BCH_FLASH0LAYOUT0_RD() ^ (v)))
  635. #endif
  636. #endif
  637. /*
  638. * constants & macros for individual HW_BCH_FLASH0LAYOUT0 bitfields
  639. */
  640. /* --- Register HW_BCH_FLASH0LAYOUT0, field NBLOCKS */
  641. #define BP_BCH_FLASH0LAYOUT0_NBLOCKS 24
  642. #define BM_BCH_FLASH0LAYOUT0_NBLOCKS 0xFF000000
  643. #ifndef __LANGUAGE_ASM__
  644. #define BF_BCH_FLASH0LAYOUT0_NBLOCKS(v) ((((reg32_t) v) << 24) & BM_BCH_FLASH0LAYOUT0_NBLOCKS)
  645. #else
  646. #define BF_BCH_FLASH0LAYOUT0_NBLOCKS(v) (((v) << 24) & BM_BCH_FLASH0LAYOUT0_NBLOCKS)
  647. #endif
  648. #ifndef __LANGUAGE_ASM__
  649. #define BW_BCH_FLASH0LAYOUT0_NBLOCKS(v) (HW_BCH_FLASH0LAYOUT0.B.NBLOCKS = (v))
  650. #endif
  651. /* --- Register HW_BCH_FLASH0LAYOUT0, field META_SIZE */
  652. #define BP_BCH_FLASH0LAYOUT0_META_SIZE 16
  653. #define BM_BCH_FLASH0LAYOUT0_META_SIZE 0x00FF0000
  654. #define BF_BCH_FLASH0LAYOUT0_META_SIZE(v) (((v) << 16) & BM_BCH_FLASH0LAYOUT0_META_SIZE)
  655. #ifndef __LANGUAGE_ASM__
  656. #define BW_BCH_FLASH0LAYOUT0_META_SIZE(v) (HW_BCH_FLASH0LAYOUT0.B.META_SIZE = (v))
  657. #endif
  658. /* --- Register HW_BCH_FLASH0LAYOUT0, field ECC0 */
  659. #define BP_BCH_FLASH0LAYOUT0_ECC0 11
  660. #define BM_BCH_FLASH0LAYOUT0_ECC0 0x0000F800
  661. #define BF_BCH_FLASH0LAYOUT0_ECC0(v) (((v) << 11) & BM_BCH_FLASH0LAYOUT0_ECC0)
  662. #ifndef __LANGUAGE_ASM__
  663. #define BW_BCH_FLASH0LAYOUT0_ECC0(v) BF_CS1(BCH_FLASH0LAYOUT0, ECC0, v)
  664. #endif
  665. #define BV_BCH_FLASH0LAYOUT0_ECC0__NONE 0x0
  666. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC2 0x1
  667. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC4 0x2
  668. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC6 0x3
  669. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC8 0x4
  670. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC10 0x5
  671. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC12 0x6
  672. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC14 0x7
  673. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC16 0x8
  674. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC18 0x9
  675. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC20 0xA
  676. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC22 0xB
  677. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC24 0xC
  678. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC26 0xD
  679. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC28 0xE
  680. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC30 0xF
  681. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC32 0x10
  682. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC34 0x11
  683. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC36 0x12
  684. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC38 0x13
  685. #define BV_BCH_FLASH0LAYOUT0_ECC0__ECC40 0x14
  686. /* --- Register HW_BCH_FLASH0LAYOUT0, field GF13_0_GF14_1 */
  687. #define BP_BCH_FLASH0LAYOUT0_GF13_0_GF14_1 10
  688. #define BM_BCH_FLASH0LAYOUT0_GF13_0_GF14_1 0x00000400
  689. #define BF_BCH_FLASH0LAYOUT0_GF13_0_GF14_1(v) (((v) << 10) & BM_BCH_FLASH0LAYOUT0_GF13_0_GF14_1)
  690. #ifndef __LANGUAGE_ASM__
  691. #define BW_BCH_FLASH0LAYOUT0_GF13_0_GF14_1(v) BF_CS1(BCH_FLASH0LAYOUT0, GF13_0_GF14_1, v)
  692. #endif
  693. /* --- Register HW_BCH_FLASH0LAYOUT0, field DATA0_SIZE */
  694. #define BP_BCH_FLASH0LAYOUT0_DATA0_SIZE 0
  695. #define BM_BCH_FLASH0LAYOUT0_DATA0_SIZE 0x000003FF
  696. #define BF_BCH_FLASH0LAYOUT0_DATA0_SIZE(v) (((v) << 0) & BM_BCH_FLASH0LAYOUT0_DATA0_SIZE)
  697. #ifndef __LANGUAGE_ASM__
  698. #define BW_BCH_FLASH0LAYOUT0_DATA0_SIZE(v) BF_CS1(BCH_FLASH0LAYOUT0, DATA0_SIZE, v)
  699. #endif
  700. /*
  701. * HW_BCH_FLASH0LAYOUT1 - Hardware BCH ECC Flash 0 Layout 1 Register
  702. */
  703. #ifndef __LANGUAGE_ASM__
  704. typedef union {
  705. reg32_t U;
  706. struct {
  707. unsigned DATAN_SIZE:10;
  708. unsigned GF13_0_GF14_1:1;
  709. unsigned ECCN:5;
  710. unsigned PAGE_SIZE:16;
  711. } B;
  712. } hw_bch_flash0layout1_t;
  713. #endif
  714. /*
  715. * constants & macros for entire HW_BCH_FLASH0LAYOUT1 register
  716. */
  717. #define HW_BCH_FLASH0LAYOUT1_ADDR (0x00114090)
  718. #ifndef __LANGUAGE_ASM__
  719. #ifndef ROCOO_TEST
  720. #define HW_BCH_FLASH0LAYOUT1 (*(volatile hw_bch_flash0layout1_t *) HW_BCH_FLASH0LAYOUT1_ADDR)
  721. #define HW_BCH_FLASH0LAYOUT1_RD() (HW_BCH_FLASH0LAYOUT1.U)
  722. #define HW_BCH_FLASH0LAYOUT1_WR(v) (HW_BCH_FLASH0LAYOUT1.U = (v))
  723. #define HW_BCH_FLASH0LAYOUT1_SET(v) (HW_BCH_FLASH0LAYOUT1_WR(HW_BCH_FLASH0LAYOUT1_RD() | (v)))
  724. #define HW_BCH_FLASH0LAYOUT1_CLR(v) (HW_BCH_FLASH0LAYOUT1_WR(HW_BCH_FLASH0LAYOUT1_RD() & ~(v)))
  725. #define HW_BCH_FLASH0LAYOUT1_TOG(v) (HW_BCH_FLASH0LAYOUT1_WR(HW_BCH_FLASH0LAYOUT1_RD() ^ (v)))
  726. #else
  727. #define HW_BCH_FLASH0LAYOUT1_RD() (_rbase->mem32_read(HW_BCH_FLASH0LAYOUT1_ADDR))
  728. #define HW_BCH_FLASH0LAYOUT1_WR(v) (_rbase->mem32_write(HW_BCH_FLASH0LAYOUT1_ADDR,(v)))
  729. #define HW_BCH_FLASH0LAYOUT1_SET(v) (HW_BCH_FLASH0LAYOUT1_WR(HW_BCH_FLASH0LAYOUT1_RD() | (v)))
  730. #define HW_BCH_FLASH0LAYOUT1_CLR(v) (HW_BCH_FLASH0LAYOUT1_WR(HW_BCH_FLASH0LAYOUT1_RD() & ~(v)))
  731. #define HW_BCH_FLASH0LAYOUT1_TOG(v) (HW_BCH_FLASH0LAYOUT1_WR(HW_BCH_FLASH0LAYOUT1_RD() ^ (v)))
  732. #endif
  733. #endif
  734. /*
  735. * constants & macros for individual HW_BCH_FLASH0LAYOUT1 bitfields
  736. */
  737. /* --- Register HW_BCH_FLASH0LAYOUT1, field PAGE_SIZE */
  738. #define BP_BCH_FLASH0LAYOUT1_PAGE_SIZE 16
  739. #define BM_BCH_FLASH0LAYOUT1_PAGE_SIZE 0xFFFF0000
  740. #ifndef __LANGUAGE_ASM__
  741. #define BF_BCH_FLASH0LAYOUT1_PAGE_SIZE(v) ((((reg32_t) v) << 16) & BM_BCH_FLASH0LAYOUT1_PAGE_SIZE)
  742. #else
  743. #define BF_BCH_FLASH0LAYOUT1_PAGE_SIZE(v) (((v) << 16) & BM_BCH_FLASH0LAYOUT1_PAGE_SIZE)
  744. #endif
  745. #ifndef __LANGUAGE_ASM__
  746. #define BW_BCH_FLASH0LAYOUT1_PAGE_SIZE(v) (HW_BCH_FLASH0LAYOUT1.B.PAGE_SIZE = (v))
  747. #endif
  748. /* --- Register HW_BCH_FLASH0LAYOUT1, field ECCN */
  749. #define BP_BCH_FLASH0LAYOUT1_ECCN 11
  750. #define BM_BCH_FLASH0LAYOUT1_ECCN 0x0000F800
  751. #define BF_BCH_FLASH0LAYOUT1_ECCN(v) (((v) << 11) & BM_BCH_FLASH0LAYOUT1_ECCN)
  752. #ifndef __LANGUAGE_ASM__
  753. #define BW_BCH_FLASH0LAYOUT1_ECCN(v) BF_CS1(BCH_FLASH0LAYOUT1, ECCN, v)
  754. #endif
  755. #define BV_BCH_FLASH0LAYOUT1_ECCN__NONE 0x0
  756. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC2 0x1
  757. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC4 0x2
  758. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC6 0x3
  759. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC8 0x4
  760. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC10 0x5
  761. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC12 0x6
  762. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC14 0x7
  763. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC16 0x8
  764. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC18 0x9
  765. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC20 0xA
  766. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC22 0xB
  767. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC24 0xC
  768. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC26 0xD
  769. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC28 0xE
  770. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC30 0xF
  771. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC32 0x10
  772. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC34 0x11
  773. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC36 0x12
  774. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC38 0x13
  775. #define BV_BCH_FLASH0LAYOUT1_ECCN__ECC40 0x14
  776. /* --- Register HW_BCH_FLASH0LAYOUT1, field GF13_0_GF14_1 */
  777. #define BP_BCH_FLASH0LAYOUT1_GF13_0_GF14_1 10
  778. #define BM_BCH_FLASH0LAYOUT1_GF13_0_GF14_1 0x00000400
  779. #define BF_BCH_FLASH0LAYOUT1_GF13_0_GF14_1(v) (((v) << 10) & BM_BCH_FLASH0LAYOUT1_GF13_0_GF14_1)
  780. #ifndef __LANGUAGE_ASM__
  781. #define BW_BCH_FLASH0LAYOUT1_GF13_0_GF14_1(v) BF_CS1(BCH_FLASH0LAYOUT1, GF13_0_GF14_1, v)
  782. #endif
  783. /* --- Register HW_BCH_FLASH0LAYOUT1, field DATAN_SIZE */
  784. #define BP_BCH_FLASH0LAYOUT1_DATAN_SIZE 0
  785. #define BM_BCH_FLASH0LAYOUT1_DATAN_SIZE 0x000003FF
  786. #define BF_BCH_FLASH0LAYOUT1_DATAN_SIZE(v) (((v) << 0) & BM_BCH_FLASH0LAYOUT1_DATAN_SIZE)
  787. #ifndef __LANGUAGE_ASM__
  788. #define BW_BCH_FLASH0LAYOUT1_DATAN_SIZE(v) BF_CS1(BCH_FLASH0LAYOUT1, DATAN_SIZE, v)
  789. #endif
  790. /*
  791. * HW_BCH_FLASH1LAYOUT0 - Hardware BCH ECC Flash 1 Layout 0 Register
  792. */
  793. #ifndef __LANGUAGE_ASM__
  794. typedef union {
  795. reg32_t U;
  796. struct {
  797. unsigned DATA0_SIZE:10;
  798. unsigned GF13_0_GF14_1:1;
  799. unsigned ECC0:5;
  800. unsigned META_SIZE:8;
  801. unsigned NBLOCKS:8;
  802. } B;
  803. } hw_bch_flash1layout0_t;
  804. #endif
  805. /*
  806. * constants & macros for entire HW_BCH_FLASH1LAYOUT0 register
  807. */
  808. #define HW_BCH_FLASH1LAYOUT0_ADDR (0x001140a0)
  809. #ifndef __LANGUAGE_ASM__
  810. #ifndef ROCOO_TEST
  811. #define HW_BCH_FLASH1LAYOUT0 (*(volatile hw_bch_flash1layout0_t *) HW_BCH_FLASH1LAYOUT0_ADDR)
  812. #define HW_BCH_FLASH1LAYOUT0_RD() (HW_BCH_FLASH1LAYOUT0.U)
  813. #define HW_BCH_FLASH1LAYOUT0_WR(v) (HW_BCH_FLASH1LAYOUT0.U = (v))
  814. #define HW_BCH_FLASH1LAYOUT0_SET(v) (HW_BCH_FLASH1LAYOUT0_WR(HW_BCH_FLASH1LAYOUT0_RD() | (v)))
  815. #define HW_BCH_FLASH1LAYOUT0_CLR(v) (HW_BCH_FLASH1LAYOUT0_WR(HW_BCH_FLASH1LAYOUT0_RD() & ~(v)))
  816. #define HW_BCH_FLASH1LAYOUT0_TOG(v) (HW_BCH_FLASH1LAYOUT0_WR(HW_BCH_FLASH1LAYOUT0_RD() ^ (v)))
  817. #else
  818. #define HW_BCH_FLASH1LAYOUT0_RD() (_rbase->mem32_read(HW_BCH_FLASH1LAYOUT0_ADDR))
  819. #define HW_BCH_FLASH1LAYOUT0_WR(v) (_rbase->mem32_write(HW_BCH_FLASH1LAYOUT0_ADDR,(v)))
  820. #define HW_BCH_FLASH1LAYOUT0_SET(v) (HW_BCH_FLASH1LAYOUT0_WR(HW_BCH_FLASH1LAYOUT0_RD() | (v)))
  821. #define HW_BCH_FLASH1LAYOUT0_CLR(v) (HW_BCH_FLASH1LAYOUT0_WR(HW_BCH_FLASH1LAYOUT0_RD() & ~(v)))
  822. #define HW_BCH_FLASH1LAYOUT0_TOG(v) (HW_BCH_FLASH1LAYOUT0_WR(HW_BCH_FLASH1LAYOUT0_RD() ^ (v)))
  823. #endif
  824. #endif
  825. /*
  826. * constants & macros for individual HW_BCH_FLASH1LAYOUT0 bitfields
  827. */
  828. /* --- Register HW_BCH_FLASH1LAYOUT0, field NBLOCKS */
  829. #define BP_BCH_FLASH1LAYOUT0_NBLOCKS 24
  830. #define BM_BCH_FLASH1LAYOUT0_NBLOCKS 0xFF000000
  831. #ifndef __LANGUAGE_ASM__
  832. #define BF_BCH_FLASH1LAYOUT0_NBLOCKS(v) ((((reg32_t) v) << 24) & BM_BCH_FLASH1LAYOUT0_NBLOCKS)
  833. #else
  834. #define BF_BCH_FLASH1LAYOUT0_NBLOCKS(v) (((v) << 24) & BM_BCH_FLASH1LAYOUT0_NBLOCKS)
  835. #endif
  836. #ifndef __LANGUAGE_ASM__
  837. #define BW_BCH_FLASH1LAYOUT0_NBLOCKS(v) (HW_BCH_FLASH1LAYOUT0.B.NBLOCKS = (v))
  838. #endif
  839. /* --- Register HW_BCH_FLASH1LAYOUT0, field META_SIZE */
  840. #define BP_BCH_FLASH1LAYOUT0_META_SIZE 16
  841. #define BM_BCH_FLASH1LAYOUT0_META_SIZE 0x00FF0000
  842. #define BF_BCH_FLASH1LAYOUT0_META_SIZE(v) (((v) << 16) & BM_BCH_FLASH1LAYOUT0_META_SIZE)
  843. #ifndef __LANGUAGE_ASM__
  844. #define BW_BCH_FLASH1LAYOUT0_META_SIZE(v) (HW_BCH_FLASH1LAYOUT0.B.META_SIZE = (v))
  845. #endif
  846. /* --- Register HW_BCH_FLASH1LAYOUT0, field ECC0 */
  847. #define BP_BCH_FLASH1LAYOUT0_ECC0 11
  848. #define BM_BCH_FLASH1LAYOUT0_ECC0 0x0000F800
  849. #define BF_BCH_FLASH1LAYOUT0_ECC0(v) (((v) << 11) & BM_BCH_FLASH1LAYOUT0_ECC0)
  850. #ifndef __LANGUAGE_ASM__
  851. #define BW_BCH_FLASH1LAYOUT0_ECC0(v) BF_CS1(BCH_FLASH1LAYOUT0, ECC0, v)
  852. #endif
  853. #define BV_BCH_FLASH1LAYOUT0_ECC0__NONE 0x0
  854. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC2 0x1
  855. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC4 0x2
  856. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC6 0x3
  857. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC8 0x4
  858. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC10 0x5
  859. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC12 0x6
  860. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC14 0x7
  861. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC16 0x8
  862. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC18 0x9
  863. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC20 0xA
  864. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC22 0xB
  865. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC24 0xC
  866. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC26 0xD
  867. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC28 0xE
  868. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC30 0xF
  869. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC32 0x10
  870. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC34 0x11
  871. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC36 0x12
  872. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC38 0x13
  873. #define BV_BCH_FLASH1LAYOUT0_ECC0__ECC40 0x14
  874. /* --- Register HW_BCH_FLASH1LAYOUT0, field GF13_0_GF14_1 */
  875. #define BP_BCH_FLASH1LAYOUT0_GF13_0_GF14_1 10
  876. #define BM_BCH_FLASH1LAYOUT0_GF13_0_GF14_1 0x00000400
  877. #define BF_BCH_FLASH1LAYOUT0_GF13_0_GF14_1(v) (((v) << 10) & BM_BCH_FLASH1LAYOUT0_GF13_0_GF14_1)
  878. #ifndef __LANGUAGE_ASM__
  879. #define BW_BCH_FLASH1LAYOUT0_GF13_0_GF14_1(v) BF_CS1(BCH_FLASH1LAYOUT0, GF13_0_GF14_1, v)
  880. #endif
  881. /* --- Register HW_BCH_FLASH1LAYOUT0, field DATA0_SIZE */
  882. #define BP_BCH_FLASH1LAYOUT0_DATA0_SIZE 0
  883. #define BM_BCH_FLASH1LAYOUT0_DATA0_SIZE 0x000003FF
  884. #define BF_BCH_FLASH1LAYOUT0_DATA0_SIZE(v) (((v) << 0) & BM_BCH_FLASH1LAYOUT0_DATA0_SIZE)
  885. #ifndef __LANGUAGE_ASM__
  886. #define BW_BCH_FLASH1LAYOUT0_DATA0_SIZE(v) BF_CS1(BCH_FLASH1LAYOUT0, DATA0_SIZE, v)
  887. #endif
  888. /*
  889. * HW_BCH_FLASH1LAYOUT1 - Hardware BCH ECC Flash 1 Layout 1 Register
  890. */
  891. #ifndef __LANGUAGE_ASM__
  892. typedef union {
  893. reg32_t U;
  894. struct {
  895. unsigned DATAN_SIZE:10;
  896. unsigned GF13_0_GF14_1:1;
  897. unsigned ECCN:5;
  898. unsigned PAGE_SIZE:16;
  899. } B;
  900. } hw_bch_flash1layout1_t;
  901. #endif
  902. /*
  903. * constants & macros for entire HW_BCH_FLASH1LAYOUT1 register
  904. */
  905. #define HW_BCH_FLASH1LAYOUT1_ADDR (0x001140b0)
  906. #ifndef __LANGUAGE_ASM__
  907. #ifndef ROCOO_TEST
  908. #define HW_BCH_FLASH1LAYOUT1 (*(volatile hw_bch_flash1layout1_t *) HW_BCH_FLASH1LAYOUT1_ADDR)
  909. #define HW_BCH_FLASH1LAYOUT1_RD() (HW_BCH_FLASH1LAYOUT1.U)
  910. #define HW_BCH_FLASH1LAYOUT1_WR(v) (HW_BCH_FLASH1LAYOUT1.U = (v))
  911. #define HW_BCH_FLASH1LAYOUT1_SET(v) (HW_BCH_FLASH1LAYOUT1_WR(HW_BCH_FLASH1LAYOUT1_RD() | (v)))
  912. #define HW_BCH_FLASH1LAYOUT1_CLR(v) (HW_BCH_FLASH1LAYOUT1_WR(HW_BCH_FLASH1LAYOUT1_RD() & ~(v)))
  913. #define HW_BCH_FLASH1LAYOUT1_TOG(v) (HW_BCH_FLASH1LAYOUT1_WR(HW_BCH_FLASH1LAYOUT1_RD() ^ (v)))
  914. #else
  915. #define HW_BCH_FLASH1LAYOUT1_RD() (_rbase->mem32_read(HW_BCH_FLASH1LAYOUT1_ADDR))
  916. #define HW_BCH_FLASH1LAYOUT1_WR(v) (_rbase->mem32_write(HW_BCH_FLASH1LAYOUT1_ADDR,(v)))
  917. #define HW_BCH_FLASH1LAYOUT1_SET(v) (HW_BCH_FLASH1LAYOUT1_WR(HW_BCH_FLASH1LAYOUT1_RD() | (v)))
  918. #define HW_BCH_FLASH1LAYOUT1_CLR(v) (HW_BCH_FLASH1LAYOUT1_WR(HW_BCH_FLASH1LAYOUT1_RD() & ~(v)))
  919. #define HW_BCH_FLASH1LAYOUT1_TOG(v) (HW_BCH_FLASH1LAYOUT1_WR(HW_BCH_FLASH1LAYOUT1_RD() ^ (v)))
  920. #endif
  921. #endif
  922. /*
  923. * constants & macros for individual HW_BCH_FLASH1LAYOUT1 bitfields
  924. */
  925. /* --- Register HW_BCH_FLASH1LAYOUT1, field PAGE_SIZE */
  926. #define BP_BCH_FLASH1LAYOUT1_PAGE_SIZE 16
  927. #define BM_BCH_FLASH1LAYOUT1_PAGE_SIZE 0xFFFF0000
  928. #ifndef __LANGUAGE_ASM__
  929. #define BF_BCH_FLASH1LAYOUT1_PAGE_SIZE(v) ((((reg32_t) v) << 16) & BM_BCH_FLASH1LAYOUT1_PAGE_SIZE)
  930. #else
  931. #define BF_BCH_FLASH1LAYOUT1_PAGE_SIZE(v) (((v) << 16) & BM_BCH_FLASH1LAYOUT1_PAGE_SIZE)
  932. #endif
  933. #ifndef __LANGUAGE_ASM__
  934. #define BW_BCH_FLASH1LAYOUT1_PAGE_SIZE(v) (HW_BCH_FLASH1LAYOUT1.B.PAGE_SIZE = (v))
  935. #endif
  936. /* --- Register HW_BCH_FLASH1LAYOUT1, field ECCN */
  937. #define BP_BCH_FLASH1LAYOUT1_ECCN 11
  938. #define BM_BCH_FLASH1LAYOUT1_ECCN 0x0000F800
  939. #define BF_BCH_FLASH1LAYOUT1_ECCN(v) (((v) << 11) & BM_BCH_FLASH1LAYOUT1_ECCN)
  940. #ifndef __LANGUAGE_ASM__
  941. #define BW_BCH_FLASH1LAYOUT1_ECCN(v) BF_CS1(BCH_FLASH1LAYOUT1, ECCN, v)
  942. #endif
  943. #define BV_BCH_FLASH1LAYOUT1_ECCN__NONE 0x0
  944. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC2 0x1
  945. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC4 0x2
  946. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC6 0x3
  947. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC8 0x4
  948. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC10 0x5
  949. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC12 0x6
  950. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC14 0x7
  951. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC16 0x8
  952. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC18 0x9
  953. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC20 0xA
  954. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC22 0xB
  955. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC24 0xC
  956. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC26 0xD
  957. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC28 0xE
  958. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC30 0xF
  959. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC32 0x10
  960. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC34 0x11
  961. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC36 0x12
  962. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC38 0x13
  963. #define BV_BCH_FLASH1LAYOUT1_ECCN__ECC40 0x14
  964. /* --- Register HW_BCH_FLASH1LAYOUT1, field GF13_0_GF14_1 */
  965. #define BP_BCH_FLASH1LAYOUT1_GF13_0_GF14_1 10
  966. #define BM_BCH_FLASH1LAYOUT1_GF13_0_GF14_1 0x00000400
  967. #define BF_BCH_FLASH1LAYOUT1_GF13_0_GF14_1(v) (((v) << 10) & BM_BCH_FLASH1LAYOUT1_GF13_0_GF14_1)
  968. #ifndef __LANGUAGE_ASM__
  969. #define BW_BCH_FLASH1LAYOUT1_GF13_0_GF14_1(v) BF_CS1(BCH_FLASH1LAYOUT1, GF13_0_GF14_1, v)
  970. #endif
  971. /* --- Register HW_BCH_FLASH1LAYOUT1, field DATAN_SIZE */
  972. #define BP_BCH_FLASH1LAYOUT1_DATAN_SIZE 0
  973. #define BM_BCH_FLASH1LAYOUT1_DATAN_SIZE 0x000003FF
  974. #define BF_BCH_FLASH1LAYOUT1_DATAN_SIZE(v) (((v) << 0) & BM_BCH_FLASH1LAYOUT1_DATAN_SIZE)
  975. #ifndef __LANGUAGE_ASM__
  976. #define BW_BCH_FLASH1LAYOUT1_DATAN_SIZE(v) BF_CS1(BCH_FLASH1LAYOUT1, DATAN_SIZE, v)
  977. #endif
  978. /*
  979. * HW_BCH_FLASH2LAYOUT0 - Hardware BCH ECC Flash 2 Layout 0 Register
  980. */
  981. #ifndef __LANGUAGE_ASM__
  982. typedef union {
  983. reg32_t U;
  984. struct {
  985. unsigned DATA0_SIZE:10;
  986. unsigned GF13_0_GF14_1:1;
  987. unsigned ECC0:5;
  988. unsigned META_SIZE:8;
  989. unsigned NBLOCKS:8;
  990. } B;
  991. } hw_bch_flash2layout0_t;
  992. #endif
  993. /*
  994. * constants & macros for entire HW_BCH_FLASH2LAYOUT0 register
  995. */
  996. #define HW_BCH_FLASH2LAYOUT0_ADDR (0x001140c0)
  997. #ifndef __LANGUAGE_ASM__
  998. #ifndef ROCOO_TEST
  999. #define HW_BCH_FLASH2LAYOUT0 (*(volatile hw_bch_flash2layout0_t *) HW_BCH_FLASH2LAYOUT0_ADDR)
  1000. #define HW_BCH_FLASH2LAYOUT0_RD() (HW_BCH_FLASH2LAYOUT0.U)
  1001. #define HW_BCH_FLASH2LAYOUT0_WR(v) (HW_BCH_FLASH2LAYOUT0.U = (v))
  1002. #define HW_BCH_FLASH2LAYOUT0_SET(v) (HW_BCH_FLASH2LAYOUT0_WR(HW_BCH_FLASH2LAYOUT0_RD() | (v)))
  1003. #define HW_BCH_FLASH2LAYOUT0_CLR(v) (HW_BCH_FLASH2LAYOUT0_WR(HW_BCH_FLASH2LAYOUT0_RD() & ~(v)))
  1004. #define HW_BCH_FLASH2LAYOUT0_TOG(v) (HW_BCH_FLASH2LAYOUT0_WR(HW_BCH_FLASH2LAYOUT0_RD() ^ (v)))
  1005. #else
  1006. #define HW_BCH_FLASH2LAYOUT0_RD() (_rbase->mem32_read(HW_BCH_FLASH2LAYOUT0_ADDR))
  1007. #define HW_BCH_FLASH2LAYOUT0_WR(v) (_rbase->mem32_write(HW_BCH_FLASH2LAYOUT0_ADDR,(v)))
  1008. #define HW_BCH_FLASH2LAYOUT0_SET(v) (HW_BCH_FLASH2LAYOUT0_WR(HW_BCH_FLASH2LAYOUT0_RD() | (v)))
  1009. #define HW_BCH_FLASH2LAYOUT0_CLR(v) (HW_BCH_FLASH2LAYOUT0_WR(HW_BCH_FLASH2LAYOUT0_RD() & ~(v)))
  1010. #define HW_BCH_FLASH2LAYOUT0_TOG(v) (HW_BCH_FLASH2LAYOUT0_WR(HW_BCH_FLASH2LAYOUT0_RD() ^ (v)))
  1011. #endif
  1012. #endif
  1013. /*
  1014. * constants & macros for individual HW_BCH_FLASH2LAYOUT0 bitfields
  1015. */
  1016. /* --- Register HW_BCH_FLASH2LAYOUT0, field NBLOCKS */
  1017. #define BP_BCH_FLASH2LAYOUT0_NBLOCKS 24
  1018. #define BM_BCH_FLASH2LAYOUT0_NBLOCKS 0xFF000000
  1019. #ifndef __LANGUAGE_ASM__
  1020. #define BF_BCH_FLASH2LAYOUT0_NBLOCKS(v) ((((reg32_t) v) << 24) & BM_BCH_FLASH2LAYOUT0_NBLOCKS)
  1021. #else
  1022. #define BF_BCH_FLASH2LAYOUT0_NBLOCKS(v) (((v) << 24) & BM_BCH_FLASH2LAYOUT0_NBLOCKS)
  1023. #endif
  1024. #ifndef __LANGUAGE_ASM__
  1025. #define BW_BCH_FLASH2LAYOUT0_NBLOCKS(v) (HW_BCH_FLASH2LAYOUT0.B.NBLOCKS = (v))
  1026. #endif
  1027. /* --- Register HW_BCH_FLASH2LAYOUT0, field META_SIZE */
  1028. #define BP_BCH_FLASH2LAYOUT0_META_SIZE 16
  1029. #define BM_BCH_FLASH2LAYOUT0_META_SIZE 0x00FF0000
  1030. #define BF_BCH_FLASH2LAYOUT0_META_SIZE(v) (((v) << 16) & BM_BCH_FLASH2LAYOUT0_META_SIZE)
  1031. #ifndef __LANGUAGE_ASM__
  1032. #define BW_BCH_FLASH2LAYOUT0_META_SIZE(v) (HW_BCH_FLASH2LAYOUT0.B.META_SIZE = (v))
  1033. #endif
  1034. /* --- Register HW_BCH_FLASH2LAYOUT0, field ECC0 */
  1035. #define BP_BCH_FLASH2LAYOUT0_ECC0 11
  1036. #define BM_BCH_FLASH2LAYOUT0_ECC0 0x0000F800
  1037. #define BF_BCH_FLASH2LAYOUT0_ECC0(v) (((v) << 11) & BM_BCH_FLASH2LAYOUT0_ECC0)
  1038. #ifndef __LANGUAGE_ASM__
  1039. #define BW_BCH_FLASH2LAYOUT0_ECC0(v) BF_CS1(BCH_FLASH2LAYOUT0, ECC0, v)
  1040. #endif
  1041. #define BV_BCH_FLASH2LAYOUT0_ECC0__NONE 0x0
  1042. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC2 0x1
  1043. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC4 0x2
  1044. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC6 0x3
  1045. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC8 0x4
  1046. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC10 0x5
  1047. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC12 0x6
  1048. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC14 0x7
  1049. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC16 0x8
  1050. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC18 0x9
  1051. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC20 0xA
  1052. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC22 0xB
  1053. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC24 0xC
  1054. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC26 0xD
  1055. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC28 0xE
  1056. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC30 0xF
  1057. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC32 0x10
  1058. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC34 0x11
  1059. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC36 0x12
  1060. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC38 0x13
  1061. #define BV_BCH_FLASH2LAYOUT0_ECC0__ECC40 0x14
  1062. /* --- Register HW_BCH_FLASH2LAYOUT0, field GF13_0_GF14_1 */
  1063. #define BP_BCH_FLASH2LAYOUT0_GF13_0_GF14_1 10
  1064. #define BM_BCH_FLASH2LAYOUT0_GF13_0_GF14_1 0x00000400
  1065. #define BF_BCH_FLASH2LAYOUT0_GF13_0_GF14_1(v) (((v) << 10) & BM_BCH_FLASH2LAYOUT0_GF13_0_GF14_1)
  1066. #ifndef __LANGUAGE_ASM__
  1067. #define BW_BCH_FLASH2LAYOUT0_GF13_0_GF14_1(v) BF_CS1(BCH_FLASH2LAYOUT0, GF13_0_GF14_1, v)
  1068. #endif
  1069. /* --- Register HW_BCH_FLASH2LAYOUT0, field DATA0_SIZE */
  1070. #define BP_BCH_FLASH2LAYOUT0_DATA0_SIZE 0
  1071. #define BM_BCH_FLASH2LAYOUT0_DATA0_SIZE 0x000003FF
  1072. #define BF_BCH_FLASH2LAYOUT0_DATA0_SIZE(v) (((v) << 0) & BM_BCH_FLASH2LAYOUT0_DATA0_SIZE)
  1073. #ifndef __LANGUAGE_ASM__
  1074. #define BW_BCH_FLASH2LAYOUT0_DATA0_SIZE(v) BF_CS1(BCH_FLASH2LAYOUT0, DATA0_SIZE, v)
  1075. #endif
  1076. /*
  1077. * HW_BCH_FLASH2LAYOUT1 - Hardware BCH ECC Flash 2 Layout 1 Register
  1078. */
  1079. #ifndef __LANGUAGE_ASM__
  1080. typedef union {
  1081. reg32_t U;
  1082. struct {
  1083. unsigned DATAN_SIZE:10;
  1084. unsigned GF13_0_GF14_1:1;
  1085. unsigned ECCN:5;
  1086. unsigned PAGE_SIZE:16;
  1087. } B;
  1088. } hw_bch_flash2layout1_t;
  1089. #endif
  1090. /*
  1091. * constants & macros for entire HW_BCH_FLASH2LAYOUT1 register
  1092. */
  1093. #define HW_BCH_FLASH2LAYOUT1_ADDR (0x001140d0)
  1094. #ifndef __LANGUAGE_ASM__
  1095. #ifndef ROCOO_TEST
  1096. #define HW_BCH_FLASH2LAYOUT1 (*(volatile hw_bch_flash2layout1_t *) HW_BCH_FLASH2LAYOUT1_ADDR)
  1097. #define HW_BCH_FLASH2LAYOUT1_RD() (HW_BCH_FLASH2LAYOUT1.U)
  1098. #define HW_BCH_FLASH2LAYOUT1_WR(v) (HW_BCH_FLASH2LAYOUT1.U = (v))
  1099. #define HW_BCH_FLASH2LAYOUT1_SET(v) (HW_BCH_FLASH2LAYOUT1_WR(HW_BCH_FLASH2LAYOUT1_RD() | (v)))
  1100. #define HW_BCH_FLASH2LAYOUT1_CLR(v) (HW_BCH_FLASH2LAYOUT1_WR(HW_BCH_FLASH2LAYOUT1_RD() & ~(v)))
  1101. #define HW_BCH_FLASH2LAYOUT1_TOG(v) (HW_BCH_FLASH2LAYOUT1_WR(HW_BCH_FLASH2LAYOUT1_RD() ^ (v)))
  1102. #else
  1103. #define HW_BCH_FLASH2LAYOUT1_RD() (_rbase->mem32_read(HW_BCH_FLASH2LAYOUT1_ADDR))
  1104. #define HW_BCH_FLASH2LAYOUT1_WR(v) (_rbase->mem32_write(HW_BCH_FLASH2LAYOUT1_ADDR,(v)))
  1105. #define HW_BCH_FLASH2LAYOUT1_SET(v) (HW_BCH_FLASH2LAYOUT1_WR(HW_BCH_FLASH2LAYOUT1_RD() | (v)))
  1106. #define HW_BCH_FLASH2LAYOUT1_CLR(v) (HW_BCH_FLASH2LAYOUT1_WR(HW_BCH_FLASH2LAYOUT1_RD() & ~(v)))
  1107. #define HW_BCH_FLASH2LAYOUT1_TOG(v) (HW_BCH_FLASH2LAYOUT1_WR(HW_BCH_FLASH2LAYOUT1_RD() ^ (v)))
  1108. #endif
  1109. #endif
  1110. /*
  1111. * constants & macros for individual HW_BCH_FLASH2LAYOUT1 bitfields
  1112. */
  1113. /* --- Register HW_BCH_FLASH2LAYOUT1, field PAGE_SIZE */
  1114. #define BP_BCH_FLASH2LAYOUT1_PAGE_SIZE 16
  1115. #define BM_BCH_FLASH2LAYOUT1_PAGE_SIZE 0xFFFF0000
  1116. #ifndef __LANGUAGE_ASM__
  1117. #define BF_BCH_FLASH2LAYOUT1_PAGE_SIZE(v) ((((reg32_t) v) << 16) & BM_BCH_FLASH2LAYOUT1_PAGE_SIZE)
  1118. #else
  1119. #define BF_BCH_FLASH2LAYOUT1_PAGE_SIZE(v) (((v) << 16) & BM_BCH_FLASH2LAYOUT1_PAGE_SIZE)
  1120. #endif
  1121. #ifndef __LANGUAGE_ASM__
  1122. #define BW_BCH_FLASH2LAYOUT1_PAGE_SIZE(v) (HW_BCH_FLASH2LAYOUT1.B.PAGE_SIZE = (v))
  1123. #endif
  1124. /* --- Register HW_BCH_FLASH2LAYOUT1, field ECCN */
  1125. #define BP_BCH_FLASH2LAYOUT1_ECCN 11
  1126. #define BM_BCH_FLASH2LAYOUT1_ECCN 0x0000F800
  1127. #define BF_BCH_FLASH2LAYOUT1_ECCN(v) (((v) << 11) & BM_BCH_FLASH2LAYOUT1_ECCN)
  1128. #ifndef __LANGUAGE_ASM__
  1129. #define BW_BCH_FLASH2LAYOUT1_ECCN(v) BF_CS1(BCH_FLASH2LAYOUT1, ECCN, v)
  1130. #endif
  1131. #define BV_BCH_FLASH2LAYOUT1_ECCN__NONE 0x0
  1132. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC2 0x1
  1133. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC4 0x2
  1134. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC6 0x3
  1135. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC8 0x4
  1136. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC10 0x5
  1137. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC12 0x6
  1138. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC14 0x7
  1139. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC16 0x8
  1140. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC18 0x9
  1141. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC20 0xA
  1142. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC22 0xB
  1143. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC24 0xC
  1144. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC26 0xD
  1145. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC28 0xE
  1146. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC30 0xF
  1147. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC32 0x10
  1148. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC34 0x11
  1149. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC36 0x12
  1150. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC38 0x13
  1151. #define BV_BCH_FLASH2LAYOUT1_ECCN__ECC40 0x14
  1152. /* --- Register HW_BCH_FLASH2LAYOUT1, field GF13_0_GF14_1 */
  1153. #define BP_BCH_FLASH2LAYOUT1_GF13_0_GF14_1 10
  1154. #define BM_BCH_FLASH2LAYOUT1_GF13_0_GF14_1 0x00000400
  1155. #define BF_BCH_FLASH2LAYOUT1_GF13_0_GF14_1(v) (((v) << 10) & BM_BCH_FLASH2LAYOUT1_GF13_0_GF14_1)
  1156. #ifndef __LANGUAGE_ASM__
  1157. #define BW_BCH_FLASH2LAYOUT1_GF13_0_GF14_1(v) BF_CS1(BCH_FLASH2LAYOUT1, GF13_0_GF14_1, v)
  1158. #endif
  1159. /* --- Register HW_BCH_FLASH2LAYOUT1, field DATAN_SIZE */
  1160. #define BP_BCH_FLASH2LAYOUT1_DATAN_SIZE 0
  1161. #define BM_BCH_FLASH2LAYOUT1_DATAN_SIZE 0x000003FF
  1162. #define BF_BCH_FLASH2LAYOUT1_DATAN_SIZE(v) (((v) << 0) & BM_BCH_FLASH2LAYOUT1_DATAN_SIZE)
  1163. #ifndef __LANGUAGE_ASM__
  1164. #define BW_BCH_FLASH2LAYOUT1_DATAN_SIZE(v) BF_CS1(BCH_FLASH2LAYOUT1, DATAN_SIZE, v)
  1165. #endif
  1166. /*
  1167. * HW_BCH_FLASH3LAYOUT0 - Hardware BCH ECC Flash 3 Layout 0 Register
  1168. */
  1169. #ifndef __LANGUAGE_ASM__
  1170. typedef union {
  1171. reg32_t U;
  1172. struct {
  1173. unsigned DATA0_SIZE:10;
  1174. unsigned GF13_0_GF14_1:1;
  1175. unsigned ECC0:5;
  1176. unsigned META_SIZE:8;
  1177. unsigned NBLOCKS:8;
  1178. } B;
  1179. } hw_bch_flash3layout0_t;
  1180. #endif
  1181. /*
  1182. * constants & macros for entire HW_BCH_FLASH3LAYOUT0 register
  1183. */
  1184. #define HW_BCH_FLASH3LAYOUT0_ADDR (0x001140e0)
  1185. #ifndef __LANGUAGE_ASM__
  1186. #ifndef ROCOO_TEST
  1187. #define HW_BCH_FLASH3LAYOUT0 (*(volatile hw_bch_flash3layout0_t *) HW_BCH_FLASH3LAYOUT0_ADDR)
  1188. #define HW_BCH_FLASH3LAYOUT0_RD() (HW_BCH_FLASH3LAYOUT0.U)
  1189. #define HW_BCH_FLASH3LAYOUT0_WR(v) (HW_BCH_FLASH3LAYOUT0.U = (v))
  1190. #define HW_BCH_FLASH3LAYOUT0_SET(v) (HW_BCH_FLASH3LAYOUT0_WR(HW_BCH_FLASH3LAYOUT0_RD() | (v)))
  1191. #define HW_BCH_FLASH3LAYOUT0_CLR(v) (HW_BCH_FLASH3LAYOUT0_WR(HW_BCH_FLASH3LAYOUT0_RD() & ~(v)))
  1192. #define HW_BCH_FLASH3LAYOUT0_TOG(v) (HW_BCH_FLASH3LAYOUT0_WR(HW_BCH_FLASH3LAYOUT0_RD() ^ (v)))
  1193. #else
  1194. #define HW_BCH_FLASH3LAYOUT0_RD() (_rbase->mem32_read(HW_BCH_FLASH3LAYOUT0_ADDR))
  1195. #define HW_BCH_FLASH3LAYOUT0_WR(v) (_rbase->mem32_write(HW_BCH_FLASH3LAYOUT0_ADDR,(v)))
  1196. #define HW_BCH_FLASH3LAYOUT0_SET(v) (HW_BCH_FLASH3LAYOUT0_WR(HW_BCH_FLASH3LAYOUT0_RD() | (v)))
  1197. #define HW_BCH_FLASH3LAYOUT0_CLR(v) (HW_BCH_FLASH3LAYOUT0_WR(HW_BCH_FLASH3LAYOUT0_RD() & ~(v)))
  1198. #define HW_BCH_FLASH3LAYOUT0_TOG(v) (HW_BCH_FLASH3LAYOUT0_WR(HW_BCH_FLASH3LAYOUT0_RD() ^ (v)))
  1199. #endif
  1200. #endif
  1201. /*
  1202. * constants & macros for individual HW_BCH_FLASH3LAYOUT0 bitfields
  1203. */
  1204. /* --- Register HW_BCH_FLASH3LAYOUT0, field NBLOCKS */
  1205. #define BP_BCH_FLASH3LAYOUT0_NBLOCKS 24
  1206. #define BM_BCH_FLASH3LAYOUT0_NBLOCKS 0xFF000000
  1207. #ifndef __LANGUAGE_ASM__
  1208. #define BF_BCH_FLASH3LAYOUT0_NBLOCKS(v) ((((reg32_t) v) << 24) & BM_BCH_FLASH3LAYOUT0_NBLOCKS)
  1209. #else
  1210. #define BF_BCH_FLASH3LAYOUT0_NBLOCKS(v) (((v) << 24) & BM_BCH_FLASH3LAYOUT0_NBLOCKS)
  1211. #endif
  1212. #ifndef __LANGUAGE_ASM__
  1213. #define BW_BCH_FLASH3LAYOUT0_NBLOCKS(v) (HW_BCH_FLASH3LAYOUT0.B.NBLOCKS = (v))
  1214. #endif
  1215. /* --- Register HW_BCH_FLASH3LAYOUT0, field META_SIZE */
  1216. #define BP_BCH_FLASH3LAYOUT0_META_SIZE 16
  1217. #define BM_BCH_FLASH3LAYOUT0_META_SIZE 0x00FF0000
  1218. #define BF_BCH_FLASH3LAYOUT0_META_SIZE(v) (((v) << 16) & BM_BCH_FLASH3LAYOUT0_META_SIZE)
  1219. #ifndef __LANGUAGE_ASM__
  1220. #define BW_BCH_FLASH3LAYOUT0_META_SIZE(v) (HW_BCH_FLASH3LAYOUT0.B.META_SIZE = (v))
  1221. #endif
  1222. /* --- Register HW_BCH_FLASH3LAYOUT0, field ECC0 */
  1223. #define BP_BCH_FLASH3LAYOUT0_ECC0 11
  1224. #define BM_BCH_FLASH3LAYOUT0_ECC0 0x0000F800
  1225. #define BF_BCH_FLASH3LAYOUT0_ECC0(v) (((v) << 11) & BM_BCH_FLASH3LAYOUT0_ECC0)
  1226. #ifndef __LANGUAGE_ASM__
  1227. #define BW_BCH_FLASH3LAYOUT0_ECC0(v) BF_CS1(BCH_FLASH3LAYOUT0, ECC0, v)
  1228. #endif
  1229. #define BV_BCH_FLASH3LAYOUT0_ECC0__NONE 0x0
  1230. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC2 0x1
  1231. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC4 0x2
  1232. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC6 0x3
  1233. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC8 0x4
  1234. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC10 0x5
  1235. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC12 0x6
  1236. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC14 0x7
  1237. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC16 0x8
  1238. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC18 0x9
  1239. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC20 0xA
  1240. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC22 0xB
  1241. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC24 0xC
  1242. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC26 0xD
  1243. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC28 0xE
  1244. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC30 0xF
  1245. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC32 0x10
  1246. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC34 0x11
  1247. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC36 0x12
  1248. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC38 0x13
  1249. #define BV_BCH_FLASH3LAYOUT0_ECC0__ECC40 0x14
  1250. /* --- Register HW_BCH_FLASH3LAYOUT0, field GF13_0_GF14_1 */
  1251. #define BP_BCH_FLASH3LAYOUT0_GF13_0_GF14_1 10
  1252. #define BM_BCH_FLASH3LAYOUT0_GF13_0_GF14_1 0x00000400
  1253. #define BF_BCH_FLASH3LAYOUT0_GF13_0_GF14_1(v) (((v) << 10) & BM_BCH_FLASH3LAYOUT0_GF13_0_GF14_1)
  1254. #ifndef __LANGUAGE_ASM__
  1255. #define BW_BCH_FLASH3LAYOUT0_GF13_0_GF14_1(v) BF_CS1(BCH_FLASH3LAYOUT0, GF13_0_GF14_1, v)
  1256. #endif
  1257. /* --- Register HW_BCH_FLASH3LAYOUT0, field DATA0_SIZE */
  1258. #define BP_BCH_FLASH3LAYOUT0_DATA0_SIZE 0
  1259. #define BM_BCH_FLASH3LAYOUT0_DATA0_SIZE 0x000003FF
  1260. #define BF_BCH_FLASH3LAYOUT0_DATA0_SIZE(v) (((v) << 0) & BM_BCH_FLASH3LAYOUT0_DATA0_SIZE)
  1261. #ifndef __LANGUAGE_ASM__
  1262. #define BW_BCH_FLASH3LAYOUT0_DATA0_SIZE(v) BF_CS1(BCH_FLASH3LAYOUT0, DATA0_SIZE, v)
  1263. #endif
  1264. /*
  1265. * HW_BCH_FLASH3LAYOUT1 - Hardware BCH ECC Flash 3 Layout 1 Register
  1266. */
  1267. #ifndef __LANGUAGE_ASM__
  1268. typedef union {
  1269. reg32_t U;
  1270. struct {
  1271. unsigned DATAN_SIZE:10;
  1272. unsigned GF13_0_GF14_1:1;
  1273. unsigned ECCN:5;
  1274. unsigned PAGE_SIZE:16;
  1275. } B;
  1276. } hw_bch_flash3layout1_t;
  1277. #endif
  1278. /*
  1279. * constants & macros for entire HW_BCH_FLASH3LAYOUT1 register
  1280. */
  1281. #define HW_BCH_FLASH3LAYOUT1_ADDR (0x001140f0)
  1282. #ifndef __LANGUAGE_ASM__
  1283. #ifndef ROCOO_TEST
  1284. #define HW_BCH_FLASH3LAYOUT1 (*(volatile hw_bch_flash3layout1_t *) HW_BCH_FLASH3LAYOUT1_ADDR)
  1285. #define HW_BCH_FLASH3LAYOUT1_RD() (HW_BCH_FLASH3LAYOUT1.U)
  1286. #define HW_BCH_FLASH3LAYOUT1_WR(v) (HW_BCH_FLASH3LAYOUT1.U = (v))
  1287. #define HW_BCH_FLASH3LAYOUT1_SET(v) (HW_BCH_FLASH3LAYOUT1_WR(HW_BCH_FLASH3LAYOUT1_RD() | (v)))
  1288. #define HW_BCH_FLASH3LAYOUT1_CLR(v) (HW_BCH_FLASH3LAYOUT1_WR(HW_BCH_FLASH3LAYOUT1_RD() & ~(v)))
  1289. #define HW_BCH_FLASH3LAYOUT1_TOG(v) (HW_BCH_FLASH3LAYOUT1_WR(HW_BCH_FLASH3LAYOUT1_RD() ^ (v)))
  1290. #else
  1291. #define HW_BCH_FLASH3LAYOUT1_RD() (_rbase->mem32_read(HW_BCH_FLASH3LAYOUT1_ADDR))
  1292. #define HW_BCH_FLASH3LAYOUT1_WR(v) (_rbase->mem32_write(HW_BCH_FLASH3LAYOUT1_ADDR,(v)))
  1293. #define HW_BCH_FLASH3LAYOUT1_SET(v) (HW_BCH_FLASH3LAYOUT1_WR(HW_BCH_FLASH3LAYOUT1_RD() | (v)))
  1294. #define HW_BCH_FLASH3LAYOUT1_CLR(v) (HW_BCH_FLASH3LAYOUT1_WR(HW_BCH_FLASH3LAYOUT1_RD() & ~(v)))
  1295. #define HW_BCH_FLASH3LAYOUT1_TOG(v) (HW_BCH_FLASH3LAYOUT1_WR(HW_BCH_FLASH3LAYOUT1_RD() ^ (v)))
  1296. #endif
  1297. #endif
  1298. /*
  1299. * constants & macros for individual HW_BCH_FLASH3LAYOUT1 bitfields
  1300. */
  1301. /* --- Register HW_BCH_FLASH3LAYOUT1, field PAGE_SIZE */
  1302. #define BP_BCH_FLASH3LAYOUT1_PAGE_SIZE 16
  1303. #define BM_BCH_FLASH3LAYOUT1_PAGE_SIZE 0xFFFF0000
  1304. #ifndef __LANGUAGE_ASM__
  1305. #define BF_BCH_FLASH3LAYOUT1_PAGE_SIZE(v) ((((reg32_t) v) << 16) & BM_BCH_FLASH3LAYOUT1_PAGE_SIZE)
  1306. #else
  1307. #define BF_BCH_FLASH3LAYOUT1_PAGE_SIZE(v) (((v) << 16) & BM_BCH_FLASH3LAYOUT1_PAGE_SIZE)
  1308. #endif
  1309. #ifndef __LANGUAGE_ASM__
  1310. #define BW_BCH_FLASH3LAYOUT1_PAGE_SIZE(v) (HW_BCH_FLASH3LAYOUT1.B.PAGE_SIZE = (v))
  1311. #endif
  1312. /* --- Register HW_BCH_FLASH3LAYOUT1, field ECCN */
  1313. #define BP_BCH_FLASH3LAYOUT1_ECCN 11
  1314. #define BM_BCH_FLASH3LAYOUT1_ECCN 0x0000F800
  1315. #define BF_BCH_FLASH3LAYOUT1_ECCN(v) (((v) << 11) & BM_BCH_FLASH3LAYOUT1_ECCN)
  1316. #ifndef __LANGUAGE_ASM__
  1317. #define BW_BCH_FLASH3LAYOUT1_ECCN(v) BF_CS1(BCH_FLASH3LAYOUT1, ECCN, v)
  1318. #endif
  1319. #define BV_BCH_FLASH3LAYOUT1_ECCN__NONE 0x0
  1320. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC2 0x1
  1321. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC4 0x2
  1322. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC6 0x3
  1323. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC8 0x4
  1324. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC10 0x5
  1325. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC12 0x6
  1326. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC14 0x7
  1327. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC16 0x8
  1328. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC18 0x9
  1329. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC20 0xA
  1330. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC22 0xB
  1331. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC24 0xC
  1332. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC26 0xD
  1333. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC28 0xE
  1334. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC30 0xF
  1335. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC32 0x10
  1336. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC34 0x11
  1337. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC36 0x12
  1338. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC38 0x13
  1339. #define BV_BCH_FLASH3LAYOUT1_ECCN__ECC40 0x14
  1340. /* --- Register HW_BCH_FLASH3LAYOUT1, field GF13_0_GF14_1 */
  1341. #define BP_BCH_FLASH3LAYOUT1_GF13_0_GF14_1 10
  1342. #define BM_BCH_FLASH3LAYOUT1_GF13_0_GF14_1 0x00000400
  1343. #define BF_BCH_FLASH3LAYOUT1_GF13_0_GF14_1(v) (((v) << 10) & BM_BCH_FLASH3LAYOUT1_GF13_0_GF14_1)
  1344. #ifndef __LANGUAGE_ASM__
  1345. #define BW_BCH_FLASH3LAYOUT1_GF13_0_GF14_1(v) BF_CS1(BCH_FLASH3LAYOUT1, GF13_0_GF14_1, v)
  1346. #endif
  1347. /* --- Register HW_BCH_FLASH3LAYOUT1, field DATAN_SIZE */
  1348. #define BP_BCH_FLASH3LAYOUT1_DATAN_SIZE 0
  1349. #define BM_BCH_FLASH3LAYOUT1_DATAN_SIZE 0x000003FF
  1350. #define BF_BCH_FLASH3LAYOUT1_DATAN_SIZE(v) (((v) << 0) & BM_BCH_FLASH3LAYOUT1_DATAN_SIZE)
  1351. #ifndef __LANGUAGE_ASM__
  1352. #define BW_BCH_FLASH3LAYOUT1_DATAN_SIZE(v) BF_CS1(BCH_FLASH3LAYOUT1, DATAN_SIZE, v)
  1353. #endif
  1354. /*
  1355. * HW_BCH_DEBUG0 - Hardware BCH ECC Debug Register0
  1356. */
  1357. #ifndef __LANGUAGE_ASM__
  1358. typedef union {
  1359. reg32_t U;
  1360. struct {
  1361. unsigned DEBUG_REG_SELECT:6;
  1362. unsigned RSVD0:2;
  1363. unsigned BM_KES_TEST_BYPASS:1;
  1364. unsigned KES_DEBUG_STALL:1;
  1365. unsigned KES_DEBUG_STEP:1;
  1366. unsigned KES_STANDALONE:1;
  1367. unsigned KES_DEBUG_KICK:1;
  1368. unsigned KES_DEBUG_MODE4K:1;
  1369. unsigned KES_DEBUG_PAYLOAD_FLAG:1;
  1370. unsigned KES_DEBUG_SHIFT_SYND:1;
  1371. unsigned KES_DEBUG_SYNDROME_SYMBOL:9;
  1372. unsigned RSVD1:7;
  1373. } B;
  1374. } hw_bch_debug0_t;
  1375. #endif
  1376. /*
  1377. * constants & macros for entire HW_BCH_DEBUG0 register
  1378. */
  1379. #define HW_BCH_DEBUG0_ADDR (0x00114100)
  1380. #define HW_BCH_DEBUG0_SET_ADDR (0x00114104)
  1381. #define HW_BCH_DEBUG0_CLR_ADDR (0x00114108)
  1382. #define HW_BCH_DEBUG0_TOG_ADDR (0x0011410c)
  1383. #ifndef __LANGUAGE_ASM__
  1384. #ifndef ROCOO_TEST
  1385. #define HW_BCH_DEBUG0 (*(volatile hw_bch_debug0_t *) HW_BCH_DEBUG0_ADDR)
  1386. #define HW_BCH_DEBUG0_RD() (HW_BCH_DEBUG0.U)
  1387. #define HW_BCH_DEBUG0_WR(v) (HW_BCH_DEBUG0.U = (v))
  1388. #define HW_BCH_DEBUG0_SET(v) ((*(volatile reg32_t *) HW_BCH_DEBUG0_SET_ADDR) = (v))
  1389. #define HW_BCH_DEBUG0_CLR(v) ((*(volatile reg32_t *) HW_BCH_DEBUG0_CLR_ADDR) = (v))
  1390. #define HW_BCH_DEBUG0_TOG(v) ((*(volatile reg32_t *) HW_BCH_DEBUG0_TOG_ADDR) = (v))
  1391. #else
  1392. #define HW_BCH_DEBUG0_RD() (_rbase->mem32_read(HW_BCH_DEBUG0_ADDR))
  1393. #define HW_BCH_DEBUG0_WR(v) (_rbase->mem32_write(HW_BCH_DEBUG0_ADDR,(v)))
  1394. #define HW_BCH_DEBUG0_SET(v) (_rbase->mem32_write(HW_BCH_DEBUG0_SET_ADDR,(v)))
  1395. #define HW_BCH_DEBUG0_CLR(v) (_rbase->mem32_write(HW_BCH_DEBUG0_CLR_ADDR,(v)))
  1396. #define HW_BCH_DEBUG0_TOG(v) (_rbase->mem32_write(HW_BCH_DEBUG0_TOG_ADDR,(v)))
  1397. #endif
  1398. #endif
  1399. /*
  1400. * constants & macros for individual HW_BCH_DEBUG0 bitfields
  1401. */
  1402. /* --- Register HW_BCH_DEBUG0, field RSVD1 */
  1403. #define BP_BCH_DEBUG0_RSVD1 25
  1404. #define BM_BCH_DEBUG0_RSVD1 0xFE000000
  1405. #ifndef __LANGUAGE_ASM__
  1406. #define BF_BCH_DEBUG0_RSVD1(v) ((((reg32_t) v) << 25) & BM_BCH_DEBUG0_RSVD1)
  1407. #else
  1408. #define BF_BCH_DEBUG0_RSVD1(v) (((v) << 25) & BM_BCH_DEBUG0_RSVD1)
  1409. #endif
  1410. /* --- Register HW_BCH_DEBUG0, field KES_DEBUG_SYNDROME_SYMBOL */
  1411. #define BP_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL 16
  1412. #define BM_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL 0x01FF0000
  1413. #define BF_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL(v) (((v) << 16) & BM_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL)
  1414. #ifndef __LANGUAGE_ASM__
  1415. #define BW_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL(v) BF_CS1(BCH_DEBUG0, KES_DEBUG_SYNDROME_SYMBOL, v)
  1416. #endif
  1417. #define BV_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL__NORMAL 0x0
  1418. #define BV_BCH_DEBUG0_KES_DEBUG_SYNDROME_SYMBOL__TEST_MODE 0x1
  1419. /* --- Register HW_BCH_DEBUG0, field KES_DEBUG_SHIFT_SYND */
  1420. #define BP_BCH_DEBUG0_KES_DEBUG_SHIFT_SYND 15
  1421. #define BM_BCH_DEBUG0_KES_DEBUG_SHIFT_SYND 0x00008000
  1422. #define BF_BCH_DEBUG0_KES_DEBUG_SHIFT_SYND(v) (((v) << 15) & BM_BCH_DEBUG0_KES_DEBUG_SHIFT_SYND)
  1423. #ifndef __LANGUAGE_ASM__
  1424. #define BW_BCH_DEBUG0_KES_DEBUG_SHIFT_SYND(v) BF_CS1(BCH_DEBUG0, KES_DEBUG_SHIFT_SYND, v)
  1425. #endif
  1426. /* --- Register HW_BCH_DEBUG0, field KES_DEBUG_PAYLOAD_FLAG */
  1427. #define BP_BCH_DEBUG0_KES_DEBUG_PAYLOAD_FLAG 14
  1428. #define BM_BCH_DEBUG0_KES_DEBUG_PAYLOAD_FLAG 0x00004000
  1429. #define BF_BCH_DEBUG0_KES_DEBUG_PAYLOAD_FLAG(v) (((v) << 14) & BM_BCH_DEBUG0_KES_DEBUG_PAYLOAD_FLAG)
  1430. #ifndef __LANGUAGE_ASM__
  1431. #define BW_BCH_DEBUG0_KES_DEBUG_PAYLOAD_FLAG(v) BF_CS1(BCH_DEBUG0, KES_DEBUG_PAYLOAD_FLAG, v)
  1432. #endif
  1433. #define BV_BCH_DEBUG0_KES_DEBUG_PAYLOAD_FLAG__DATA 0x1
  1434. #define BV_BCH_DEBUG0_KES_DEBUG_PAYLOAD_FLAG__AUX 0x1
  1435. /* --- Register HW_BCH_DEBUG0, field KES_DEBUG_MODE4K */
  1436. #define BP_BCH_DEBUG0_KES_DEBUG_MODE4K 13
  1437. #define BM_BCH_DEBUG0_KES_DEBUG_MODE4K 0x00002000
  1438. #define BF_BCH_DEBUG0_KES_DEBUG_MODE4K(v) (((v) << 13) & BM_BCH_DEBUG0_KES_DEBUG_MODE4K)
  1439. #ifndef __LANGUAGE_ASM__
  1440. #define BW_BCH_DEBUG0_KES_DEBUG_MODE4K(v) BF_CS1(BCH_DEBUG0, KES_DEBUG_MODE4K, v)
  1441. #endif
  1442. #define BV_BCH_DEBUG0_KES_DEBUG_MODE4K__4k 0x1
  1443. #define BV_BCH_DEBUG0_KES_DEBUG_MODE4K__2k 0x1
  1444. /* --- Register HW_BCH_DEBUG0, field KES_DEBUG_KICK */
  1445. #define BP_BCH_DEBUG0_KES_DEBUG_KICK 12
  1446. #define BM_BCH_DEBUG0_KES_DEBUG_KICK 0x00001000
  1447. #define BF_BCH_DEBUG0_KES_DEBUG_KICK(v) (((v) << 12) & BM_BCH_DEBUG0_KES_DEBUG_KICK)
  1448. #ifndef __LANGUAGE_ASM__
  1449. #define BW_BCH_DEBUG0_KES_DEBUG_KICK(v) BF_CS1(BCH_DEBUG0, KES_DEBUG_KICK, v)
  1450. #endif
  1451. /* --- Register HW_BCH_DEBUG0, field KES_STANDALONE */
  1452. #define BP_BCH_DEBUG0_KES_STANDALONE 11
  1453. #define BM_BCH_DEBUG0_KES_STANDALONE 0x00000800
  1454. #define BF_BCH_DEBUG0_KES_STANDALONE(v) (((v) << 11) & BM_BCH_DEBUG0_KES_STANDALONE)
  1455. #ifndef __LANGUAGE_ASM__
  1456. #define BW_BCH_DEBUG0_KES_STANDALONE(v) BF_CS1(BCH_DEBUG0, KES_STANDALONE, v)
  1457. #endif
  1458. #define BV_BCH_DEBUG0_KES_STANDALONE__NORMAL 0x0
  1459. #define BV_BCH_DEBUG0_KES_STANDALONE__TEST_MODE 0x1
  1460. /* --- Register HW_BCH_DEBUG0, field KES_DEBUG_STEP */
  1461. #define BP_BCH_DEBUG0_KES_DEBUG_STEP 10
  1462. #define BM_BCH_DEBUG0_KES_DEBUG_STEP 0x00000400
  1463. #define BF_BCH_DEBUG0_KES_DEBUG_STEP(v) (((v) << 10) & BM_BCH_DEBUG0_KES_DEBUG_STEP)
  1464. #ifndef __LANGUAGE_ASM__
  1465. #define BW_BCH_DEBUG0_KES_DEBUG_STEP(v) BF_CS1(BCH_DEBUG0, KES_DEBUG_STEP, v)
  1466. #endif
  1467. /* --- Register HW_BCH_DEBUG0, field KES_DEBUG_STALL */
  1468. #define BP_BCH_DEBUG0_KES_DEBUG_STALL 9
  1469. #define BM_BCH_DEBUG0_KES_DEBUG_STALL 0x00000200
  1470. #define BF_BCH_DEBUG0_KES_DEBUG_STALL(v) (((v) << 9) & BM_BCH_DEBUG0_KES_DEBUG_STALL)
  1471. #ifndef __LANGUAGE_ASM__
  1472. #define BW_BCH_DEBUG0_KES_DEBUG_STALL(v) BF_CS1(BCH_DEBUG0, KES_DEBUG_STALL, v)
  1473. #endif
  1474. #define BV_BCH_DEBUG0_KES_DEBUG_STALL__NORMAL 0x0
  1475. #define BV_BCH_DEBUG0_KES_DEBUG_STALL__WAIT 0x1
  1476. /* --- Register HW_BCH_DEBUG0, field BM_KES_TEST_BYPASS */
  1477. #define BP_BCH_DEBUG0_BM_KES_TEST_BYPASS 8
  1478. #define BM_BCH_DEBUG0_BM_KES_TEST_BYPASS 0x00000100
  1479. #define BF_BCH_DEBUG0_BM_KES_TEST_BYPASS(v) (((v) << 8) & BM_BCH_DEBUG0_BM_KES_TEST_BYPASS)
  1480. #ifndef __LANGUAGE_ASM__
  1481. #define BW_BCH_DEBUG0_BM_KES_TEST_BYPASS(v) BF_CS1(BCH_DEBUG0, BM_KES_TEST_BYPASS, v)
  1482. #endif
  1483. #define BV_BCH_DEBUG0_BM_KES_TEST_BYPASS__NORMAL 0x0
  1484. #define BV_BCH_DEBUG0_BM_KES_TEST_BYPASS__TEST_MODE 0x1
  1485. /* --- Register HW_BCH_DEBUG0, field RSVD0 */
  1486. #define BP_BCH_DEBUG0_RSVD0 6
  1487. #define BM_BCH_DEBUG0_RSVD0 0x000000C0
  1488. #define BF_BCH_DEBUG0_RSVD0(v) (((v) << 6) & BM_BCH_DEBUG0_RSVD0)
  1489. /* --- Register HW_BCH_DEBUG0, field DEBUG_REG_SELECT */
  1490. #define BP_BCH_DEBUG0_DEBUG_REG_SELECT 0
  1491. #define BM_BCH_DEBUG0_DEBUG_REG_SELECT 0x0000003F
  1492. #define BF_BCH_DEBUG0_DEBUG_REG_SELECT(v) (((v) << 0) & BM_BCH_DEBUG0_DEBUG_REG_SELECT)
  1493. #ifndef __LANGUAGE_ASM__
  1494. #define BW_BCH_DEBUG0_DEBUG_REG_SELECT(v) BF_CS1(BCH_DEBUG0, DEBUG_REG_SELECT, v)
  1495. #endif
  1496. /*
  1497. * HW_BCH_DBGKESREAD - KES Debug Read Register
  1498. */
  1499. #ifndef __LANGUAGE_ASM__
  1500. typedef union {
  1501. reg32_t U;
  1502. struct {
  1503. unsigned VALUES:32;
  1504. } B;
  1505. } hw_bch_dbgkesread_t;
  1506. #endif
  1507. /*
  1508. * constants & macros for entire HW_BCH_DBGKESREAD register
  1509. */
  1510. #define HW_BCH_DBGKESREAD_ADDR (0x00114110)
  1511. #ifndef __LANGUAGE_ASM__
  1512. #ifndef ROCOO_TEST
  1513. #define HW_BCH_DBGKESREAD (*(volatile hw_bch_dbgkesread_t *) HW_BCH_DBGKESREAD_ADDR)
  1514. #define HW_BCH_DBGKESREAD_RD() (HW_BCH_DBGKESREAD.U)
  1515. #else
  1516. #define HW_BCH_DBGKESREAD_RD() (_rbase->mem32_read(HW_BCH_DBGKESREAD_ADDR))
  1517. #endif
  1518. #endif
  1519. /*
  1520. * constants & macros for individual HW_BCH_DBGKESREAD bitfields
  1521. */
  1522. /* --- Register HW_BCH_DBGKESREAD, field VALUES */
  1523. #define BP_BCH_DBGKESREAD_VALUES 0
  1524. #define BM_BCH_DBGKESREAD_VALUES 0xFFFFFFFF
  1525. #ifndef __LANGUAGE_ASM__
  1526. #define BF_BCH_DBGKESREAD_VALUES(v) ((reg32_t) v)
  1527. #else
  1528. #define BF_BCH_DBGKESREAD_VALUES(v) (v)
  1529. #endif
  1530. /*
  1531. * HW_BCH_DBGCSFEREAD - Chien Search Debug Read Register
  1532. */
  1533. #ifndef __LANGUAGE_ASM__
  1534. typedef union {
  1535. reg32_t U;
  1536. struct {
  1537. unsigned VALUES:32;
  1538. } B;
  1539. } hw_bch_dbgcsferead_t;
  1540. #endif
  1541. /*
  1542. * constants & macros for entire HW_BCH_DBGCSFEREAD register
  1543. */
  1544. #define HW_BCH_DBGCSFEREAD_ADDR (0x00114120)
  1545. #ifndef __LANGUAGE_ASM__
  1546. #ifndef ROCOO_TEST
  1547. #define HW_BCH_DBGCSFEREAD (*(volatile hw_bch_dbgcsferead_t *) HW_BCH_DBGCSFEREAD_ADDR)
  1548. #define HW_BCH_DBGCSFEREAD_RD() (HW_BCH_DBGCSFEREAD.U)
  1549. #else
  1550. #define HW_BCH_DBGCSFEREAD_RD() (_rbase->mem32_read(HW_BCH_DBGCSFEREAD_ADDR))
  1551. #endif
  1552. #endif
  1553. /*
  1554. * constants & macros for individual HW_BCH_DBGCSFEREAD bitfields
  1555. */
  1556. /* --- Register HW_BCH_DBGCSFEREAD, field VALUES */
  1557. #define BP_BCH_DBGCSFEREAD_VALUES 0
  1558. #define BM_BCH_DBGCSFEREAD_VALUES 0xFFFFFFFF
  1559. #ifndef __LANGUAGE_ASM__
  1560. #define BF_BCH_DBGCSFEREAD_VALUES(v) ((reg32_t) v)
  1561. #else
  1562. #define BF_BCH_DBGCSFEREAD_VALUES(v) (v)
  1563. #endif
  1564. /*
  1565. * HW_BCH_DBGSYNDGENREAD - Syndrome Generator Debug Read Register
  1566. */
  1567. #ifndef __LANGUAGE_ASM__
  1568. typedef union {
  1569. reg32_t U;
  1570. struct {
  1571. unsigned VALUES:32;
  1572. } B;
  1573. } hw_bch_dbgsyndgenread_t;
  1574. #endif
  1575. /*
  1576. * constants & macros for entire HW_BCH_DBGSYNDGENREAD register
  1577. */
  1578. #define HW_BCH_DBGSYNDGENREAD_ADDR (0x00114130)
  1579. #ifndef __LANGUAGE_ASM__
  1580. #ifndef ROCOO_TEST
  1581. #define HW_BCH_DBGSYNDGENREAD (*(volatile hw_bch_dbgsyndgenread_t *) HW_BCH_DBGSYNDGENREAD_ADDR)
  1582. #define HW_BCH_DBGSYNDGENREAD_RD() (HW_BCH_DBGSYNDGENREAD.U)
  1583. #else
  1584. #define HW_BCH_DBGSYNDGENREAD_RD() (_rbase->mem32_read(HW_BCH_DBGSYNDGENREAD_ADDR))
  1585. #endif
  1586. #endif
  1587. /*
  1588. * constants & macros for individual HW_BCH_DBGSYNDGENREAD bitfields
  1589. */
  1590. /* --- Register HW_BCH_DBGSYNDGENREAD, field VALUES */
  1591. #define BP_BCH_DBGSYNDGENREAD_VALUES 0
  1592. #define BM_BCH_DBGSYNDGENREAD_VALUES 0xFFFFFFFF
  1593. #ifndef __LANGUAGE_ASM__
  1594. #define BF_BCH_DBGSYNDGENREAD_VALUES(v) ((reg32_t) v)
  1595. #else
  1596. #define BF_BCH_DBGSYNDGENREAD_VALUES(v) (v)
  1597. #endif
  1598. /*
  1599. * HW_BCH_DBGAHBMREAD - Bus Master and ECC Controller Debug Read Register
  1600. */
  1601. #ifndef __LANGUAGE_ASM__
  1602. typedef union {
  1603. reg32_t U;
  1604. struct {
  1605. unsigned VALUES:32;
  1606. } B;
  1607. } hw_bch_dbgahbmread_t;
  1608. #endif
  1609. /*
  1610. * constants & macros for entire HW_BCH_DBGAHBMREAD register
  1611. */
  1612. #define HW_BCH_DBGAHBMREAD_ADDR (0x00114140)
  1613. #ifndef __LANGUAGE_ASM__
  1614. #ifndef ROCOO_TEST
  1615. #define HW_BCH_DBGAHBMREAD (*(volatile hw_bch_dbgahbmread_t *) HW_BCH_DBGAHBMREAD_ADDR)
  1616. #define HW_BCH_DBGAHBMREAD_RD() (HW_BCH_DBGAHBMREAD.U)
  1617. #else
  1618. #define HW_BCH_DBGAHBMREAD_RD() (_rbase->mem32_read(HW_BCH_DBGAHBMREAD_ADDR))
  1619. #endif
  1620. #endif
  1621. /*
  1622. * constants & macros for individual HW_BCH_DBGAHBMREAD bitfields
  1623. */
  1624. /* --- Register HW_BCH_DBGAHBMREAD, field VALUES */
  1625. #define BP_BCH_DBGAHBMREAD_VALUES 0
  1626. #define BM_BCH_DBGAHBMREAD_VALUES 0xFFFFFFFF
  1627. #ifndef __LANGUAGE_ASM__
  1628. #define BF_BCH_DBGAHBMREAD_VALUES(v) ((reg32_t) v)
  1629. #else
  1630. #define BF_BCH_DBGAHBMREAD_VALUES(v) (v)
  1631. #endif
  1632. /*
  1633. * HW_BCH_BLOCKNAME - Block Name Register
  1634. */
  1635. #ifndef __LANGUAGE_ASM__
  1636. typedef union {
  1637. reg32_t U;
  1638. struct {
  1639. unsigned NAME:32;
  1640. } B;
  1641. } hw_bch_blockname_t;
  1642. #endif
  1643. /*
  1644. * constants & macros for entire HW_BCH_BLOCKNAME register
  1645. */
  1646. #define HW_BCH_BLOCKNAME_ADDR (0x00114150)
  1647. #ifndef __LANGUAGE_ASM__
  1648. #ifndef ROCOO_TEST
  1649. #define HW_BCH_BLOCKNAME (*(volatile hw_bch_blockname_t *) HW_BCH_BLOCKNAME_ADDR)
  1650. #define HW_BCH_BLOCKNAME_RD() (HW_BCH_BLOCKNAME.U)
  1651. #else
  1652. #define HW_BCH_BLOCKNAME_RD() (_rbase->mem32_read(HW_BCH_BLOCKNAME_ADDR))
  1653. #endif
  1654. #endif
  1655. /*
  1656. * constants & macros for individual HW_BCH_BLOCKNAME bitfields
  1657. */
  1658. /* --- Register HW_BCH_BLOCKNAME, field NAME */
  1659. #define BP_BCH_BLOCKNAME_NAME 0
  1660. #define BM_BCH_BLOCKNAME_NAME 0xFFFFFFFF
  1661. #ifndef __LANGUAGE_ASM__
  1662. #define BF_BCH_BLOCKNAME_NAME(v) ((reg32_t) v)
  1663. #else
  1664. #define BF_BCH_BLOCKNAME_NAME(v) (v)
  1665. #endif
  1666. /*
  1667. * HW_BCH_VERSION - BCH Version Register
  1668. */
  1669. #ifndef __LANGUAGE_ASM__
  1670. typedef union {
  1671. reg32_t U;
  1672. struct {
  1673. unsigned STEP:16;
  1674. unsigned MINOR:8;
  1675. unsigned MAJOR:8;
  1676. } B;
  1677. } hw_bch_version_t;
  1678. #endif
  1679. /*
  1680. * constants & macros for entire HW_BCH_VERSION register
  1681. */
  1682. #define HW_BCH_VERSION_ADDR (0x00114160)
  1683. #ifndef __LANGUAGE_ASM__
  1684. #ifndef ROCOO_TEST
  1685. #define HW_BCH_VERSION (*(volatile hw_bch_version_t *) HW_BCH_VERSION_ADDR)
  1686. #define HW_BCH_VERSION_RD() (HW_BCH_VERSION.U)
  1687. #else
  1688. #define HW_BCH_VERSION_RD() (_rbase->mem32_read(HW_BCH_VERSION_ADDR))
  1689. #endif
  1690. #endif
  1691. /*
  1692. * constants & macros for individual HW_BCH_VERSION bitfields
  1693. */
  1694. /* --- Register HW_BCH_VERSION, field MAJOR */
  1695. #define BP_BCH_VERSION_MAJOR 24
  1696. #define BM_BCH_VERSION_MAJOR 0xFF000000
  1697. #ifndef __LANGUAGE_ASM__
  1698. #define BF_BCH_VERSION_MAJOR(v) ((((reg32_t) v) << 24) & BM_BCH_VERSION_MAJOR)
  1699. #else
  1700. #define BF_BCH_VERSION_MAJOR(v) (((v) << 24) & BM_BCH_VERSION_MAJOR)
  1701. #endif
  1702. /* --- Register HW_BCH_VERSION, field MINOR */
  1703. #define BP_BCH_VERSION_MINOR 16
  1704. #define BM_BCH_VERSION_MINOR 0x00FF0000
  1705. #define BF_BCH_VERSION_MINOR(v) (((v) << 16) & BM_BCH_VERSION_MINOR)
  1706. /* --- Register HW_BCH_VERSION, field STEP */
  1707. #define BP_BCH_VERSION_STEP 0
  1708. #define BM_BCH_VERSION_STEP 0x0000FFFF
  1709. #define BF_BCH_VERSION_STEP(v) (((v) << 0) & BM_BCH_VERSION_STEP)
  1710. #endif /* _BCH_H */
  1711. ////////////////////////////////////////////////////////////////////////////////