udb 0.1.9 → 0.1.14
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.
- checksums.yaml +4 -4
- data/.data/cfgs/example_rv64_with_overlay.yaml +20 -20
- data/.data/cfgs/mc100-32-full-example.yaml +1 -0
- data/.data/cfgs/profile/README.adoc +10 -0
- data/.data/cfgs/profile/RVA20S64.yaml +26 -6
- data/.data/cfgs/profile/RVA20U64.yaml +18 -4
- data/.data/cfgs/profile/RVA22S64.yaml +27 -7
- data/.data/cfgs/profile/RVA22U64.yaml +18 -4
- data/.data/cfgs/profile/RVA23S64.yaml +61 -7
- data/.data/cfgs/profile/RVA23U64.yaml +36 -4
- data/.data/cfgs/profile/RVB23S64.yaml +27 -7
- data/.data/cfgs/profile/RVB23U64.yaml +18 -4
- data/.data/cfgs/profile/RVI20U32.yaml +10 -4
- data/.data/cfgs/profile/RVI20U64.yaml +10 -4
- data/.data/cfgs/qc_iu.yaml +8 -1
- data/.data/cfgs/rv32-riscv-tests.yaml +6 -2
- data/.data/cfgs/rv32-vector.yaml +6 -2
- data/.data/cfgs/rv64-riscv-tests.yaml +6 -2
- data/.data/cfgs/rv64-vector.yaml +6 -2
- data/.data/spec/custom/isa/qc_iu/csr/Smrnmi/mnepc.yaml +17 -0
- data/.data/spec/custom/isa/qc_iu/csr/Xqccmi/qc.itba.yaml +45 -0
- data/.data/spec/custom/isa/qc_iu/csr/Xqccmi/qc.itdec.yaml +39 -0
- data/.data/spec/custom/isa/qc_iu/csr/jvt.yaml +11 -0
- data/.data/spec/custom/isa/qc_iu/csr/mepc.yaml +16 -0
- data/.data/spec/custom/isa/qc_iu/ext/Xqccmi.yaml +290 -0
- data/.data/spec/custom/isa/qc_iu/ext/Xqccmt.yaml +127 -0
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmi/qc.cm.ilut.yaml +136 -0
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmt/qc.cm.jalt.yaml +84 -0
- data/.data/spec/custom/isa/qc_iu/inst/Xqccmt/qc.cm.jt.yaml +60 -0
- data/.data/spec/custom/isa/qc_iu/isa/globals.isa +134 -0
- data/.data/spec/schemas/config_schema.json +220 -27
- data/.data/spec/schemas/csr_schema.json +0 -6
- data/.data/spec/schemas/ext_schema.json +80 -24
- data/.data/spec/schemas/inst_schema.json +0 -3
- data/.data/spec/schemas/mmr_schema.json +3 -3
- data/.data/spec/schemas/profile_release_schema.json +1 -1
- data/.data/spec/schemas/profile_schema.json +0 -3
- data/.data/spec/schemas/register_file_schema.json +8 -3
- data/.data/spec/schemas/schema_defs.json +13 -27
- data/.data/spec/std/isa/csr/H/henvcfg.yaml +25 -0
- data/.data/spec/std/isa/csr/I/pmpaddr0.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr1.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr10.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr11.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr12.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr13.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr14.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr15.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr16.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr17.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr18.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr19.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr2.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr20.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr21.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr22.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr23.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr24.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr25.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr26.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr27.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr28.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr29.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr3.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr30.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr31.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr32.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr33.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr34.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr35.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr36.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr37.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr38.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr39.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr4.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr40.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr41.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr42.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr43.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr44.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr45.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr46.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr47.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr48.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr49.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr5.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr50.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr51.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr52.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr53.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr54.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr55.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr56.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr57.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr58.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr59.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr6.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr60.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr61.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr62.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr63.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr7.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr8.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddr9.yaml +6 -4
- data/.data/spec/std/isa/csr/I/pmpaddrN.layout +6 -4
- data/.data/spec/std/isa/csr/I/pmpcfg0.yaml +128 -152
- data/.data/spec/std/isa/csr/I/pmpcfg1.yaml +64 -76
- data/.data/spec/std/isa/csr/I/pmpcfg10.yaml +128 -152
- data/.data/spec/std/isa/csr/I/pmpcfg11.yaml +64 -76
- data/.data/spec/std/isa/csr/I/pmpcfg12.yaml +128 -152
- data/.data/spec/std/isa/csr/I/pmpcfg13.yaml +64 -76
- data/.data/spec/std/isa/csr/I/pmpcfg14.yaml +128 -152
- data/.data/spec/std/isa/csr/I/pmpcfg15.yaml +64 -76
- data/.data/spec/std/isa/csr/I/pmpcfg2.yaml +128 -152
- data/.data/spec/std/isa/csr/I/pmpcfg3.yaml +64 -76
- data/.data/spec/std/isa/csr/I/pmpcfg4.yaml +128 -152
- data/.data/spec/std/isa/csr/I/pmpcfg5.yaml +64 -76
- data/.data/spec/std/isa/csr/I/pmpcfg6.yaml +128 -152
- data/.data/spec/std/isa/csr/I/pmpcfg7.yaml +64 -76
- data/.data/spec/std/isa/csr/I/pmpcfg8.yaml +128 -152
- data/.data/spec/std/isa/csr/I/pmpcfg9.yaml +64 -76
- data/.data/spec/std/isa/csr/I/pmpcfgN.layout +16 -19
- data/.data/spec/std/isa/csr/Zicntr/mcountinhibit.layout +6 -2
- data/.data/spec/std/isa/csr/Zicntr/mcountinhibit.yaml +6 -2
- data/.data/spec/std/isa/csr/hstatus.yaml +16 -0
- data/.data/spec/std/isa/csr/jvt.yaml +1 -0
- data/.data/spec/std/isa/csr/mcycleh.yaml +1 -1
- data/.data/spec/std/isa/csr/menvcfg.yaml +20 -0
- data/.data/spec/std/isa/csr/misa.yaml +0 -12
- data/.data/spec/std/isa/csr/mstatus.yaml +46 -6
- data/.data/spec/std/isa/csr/mstatush.yaml +17 -15
- data/.data/spec/std/isa/csr/senvcfg.yaml +42 -0
- data/.data/spec/std/isa/csr/sstatus.yaml +12 -0
- data/.data/spec/std/isa/csr/vsstatus.yaml +24 -0
- data/.data/spec/std/isa/ext/A.yaml +5 -7
- data/.data/spec/std/isa/ext/S.yaml +12 -0
- data/.data/spec/std/isa/ext/Smpmpmt.yaml +52 -0
- data/.data/spec/std/isa/ext/Sv32.yaml +7 -19
- data/.data/spec/std/isa/ext/Sv39.yaml +7 -19
- data/.data/spec/std/isa/ext/Sv48.yaml +4 -20
- data/.data/spec/std/isa/ext/Sv57.yaml +4 -20
- data/.data/spec/std/isa/ext/Svukte.yaml +71 -0
- data/.data/spec/std/isa/ext/Zawrs.yaml +1 -1
- data/.data/spec/std/isa/ext/Zihpm.yaml +0 -12
- data/.data/spec/std/isa/inst/B/andn.yaml +10 -12
- data/.data/spec/std/isa/inst/B/clmul.yaml +9 -11
- data/.data/spec/std/isa/inst/B/clmulh.yaml +9 -11
- data/.data/spec/std/isa/inst/B/orn.yaml +9 -11
- data/.data/spec/std/isa/inst/B/rev8.yaml +1 -1
- data/.data/spec/std/isa/inst/B/rol.yaml +9 -11
- data/.data/spec/std/isa/inst/B/rolw.yaml +9 -11
- data/.data/spec/std/isa/inst/B/ror.yaml +9 -11
- data/.data/spec/std/isa/inst/B/rorw.yaml +9 -11
- data/.data/spec/std/isa/inst/B/xnor.yaml +9 -11
- data/.data/spec/std/isa/inst/C/c.addi.yaml +1 -0
- data/.data/spec/std/isa/inst/C/c.addi16sp.yaml +1 -0
- data/.data/spec/std/isa/inst/C/c.addiw.yaml +1 -0
- data/.data/spec/std/isa/inst/C/c.andi.yaml +1 -0
- data/.data/spec/std/isa/inst/C/c.ldsp.yaml +4 -4
- data/.data/spec/std/isa/inst/C/c.li.yaml +1 -0
- data/.data/spec/std/isa/inst/C/c.lui.yaml +1 -0
- data/.data/spec/std/isa/inst/C/c.mv.yaml +1 -1
- data/.data/spec/std/isa/inst/C/c.sdsp.yaml +1 -1
- data/.data/spec/std/isa/inst/D/fsgnj.d.yaml +3 -0
- data/.data/spec/std/isa/inst/D/fsgnjn.d.yaml +3 -0
- data/.data/spec/std/isa/inst/D/fsgnjx.d.yaml +3 -0
- data/.data/spec/std/isa/inst/F/fadd.s.yaml +5 -5
- data/.data/spec/std/isa/inst/F/fclass.s.yaml +2 -2
- data/.data/spec/std/isa/inst/F/fcvt.l.s.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fcvt.lu.s.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fcvt.s.l.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fcvt.s.lu.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fcvt.s.w.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fcvt.s.wu.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fcvt.w.s.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fcvt.wu.s.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fdiv.s.yaml +1 -1
- data/.data/spec/std/isa/inst/F/feq.s.yaml +2 -2
- data/.data/spec/std/isa/inst/F/fle.s.yaml +2 -2
- data/.data/spec/std/isa/inst/F/fleq.s.yaml +2 -2
- data/.data/spec/std/isa/inst/F/flt.s.yaml +2 -2
- data/.data/spec/std/isa/inst/F/fltq.s.yaml +2 -2
- data/.data/spec/std/isa/inst/F/flw.yaml +2 -2
- data/.data/spec/std/isa/inst/F/fmadd.s.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fmax.s.yaml +6 -6
- data/.data/spec/std/isa/inst/F/fmin.s.yaml +6 -6
- data/.data/spec/std/isa/inst/F/fmsub.s.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fmul.s.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fmv.w.x.yaml +2 -2
- data/.data/spec/std/isa/inst/F/fmv.x.w.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fnmadd.s.yaml +2 -2
- data/.data/spec/std/isa/inst/F/fnmsub.s.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fsgnj.s.yaml +4 -4
- data/.data/spec/std/isa/inst/F/fsgnjn.s.yaml +3 -3
- data/.data/spec/std/isa/inst/F/fsgnjx.s.yaml +4 -4
- data/.data/spec/std/isa/inst/F/fsqrt.s.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fsub.s.yaml +1 -1
- data/.data/spec/std/isa/inst/F/fsw.yaml +1 -1
- data/.data/spec/std/isa/inst/I/addi.yaml +2 -1
- data/.data/spec/std/isa/inst/I/addiw.yaml +2 -1
- data/.data/spec/std/isa/inst/I/andi.yaml +2 -1
- data/.data/spec/std/isa/inst/I/auipc.yaml +1 -0
- data/.data/spec/std/isa/inst/I/beq.yaml +1 -1
- data/.data/spec/std/isa/inst/I/bge.yaml +4 -2
- data/.data/spec/std/isa/inst/I/bgeu.yaml +3 -0
- data/.data/spec/std/isa/inst/I/blt.yaml +4 -2
- data/.data/spec/std/isa/inst/I/bltu.yaml +3 -0
- data/.data/spec/std/isa/inst/I/bne.yaml +1 -1
- data/.data/spec/std/isa/inst/I/lb.yaml +1 -0
- data/.data/spec/std/isa/inst/I/lbu.yaml +1 -0
- data/.data/spec/std/isa/inst/I/ld.yaml +2 -0
- data/.data/spec/std/isa/inst/I/lh.yaml +1 -0
- data/.data/spec/std/isa/inst/I/lhu.yaml +1 -0
- data/.data/spec/std/isa/inst/I/lui.yaml +1 -0
- data/.data/spec/std/isa/inst/I/lw.yaml +1 -0
- data/.data/spec/std/isa/inst/I/lwu.yaml +1 -0
- data/.data/spec/std/isa/inst/I/ori.yaml +1 -0
- data/.data/spec/std/isa/inst/I/sb.yaml +1 -0
- data/.data/spec/std/isa/inst/I/sd.yaml +1 -0
- data/.data/spec/std/isa/inst/I/sh.yaml +1 -0
- data/.data/spec/std/isa/inst/I/slt.yaml +2 -2
- data/.data/spec/std/isa/inst/I/slti.yaml +1 -0
- data/.data/spec/std/isa/inst/I/sltiu.yaml +2 -1
- data/.data/spec/std/isa/inst/I/sltu.yaml +1 -1
- data/.data/spec/std/isa/inst/I/sub.yaml +1 -1
- data/.data/spec/std/isa/inst/I/subw.yaml +1 -1
- data/.data/spec/std/isa/inst/I/sw.yaml +1 -0
- data/.data/spec/std/isa/inst/I/xori.yaml +2 -1
- data/.data/spec/std/isa/inst/M/mul.yaml +0 -19
- data/.data/spec/std/isa/inst/Q/fsgnj.q.yaml +1 -1
- data/.data/spec/std/isa/inst/S/sret.yaml +3 -1
- data/.data/spec/std/isa/inst/V/vadc.vim.yaml +1 -0
- data/.data/spec/std/isa/inst/V/vadd.vi.yaml +1 -0
- data/.data/spec/std/isa/inst/V/vadd.vv.yaml +1 -5
- data/.data/spec/std/isa/inst/V/vand.vi.yaml +1 -0
- data/.data/spec/std/isa/inst/V/vfsgnjn.vv.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vfsgnjx.vv.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vl1re8.v.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vl2re8.v.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vl4re8.v.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vl8re8.v.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vle8.v.yaml +4 -8
- data/.data/spec/std/isa/inst/V/vmadc.vi.yaml +1 -0
- data/.data/spec/std/isa/inst/V/vmadc.vim.yaml +1 -0
- data/.data/spec/std/isa/inst/V/vmand.mm.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vmerge.vim.yaml +1 -0
- data/.data/spec/std/isa/inst/V/vmfle.vv.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vmflt.vv.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vmnand.mm.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vmseq.vi.yaml +1 -0
- data/.data/spec/std/isa/inst/V/vmsgt.vi.yaml +4 -0
- data/.data/spec/std/isa/inst/V/vmsgtu.vi.yaml +4 -0
- data/.data/spec/std/isa/inst/V/vmsle.vi.yaml +4 -0
- data/.data/spec/std/isa/inst/V/vmsle.vv.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vmsleu.vi.yaml +4 -0
- data/.data/spec/std/isa/inst/V/vmsleu.vv.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vmslt.vv.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vmsltu.vv.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vmsne.vi.yaml +1 -0
- data/.data/spec/std/isa/inst/V/vmv.v.i.yaml +2 -13
- data/.data/spec/std/isa/inst/V/vmv.x.s.yaml +1 -1
- data/.data/spec/std/isa/inst/V/vmxnor.mm.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vmxor.mm.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vnsrl.wx.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vor.vi.yaml +1 -0
- data/.data/spec/std/isa/inst/V/vrsub.vi.yaml +1 -0
- data/.data/spec/std/isa/inst/V/vrsub.vx.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vsadd.vi.yaml +1 -0
- data/.data/spec/std/isa/inst/V/vsaddu.vi.yaml +1 -0
- data/.data/spec/std/isa/inst/V/vse8.v.yaml +4 -4
- data/.data/spec/std/isa/inst/V/vwadd.vx.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vwaddu.vx.yaml +3 -0
- data/.data/spec/std/isa/inst/V/vxor.vi.yaml +4 -0
- data/.data/spec/std/isa/inst/Zalasr/lSIZE.AQRL.layout +40 -5
- data/.data/spec/std/isa/inst/Zalasr/lb.aq.yaml +17 -1
- data/.data/spec/std/isa/inst/Zalasr/lb.aqrl.yaml +17 -1
- data/.data/spec/std/isa/inst/Zalasr/ld.aq.yaml +17 -1
- data/.data/spec/std/isa/inst/Zalasr/ld.aqrl.yaml +17 -1
- data/.data/spec/std/isa/inst/Zalasr/lh.aq.yaml +17 -1
- data/.data/spec/std/isa/inst/Zalasr/lh.aqrl.yaml +17 -1
- data/.data/spec/std/isa/inst/Zalasr/lw.aq.yaml +17 -1
- data/.data/spec/std/isa/inst/Zalasr/lw.aqrl.yaml +17 -1
- data/.data/spec/std/isa/inst/Zalasr/sSIZE.AQRL.layout +46 -5
- data/.data/spec/std/isa/inst/Zalasr/sb.aqrl.yaml +16 -1
- data/.data/spec/std/isa/inst/Zalasr/sb.rl.yaml +16 -1
- data/.data/spec/std/isa/inst/Zalasr/sd.aqrl.yaml +16 -1
- data/.data/spec/std/isa/inst/Zalasr/sd.rl.yaml +16 -1
- data/.data/spec/std/isa/inst/Zalasr/sh.aqrl.yaml +16 -1
- data/.data/spec/std/isa/inst/Zalasr/sh.rl.yaml +16 -1
- data/.data/spec/std/isa/inst/Zalasr/sw.aqrl.yaml +16 -1
- data/.data/spec/std/isa/inst/Zalasr/sw.rl.yaml +16 -1
- data/.data/spec/std/isa/inst/Zawrs/wrs.nto.yaml +4 -2
- data/.data/spec/std/isa/inst/Zba/add.uw.yaml +9 -11
- data/.data/spec/std/isa/inst/Zbb/orc.b.yaml +1 -1
- data/.data/spec/std/isa/inst/Zbkb/brev8.yaml +3 -3
- data/.data/spec/std/isa/inst/Zbkb/packw.yaml +1 -1
- data/.data/spec/std/isa/inst/Zbkb/unzip.yaml +2 -2
- data/.data/spec/std/isa/inst/Zbkb/zip.yaml +2 -2
- data/.data/spec/std/isa/inst/Zbkx/xperm4.yaml +2 -2
- data/.data/spec/std/isa/inst/Zbkx/xperm8.yaml +2 -2
- data/.data/spec/std/isa/inst/Zcd/c.fld.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcd/c.fldsp.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcd/c.fsdsp.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcf/c.flwsp.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcf/c.fswsp.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcmp/cm.pop.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcmp/cm.popret.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcmp/cm.popretz.yaml +1 -1
- data/.data/spec/std/isa/inst/Zcmp/cm.push.yaml +2 -3
- data/.data/spec/std/isa/inst/Zfa/fround.s.yaml +1 -1
- data/.data/spec/std/isa/inst/Zfh/fcvt.h.s.yaml +6 -6
- data/.data/spec/std/isa/inst/Zfh/fcvt.s.h.yaml +5 -5
- data/.data/spec/std/isa/inst/Zfh/flh.yaml +1 -1
- data/.data/spec/std/isa/inst/Zfh/fmv.h.x.yaml +1 -1
- data/.data/spec/std/isa/inst/Zfh/fmv.x.h.yaml +1 -1
- data/.data/spec/std/isa/inst/Zfh/fsh.yaml +1 -1
- data/.data/spec/std/isa/inst/Zicbop/prefetch.i.yaml +2 -0
- data/.data/spec/std/isa/inst/Zicbop/prefetch.r.yaml +2 -0
- data/.data/spec/std/isa/inst/Zicbop/prefetch.w.yaml +2 -0
- data/.data/spec/std/isa/inst/Zicsr/csrrc.yaml +1 -1
- data/.data/spec/std/isa/inst/Zicsr/csrrci.yaml +1 -1
- data/.data/spec/std/isa/inst/Zicsr/csrrs.yaml +2 -2
- data/.data/spec/std/isa/inst/Zicsr/csrrsi.yaml +1 -1
- data/.data/spec/std/isa/inst/Zicsr/csrrw.yaml +1 -1
- data/.data/spec/std/isa/inst/Zicsr/csrrwi.yaml +1 -1
- data/.data/spec/std/isa/inst/Zks/sm3p0.yaml +1 -1
- data/.data/spec/std/isa/inst/Zks/sm3p1.yaml +1 -1
- data/.data/spec/std/isa/inst/Zks/sm4ed.yaml +1 -1
- data/.data/spec/std/isa/inst/Zks/sm4ks.yaml +1 -1
- data/.data/spec/std/isa/isa/builtin_functions.idl +18 -0
- data/.data/spec/std/isa/isa/fp.idl +1 -5
- data/.data/spec/std/isa/isa/globals.isa +72 -21
- data/.data/spec/std/isa/isa/interrupts.idl +1 -0
- data/.data/spec/std/isa/isa/vec.idl +1 -2
- data/.data/spec/std/isa/manual_version/isa/20240411/isa_20240411.yaml +5 -5
- data/.data/spec/std/isa/param/COUNTINHIBIT_EN.yaml +8 -2
- data/.data/spec/std/isa/param/HSTATEEN_CONTEXT_TYPE.yaml +1 -0
- data/.data/spec/std/isa/param/JVT_BASE_MASK.yaml +1 -1
- data/.data/spec/std/isa/param/MCOUNTINHIBIT_IMPLEMENTED.yaml +25 -0
- data/.data/spec/std/isa/param/MSTATEEN_CONTEXT_TYPE.yaml +1 -0
- data/.data/spec/std/isa/param/MTVEC_BASE_ALIGNMENT_DIRECT.yaml +1 -0
- data/.data/spec/std/isa/param/MTVEC_BASE_ALIGNMENT_VECTORED.yaml +1 -0
- data/.data/spec/std/isa/param/MTVEC_MODES.yaml +10 -3
- data/.data/spec/std/isa/param/NUM_PMP_ENTRIES.yaml +11 -22
- data/.data/spec/std/isa/param/NUM_USABLE_PMP_ENTRIES.yaml +35 -0
- data/.data/spec/std/isa/param/PMP_NA4_SUPPORTED.yaml +23 -0
- data/.data/spec/std/isa/param/PMP_NAPOT_SUPPORTED.yaml +19 -0
- data/.data/spec/std/isa/param/{MSTATUS_TVM_IMPLEMENTED.yaml → PMP_TOR_SUPPORTED.yaml} +6 -6
- data/.data/spec/std/isa/param/PRECISE_SYNCHRONOUS_EXCEPTIONS.yaml +1 -0
- data/.data/spec/std/isa/param/TRAP_ON_EBREAK.yaml +1 -0
- data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_M.yaml +1 -0
- data/.data/spec/std/isa/param/TRAP_ON_SFENCE_VMA_WHEN_SATP_MODE_IS_READ_ONLY.yaml +1 -0
- data/.data/spec/std/isa/param/VLEN.yaml +2 -0
- data/.data/spec/std/isa/param/ZAWRS_NTO_IS_NOP.yaml +19 -0
- data/.data/spec/std/isa/profile/RVA20S64.yaml +11 -4
- data/.data/spec/std/isa/profile/RVA20U64.yaml +14 -5
- data/.data/spec/std/isa/profile/RVA22S64.yaml +14 -3
- data/.data/spec/std/isa/profile/RVA22U64.yaml +8 -1
- data/.data/spec/std/isa/profile/RVA23S64.yaml +13 -0
- data/.data/spec/std/isa/profile/RVA23U64.yaml +15 -1
- data/.data/spec/std/isa/profile/RVB23S64.yaml +15 -3
- data/.data/spec/std/isa/profile/RVB23U64.yaml +8 -1
- data/.data/spec/std/isa/profile/RVI20U32.yaml +8 -1
- data/.data/spec/std/isa/profile/RVI20U64.yaml +7 -0
- data/.data/spec/std/isa/register_file/F.yaml +3 -2
- data/.data/spec/std/isa/register_file/V.yaml +2 -2
- data/.data/spec/std/isa/register_file/X.yaml +2 -1
- data/lib/udb/ESPRESSO_VERSION +1 -1
- data/lib/udb/architecture.rb +4 -25
- data/lib/udb/cfg_arch.rb +171 -59
- data/lib/udb/cli.rb +10 -1
- data/lib/udb/condition.rb +38 -37
- data/lib/udb/config.rb +86 -8
- data/lib/udb/doc_link.rb +3 -4
- data/lib/udb/logic.rb +29 -56
- data/lib/udb/obj/csr.rb +23 -5
- data/lib/udb/obj/csr_field.rb +36 -21
- data/lib/udb/obj/database_obj.rb +2 -5
- data/lib/udb/obj/extension.rb +0 -3
- data/lib/udb/obj/instruction.rb +2 -5
- data/lib/udb/obj/non_isa_specification.rb +22 -100
- data/lib/udb/obj/portfolio.rb +75 -20
- data/lib/udb/obj/profile.rb +0 -4
- data/lib/udb/obj/register_file.rb +63 -2
- data/lib/udb/portfolio_design.rb +3 -6
- data/lib/udb/resolver.rb +84 -23
- data/lib/udb/version.rb +1 -1
- data/lib/udb/version_spec.rb +8 -0
- data/lib/udb/z3.rb +25 -2
- data/lib/udb.rb +0 -3
- metadata +30 -38
- data/.data/cfgs/profile/RVA23M64.yaml +0 -159
- data/.data/cfgs/profile/RVB23M64.yaml +0 -149
- data/.data/spec/schemas/proc_cert_class_schema.json +0 -35
- data/.data/spec/schemas/proc_cert_model_schema.json +0 -336
- data/.data/spec/std/isa/proc_cert_class/AC.yaml +0 -13
- data/.data/spec/std/isa/proc_cert_class/MC.yaml +0 -13
- data/.data/spec/std/isa/proc_cert_class/RVI.yaml +0 -16
- data/.data/spec/std/isa/proc_cert_model/AC100.yaml +0 -72
- data/.data/spec/std/isa/proc_cert_model/AC200.yaml +0 -58
- data/.data/spec/std/isa/proc_cert_model/MC100-32.yaml +0 -155
- data/.data/spec/std/isa/proc_cert_model/MC100-64.yaml +0 -21
- data/.data/spec/std/isa/proc_cert_model/MC200-32.yaml +0 -60
- data/.data/spec/std/isa/proc_cert_model/MC200-64.yaml +0 -21
- data/.data/spec/std/isa/proc_cert_model/MC300-32.yaml +0 -40
- data/.data/spec/std/isa/proc_cert_model/MC300-64.yaml +0 -21
- data/.data/spec/std/isa/proc_cert_model/RVI20-32.yaml +0 -39
- data/.data/spec/std/isa/proc_cert_model/RVI20-64.yaml +0 -19
- data/.data/spec/std/isa/profile/RVA23M64.yaml +0 -24
- data/.data/spec/std/isa/profile/RVB23M64.yaml +0 -86
- data/lib/udb/cert_normative_rule.rb +0 -41
- data/lib/udb/obj/certifiable_obj.rb +0 -21
- data/lib/udb/obj/certificate.rb +0 -230
- data/lib/udb/proc_cert_design.rb +0 -77
|
@@ -10,8 +10,7 @@ kind: architecture configuration
|
|
|
10
10
|
type: partially configured
|
|
11
11
|
name: RVB23U64
|
|
12
12
|
description:
|
|
13
|
-
params:
|
|
14
|
-
MXLEN: 64
|
|
13
|
+
params: {}
|
|
15
14
|
mandatory_extensions:
|
|
16
15
|
- name: A
|
|
17
16
|
version: "~> 2.1"
|
|
@@ -20,9 +19,9 @@ mandatory_extensions:
|
|
|
20
19
|
- name: C
|
|
21
20
|
version: "~> 2.0"
|
|
22
21
|
- name: D
|
|
23
|
-
version: "~> 2.2"
|
|
22
|
+
version: "~> 2.2.0"
|
|
24
23
|
- name: F
|
|
25
|
-
version: "~> 2.2"
|
|
24
|
+
version: "~> 2.2.0"
|
|
26
25
|
- name: I
|
|
27
26
|
version: "~> 2.1"
|
|
28
27
|
- name: M
|
|
@@ -33,6 +32,10 @@ mandatory_extensions:
|
|
|
33
32
|
version: "~> 1.0"
|
|
34
33
|
- name: Za64rs
|
|
35
34
|
version: "~> 1.0"
|
|
35
|
+
- name: Zaamo
|
|
36
|
+
version: "~> 1.0.0"
|
|
37
|
+
- name: Zalrsc
|
|
38
|
+
version: "~> 1.0.0"
|
|
36
39
|
- name: Zawrs
|
|
37
40
|
version: "~> 1.0"
|
|
38
41
|
- name: Zba
|
|
@@ -41,8 +44,12 @@ mandatory_extensions:
|
|
|
41
44
|
version: "~> 1.0"
|
|
42
45
|
- name: Zbs
|
|
43
46
|
version: "~> 1.0"
|
|
47
|
+
- name: Zca
|
|
48
|
+
version: "~> 1.0.0"
|
|
44
49
|
- name: Zcb
|
|
45
50
|
version: "~> 1.0"
|
|
51
|
+
- name: Zcd
|
|
52
|
+
version: "~> 1.0.0"
|
|
46
53
|
- name: Zcmop
|
|
47
54
|
version: "~> 1.0"
|
|
48
55
|
- name: Zfa
|
|
@@ -139,3 +146,10 @@ non_mandatory_extensions:
|
|
|
139
146
|
- name: Zvkt
|
|
140
147
|
version: "~> 1.0"
|
|
141
148
|
additional_extensions: true
|
|
149
|
+
requirements:
|
|
150
|
+
param:
|
|
151
|
+
allOf:
|
|
152
|
+
- name: U_MODE_ENDIANNESS
|
|
153
|
+
equal: little
|
|
154
|
+
- name: UXLEN
|
|
155
|
+
includes: 64
|
|
@@ -10,8 +10,7 @@ kind: architecture configuration
|
|
|
10
10
|
type: partially configured
|
|
11
11
|
name: RVI20U32
|
|
12
12
|
description:
|
|
13
|
-
params:
|
|
14
|
-
MXLEN: 32
|
|
13
|
+
params: {}
|
|
15
14
|
mandatory_extensions:
|
|
16
15
|
- name: I
|
|
17
16
|
version: "~> 2.1"
|
|
@@ -21,9 +20,9 @@ non_mandatory_extensions:
|
|
|
21
20
|
- name: C
|
|
22
21
|
version: "~> 2.0"
|
|
23
22
|
- name: D
|
|
24
|
-
version: "~> 2.2"
|
|
23
|
+
version: "~> 2.2.0"
|
|
25
24
|
- name: F
|
|
26
|
-
version: "~> 2.2"
|
|
25
|
+
version: "~> 2.2.0"
|
|
27
26
|
- name: M
|
|
28
27
|
version: "~> 2.0"
|
|
29
28
|
- name: Zca
|
|
@@ -39,3 +38,10 @@ non_mandatory_extensions:
|
|
|
39
38
|
- name: Zihpm
|
|
40
39
|
version: "~> 2.0"
|
|
41
40
|
additional_extensions: true
|
|
41
|
+
requirements:
|
|
42
|
+
param:
|
|
43
|
+
allOf:
|
|
44
|
+
- name: U_MODE_ENDIANNESS
|
|
45
|
+
equal: little
|
|
46
|
+
- name: UXLEN
|
|
47
|
+
includes: 32
|
|
@@ -10,8 +10,7 @@ kind: architecture configuration
|
|
|
10
10
|
type: partially configured
|
|
11
11
|
name: RVI20U64
|
|
12
12
|
description:
|
|
13
|
-
params:
|
|
14
|
-
MXLEN: 64
|
|
13
|
+
params: {}
|
|
15
14
|
mandatory_extensions:
|
|
16
15
|
- name: I
|
|
17
16
|
version: "~> 2.1"
|
|
@@ -21,9 +20,9 @@ non_mandatory_extensions:
|
|
|
21
20
|
- name: C
|
|
22
21
|
version: "~> 2.0"
|
|
23
22
|
- name: D
|
|
24
|
-
version: "~> 2.2"
|
|
23
|
+
version: "~> 2.2.0"
|
|
25
24
|
- name: F
|
|
26
|
-
version: "~> 2.2"
|
|
25
|
+
version: "~> 2.2.0"
|
|
27
26
|
- name: M
|
|
28
27
|
version: "~> 2.0"
|
|
29
28
|
- name: Zca
|
|
@@ -39,3 +38,10 @@ non_mandatory_extensions:
|
|
|
39
38
|
- name: Zihpm
|
|
40
39
|
version: "~> 2.0"
|
|
41
40
|
additional_extensions: true
|
|
41
|
+
requirements:
|
|
42
|
+
param:
|
|
43
|
+
allOf:
|
|
44
|
+
- name: U_MODE_ENDIANNESS
|
|
45
|
+
equal: little
|
|
46
|
+
- name: UXLEN
|
|
47
|
+
includes: 64
|
data/.data/cfgs/qc_iu.yaml
CHANGED
|
@@ -5,7 +5,7 @@ kind: architecture configuration
|
|
|
5
5
|
type: fully configured
|
|
6
6
|
name: qc_iu
|
|
7
7
|
arch_overlay: qc_iu
|
|
8
|
-
description: Configuration with the Xqci and
|
|
8
|
+
description: Configuration with the Xqci, Xqccmp, Xqccmt, and Xqccmi custom extensions.
|
|
9
9
|
implemented_extensions:
|
|
10
10
|
- { name: Sm, version: "= 1.13" }
|
|
11
11
|
- { name: Smrnmi, version: "= 1.0" }
|
|
@@ -22,6 +22,8 @@ implemented_extensions:
|
|
|
22
22
|
- { name: Zicsr, version: "= 2.0" }
|
|
23
23
|
- { name: Zihpm, version: "= 2.0" }
|
|
24
24
|
- { name: Xqccmp, version: "= 0.3" }
|
|
25
|
+
- { name: Xqccmt, version: "= 0.1.0" }
|
|
26
|
+
- { name: Xqccmi, version: "= 0.2.0" }
|
|
25
27
|
- { name: Xqci, version: "= 0.13" }
|
|
26
28
|
- { name: Xqcia, version: "= 0.7.0" }
|
|
27
29
|
- { name: Xqciac, version: "= 0.3.0" }
|
|
@@ -174,9 +176,14 @@ params:
|
|
|
174
176
|
MTVAL_WIDTH: 32
|
|
175
177
|
PMP_GRANULARITY: 12
|
|
176
178
|
NUM_PMP_ENTRIES: 16
|
|
179
|
+
NUM_USABLE_PMP_ENTRIES: 16
|
|
180
|
+
PMP_TOR_SUPPORTED: true
|
|
181
|
+
PMP_NA4_SUPPORTED: false
|
|
182
|
+
PMP_NAPOT_SUPPORTED: true
|
|
177
183
|
PMA_GRANULARITY: 12
|
|
178
184
|
M_MODE_ENDIANNESS: little
|
|
179
185
|
MISA_CSR_IMPLEMENTED: true
|
|
186
|
+
MCOUNTINHIBIT_IMPLEMENTED: true
|
|
180
187
|
MTVEC_ACCESS: rw
|
|
181
188
|
MTVEC_ILLEGAL_WRITE_BEHAVIOR: retain
|
|
182
189
|
MTVEC_BASE_ALIGNMENT_DIRECT: 4
|
|
@@ -18,7 +18,7 @@ implemented_extensions:
|
|
|
18
18
|
- [S, "1.11.0"]
|
|
19
19
|
- [U, "1.0.0"]
|
|
20
20
|
- [Zifencei, "2.0.0"]
|
|
21
|
-
- [Sv32, "1.
|
|
21
|
+
- [Sv32, "1.0"]
|
|
22
22
|
- [F, "2.2.0"]
|
|
23
23
|
- [Zcf, "1.0"]
|
|
24
24
|
|
|
@@ -55,6 +55,7 @@ params:
|
|
|
55
55
|
PMA_GRANULARITY: 12
|
|
56
56
|
PHYS_ADDR_WIDTH: 34
|
|
57
57
|
MISA_CSR_IMPLEMENTED: true
|
|
58
|
+
MCOUNTINHIBIT_IMPLEMENTED: true
|
|
58
59
|
MTVEC_ACCESS: rw
|
|
59
60
|
MTVEC_MODES: [0, 1]
|
|
60
61
|
MTVEC_BASE_ALIGNMENT_DIRECT: 4
|
|
@@ -193,8 +194,11 @@ params:
|
|
|
193
194
|
TRAP_ON_ECALL_FROM_S: true
|
|
194
195
|
MSTATUS_VS_LEGAL_VALUES: [0]
|
|
195
196
|
MSTATUS_FS_LEGAL_VALUES: [3, 2, 1, 0]
|
|
196
|
-
MSTATUS_TVM_IMPLEMENTED: false
|
|
197
197
|
NUM_PMP_ENTRIES: 16
|
|
198
|
+
NUM_USABLE_PMP_ENTRIES: 16
|
|
199
|
+
PMP_TOR_SUPPORTED: true
|
|
200
|
+
PMP_NA4_SUPPORTED: false
|
|
201
|
+
PMP_NAPOT_SUPPORTED: true
|
|
198
202
|
PMP_GRANULARITY: 12
|
|
199
203
|
MUTABLE_MISA_U: false
|
|
200
204
|
U_MODE_ENDIANNESS: little
|
data/.data/cfgs/rv32-vector.yaml
CHANGED
|
@@ -22,7 +22,7 @@ implemented_extensions:
|
|
|
22
22
|
- [S, "1.11.0"]
|
|
23
23
|
- [U, "1.0.0"]
|
|
24
24
|
- [Zifencei, "2.0.0"]
|
|
25
|
-
- [Sv32, "1.
|
|
25
|
+
- [Sv32, "1.0"]
|
|
26
26
|
- [V, "1.0.0"]
|
|
27
27
|
- [Zve64f, "1.0.0"]
|
|
28
28
|
- [Zve64d, "1.0.0"]
|
|
@@ -65,6 +65,7 @@ params:
|
|
|
65
65
|
PMA_GRANULARITY: 12
|
|
66
66
|
PHYS_ADDR_WIDTH: 34
|
|
67
67
|
MISA_CSR_IMPLEMENTED: true
|
|
68
|
+
MCOUNTINHIBIT_IMPLEMENTED: true
|
|
68
69
|
MTVEC_ACCESS: rw
|
|
69
70
|
MTVEC_MODES: [0, 1]
|
|
70
71
|
MTVEC_BASE_ALIGNMENT_DIRECT: 4
|
|
@@ -207,8 +208,11 @@ params:
|
|
|
207
208
|
MSTATUS_VS_LEGAL_VALUES: [0, 1, 2, 3]
|
|
208
209
|
HW_MSTATUS_FS_DIRTY_UPDATE: precise
|
|
209
210
|
MSTATUS_FS_LEGAL_VALUES: [0, 3]
|
|
210
|
-
MSTATUS_TVM_IMPLEMENTED: false
|
|
211
211
|
NUM_PMP_ENTRIES: 16
|
|
212
|
+
NUM_USABLE_PMP_ENTRIES: 16
|
|
213
|
+
PMP_TOR_SUPPORTED: true
|
|
214
|
+
PMP_NA4_SUPPORTED: false
|
|
215
|
+
PMP_NAPOT_SUPPORTED: true
|
|
212
216
|
PMP_GRANULARITY: 12
|
|
213
217
|
MUTABLE_MISA_U: false
|
|
214
218
|
U_MODE_ENDIANNESS: little
|
|
@@ -17,7 +17,7 @@ implemented_extensions:
|
|
|
17
17
|
- [S, "1.11.0"]
|
|
18
18
|
- [U, "1.0.0"]
|
|
19
19
|
- [Zifencei, "2.0.0"]
|
|
20
|
-
- [Sv39, "1.
|
|
20
|
+
- [Sv39, "1.0"]
|
|
21
21
|
- [Zca, "1.0.0"]
|
|
22
22
|
- [F, "2.2.0"]
|
|
23
23
|
|
|
@@ -53,6 +53,7 @@ params:
|
|
|
53
53
|
PMA_GRANULARITY: 12
|
|
54
54
|
PHYS_ADDR_WIDTH: 57
|
|
55
55
|
MISA_CSR_IMPLEMENTED: true
|
|
56
|
+
MCOUNTINHIBIT_IMPLEMENTED: true
|
|
56
57
|
MTVEC_ACCESS: rw
|
|
57
58
|
MTVEC_MODES: [0, 1]
|
|
58
59
|
MTVEC_BASE_ALIGNMENT_DIRECT: 4
|
|
@@ -192,8 +193,11 @@ params:
|
|
|
192
193
|
TRAP_ON_ECALL_FROM_U: true
|
|
193
194
|
MSTATUS_VS_LEGAL_VALUES: [0]
|
|
194
195
|
MSTATUS_FS_LEGAL_VALUES: [3, 2, 1, 0]
|
|
195
|
-
MSTATUS_TVM_IMPLEMENTED: false
|
|
196
196
|
NUM_PMP_ENTRIES: 16
|
|
197
|
+
NUM_USABLE_PMP_ENTRIES: 16
|
|
198
|
+
PMP_TOR_SUPPORTED: true
|
|
199
|
+
PMP_NA4_SUPPORTED: false
|
|
200
|
+
PMP_NAPOT_SUPPORTED: true
|
|
197
201
|
PMP_GRANULARITY: 12
|
|
198
202
|
MUTABLE_MISA_U: false
|
|
199
203
|
U_MODE_ENDIANNESS: little
|
data/.data/cfgs/rv64-vector.yaml
CHANGED
|
@@ -19,7 +19,7 @@ implemented_extensions:
|
|
|
19
19
|
- [S, "1.11.0"]
|
|
20
20
|
- [U, "1.0.0"]
|
|
21
21
|
- [Zifencei, "2.0.0"]
|
|
22
|
-
- [Sv39, "1.
|
|
22
|
+
- [Sv39, "1.0"]
|
|
23
23
|
- [V, "1.0.0"]
|
|
24
24
|
- [F, "2.2"]
|
|
25
25
|
- [D, "2.2"]
|
|
@@ -64,6 +64,7 @@ params:
|
|
|
64
64
|
PMA_GRANULARITY: 12
|
|
65
65
|
PHYS_ADDR_WIDTH: 57
|
|
66
66
|
MISA_CSR_IMPLEMENTED: true
|
|
67
|
+
MCOUNTINHIBIT_IMPLEMENTED: true
|
|
67
68
|
MTVEC_ACCESS: rw
|
|
68
69
|
MTVEC_MODES: [0, 1]
|
|
69
70
|
MTVEC_BASE_ALIGNMENT_DIRECT: 4
|
|
@@ -204,8 +205,11 @@ params:
|
|
|
204
205
|
TRAP_ON_ECALL_FROM_U: true
|
|
205
206
|
MSTATUS_VS_LEGAL_VALUES: [0, 1, 2, 3]
|
|
206
207
|
MSTATUS_FS_LEGAL_VALUES: [0, 1, 2, 3]
|
|
207
|
-
MSTATUS_TVM_IMPLEMENTED: false
|
|
208
208
|
NUM_PMP_ENTRIES: 16
|
|
209
|
+
NUM_USABLE_PMP_ENTRIES: 16
|
|
210
|
+
PMP_TOR_SUPPORTED: true
|
|
211
|
+
PMP_NA4_SUPPORTED: false
|
|
212
|
+
PMP_NAPOT_SUPPORTED: true
|
|
209
213
|
PMP_GRANULARITY: 12
|
|
210
214
|
MUTABLE_MISA_U: false
|
|
211
215
|
U_MODE_ENDIANNESS: little
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
# Overlay: allow bit 0 of mnepc.PC to be written and read back unchanged.
|
|
6
|
+
#
|
|
7
|
+
# When Xqccmi is present, qc.cm.ilut sets bit 0 of mepc/mnepc to indicate
|
|
8
|
+
# whether an exception originated from the first (bit 0 = 0) or second
|
|
9
|
+
# (bit 0 = 1) packed instruction in an ILUT entry. The standard mnepc
|
|
10
|
+
# definition forces bit 0 to 0 on write and masks it on read; both
|
|
11
|
+
# behaviours are removed here so that bit 0 is preserved faithfully.
|
|
12
|
+
fields:
|
|
13
|
+
PC:
|
|
14
|
+
sw_write(csr_value): |
|
|
15
|
+
return csr_value.PC;
|
|
16
|
+
sw_read(): |
|
|
17
|
+
return CSR[mnepc].PC;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
|
|
4
|
+
# yaml-language-server: $schema=../../../../../schemas/csr_schema.json
|
|
5
|
+
|
|
6
|
+
$schema: csr_schema.json#
|
|
7
|
+
kind: csr
|
|
8
|
+
name: qc.itba
|
|
9
|
+
long_name: Instruction Table Base Address Register
|
|
10
|
+
address: 0x800
|
|
11
|
+
priv_mode: U
|
|
12
|
+
length: MXLEN
|
|
13
|
+
writable: true
|
|
14
|
+
description: |
|
|
15
|
+
The `qc.itba` register holds the base address of the Instruction Lookup Table (ILUT)
|
|
16
|
+
used by the `qc.cm.ilut` instruction.
|
|
17
|
+
|
|
18
|
+
The BASE field specifies bits[XLEN-1:6] of the ILUT base address. The lower 6 bits
|
|
19
|
+
are implicitly zero, so the ILUT base address is always 64-byte aligned.
|
|
20
|
+
|
|
21
|
+
The memory region pointed to by `qc.itba.base` is treated as instruction memory for
|
|
22
|
+
the purpose of executing ILUT instructions, requiring execute (X) access permission.
|
|
23
|
+
Read (R) permission is not required.
|
|
24
|
+
|
|
25
|
+
`qc.itba` adds architectural state to the system software context and must be
|
|
26
|
+
saved and restored on context switches.
|
|
27
|
+
definedBy:
|
|
28
|
+
extension:
|
|
29
|
+
name: Xqccmi
|
|
30
|
+
fields:
|
|
31
|
+
base:
|
|
32
|
+
location_rv32: 31-6
|
|
33
|
+
location_rv64: 63-6
|
|
34
|
+
type: RW
|
|
35
|
+
reset_value: UNDEFINED_LEGAL
|
|
36
|
+
description: |
|
|
37
|
+
Bits[XLEN-1:6] of the ILUT base address. The full base address is formed by
|
|
38
|
+
appending 6 implicit zero bits: `base_addr = {base, 6'b000000}`.
|
|
39
|
+
The base address must be 64-byte aligned.
|
|
40
|
+
mode:
|
|
41
|
+
location: 5-0
|
|
42
|
+
type: RO
|
|
43
|
+
reset_value: 0
|
|
44
|
+
description: |
|
|
45
|
+
Reserved for future use. Always reads as zero. Writes are ignored.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
|
|
4
|
+
# yaml-language-server: $schema=../../../../../schemas/csr_schema.json
|
|
5
|
+
|
|
6
|
+
$schema: csr_schema.json#
|
|
7
|
+
kind: csr
|
|
8
|
+
name: qc.itdec
|
|
9
|
+
long_name: Instruction Table Double Entry Count Register
|
|
10
|
+
address: 0x801
|
|
11
|
+
priv_mode: U
|
|
12
|
+
length: MXLEN
|
|
13
|
+
writable: true
|
|
14
|
+
description: |
|
|
15
|
+
The `qc.itdec` register specifies the number of leading 64-bit double entries
|
|
16
|
+
in the Instruction Lookup Table (ILUT) used by the `qc.cm.ilut` instruction.
|
|
17
|
+
|
|
18
|
+
The DEC field holds an 11-bit count. The first DEC logical ILUT entries
|
|
19
|
+
(indices 0 through DEC−1) are 64-bit double entries. The remaining entries
|
|
20
|
+
(indices DEC through 2047) are 32-bit single entries.
|
|
21
|
+
|
|
22
|
+
The byte offset from the ILUT base address for logical index i is:
|
|
23
|
+
- If i < DEC: offset = i × 8
|
|
24
|
+
- If i ≥ DEC: offset = DEC × 8 + (i − DEC) × 4
|
|
25
|
+
|
|
26
|
+
The reset value of 0 selects backward-compatible mode in which all entries
|
|
27
|
+
are 32-bit single entries.
|
|
28
|
+
definedBy:
|
|
29
|
+
extension:
|
|
30
|
+
name: Xqccmi
|
|
31
|
+
fields:
|
|
32
|
+
dec:
|
|
33
|
+
location: 13-3
|
|
34
|
+
type: RW
|
|
35
|
+
reset_value: 0
|
|
36
|
+
description: |
|
|
37
|
+
11-bit double entry count. Specifies the number of leading 64-bit entries
|
|
38
|
+
in the ILUT. Legal range: 0..2047. A value of 0 means all entries are
|
|
39
|
+
32-bit (backward-compatible mode).
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
# Overlay: extend jvt definedBy to include Xqccmt (custom variant of Zcmt)
|
|
6
|
+
definedBy:
|
|
7
|
+
extension:
|
|
8
|
+
name: null
|
|
9
|
+
anyOf:
|
|
10
|
+
- name: Zcmt
|
|
11
|
+
- name: Xqccmt
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
|
2
|
+
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
# Overlay: allow bit 0 of mepc.PC to be written and read back unchanged.
|
|
6
|
+
#
|
|
7
|
+
# When Xqccmi is present, qc.cm.ilut sets bit 0 of mepc to indicate whether
|
|
8
|
+
# an exception originated from the first (bit 0 = 0) or second (bit 0 = 1)
|
|
9
|
+
# packed instruction in an ILUT entry. The standard mepc definition forces
|
|
10
|
+
# bit 0 to 0 on write and masks it on read; both behaviours are removed here.
|
|
11
|
+
fields:
|
|
12
|
+
PC:
|
|
13
|
+
sw_write(csr_value): |
|
|
14
|
+
return csr_value.PC;
|
|
15
|
+
sw_read(): |
|
|
16
|
+
return CSR[mepc].PC;
|