udb 0.1.14 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. checksums.yaml +4 -4
  2. data/.data/cfgs/example_rv64_with_overlay.yaml +5 -6
  3. data/.data/cfgs/mc100-32-full-example.yaml +2 -2
  4. data/.data/cfgs/qc_iu.yaml +2 -2
  5. data/.data/cfgs/rv32-riscv-tests.yaml +4 -4
  6. data/.data/cfgs/rv32-vector.yaml +4 -4
  7. data/.data/cfgs/rv64-riscv-tests.yaml +4 -4
  8. data/.data/cfgs/rv64-vector.yaml +4 -4
  9. data/.data/spec/schemas/README.adoc +3 -0
  10. data/.data/spec/schemas/schema_defs.json +3 -3
  11. data/.data/spec/std/isa/csr/H/hcounteren.layout +3 -3
  12. data/.data/spec/std/isa/csr/H/hcounteren.yaml +31 -31
  13. data/.data/spec/std/isa/csr/H/htinst.yaml +3 -3
  14. data/.data/spec/std/isa/csr/H/htval.yaml +3 -3
  15. data/.data/spec/std/isa/csr/H/mtinst.yaml +1 -1
  16. data/.data/spec/std/isa/csr/Smcntrpmf/mcyclecfg.yaml +1 -1
  17. data/.data/spec/std/isa/csr/Smcntrpmf/mcyclecfgh.yaml +1 -1
  18. data/.data/spec/std/isa/csr/Smcntrpmf/minstretcfg.yaml +1 -1
  19. data/.data/spec/std/isa/csr/Smcntrpmf/minstretcfgh.yaml +1 -1
  20. data/.data/spec/std/isa/csr/Sscofpmf/scountovf.layout +1 -1
  21. data/.data/spec/std/isa/csr/Sscofpmf/scountovf.yaml +29 -29
  22. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter10.yaml +4 -4
  23. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter10h.yaml +1 -1
  24. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter11.yaml +4 -4
  25. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter11h.yaml +1 -1
  26. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter12.yaml +4 -4
  27. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter12h.yaml +1 -1
  28. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter13.yaml +4 -4
  29. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter13h.yaml +1 -1
  30. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter14.yaml +4 -4
  31. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter14h.yaml +1 -1
  32. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter15.yaml +4 -4
  33. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter15h.yaml +1 -1
  34. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter16.yaml +4 -4
  35. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter16h.yaml +1 -1
  36. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter17.yaml +4 -4
  37. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter17h.yaml +1 -1
  38. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter18.yaml +4 -4
  39. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter18h.yaml +1 -1
  40. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter19.yaml +4 -4
  41. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter19h.yaml +1 -1
  42. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter20.yaml +4 -4
  43. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter20h.yaml +1 -1
  44. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter21.yaml +4 -4
  45. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter21h.yaml +1 -1
  46. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter22.yaml +4 -4
  47. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter22h.yaml +1 -1
  48. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter23.yaml +4 -4
  49. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter23h.yaml +1 -1
  50. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter24.yaml +4 -4
  51. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter24h.yaml +1 -1
  52. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter25.yaml +4 -4
  53. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter25h.yaml +1 -1
  54. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter26.yaml +4 -4
  55. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter26h.yaml +1 -1
  56. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter27.yaml +4 -4
  57. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter27h.yaml +1 -1
  58. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter28.yaml +4 -4
  59. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter28h.yaml +1 -1
  60. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter29.yaml +4 -4
  61. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter29h.yaml +1 -1
  62. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter3.yaml +4 -4
  63. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter30.yaml +4 -4
  64. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter30h.yaml +1 -1
  65. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter31.yaml +4 -4
  66. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter31h.yaml +1 -1
  67. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter3h.yaml +1 -1
  68. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter4.yaml +4 -4
  69. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter4h.yaml +1 -1
  70. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter5.yaml +4 -4
  71. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter5h.yaml +1 -1
  72. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter6.yaml +4 -4
  73. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter6h.yaml +1 -1
  74. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter7.yaml +4 -4
  75. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter7h.yaml +1 -1
  76. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter8.yaml +4 -4
  77. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter8h.yaml +1 -1
  78. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter9.yaml +4 -4
  79. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter9h.yaml +1 -1
  80. data/.data/spec/std/isa/csr/Zihpm/mhpmcounterN.layout +4 -4
  81. data/.data/spec/std/isa/csr/Zihpm/mhpmcounterNh.layout +1 -1
  82. data/.data/spec/std/isa/csr/hstatus.yaml +1 -1
  83. data/.data/spec/std/isa/csr/mcycle.yaml +6 -6
  84. data/.data/spec/std/isa/csr/minstret.yaml +3 -3
  85. data/.data/spec/std/isa/csr/minstreth.yaml +1 -1
  86. data/.data/spec/std/isa/csr/mstatus.yaml +13 -19
  87. data/.data/spec/std/isa/csr/mtvec.yaml +16 -57
  88. data/.data/spec/std/isa/csr/sie.yaml +30 -4
  89. data/.data/spec/std/isa/csr/sip.yaml +16 -2
  90. data/.data/spec/std/isa/csr/stvec.yaml +11 -12
  91. data/.data/spec/std/isa/csr/vstval.yaml +1 -1
  92. data/.data/spec/std/isa/csr/vstvec.yaml +14 -15
  93. data/.data/spec/std/isa/ext/Q.yaml +1 -1
  94. data/.data/spec/std/isa/ext/Shlcofideleg.yaml +24 -0
  95. data/.data/spec/std/isa/ext/Shvstvecd.yaml +2 -2
  96. data/.data/spec/std/isa/ext/Sspm.yaml +5 -0
  97. data/.data/spec/std/isa/ext/Sstvecd.yaml +2 -2
  98. data/.data/spec/std/isa/ext/Sstvecv.yaml +2 -2
  99. data/.data/spec/std/isa/ext/Supm.yaml +17 -0
  100. data/.data/spec/std/isa/ext/Zcb.yaml +3 -0
  101. data/.data/spec/std/isa/ext/Zfbfmin.yaml +3 -5
  102. data/.data/spec/std/isa/ext/Ziccid.yaml +29 -0
  103. data/.data/spec/std/isa/ext/Zicfilp.yaml +5 -1
  104. data/.data/spec/std/isa/ext/Zicfiss.yaml +20 -1
  105. data/.data/spec/std/isa/ext/Zihpm.yaml +3 -0
  106. data/.data/spec/std/isa/ext/Zilx.yaml +58 -0
  107. data/.data/spec/std/isa/ext/Zkt.yaml +33 -1
  108. data/.data/spec/std/isa/ext/Zvabd.yaml +21 -0
  109. data/.data/spec/std/isa/ext/Zvbc.yaml +3 -0
  110. data/.data/spec/std/isa/ext/Zvkb.yaml +3 -0
  111. data/.data/spec/std/isa/ext/Zvkg.yaml +3 -0
  112. data/.data/spec/std/isa/ext/Zvkned.yaml +3 -0
  113. data/.data/spec/std/isa/ext/Zvknha.yaml +3 -0
  114. data/.data/spec/std/isa/ext/Zvknhb.yaml +4 -2
  115. data/.data/spec/std/isa/ext/Zvksed.yaml +3 -0
  116. data/.data/spec/std/isa/ext/Zvksh.yaml +3 -0
  117. data/.data/spec/std/isa/ext/Zvkt.yaml +3 -0
  118. data/.data/spec/std/isa/inst/C/c.add.yaml +1 -0
  119. data/.data/spec/std/isa/inst/C/c.addi.yaml +1 -0
  120. data/.data/spec/std/isa/inst/C/c.addiw.yaml +1 -0
  121. data/.data/spec/std/isa/inst/C/c.addw.yaml +1 -0
  122. data/.data/spec/std/isa/inst/C/c.and.yaml +1 -0
  123. data/.data/spec/std/isa/inst/C/c.andi.yaml +1 -0
  124. data/.data/spec/std/isa/inst/C/c.lui.yaml +1 -0
  125. data/.data/spec/std/isa/inst/C/c.mv.yaml +1 -0
  126. data/.data/spec/std/isa/inst/C/c.nop.yaml +13 -2
  127. data/.data/spec/std/isa/inst/C/c.or.yaml +1 -0
  128. data/.data/spec/std/isa/inst/C/c.slli.yaml +1 -0
  129. data/.data/spec/std/isa/inst/C/c.srai.yaml +1 -0
  130. data/.data/spec/std/isa/inst/C/c.srli.yaml +1 -0
  131. data/.data/spec/std/isa/inst/C/c.sub.yaml +1 -0
  132. data/.data/spec/std/isa/inst/C/c.subw.yaml +1 -0
  133. data/.data/spec/std/isa/inst/C/c.xor.yaml +1 -0
  134. data/.data/spec/std/isa/inst/D/fld.yaml +1 -0
  135. data/.data/spec/std/isa/inst/D/fsd.yaml +1 -0
  136. data/.data/spec/std/isa/inst/F/fadd.s.yaml +1 -1
  137. data/.data/spec/std/isa/inst/F/fcvt.l.s.yaml +1 -1
  138. data/.data/spec/std/isa/inst/F/fcvt.lu.s.yaml +1 -1
  139. data/.data/spec/std/isa/inst/F/fcvt.s.l.yaml +1 -1
  140. data/.data/spec/std/isa/inst/F/fcvt.s.lu.yaml +1 -1
  141. data/.data/spec/std/isa/inst/F/fcvt.s.wu.yaml +1 -1
  142. data/.data/spec/std/isa/inst/F/fcvt.w.s.yaml +1 -1
  143. data/.data/spec/std/isa/inst/F/fcvt.wu.s.yaml +1 -1
  144. data/.data/spec/std/isa/inst/F/fdiv.s.yaml +1 -1
  145. data/.data/spec/std/isa/inst/F/feq.s.yaml +1 -1
  146. data/.data/spec/std/isa/inst/F/fle.s.yaml +1 -1
  147. data/.data/spec/std/isa/inst/F/fleq.s.yaml +1 -1
  148. data/.data/spec/std/isa/inst/F/flt.s.yaml +1 -1
  149. data/.data/spec/std/isa/inst/F/fltq.s.yaml +1 -1
  150. data/.data/spec/std/isa/inst/F/flw.yaml +2 -1
  151. data/.data/spec/std/isa/inst/F/fmadd.s.yaml +1 -1
  152. data/.data/spec/std/isa/inst/F/fmax.s.yaml +1 -1
  153. data/.data/spec/std/isa/inst/F/fmin.s.yaml +1 -1
  154. data/.data/spec/std/isa/inst/F/fmsub.s.yaml +1 -1
  155. data/.data/spec/std/isa/inst/F/fmul.s.yaml +1 -1
  156. data/.data/spec/std/isa/inst/F/fmv.w.x.yaml +1 -1
  157. data/.data/spec/std/isa/inst/F/fmv.x.w.yaml +1 -1
  158. data/.data/spec/std/isa/inst/F/fnmadd.s.yaml +1 -1
  159. data/.data/spec/std/isa/inst/F/fnmsub.s.yaml +1 -1
  160. data/.data/spec/std/isa/inst/F/fsgnj.s.yaml +1 -1
  161. data/.data/spec/std/isa/inst/F/fsgnjn.s.yaml +1 -1
  162. data/.data/spec/std/isa/inst/F/fsgnjx.s.yaml +1 -1
  163. data/.data/spec/std/isa/inst/F/fsqrt.s.yaml +1 -1
  164. data/.data/spec/std/isa/inst/F/fsub.s.yaml +1 -1
  165. data/.data/spec/std/isa/inst/F/fsw.yaml +2 -1
  166. data/.data/spec/std/isa/inst/I/sd.yaml +1 -1
  167. data/.data/spec/std/isa/inst/Q/fadd.q.yaml +2 -2
  168. data/.data/spec/std/isa/inst/Q/fclass.q.yaml +5 -5
  169. data/.data/spec/std/isa/inst/Q/fleq.q.yaml +0 -1
  170. data/.data/spec/std/isa/inst/Q/fli.q.yaml +1 -1
  171. data/.data/spec/std/isa/inst/Q/flq.yaml +1 -0
  172. data/.data/spec/std/isa/inst/Q/fltq.q.yaml +0 -1
  173. data/.data/spec/std/isa/inst/Q/fmaxm.q.yaml +0 -1
  174. data/.data/spec/std/isa/inst/Q/fminm.q.yaml +0 -1
  175. data/.data/spec/std/isa/inst/Q/fmvp.q.x.yaml +1 -1
  176. data/.data/spec/std/isa/inst/Q/fsq.yaml +1 -0
  177. data/.data/spec/std/isa/inst/V/vmv.v.i.yaml +1 -0
  178. data/.data/spec/std/isa/inst/Zcb/c.mul.yaml +1 -0
  179. data/.data/spec/std/isa/inst/Zcb/c.not.yaml +1 -0
  180. data/.data/spec/std/isa/inst/Zcb/c.zext.b.yaml +2 -7
  181. data/.data/spec/std/isa/inst/Zcb/c.zext.w.yaml +1 -1
  182. data/.data/spec/std/isa/inst/Zcmop/c.mop.1.yaml +2 -0
  183. data/.data/spec/std/isa/inst/Zcmop/c.mop.5.yaml +2 -0
  184. data/.data/spec/std/isa/inst/Zcmop/c.mop.N.layout +7 -0
  185. data/.data/spec/std/isa/inst/Zfa/fli.s.yaml +1 -1
  186. data/.data/spec/std/isa/inst/Zfa/fmaxm.s.yaml +1 -1
  187. data/.data/spec/std/isa/inst/Zfa/fminm.s.yaml +1 -1
  188. data/.data/spec/std/isa/inst/Zfa/fround.s.yaml +1 -1
  189. data/.data/spec/std/isa/inst/Zfa/froundnx.s.yaml +1 -1
  190. data/.data/spec/std/isa/inst/Zfh/flh.yaml +5 -2
  191. data/.data/spec/std/isa/inst/Zfh/fmv.h.x.yaml +3 -1
  192. data/.data/spec/std/isa/inst/Zfh/fmv.x.h.yaml +3 -1
  193. data/.data/spec/std/isa/inst/Zfh/fsh.yaml +4 -1
  194. data/.data/spec/std/isa/inst/Zicfiss/c.sspopchk.yaml +30 -0
  195. data/.data/spec/std/isa/inst/Zicfiss/c.sspush.yaml +29 -0
  196. data/.data/spec/std/isa/inst/Zicond/czero.eqz.yaml +1 -1
  197. data/.data/spec/std/isa/inst/Zicond/czero.nez.yaml +1 -1
  198. data/.data/spec/std/isa/inst/Zicsr/csrrw.yaml +12 -0
  199. data/.data/spec/std/isa/inst/Zilx/lxd.yaml +38 -0
  200. data/.data/spec/std/isa/inst/Zilx/lxh.yaml +35 -0
  201. data/.data/spec/std/isa/inst/Zilx/lxhu.yaml +35 -0
  202. data/.data/spec/std/isa/inst/Zilx/lxsb.yaml +40 -0
  203. data/.data/spec/std/isa/inst/Zilx/lxsbu.yaml +40 -0
  204. data/.data/spec/std/isa/inst/Zilx/lxsd.yaml +38 -0
  205. data/.data/spec/std/isa/inst/Zilx/lxsh.yaml +35 -0
  206. data/.data/spec/std/isa/inst/Zilx/lxshu.yaml +35 -0
  207. data/.data/spec/std/isa/inst/Zilx/lxsuwb.yaml +40 -0
  208. data/.data/spec/std/isa/inst/Zilx/lxsuwbu.yaml +40 -0
  209. data/.data/spec/std/isa/inst/Zilx/lxsuwd.yaml +39 -0
  210. data/.data/spec/std/isa/inst/Zilx/lxsuwh.yaml +40 -0
  211. data/.data/spec/std/isa/inst/Zilx/lxsuwhu.yaml +40 -0
  212. data/.data/spec/std/isa/inst/Zilx/lxsuww.yaml +40 -0
  213. data/.data/spec/std/isa/inst/Zilx/lxsuwwu.yaml +40 -0
  214. data/.data/spec/std/isa/inst/Zilx/lxsw.yaml +35 -0
  215. data/.data/spec/std/isa/inst/Zilx/lxswu.yaml +39 -0
  216. data/.data/spec/std/isa/inst/Zilx/lxw.yaml +35 -0
  217. data/.data/spec/std/isa/inst/Zilx/lxwu.yaml +39 -0
  218. data/.data/spec/std/isa/inst/Zvabd/vabd.vv.yaml +67 -0
  219. data/.data/spec/std/isa/inst/Zvabd/vabdu.vv.yaml +67 -0
  220. data/.data/spec/std/isa/inst/Zvabd/vabs.v.yaml +61 -0
  221. data/.data/spec/std/isa/inst/Zvabd/vwabda.vv.yaml +72 -0
  222. data/.data/spec/std/isa/inst/Zvabd/vwabdau.vv.yaml +72 -0
  223. data/.data/spec/std/isa/isa/fp.idl +42 -18
  224. data/.data/spec/std/isa/param/CACHE_BLOCK_SIZE.yaml +70 -6
  225. data/.data/spec/std/isa/param/ELEN.yaml +27 -5
  226. data/.data/spec/std/isa/param/HCOUNTENABLE_EN.yaml +13 -0
  227. data/.data/spec/std/isa/param/HPM_COUNTER_EN.yaml +13 -3
  228. data/.data/spec/std/isa/param/HPM_EVENTS.yaml +0 -3
  229. data/.data/spec/std/isa/param/MCOUNTENABLE_EN.yaml +8 -0
  230. data/.data/spec/std/isa/param/MTVEC_BASE_ALIGNMENT_DIRECT.yaml +71 -65
  231. data/.data/spec/std/isa/param/MTVEC_BASE_ALIGNMENT_VECTORED.yaml +71 -65
  232. data/.data/spec/std/isa/param/STVAL_WIDTH.yaml +3 -2
  233. data/.data/spec/std/isa/param/STVEC_BASE_ALIGNMENT_VECTORED.yaml +100 -0
  234. data/.data/spec/std/isa/param/STVEC_MODES.yaml +31 -0
  235. data/.data/spec/std/isa/param/SV32_VSMODE_TRANSLATION.yaml +1 -1
  236. data/.data/spec/std/isa/param/SXLEN.yaml +2 -2
  237. data/.data/spec/std/isa/param/TINST_VALUE_ON_FINAL_INSTRUCTION_GUEST_PAGE_FAULT.yaml +1 -1
  238. data/.data/spec/std/isa/param/TINST_VALUE_ON_FINAL_LOAD_GUEST_PAGE_FAULT.yaml +1 -1
  239. data/.data/spec/std/isa/param/TINST_VALUE_ON_FINAL_STORE_AMO_GUEST_PAGE_FAULT.yaml +1 -1
  240. data/.data/spec/std/isa/param/TINST_VALUE_ON_LOAD_ADDRESS_MISALIGNED.yaml +1 -1
  241. data/.data/spec/std/isa/param/TINST_VALUE_ON_STORE_AMO_ADDRESS_MISALIGNED.yaml +1 -1
  242. data/.data/spec/std/isa/param/UXLEN.yaml +1 -1
  243. data/.data/spec/std/isa/param/VLEN.yaml +16 -7
  244. data/.data/spec/std/isa/param/VSTVEC_MODES.yaml +31 -0
  245. data/lib/udb/Z3_VERSION +1 -1
  246. data/lib/udb/obj/csr.rb +1 -1
  247. data/lib/udb/obj/csr_field.rb +1 -1
  248. data/lib/udb/obj/extension.rb +1 -1
  249. data/lib/udb/version.rb +1 -1
  250. data/lib/udb/version_spec.rb +1 -1
  251. data/lib/udb/z3.rb +29 -7
  252. metadata +37 -8
  253. data/.data/spec/std/isa/param/STVEC_MODE_DIRECT.yaml +0 -21
  254. data/.data/spec/std/isa/param/STVEC_MODE_VECTORED.yaml +0 -19
  255. data/.data/spec/std/isa/param/VSTVEC_MODE_DIRECT.yaml +0 -21
  256. data/.data/spec/std/isa/param/VSTVEC_MODE_VECTORED.yaml +0 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '033857ac50551c786b5857f54a78a91f6a2c3d8c46554eb0dae62cbc489b9ab4'
4
- data.tar.gz: dce0e09b88581e3cc6dc13de86d7e5a72c8c2377e66aca53994d6a0c239ec3a2
3
+ metadata.gz: 0c4e7059a447d2f815adfb15bfe6152a60e2a238167245bc3fbaf26de73859c3
4
+ data.tar.gz: fd573fc43f859b0fd40cb3a283015af2aa4a7f33fe1c2c2b1285f6e5fde2a3a9
5
5
  SHA512:
6
- metadata.gz: 5b0efc566225e863a99ba9c1818a47ef57590bdd7d8e5f37a3937b6c7fb7b94bfe409d96a9e0c886fcb74e2eac312bc3023ebe72e55128043f578acf6a576dca
7
- data.tar.gz: fe01c90f6363a506d6191b2a6ac5f39acb91ca241a00a83951b83e2af680895cb56b140d826f0010bb00f21e723794b03415f543afe41c54fe701d942ed2e444
6
+ metadata.gz: cf76d15fcf97eba3aa58b29fbb4f6a45d486541f1bcba5ca35b3d7b15a67e957e9d60eaf9b7a1e2b7e53eeb4ddf0b6d9f0b1fbbdc6ba89befcfbbb5b1b8804be
7
+ data.tar.gz: a3051975397d7412e1cd39c2a4e352f2d42763c0d2663fb553198ca9c175725dbf47694f48a56c8615219b5d457a1aed20cb89b1094d75382279dfe23c619d63
@@ -563,8 +563,8 @@ params:
563
563
  SV48X4_TRANSLATION: true
564
564
  SV57X4_TRANSLATION: false
565
565
  VMID_WIDTH: 8
566
- STVEC_MODE_DIRECT: true
567
- STVEC_MODE_VECTORED: true
566
+ STVEC_MODES: [0, 1]
567
+ STVEC_BASE_ALIGNMENT_VECTORED: 0x4
568
568
  SATP_MODE_BARE: true
569
569
  VSSTAGE_MODE_BARE: true
570
570
  REPORT_GPA_IN_TVAL_ON_LOAD_GUEST_PAGE_FAULT: true
@@ -591,16 +591,15 @@ params:
591
591
  MTVEC_MODES: [0, 1]
592
592
  MTVEC_ACCESS: rw
593
593
  MTVEC_ILLEGAL_WRITE_BEHAVIOR: retain
594
- MTVEC_BASE_ALIGNMENT_DIRECT: 4
595
- MTVEC_BASE_ALIGNMENT_VECTORED: 4
594
+ MTVEC_BASE_ALIGNMENT_DIRECT: 0x4
595
+ MTVEC_BASE_ALIGNMENT_VECTORED: 0x4
596
596
  MSTATUS_FS_LEGAL_VALUES: [0, 1, 2, 3]
597
597
  HW_MSTATUS_FS_DIRTY_UPDATE: precise
598
598
  MSTATUS_VS_LEGAL_VALUES: [0, 1, 2, 3]
599
599
  HW_MSTATUS_VS_DIRTY_UPDATE: precise
600
600
  FORCE_UPGRADE_CBO_INVAL_TO_FLUSH: true
601
601
  REPORT_GPA_IN_HTVAL_ON_GUEST_PAGE_FAULT: true
602
- VSTVEC_MODE_DIRECT: true
603
- VSTVEC_MODE_VECTORED: true
602
+ VSTVEC_MODES: [0, 1]
604
603
  TRAP_ON_ECALL_FROM_VS: true
605
604
  TRAP_ON_ECALL_FROM_S: true
606
605
  TRAP_ON_ECALL_FROM_M: true
@@ -50,8 +50,8 @@ params:
50
50
  MTVEC_ACCESS: rw
51
51
  MTVEC_ILLEGAL_WRITE_BEHAVIOR: retain
52
52
  MTVEC_MODES: [0, 1]
53
- MTVEC_BASE_ALIGNMENT_DIRECT: 4
54
- MTVEC_BASE_ALIGNMENT_VECTORED: 4
53
+ MTVEC_BASE_ALIGNMENT_DIRECT: 0x4
54
+ MTVEC_BASE_ALIGNMENT_VECTORED: 0x4
55
55
  MUTABLE_MISA_C: false
56
56
  MUTABLE_MISA_M: false
57
57
  TIME_CSR_IMPLEMENTED: false
@@ -186,6 +186,6 @@ params:
186
186
  MCOUNTINHIBIT_IMPLEMENTED: true
187
187
  MTVEC_ACCESS: rw
188
188
  MTVEC_ILLEGAL_WRITE_BEHAVIOR: retain
189
- MTVEC_BASE_ALIGNMENT_DIRECT: 4
190
- MTVEC_BASE_ALIGNMENT_VECTORED: 4
189
+ MTVEC_BASE_ALIGNMENT_DIRECT: 0x4
190
+ MTVEC_BASE_ALIGNMENT_VECTORED: 0x4
191
191
  TIME_CSR_IMPLEMENTED: true
@@ -58,8 +58,8 @@ params:
58
58
  MCOUNTINHIBIT_IMPLEMENTED: true
59
59
  MTVEC_ACCESS: rw
60
60
  MTVEC_MODES: [0, 1]
61
- MTVEC_BASE_ALIGNMENT_DIRECT: 4
62
- MTVEC_BASE_ALIGNMENT_VECTORED: 4
61
+ MTVEC_BASE_ALIGNMENT_DIRECT: 0x4
62
+ MTVEC_BASE_ALIGNMENT_VECTORED: 0x4
63
63
  MTVEC_ILLEGAL_WRITE_BEHAVIOR: retain
64
64
  MUTABLE_MISA_C: false
65
65
  MUTABLE_MISA_M: false
@@ -188,8 +188,8 @@ params:
188
188
  false,
189
189
  false,
190
190
  ]
191
- STVEC_MODE_DIRECT: true
192
- STVEC_MODE_VECTORED: true
191
+ STVEC_MODES: [0, 1]
192
+ STVEC_BASE_ALIGNMENT_VECTORED: 0x4
193
193
  SATP_MODE_BARE: true
194
194
  TRAP_ON_ECALL_FROM_S: true
195
195
  MSTATUS_VS_LEGAL_VALUES: [0]
@@ -68,8 +68,8 @@ params:
68
68
  MCOUNTINHIBIT_IMPLEMENTED: true
69
69
  MTVEC_ACCESS: rw
70
70
  MTVEC_MODES: [0, 1]
71
- MTVEC_BASE_ALIGNMENT_DIRECT: 4
72
- MTVEC_BASE_ALIGNMENT_VECTORED: 4
71
+ MTVEC_BASE_ALIGNMENT_DIRECT: 0x4
72
+ MTVEC_BASE_ALIGNMENT_VECTORED: 0x4
73
73
  MTVEC_ILLEGAL_WRITE_BEHAVIOR: retain
74
74
  MUTABLE_MISA_C: false
75
75
  MUTABLE_MISA_D: false
@@ -200,8 +200,8 @@ params:
200
200
  false,
201
201
  false,
202
202
  ]
203
- STVEC_MODE_DIRECT: true
204
- STVEC_MODE_VECTORED: true
203
+ STVEC_MODES: [0, 1]
204
+ STVEC_BASE_ALIGNMENT_VECTORED: 0x4
205
205
  SATP_MODE_BARE: true
206
206
  TRAP_ON_ECALL_FROM_S: true
207
207
  TRAP_ON_ECALL_FROM_U: true
@@ -56,8 +56,8 @@ params:
56
56
  MCOUNTINHIBIT_IMPLEMENTED: true
57
57
  MTVEC_ACCESS: rw
58
58
  MTVEC_MODES: [0, 1]
59
- MTVEC_BASE_ALIGNMENT_DIRECT: 4
60
- MTVEC_BASE_ALIGNMENT_VECTORED: 4
59
+ MTVEC_BASE_ALIGNMENT_DIRECT: 0x4
60
+ MTVEC_BASE_ALIGNMENT_VECTORED: 0x4
61
61
  MTVEC_ILLEGAL_WRITE_BEHAVIOR: retain
62
62
  MUTABLE_MISA_C: false
63
63
  MUTABLE_MISA_M: false
@@ -186,8 +186,8 @@ params:
186
186
  false,
187
187
  false,
188
188
  ]
189
- STVEC_MODE_DIRECT: true
190
- STVEC_MODE_VECTORED: true
189
+ STVEC_MODES: [0, 1]
190
+ STVEC_BASE_ALIGNMENT_VECTORED: 0x4
191
191
  SATP_MODE_BARE: true
192
192
  TRAP_ON_ECALL_FROM_S: true
193
193
  TRAP_ON_ECALL_FROM_U: true
@@ -67,8 +67,8 @@ params:
67
67
  MCOUNTINHIBIT_IMPLEMENTED: true
68
68
  MTVEC_ACCESS: rw
69
69
  MTVEC_MODES: [0, 1]
70
- MTVEC_BASE_ALIGNMENT_DIRECT: 4
71
- MTVEC_BASE_ALIGNMENT_VECTORED: 4
70
+ MTVEC_BASE_ALIGNMENT_DIRECT: 0x4
71
+ MTVEC_BASE_ALIGNMENT_VECTORED: 0x4
72
72
  MTVEC_ILLEGAL_WRITE_BEHAVIOR: retain
73
73
  MUTABLE_MISA_C: false
74
74
  MUTABLE_MISA_D: false
@@ -198,8 +198,8 @@ params:
198
198
  false,
199
199
  false,
200
200
  ]
201
- STVEC_MODE_DIRECT: true
202
- STVEC_MODE_VECTORED: true
201
+ STVEC_MODES: [0, 1]
202
+ STVEC_BASE_ALIGNMENT_VECTORED: 0x4
203
203
  SATP_MODE_BARE: true
204
204
  TRAP_ON_ECALL_FROM_S: true
205
205
  TRAP_ON_ECALL_FROM_U: true
@@ -80,6 +80,9 @@ version should be released. Follow these steps:
80
80
  . The CI `schema-release` workflow will automatically publish the new version
81
81
  as a GitHub release under the tag `schemas/<schema_name>/<version>` when the
82
82
  changes are merged to `main`.
83
+ . Published schema version assets are immutable. If a release already exists
84
+ with different content, the publish workflow fails; bump the schema `$id`
85
+ instead of overwriting an existing version.
83
86
  . Previous schema versions remain available via their GitHub release tags and
84
87
  at `https://riscv.github.io/riscv-unified-db/schemas/<schema_name>/<old-version>/<schema_name>`.
85
88
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "v0.1",
3
+ "$id": "v0.2",
4
4
  "title": "Common patterns used by all schemas",
5
5
  "$defs": {
6
6
  "$source": {
@@ -863,7 +863,7 @@
863
863
  "description": "An unsigned power of 2 that fits in 32 bits",
864
864
  "type": "integer",
865
865
  "enum": [
866
- 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4095, 8192, 16384,
866
+ 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384,
867
867
  32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304,
868
868
  8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912,
869
869
  1073741824, 2147483648
@@ -873,7 +873,7 @@
873
873
  "description": "An unsigned power of 2 that fits in 64 bits",
874
874
  "type": "integer",
875
875
  "enum": [
876
- 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4095, 8192, 16384,
876
+ 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384,
877
877
  32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304,
878
878
  8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912,
879
879
  1073741824, 2147483648, 4294967296, 8589934592, 17179869184,
@@ -76,7 +76,7 @@ fields:
76
76
 
77
77
  [separator="!",%autowidth]
78
78
  !===
79
- .2+h! [.rotate]#`hcounteren.TM`# .2+h! [.rotate]#`mcounteren.TM`# .2+h! [.rotate]#`scounteren.TM`# 2+^.>! `cycle` access behavior
79
+ .2+h! [.rotate]#`hcounteren.TM`# .2+h! [.rotate]#`mcounteren.TM`# .2+h! [.rotate]#`scounteren.TM`# 2+^.>! `time` access behavior
80
80
  .>h! VS-mode .>h! VU-mode
81
81
 
82
82
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -116,7 +116,7 @@ fields:
116
116
 
117
117
  [separator="!",%autowidth]
118
118
  !===
119
- .2+h! [.rotate]#`hcounteren.IR`# .2+h! [.rotate]#`mcounteren.IR`# .2+h! [.rotate]#`scounteren.IR`# 2+^.>! `cycle` access behavior
119
+ .2+h! [.rotate]#`hcounteren.IR`# .2+h! [.rotate]#`mcounteren.IR`# .2+h! [.rotate]#`scounteren.IR`# 2+^.>! `instret` access behavior
120
120
  .>h! VS-mode .>h! VU-mode
121
121
 
122
122
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -154,7 +154,7 @@ fields:
154
154
 
155
155
  [separator="!",%autowidth]
156
156
  !===
157
- .2+h! [.rotate]#`hcounteren.HPM<%= hpm_num %>`# .2+h! [.rotate]#`mcounteren.HPM<%= hpm_num %>`# .2+h! [.rotate]#`scounteren.HPM<%= hpm_num %>`# 2+^.>! `cycle` access behavior
157
+ .2+h! [.rotate]#`hcounteren.HPM<%= hpm_num %>`# .2+h! [.rotate]#`mcounteren.HPM<%= hpm_num %>`# .2+h! [.rotate]#`scounteren.HPM<%= hpm_num %>`# 2+^.>! `hpmcounter<%= hpm_num %>` access behavior
158
158
  .>h! VS-mode .>h! VU-mode
159
159
 
160
160
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -79,7 +79,7 @@ fields:
79
79
 
80
80
  [separator="!",%autowidth]
81
81
  !===
82
- .2+h! [.rotate]#`hcounteren.TM`# .2+h! [.rotate]#`mcounteren.TM`# .2+h! [.rotate]#`scounteren.TM`# 2+^.>! `cycle` access behavior
82
+ .2+h! [.rotate]#`hcounteren.TM`# .2+h! [.rotate]#`mcounteren.TM`# .2+h! [.rotate]#`scounteren.TM`# 2+^.>! `time` access behavior
83
83
  .>h! VS-mode .>h! VU-mode
84
84
 
85
85
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -119,7 +119,7 @@ fields:
119
119
 
120
120
  [separator="!",%autowidth]
121
121
  !===
122
- .2+h! [.rotate]#`hcounteren.IR`# .2+h! [.rotate]#`mcounteren.IR`# .2+h! [.rotate]#`scounteren.IR`# 2+^.>! `cycle` access behavior
122
+ .2+h! [.rotate]#`hcounteren.IR`# .2+h! [.rotate]#`mcounteren.IR`# .2+h! [.rotate]#`scounteren.IR`# 2+^.>! `instret` access behavior
123
123
  .>h! VS-mode .>h! VU-mode
124
124
 
125
125
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -156,7 +156,7 @@ fields:
156
156
 
157
157
  [separator="!",%autowidth]
158
158
  !===
159
- .2+h! [.rotate]#`hcounteren.HPM3`# .2+h! [.rotate]#`mcounteren.HPM3`# .2+h! [.rotate]#`scounteren.HPM3`# 2+^.>! `cycle` access behavior
159
+ .2+h! [.rotate]#`hcounteren.HPM3`# .2+h! [.rotate]#`mcounteren.HPM3`# .2+h! [.rotate]#`scounteren.HPM3`# 2+^.>! `hpmcounter3` access behavior
160
160
  .>h! VS-mode .>h! VU-mode
161
161
 
162
162
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -193,7 +193,7 @@ fields:
193
193
 
194
194
  [separator="!",%autowidth]
195
195
  !===
196
- .2+h! [.rotate]#`hcounteren.HPM4`# .2+h! [.rotate]#`mcounteren.HPM4`# .2+h! [.rotate]#`scounteren.HPM4`# 2+^.>! `cycle` access behavior
196
+ .2+h! [.rotate]#`hcounteren.HPM4`# .2+h! [.rotate]#`mcounteren.HPM4`# .2+h! [.rotate]#`scounteren.HPM4`# 2+^.>! `hpmcounter4` access behavior
197
197
  .>h! VS-mode .>h! VU-mode
198
198
 
199
199
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -230,7 +230,7 @@ fields:
230
230
 
231
231
  [separator="!",%autowidth]
232
232
  !===
233
- .2+h! [.rotate]#`hcounteren.HPM5`# .2+h! [.rotate]#`mcounteren.HPM5`# .2+h! [.rotate]#`scounteren.HPM5`# 2+^.>! `cycle` access behavior
233
+ .2+h! [.rotate]#`hcounteren.HPM5`# .2+h! [.rotate]#`mcounteren.HPM5`# .2+h! [.rotate]#`scounteren.HPM5`# 2+^.>! `hpmcounter5` access behavior
234
234
  .>h! VS-mode .>h! VU-mode
235
235
 
236
236
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -267,7 +267,7 @@ fields:
267
267
 
268
268
  [separator="!",%autowidth]
269
269
  !===
270
- .2+h! [.rotate]#`hcounteren.HPM6`# .2+h! [.rotate]#`mcounteren.HPM6`# .2+h! [.rotate]#`scounteren.HPM6`# 2+^.>! `cycle` access behavior
270
+ .2+h! [.rotate]#`hcounteren.HPM6`# .2+h! [.rotate]#`mcounteren.HPM6`# .2+h! [.rotate]#`scounteren.HPM6`# 2+^.>! `hpmcounter6` access behavior
271
271
  .>h! VS-mode .>h! VU-mode
272
272
 
273
273
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -304,7 +304,7 @@ fields:
304
304
 
305
305
  [separator="!",%autowidth]
306
306
  !===
307
- .2+h! [.rotate]#`hcounteren.HPM7`# .2+h! [.rotate]#`mcounteren.HPM7`# .2+h! [.rotate]#`scounteren.HPM7`# 2+^.>! `cycle` access behavior
307
+ .2+h! [.rotate]#`hcounteren.HPM7`# .2+h! [.rotate]#`mcounteren.HPM7`# .2+h! [.rotate]#`scounteren.HPM7`# 2+^.>! `hpmcounter7` access behavior
308
308
  .>h! VS-mode .>h! VU-mode
309
309
 
310
310
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -341,7 +341,7 @@ fields:
341
341
 
342
342
  [separator="!",%autowidth]
343
343
  !===
344
- .2+h! [.rotate]#`hcounteren.HPM8`# .2+h! [.rotate]#`mcounteren.HPM8`# .2+h! [.rotate]#`scounteren.HPM8`# 2+^.>! `cycle` access behavior
344
+ .2+h! [.rotate]#`hcounteren.HPM8`# .2+h! [.rotate]#`mcounteren.HPM8`# .2+h! [.rotate]#`scounteren.HPM8`# 2+^.>! `hpmcounter8` access behavior
345
345
  .>h! VS-mode .>h! VU-mode
346
346
 
347
347
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -378,7 +378,7 @@ fields:
378
378
 
379
379
  [separator="!",%autowidth]
380
380
  !===
381
- .2+h! [.rotate]#`hcounteren.HPM9`# .2+h! [.rotate]#`mcounteren.HPM9`# .2+h! [.rotate]#`scounteren.HPM9`# 2+^.>! `cycle` access behavior
381
+ .2+h! [.rotate]#`hcounteren.HPM9`# .2+h! [.rotate]#`mcounteren.HPM9`# .2+h! [.rotate]#`scounteren.HPM9`# 2+^.>! `hpmcounter9` access behavior
382
382
  .>h! VS-mode .>h! VU-mode
383
383
 
384
384
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -415,7 +415,7 @@ fields:
415
415
 
416
416
  [separator="!",%autowidth]
417
417
  !===
418
- .2+h! [.rotate]#`hcounteren.HPM10`# .2+h! [.rotate]#`mcounteren.HPM10`# .2+h! [.rotate]#`scounteren.HPM10`# 2+^.>! `cycle` access behavior
418
+ .2+h! [.rotate]#`hcounteren.HPM10`# .2+h! [.rotate]#`mcounteren.HPM10`# .2+h! [.rotate]#`scounteren.HPM10`# 2+^.>! `hpmcounter10` access behavior
419
419
  .>h! VS-mode .>h! VU-mode
420
420
 
421
421
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -452,7 +452,7 @@ fields:
452
452
 
453
453
  [separator="!",%autowidth]
454
454
  !===
455
- .2+h! [.rotate]#`hcounteren.HPM11`# .2+h! [.rotate]#`mcounteren.HPM11`# .2+h! [.rotate]#`scounteren.HPM11`# 2+^.>! `cycle` access behavior
455
+ .2+h! [.rotate]#`hcounteren.HPM11`# .2+h! [.rotate]#`mcounteren.HPM11`# .2+h! [.rotate]#`scounteren.HPM11`# 2+^.>! `hpmcounter11` access behavior
456
456
  .>h! VS-mode .>h! VU-mode
457
457
 
458
458
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -489,7 +489,7 @@ fields:
489
489
 
490
490
  [separator="!",%autowidth]
491
491
  !===
492
- .2+h! [.rotate]#`hcounteren.HPM12`# .2+h! [.rotate]#`mcounteren.HPM12`# .2+h! [.rotate]#`scounteren.HPM12`# 2+^.>! `cycle` access behavior
492
+ .2+h! [.rotate]#`hcounteren.HPM12`# .2+h! [.rotate]#`mcounteren.HPM12`# .2+h! [.rotate]#`scounteren.HPM12`# 2+^.>! `hpmcounter12` access behavior
493
493
  .>h! VS-mode .>h! VU-mode
494
494
 
495
495
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -526,7 +526,7 @@ fields:
526
526
 
527
527
  [separator="!",%autowidth]
528
528
  !===
529
- .2+h! [.rotate]#`hcounteren.HPM13`# .2+h! [.rotate]#`mcounteren.HPM13`# .2+h! [.rotate]#`scounteren.HPM13`# 2+^.>! `cycle` access behavior
529
+ .2+h! [.rotate]#`hcounteren.HPM13`# .2+h! [.rotate]#`mcounteren.HPM13`# .2+h! [.rotate]#`scounteren.HPM13`# 2+^.>! `hpmcounter13` access behavior
530
530
  .>h! VS-mode .>h! VU-mode
531
531
 
532
532
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -563,7 +563,7 @@ fields:
563
563
 
564
564
  [separator="!",%autowidth]
565
565
  !===
566
- .2+h! [.rotate]#`hcounteren.HPM14`# .2+h! [.rotate]#`mcounteren.HPM14`# .2+h! [.rotate]#`scounteren.HPM14`# 2+^.>! `cycle` access behavior
566
+ .2+h! [.rotate]#`hcounteren.HPM14`# .2+h! [.rotate]#`mcounteren.HPM14`# .2+h! [.rotate]#`scounteren.HPM14`# 2+^.>! `hpmcounter14` access behavior
567
567
  .>h! VS-mode .>h! VU-mode
568
568
 
569
569
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -600,7 +600,7 @@ fields:
600
600
 
601
601
  [separator="!",%autowidth]
602
602
  !===
603
- .2+h! [.rotate]#`hcounteren.HPM15`# .2+h! [.rotate]#`mcounteren.HPM15`# .2+h! [.rotate]#`scounteren.HPM15`# 2+^.>! `cycle` access behavior
603
+ .2+h! [.rotate]#`hcounteren.HPM15`# .2+h! [.rotate]#`mcounteren.HPM15`# .2+h! [.rotate]#`scounteren.HPM15`# 2+^.>! `hpmcounter15` access behavior
604
604
  .>h! VS-mode .>h! VU-mode
605
605
 
606
606
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -637,7 +637,7 @@ fields:
637
637
 
638
638
  [separator="!",%autowidth]
639
639
  !===
640
- .2+h! [.rotate]#`hcounteren.HPM16`# .2+h! [.rotate]#`mcounteren.HPM16`# .2+h! [.rotate]#`scounteren.HPM16`# 2+^.>! `cycle` access behavior
640
+ .2+h! [.rotate]#`hcounteren.HPM16`# .2+h! [.rotate]#`mcounteren.HPM16`# .2+h! [.rotate]#`scounteren.HPM16`# 2+^.>! `hpmcounter16` access behavior
641
641
  .>h! VS-mode .>h! VU-mode
642
642
 
643
643
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -674,7 +674,7 @@ fields:
674
674
 
675
675
  [separator="!",%autowidth]
676
676
  !===
677
- .2+h! [.rotate]#`hcounteren.HPM17`# .2+h! [.rotate]#`mcounteren.HPM17`# .2+h! [.rotate]#`scounteren.HPM17`# 2+^.>! `cycle` access behavior
677
+ .2+h! [.rotate]#`hcounteren.HPM17`# .2+h! [.rotate]#`mcounteren.HPM17`# .2+h! [.rotate]#`scounteren.HPM17`# 2+^.>! `hpmcounter17` access behavior
678
678
  .>h! VS-mode .>h! VU-mode
679
679
 
680
680
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -711,7 +711,7 @@ fields:
711
711
 
712
712
  [separator="!",%autowidth]
713
713
  !===
714
- .2+h! [.rotate]#`hcounteren.HPM18`# .2+h! [.rotate]#`mcounteren.HPM18`# .2+h! [.rotate]#`scounteren.HPM18`# 2+^.>! `cycle` access behavior
714
+ .2+h! [.rotate]#`hcounteren.HPM18`# .2+h! [.rotate]#`mcounteren.HPM18`# .2+h! [.rotate]#`scounteren.HPM18`# 2+^.>! `hpmcounter18` access behavior
715
715
  .>h! VS-mode .>h! VU-mode
716
716
 
717
717
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -748,7 +748,7 @@ fields:
748
748
 
749
749
  [separator="!",%autowidth]
750
750
  !===
751
- .2+h! [.rotate]#`hcounteren.HPM19`# .2+h! [.rotate]#`mcounteren.HPM19`# .2+h! [.rotate]#`scounteren.HPM19`# 2+^.>! `cycle` access behavior
751
+ .2+h! [.rotate]#`hcounteren.HPM19`# .2+h! [.rotate]#`mcounteren.HPM19`# .2+h! [.rotate]#`scounteren.HPM19`# 2+^.>! `hpmcounter19` access behavior
752
752
  .>h! VS-mode .>h! VU-mode
753
753
 
754
754
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -785,7 +785,7 @@ fields:
785
785
 
786
786
  [separator="!",%autowidth]
787
787
  !===
788
- .2+h! [.rotate]#`hcounteren.HPM20`# .2+h! [.rotate]#`mcounteren.HPM20`# .2+h! [.rotate]#`scounteren.HPM20`# 2+^.>! `cycle` access behavior
788
+ .2+h! [.rotate]#`hcounteren.HPM20`# .2+h! [.rotate]#`mcounteren.HPM20`# .2+h! [.rotate]#`scounteren.HPM20`# 2+^.>! `hpmcounter20` access behavior
789
789
  .>h! VS-mode .>h! VU-mode
790
790
 
791
791
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -822,7 +822,7 @@ fields:
822
822
 
823
823
  [separator="!",%autowidth]
824
824
  !===
825
- .2+h! [.rotate]#`hcounteren.HPM21`# .2+h! [.rotate]#`mcounteren.HPM21`# .2+h! [.rotate]#`scounteren.HPM21`# 2+^.>! `cycle` access behavior
825
+ .2+h! [.rotate]#`hcounteren.HPM21`# .2+h! [.rotate]#`mcounteren.HPM21`# .2+h! [.rotate]#`scounteren.HPM21`# 2+^.>! `hpmcounter21` access behavior
826
826
  .>h! VS-mode .>h! VU-mode
827
827
 
828
828
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -859,7 +859,7 @@ fields:
859
859
 
860
860
  [separator="!",%autowidth]
861
861
  !===
862
- .2+h! [.rotate]#`hcounteren.HPM22`# .2+h! [.rotate]#`mcounteren.HPM22`# .2+h! [.rotate]#`scounteren.HPM22`# 2+^.>! `cycle` access behavior
862
+ .2+h! [.rotate]#`hcounteren.HPM22`# .2+h! [.rotate]#`mcounteren.HPM22`# .2+h! [.rotate]#`scounteren.HPM22`# 2+^.>! `hpmcounter22` access behavior
863
863
  .>h! VS-mode .>h! VU-mode
864
864
 
865
865
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -896,7 +896,7 @@ fields:
896
896
 
897
897
  [separator="!",%autowidth]
898
898
  !===
899
- .2+h! [.rotate]#`hcounteren.HPM23`# .2+h! [.rotate]#`mcounteren.HPM23`# .2+h! [.rotate]#`scounteren.HPM23`# 2+^.>! `cycle` access behavior
899
+ .2+h! [.rotate]#`hcounteren.HPM23`# .2+h! [.rotate]#`mcounteren.HPM23`# .2+h! [.rotate]#`scounteren.HPM23`# 2+^.>! `hpmcounter23` access behavior
900
900
  .>h! VS-mode .>h! VU-mode
901
901
 
902
902
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -933,7 +933,7 @@ fields:
933
933
 
934
934
  [separator="!",%autowidth]
935
935
  !===
936
- .2+h! [.rotate]#`hcounteren.HPM24`# .2+h! [.rotate]#`mcounteren.HPM24`# .2+h! [.rotate]#`scounteren.HPM24`# 2+^.>! `cycle` access behavior
936
+ .2+h! [.rotate]#`hcounteren.HPM24`# .2+h! [.rotate]#`mcounteren.HPM24`# .2+h! [.rotate]#`scounteren.HPM24`# 2+^.>! `hpmcounter24` access behavior
937
937
  .>h! VS-mode .>h! VU-mode
938
938
 
939
939
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -970,7 +970,7 @@ fields:
970
970
 
971
971
  [separator="!",%autowidth]
972
972
  !===
973
- .2+h! [.rotate]#`hcounteren.HPM25`# .2+h! [.rotate]#`mcounteren.HPM25`# .2+h! [.rotate]#`scounteren.HPM25`# 2+^.>! `cycle` access behavior
973
+ .2+h! [.rotate]#`hcounteren.HPM25`# .2+h! [.rotate]#`mcounteren.HPM25`# .2+h! [.rotate]#`scounteren.HPM25`# 2+^.>! `hpmcounter25` access behavior
974
974
  .>h! VS-mode .>h! VU-mode
975
975
 
976
976
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -1007,7 +1007,7 @@ fields:
1007
1007
 
1008
1008
  [separator="!",%autowidth]
1009
1009
  !===
1010
- .2+h! [.rotate]#`hcounteren.HPM26`# .2+h! [.rotate]#`mcounteren.HPM26`# .2+h! [.rotate]#`scounteren.HPM26`# 2+^.>! `cycle` access behavior
1010
+ .2+h! [.rotate]#`hcounteren.HPM26`# .2+h! [.rotate]#`mcounteren.HPM26`# .2+h! [.rotate]#`scounteren.HPM26`# 2+^.>! `hpmcounter26` access behavior
1011
1011
  .>h! VS-mode .>h! VU-mode
1012
1012
 
1013
1013
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -1044,7 +1044,7 @@ fields:
1044
1044
 
1045
1045
  [separator="!",%autowidth]
1046
1046
  !===
1047
- .2+h! [.rotate]#`hcounteren.HPM27`# .2+h! [.rotate]#`mcounteren.HPM27`# .2+h! [.rotate]#`scounteren.HPM27`# 2+^.>! `cycle` access behavior
1047
+ .2+h! [.rotate]#`hcounteren.HPM27`# .2+h! [.rotate]#`mcounteren.HPM27`# .2+h! [.rotate]#`scounteren.HPM27`# 2+^.>! `hpmcounter27` access behavior
1048
1048
  .>h! VS-mode .>h! VU-mode
1049
1049
 
1050
1050
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -1081,7 +1081,7 @@ fields:
1081
1081
 
1082
1082
  [separator="!",%autowidth]
1083
1083
  !===
1084
- .2+h! [.rotate]#`hcounteren.HPM28`# .2+h! [.rotate]#`mcounteren.HPM28`# .2+h! [.rotate]#`scounteren.HPM28`# 2+^.>! `cycle` access behavior
1084
+ .2+h! [.rotate]#`hcounteren.HPM28`# .2+h! [.rotate]#`mcounteren.HPM28`# .2+h! [.rotate]#`scounteren.HPM28`# 2+^.>! `hpmcounter28` access behavior
1085
1085
  .>h! VS-mode .>h! VU-mode
1086
1086
 
1087
1087
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -1118,7 +1118,7 @@ fields:
1118
1118
 
1119
1119
  [separator="!",%autowidth]
1120
1120
  !===
1121
- .2+h! [.rotate]#`hcounteren.HPM29`# .2+h! [.rotate]#`mcounteren.HPM29`# .2+h! [.rotate]#`scounteren.HPM29`# 2+^.>! `cycle` access behavior
1121
+ .2+h! [.rotate]#`hcounteren.HPM29`# .2+h! [.rotate]#`mcounteren.HPM29`# .2+h! [.rotate]#`scounteren.HPM29`# 2+^.>! `hpmcounter29` access behavior
1122
1122
  .>h! VS-mode .>h! VU-mode
1123
1123
 
1124
1124
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -1155,7 +1155,7 @@ fields:
1155
1155
 
1156
1156
  [separator="!",%autowidth]
1157
1157
  !===
1158
- .2+h! [.rotate]#`hcounteren.HPM30`# .2+h! [.rotate]#`mcounteren.HPM30`# .2+h! [.rotate]#`scounteren.HPM30`# 2+^.>! `cycle` access behavior
1158
+ .2+h! [.rotate]#`hcounteren.HPM30`# .2+h! [.rotate]#`mcounteren.HPM30`# .2+h! [.rotate]#`scounteren.HPM30`# 2+^.>! `hpmcounter30` access behavior
1159
1159
  .>h! VS-mode .>h! VU-mode
1160
1160
 
1161
1161
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -1192,7 +1192,7 @@ fields:
1192
1192
 
1193
1193
  [separator="!",%autowidth]
1194
1194
  !===
1195
- .2+h! [.rotate]#`hcounteren.HPM31`# .2+h! [.rotate]#`mcounteren.HPM31`# .2+h! [.rotate]#`scounteren.HPM31`# 2+^.>! `cycle` access behavior
1195
+ .2+h! [.rotate]#`hcounteren.HPM31`# .2+h! [.rotate]#`mcounteren.HPM31`# .2+h! [.rotate]#`scounteren.HPM31`# 2+^.>! `hpmcounter31` access behavior
1196
1196
  .>h! VS-mode .>h! VU-mode
1197
1197
 
1198
1198
  ! 0 ! 0 ! - ! `IllegalInstruction` ! `IllegalInstruction`
@@ -10,9 +10,9 @@ address: 0x64a
10
10
  writable: true
11
11
  long_name: Hypervisor Trap Instruction Register
12
12
  description: |
13
- When a trap is taken into HS-mode, mtinst is written with a value that, if nonzero,
13
+ When a trap is taken into HS-mode, htinst is written with a value that, if nonzero,
14
14
  provides information about the instruction that trapped, to assist software in handling the trap.
15
- The values that may be written to mtinst on a trap are documented in TODO.
15
+ The values that may be written to htinst on a trap are documented in TODO.
16
16
 
17
17
  htinst is a WARL register that need only be able to hold the values that the implementation may automatically write to it on a trap.
18
18
  priv_mode: S
@@ -34,7 +34,7 @@ fields:
34
34
  || (TINST_VALUE_ON_LOAD_ADDRESS_MISALIGNED != "always zero")
35
35
  || (TINST_VALUE_ON_LOAD_ACCESS_FAULT != "always zero")
36
36
  || (TINST_VALUE_ON_STORE_AMO_ADDRESS_MISALIGNED != "always zero")
37
- || (TINST_VALUE_ON_STORE_AMO_ACCESS_FAULT != "always_zero")
37
+ || (TINST_VALUE_ON_STORE_AMO_ACCESS_FAULT != "always zero")
38
38
  || (TINST_VALUE_ON_UCALL != "always zero")
39
39
  || (TINST_VALUE_ON_SCALL != "always zero")
40
40
  || (TINST_VALUE_ON_MCALL != "always zero")
@@ -19,8 +19,8 @@ description: |
19
19
  Otherwise, for misaligned loads and stores that cause guest-page faults, a nonzero guest physical address in htval corresponds to the faulting portion of the access as indicated by the virtual address in stval. For instruction guest-page faults on systems with variable-length instructions, a nonzero htval corresponds to the faulting portion of the instruction as indicated by the virtual address in stval.
20
20
 
21
21
  htval is a WARL register that must be able to hold zero and may be capable of holding only an arbitrary subset of other 2-bit-shifted guest physical addresses, if any.
22
- priv_mode: M
23
- length: MXLEN
22
+ priv_mode: S
23
+ length: SXLEN
24
24
  definedBy:
25
25
  extension:
26
26
  name: H
@@ -38,5 +38,5 @@ fields:
38
38
  return CsrFieldType::RO;
39
39
  }
40
40
  description: |
41
- Exception-specific information for a trap into M-mode.
41
+ Exception-specific information for a trap into HS-mode.
42
42
  reset_value: UNDEFINED_LEGAL
@@ -34,7 +34,7 @@ fields:
34
34
  || (TINST_VALUE_ON_LOAD_ADDRESS_MISALIGNED != "always zero")
35
35
  || (TINST_VALUE_ON_LOAD_ACCESS_FAULT != "always zero")
36
36
  || (TINST_VALUE_ON_STORE_AMO_ADDRESS_MISALIGNED != "always zero")
37
- || (TINST_VALUE_ON_STORE_AMO_ACCESS_FAULT != "always_zero")
37
+ || (TINST_VALUE_ON_STORE_AMO_ACCESS_FAULT != "always zero")
38
38
  || (TINST_VALUE_ON_UCALL != "always zero")
39
39
  || (TINST_VALUE_ON_SCALL != "always zero")
40
40
  || (TINST_VALUE_ON_MCALL != "always zero")
@@ -48,7 +48,7 @@ fields:
48
48
  allOf:
49
49
  - xlen: 64
50
50
  - extension:
51
- name: M
51
+ name: Sm
52
52
  description: If set, then counting of events in M-mode is inhibited.
53
53
  reset_value: UNDEFINED_LEGAL
54
54
 
@@ -24,7 +24,7 @@ fields:
24
24
  type: RW
25
25
  definedBy:
26
26
  extension:
27
- name: M
27
+ name: Sm
28
28
  description: If set, then counting of events in M-mode is inhibited.
29
29
  reset_value: UNDEFINED_LEGAL
30
30
 
@@ -45,7 +45,7 @@ fields:
45
45
  allOf:
46
46
  - xlen: 64
47
47
  - extension:
48
- name: M
48
+ name: Sm
49
49
  description: If set, then counting of events in M-mode is inhibited.
50
50
  reset_value: UNDEFINED_LEGAL
51
51
 
@@ -24,7 +24,7 @@ fields:
24
24
  type: RW
25
25
  definedBy:
26
26
  extension:
27
- name: M
27
+ name: Sm
28
28
  description: If set, then counting of events in M-mode is inhibited.
29
29
  reset_value: UNDEFINED_LEGAL
30
30
 
@@ -41,7 +41,7 @@ fields:
41
41
  [when="HPM_COUNTER_EN[<%= of_num %>] == false"]
42
42
  This field is read-only zero because the counter is not enabled.
43
43
  type(): |
44
- return HPM_COUNTER_EN[<%= of_num %>] ? CsrFieldType::RO : CsrFieldType::ROH;
44
+ return HPM_COUNTER_EN[<%= of_num %>] ? CsrFieldType::ROH : CsrFieldType::RO;
45
45
  reset_value(): |
46
46
  return HPM_COUNTER_EN[<%= of_num %>] ? UNDEFINED_LEGAL : 0;
47
47
  <%- end -%>