gem5 v23.0.0.1
Loading...
Searching...
No Matches
misc.hh
Go to the documentation of this file.
1/*
2 * Copyright (c) 2013 ARM Limited
3 * Copyright (c) 2014-2015 Sven Karlsson
4 * Copyright (c) 2019 Yifei Liu
5 * Copyright (c) 2020 Barkhausen Institut
6 * Copyright (c) 2021 StreamComputing Corp
7 * All rights reserved
8 *
9 * The license below extends only to copyright in the software and shall
10 * not be construed as granting a license to any other intellectual
11 * property including but not limited to intellectual property relating
12 * to a hardware implementation of the functionality of the software
13 * licensed hereunder. You may use the software subject to the license
14 * terms below provided that you ensure that this notice is replicated
15 * unmodified and in its entirety in all distributions of the software,
16 * modified or unmodified, in source code or in binary form.
17 *
18 * Copyright (c) 2016 RISC-V Foundation
19 * Copyright (c) 2016 The University of Virginia
20 * All rights reserved.
21 *
22 * Redistribution and use in source and binary forms, with or without
23 * modification, are permitted provided that the following conditions are
24 * met: redistributions of source code must retain the above copyright
25 * notice, this list of conditions and the following disclaimer;
26 * redistributions in binary form must reproduce the above copyright
27 * notice, this list of conditions and the following disclaimer in the
28 * documentation and/or other materials provided with the distribution;
29 * neither the name of the copyright holders nor the names of its
30 * contributors may be used to endorse or promote products derived from
31 * this software without specific prior written permission.
32 *
33 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
34 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
35 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
36 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
37 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
38 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
39 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
40 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
41 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
42 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
43 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
44 */
45
46#ifndef __ARCH_RISCV_REGS_MISC_HH__
47#define __ARCH_RISCV_REGS_MISC_HH__
48
49#include <string>
50#include <unordered_map>
51
54#include "arch/riscv/types.hh"
55#include "base/bitunion.hh"
56#include "base/types.hh"
57#include "cpu/reg_class.hh"
58#include "debug/MiscRegs.hh"
59#include "enums/RiscvType.hh"
60
61namespace gem5
62{
63
64namespace RiscvISA
65{
66
68{
146
156 MISCREG_PMPCFG1, // pmpcfg1 is rv32 only
158 MISCREG_PMPCFG3, // pmpcfg3 is rv32 only
175
185
193
194 // These registers are not in the standard, hence does not exist in the
195 // CSRData map. These are mainly used to provide a minimal implementation
196 // for non-maskable-interrupt in our simple cpu.
197 // non-maskable-interrupt-vector-base-address: NMI version of xTVEC
199 // non-maskable-interrupt-enable: NMI version of xIE
201 // non-maskable-interrupt-pending: NMI version of xIP
203
204 // the following MicsRegIndex are RV32 only
206
239
242
244 NUM_MISCREGS, debug::MiscRegs);
245
247{
248 CSR_USTATUS = 0x000,
249 CSR_UIE = 0x004,
250 CSR_UTVEC = 0x005,
252 CSR_UEPC = 0x041,
253 CSR_UCAUSE = 0x042,
254 CSR_UTVAL = 0x043,
255 CSR_UIP = 0x044,
256 CSR_FFLAGS = 0x001,
257 CSR_FRM = 0x002,
258 CSR_FCSR = 0x003,
259 CSR_CYCLE = 0xC00,
260 CSR_TIME = 0xC01,
261 CSR_INSTRET = 0xC02,
291
292 // rv32 only csr register begin
293 CSR_CYCLEH = 0xC80,
294 CSR_TIMEH = 0xC81,
325 // rv32 only csr register end
326
327 CSR_SSTATUS = 0x100,
328 CSR_SEDELEG = 0x102,
329 CSR_SIDELEG = 0x103,
330 CSR_SIE = 0x104,
331 CSR_STVEC = 0x105,
334 CSR_SEPC = 0x141,
335 CSR_SCAUSE = 0x142,
336 CSR_STVAL = 0x143,
337 CSR_SIP = 0x144,
338 CSR_SATP = 0x180,
339
341 CSR_MARCHID = 0xF12,
342 CSR_MIMPID = 0xF13,
343 CSR_MHARTID = 0xF14,
344 CSR_MSTATUS = 0x300,
345 CSR_MISA = 0x301,
346 CSR_MEDELEG = 0x302,
347 CSR_MIDELEG = 0x303,
348 CSR_MIE = 0x304,
349 CSR_MTVEC = 0x305,
351 CSR_MSTATUSH = 0x310, // rv32 only
353 CSR_MEPC = 0x341,
354 CSR_MCAUSE = 0x342,
355 CSR_MTVAL = 0x343,
356 CSR_MIP = 0x344,
357 CSR_PMPCFG0 = 0x3A0,
358 CSR_PMPCFG1 = 0x3A1, // pmpcfg1 rv32 only
359 CSR_PMPCFG2 = 0x3A2,
360 CSR_PMPCFG3 = 0x3A3,// pmpcfg3 rv32 only
377 CSR_MCYCLE = 0xB00,
408
409 // rv32 only csr register begin
410 CSR_MCYCLEH = 0xB80,
441 // rv32 only csr register end
442
472
473 CSR_TSELECT = 0x7A0,
474 CSR_TDATA1 = 0x7A1,
475 CSR_TDATA2 = 0x7A2,
476 CSR_TDATA3 = 0x7A3,
477 CSR_DCSR = 0x7B0,
478 CSR_DPC = 0x7B1,
479 CSR_DSCRATCH = 0x7B2
481
483{
484 const std::string name;
485 const int physIndex;
486 const uint64_t rvTypes;
487};
488
489template <typename... T>
490constexpr uint64_t rvTypeFlags(T... args) {
491 return ((1 << args) | ...);
492}
493
494const std::unordered_map<int, CSRMetadata> CSRData = {
496 {CSR_UIE, {"uie", MISCREG_IE, rvTypeFlags(RV64, RV32)}},
499 {CSR_UEPC, {"uepc", MISCREG_UEPC, rvTypeFlags(RV64, RV32)}},
502 {CSR_UIP, {"uip", MISCREG_IP, rvTypeFlags(RV64, RV32)}},
504 {CSR_FRM, {"frm", MISCREG_FRM, rvTypeFlags(RV64, RV32)}},
505 {CSR_FCSR, {"fcsr", MISCREG_FFLAGS, rvTypeFlags(RV64, RV32)}}, // Actually FRM << 5 | FFLAGS
507 {CSR_TIME, {"time", MISCREG_TIME, rvTypeFlags(RV64, RV32)}},
538 {CSR_CYCLEH, {"cycleh", MISCREG_CYCLEH, rvTypeFlags(RV32)}},
539 {CSR_TIMEH, {"timeh", MISCREG_TIMEH, rvTypeFlags(RV32)}},
570
574 {CSR_SIE, {"sie", MISCREG_IE, rvTypeFlags(RV64, RV32)}},
578 {CSR_SEPC, {"sepc", MISCREG_SEPC, rvTypeFlags(RV64, RV32)}},
581 {CSR_SIP, {"sip", MISCREG_IP, rvTypeFlags(RV64, RV32)}},
582 {CSR_SATP, {"satp", MISCREG_SATP, rvTypeFlags(RV64, RV32)}},
583
586 {CSR_MIMPID, {"mimpid", MISCREG_IMPID, rvTypeFlags(RV64, RV32)}},
589 {CSR_MISA, {"misa", MISCREG_ISA, rvTypeFlags(RV64, RV32)}},
592 {CSR_MIE, {"mie", MISCREG_IE, rvTypeFlags(RV64, RV32)}},
597 {CSR_MEPC, {"mepc", MISCREG_MEPC, rvTypeFlags(RV64, RV32)}},
600 {CSR_MIP, {"mip", MISCREG_IP, rvTypeFlags(RV64, RV32)}},
602 {CSR_PMPCFG1, {"pmpcfg1", MISCREG_PMPCFG1, rvTypeFlags(RV32)}}, // pmpcfg1 rv32 only
604 {CSR_PMPCFG3, {"pmpcfg3", MISCREG_PMPCFG3, rvTypeFlags(RV32)}}, // pmpcfg3 rv32 only
621 {CSR_MCYCLE, {"mcycle", MISCREG_CYCLE, rvTypeFlags(RV64, RV32)}},
652
653 {CSR_MCYCLEH, {"mcycleh", MISCREG_CYCLEH, rvTypeFlags(RV32)}},
684
714
719 {CSR_DCSR, {"dcsr", MISCREG_DCSR, rvTypeFlags(RV64, RV32)}},
720 {CSR_DPC, {"dpc", MISCREG_DPC, rvTypeFlags(RV64, RV32)}},
722};
723
732 Bitfield<63> rv64_sd;
733 Bitfield<35, 34> sxl;
734 Bitfield<33, 32> uxl;
735 Bitfield<31> rv32_sd;
736 Bitfield<22> tsr;
737 Bitfield<21> tw;
738 Bitfield<20> tvm;
739 Bitfield<19> mxr;
740 Bitfield<18> sum;
741 Bitfield<17> mprv;
742 Bitfield<16, 15> xs;
743 Bitfield<14, 13> fs;
744 Bitfield<12, 11> mpp;
745 Bitfield<10, 9> vs;
746 Bitfield<8> spp;
747 Bitfield<7> mpie;
748 Bitfield<5> spie;
749 Bitfield<4> upie;
750 Bitfield<3> mie;
751 Bitfield<1> sie;
752 Bitfield<0> uie;
754
755
760BitUnion64(MISA)
761 Bitfield<63, 62> rv64_mxl;
762 Bitfield<31, 30> rv32_mxl;
763 Bitfield<23> rvx;
764 Bitfield<21> rvv;
765 Bitfield<20> rvu;
766 Bitfield<19> rvt;
767 Bitfield<18> rvs;
768 Bitfield<16> rvq;
769 Bitfield<15> rvp;
770 Bitfield<13> rvn;
771 Bitfield<12> rvm;
772 Bitfield<11> rvl;
773 Bitfield<10> rvk;
774 Bitfield<9> rvj;
775 Bitfield<8> rvi;
776 Bitfield<7> rvh;
777 Bitfield<6> rvg;
778 Bitfield<5> rvf;
779 Bitfield<4> rve;
780 Bitfield<3> rvd;
781 Bitfield<2> rvc;
782 Bitfield<1> rvb;
783 Bitfield<0> rva;
785
793 Bitfield<11> mei;
794 Bitfield<9> sei;
795 Bitfield<8> uei;
796 Bitfield<7> mti;
797 Bitfield<5> sti;
798 Bitfield<4> uti;
799 Bitfield<3> msi;
800 Bitfield<1> ssi;
801 Bitfield<0> usi;
803
804const off_t MXL_OFFSETS[enums::Num_RiscvType] = {
805 [RV32] = (sizeof(uint32_t) * 8 - 2),
806 [RV64] = (sizeof(uint64_t) * 8 - 2),
807};
808const off_t MBE_OFFSET[enums::Num_RiscvType] = {
809 [RV32] = 5,
810 [RV64] = 37,
811};
812const off_t SBE_OFFSET[enums::Num_RiscvType] = {
813 [RV32] = 4,
814 [RV64] = 36,
815};
816const off_t SXL_OFFSET = 34;
817const off_t UXL_OFFSET = 32;
818const off_t FS_OFFSET = 13;
819const off_t FRM_OFFSET = 5;
820
821const RegVal ISA_MXL_MASKS[enums::Num_RiscvType] = {
822 [RV32] = 3ULL << MXL_OFFSETS[RV32],
823 [RV64] = 3ULL << MXL_OFFSETS[RV64],
824};
826const RegVal ISA_EXT_C_MASK = 1UL << ('c' - 'a');
827const RegVal MISA_MASKS[enums::Num_RiscvType] = {
830};
831
832
833const RegVal STATUS_SD_MASKS[enums::Num_RiscvType] = {
834 [RV32] = 1ULL << ((sizeof(uint32_t) * 8) - 1),
835 [RV64] = 1ULL << ((sizeof(uint64_t) * 8) - 1),
836};
837const RegVal STATUS_MBE_MASK[enums::Num_RiscvType] = {
838 [RV32] = 1ULL << MBE_OFFSET[RV32],
839 [RV64] = 1ULL << MBE_OFFSET[RV64],
840};
841const RegVal STATUS_SBE_MASK[enums::Num_RiscvType] = {
842 [RV32] = 1ULL << SBE_OFFSET[RV32],
843 [RV64] = 1ULL << SBE_OFFSET[RV64],
844};
847const RegVal STATUS_TSR_MASK = 1ULL << 22;
848const RegVal STATUS_TW_MASK = 1ULL << 21;
849const RegVal STATUS_TVM_MASK = 1ULL << 20;
850const RegVal STATUS_MXR_MASK = 1ULL << 19;
851const RegVal STATUS_SUM_MASK = 1ULL << 18;
852const RegVal STATUS_MPRV_MASK = 1ULL << 17;
853const RegVal STATUS_XS_MASK = 3ULL << 15;
855const RegVal STATUS_MPP_MASK = 3ULL << 11;
856const RegVal STATUS_VS_MASK = 3ULL << 9;
857const RegVal STATUS_SPP_MASK = 1ULL << 8;
858const RegVal STATUS_MPIE_MASK = 1ULL << 7;
859const RegVal STATUS_SPIE_MASK = 1ULL << 5;
860const RegVal STATUS_UPIE_MASK = 1ULL << 4;
861const RegVal STATUS_MIE_MASK = 1ULL << 3;
862const RegVal STATUS_SIE_MASK = 1ULL << 1;
863const RegVal STATUS_UIE_MASK = 1ULL << 0;
864const RegVal MSTATUS_MASKS[enums::Num_RiscvType] = {
879};
880// rv32 only
882const RegVal SSTATUS_MASKS[enums::Num_RiscvType] = {
891};
892const RegVal USTATUS_MASKS[enums::Num_RiscvType] = {
899};
900
901const RegVal MEI_MASK = 1ULL << 11;
902const RegVal SEI_MASK = 1ULL << 9;
903const RegVal UEI_MASK = 1ULL << 8;
904const RegVal MTI_MASK = 1ULL << 7;
905const RegVal STI_MASK = 1ULL << 5;
906const RegVal UTI_MASK = 1ULL << 4;
907const RegVal MSI_MASK = 1ULL << 3;
908const RegVal SSI_MASK = 1ULL << 1;
909const RegVal USI_MASK = 1ULL << 0;
917const RegVal FFLAGS_MASK = (1 << FRM_OFFSET) - 1;
918const RegVal FRM_MASK = 0x7;
919
920const RegVal CAUSE_INTERRUPT_MASKS[enums::Num_RiscvType] = {
921 [RV32] = (1ULL << 31),
922 [RV64] = (1ULL << 63),
923};
924
925const std::unordered_map<int, RegVal> CSRMasks[enums::Num_RiscvType] = {
927 {CSR_UIE, UI_MASK},
928 {CSR_UIP, UI_MASK},
930 {CSR_FRM, FRM_MASK},
933 {CSR_SIE, SI_MASK},
934 {CSR_SIP, SI_MASK},
937 {CSR_MIE, MI_MASK},
939 {CSR_MIP, MI_MASK}},
941 {CSR_UIE, UI_MASK},
942 {CSR_UIP, UI_MASK},
944 {CSR_FRM, FRM_MASK},
947 {CSR_SIE, SI_MASK},
948 {CSR_SIP, SI_MASK},
951 {CSR_MIE, MI_MASK},
952 {CSR_MIP, MI_MASK}},
953};
954
955} // namespace RiscvISA
956} // namespace gem5
957
958#endif // __ARCH_RISCV_REGS_MISC_HH__
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
#define BitUnion64(name)
Use this to define conveniently sized values overlayed with bitfields.
Definition bitunion.hh:494
#define EndBitUnion(name)
This closes off the class and union started by the above macro.
Definition bitunion.hh:428
constexpr RegClass miscRegClass
Definition misc.hh:2810
const RegVal STATUS_TSR_MASK
Definition misc.hh:847
Bitfield< 3 > rvd
Definition misc.hh:780
const RegVal UI_MASK
Definition misc.hh:916
Bitfield< 3 > msi
Definition misc.hh:799
Bitfield< 0 > uie
Definition misc.hh:752
Bitfield< 12, 11 > mpp
Definition misc.hh:744
Bitfield< 21 > tw
Definition misc.hh:737
const RegVal MSTATUS_MASKS[enums::Num_RiscvType]
Definition misc.hh:864
@ CSR_MHPMEVENT19
Definition misc.hh:459
@ CSR_HPMCOUNTER18
Definition misc.hh:277
@ CSR_HPMCOUNTER05H
Definition misc.hh:298
@ CSR_HPMCOUNTER11
Definition misc.hh:270
@ CSR_HPMCOUNTER03H
Definition misc.hh:296
@ CSR_HPMCOUNTER05
Definition misc.hh:264
@ CSR_MHPMCOUNTER25H
Definition misc.hh:434
@ CSR_MHPMEVENT27
Definition misc.hh:467
@ CSR_MHPMCOUNTER07H
Definition misc.hh:416
@ CSR_HPMCOUNTER23
Definition misc.hh:282
@ CSR_MHPMCOUNTER03H
Definition misc.hh:412
@ CSR_MHPMEVENT17
Definition misc.hh:457
@ CSR_HPMCOUNTER20H
Definition misc.hh:313
@ CSR_HPMCOUNTER17
Definition misc.hh:276
@ CSR_MHPMEVENT21
Definition misc.hh:461
@ CSR_MHPMCOUNTER07
Definition misc.hh:383
@ CSR_HPMCOUNTER16
Definition misc.hh:275
@ CSR_HPMCOUNTER15
Definition misc.hh:274
@ CSR_HPMCOUNTER06H
Definition misc.hh:299
@ CSR_HPMCOUNTER07
Definition misc.hh:266
@ CSR_HPMCOUNTER27
Definition misc.hh:286
@ CSR_HPMCOUNTER08
Definition misc.hh:267
@ CSR_MHPMCOUNTER21H
Definition misc.hh:430
@ CSR_HPMCOUNTER21
Definition misc.hh:280
@ CSR_HPMCOUNTER24
Definition misc.hh:283
@ CSR_MHPMCOUNTER29H
Definition misc.hh:438
@ CSR_MHPMCOUNTER12H
Definition misc.hh:421
@ CSR_MHPMEVENT22
Definition misc.hh:462
@ CSR_MHPMCOUNTER16
Definition misc.hh:392
@ CSR_MHPMEVENT06
Definition misc.hh:446
@ CSR_MHPMCOUNTER23
Definition misc.hh:399
@ CSR_MHPMEVENT05
Definition misc.hh:445
@ CSR_MHPMCOUNTER22
Definition misc.hh:398
@ CSR_MHPMCOUNTER10H
Definition misc.hh:419
@ CSR_MHPMEVENT13
Definition misc.hh:453
@ CSR_HPMCOUNTER29
Definition misc.hh:288
@ CSR_MHPMCOUNTER06
Definition misc.hh:382
@ CSR_HPMCOUNTER04
Definition misc.hh:263
@ CSR_MHPMCOUNTER05H
Definition misc.hh:414
@ CSR_HPMCOUNTER25
Definition misc.hh:284
@ CSR_MHPMEVENT20
Definition misc.hh:460
@ CSR_HPMCOUNTER10H
Definition misc.hh:303
@ CSR_HPMCOUNTER26
Definition misc.hh:285
@ CSR_HPMCOUNTER11H
Definition misc.hh:304
@ CSR_MHPMEVENT31
Definition misc.hh:471
@ CSR_HPMCOUNTER28
Definition misc.hh:287
@ CSR_MHPMCOUNTER29
Definition misc.hh:405
@ CSR_MHPMCOUNTER15
Definition misc.hh:391
@ CSR_MHPMEVENT14
Definition misc.hh:454
@ CSR_HPMCOUNTER10
Definition misc.hh:269
@ CSR_MHPMCOUNTER28
Definition misc.hh:404
@ CSR_MHPMCOUNTER09H
Definition misc.hh:418
@ CSR_HPMCOUNTER19H
Definition misc.hh:312
@ CSR_MHPMCOUNTER13H
Definition misc.hh:422
@ CSR_MHPMCOUNTER27
Definition misc.hh:403
@ CSR_MHPMCOUNTER16H
Definition misc.hh:425
@ CSR_MHPMCOUNTER03
Definition misc.hh:379
@ CSR_HPMCOUNTER04H
Definition misc.hh:297
@ CSR_MHPMEVENT07
Definition misc.hh:447
@ CSR_MHPMCOUNTER11
Definition misc.hh:387
@ CSR_MHPMCOUNTER26H
Definition misc.hh:435
@ CSR_HPMCOUNTER07H
Definition misc.hh:300
@ CSR_MHPMCOUNTER17H
Definition misc.hh:426
@ CSR_MHPMEVENT03
Definition misc.hh:443
@ CSR_HPMCOUNTER30
Definition misc.hh:289
@ CSR_HPMCOUNTER28H
Definition misc.hh:321
@ CSR_HPMCOUNTER25H
Definition misc.hh:318
@ CSR_HPMCOUNTER17H
Definition misc.hh:310
@ CSR_HPMCOUNTER29H
Definition misc.hh:322
@ CSR_MHPMEVENT08
Definition misc.hh:448
@ CSR_MHPMEVENT25
Definition misc.hh:465
@ CSR_MHPMCOUNTER22H
Definition misc.hh:431
@ CSR_HPMCOUNTER31H
Definition misc.hh:324
@ CSR_MHPMCOUNTER19
Definition misc.hh:395
@ CSR_MHPMCOUNTER05
Definition misc.hh:381
@ CSR_MHPMCOUNTER15H
Definition misc.hh:424
@ CSR_MHPMEVENT30
Definition misc.hh:470
@ CSR_MHPMCOUNTER10
Definition misc.hh:386
@ CSR_HPMCOUNTER16H
Definition misc.hh:309
@ CSR_HPMCOUNTER30H
Definition misc.hh:323
@ CSR_HPMCOUNTER22
Definition misc.hh:281
@ CSR_MHPMEVENT16
Definition misc.hh:456
@ CSR_MHPMCOUNTER24H
Definition misc.hh:433
@ CSR_MHPMEVENT12
Definition misc.hh:452
@ CSR_HPMCOUNTER23H
Definition misc.hh:316
@ CSR_HPMCOUNTER20
Definition misc.hh:279
@ CSR_HPMCOUNTER14H
Definition misc.hh:307
@ CSR_HPMCOUNTER08H
Definition misc.hh:301
@ CSR_MHPMEVENT09
Definition misc.hh:449
@ CSR_HPMCOUNTER26H
Definition misc.hh:319
@ CSR_MHPMEVENT04
Definition misc.hh:444
@ CSR_MHPMCOUNTER18H
Definition misc.hh:427
@ CSR_MHPMEVENT29
Definition misc.hh:469
@ CSR_MHPMCOUNTER06H
Definition misc.hh:415
@ CSR_HPMCOUNTER27H
Definition misc.hh:320
@ CSR_HPMCOUNTER18H
Definition misc.hh:311
@ CSR_MHPMCOUNTER25
Definition misc.hh:401
@ CSR_MHPMCOUNTER23H
Definition misc.hh:432
@ CSR_MHPMEVENT15
Definition misc.hh:455
@ CSR_MHPMEVENT11
Definition misc.hh:451
@ CSR_HPMCOUNTER09H
Definition misc.hh:302
@ CSR_MHPMCOUNTER13
Definition misc.hh:389
@ CSR_HPMCOUNTER15H
Definition misc.hh:308
@ CSR_MHPMEVENT10
Definition misc.hh:450
@ CSR_MHPMCOUNTER11H
Definition misc.hh:420
@ CSR_MHPMEVENT18
Definition misc.hh:458
@ CSR_HPMCOUNTER06
Definition misc.hh:265
@ CSR_MHPMEVENT23
Definition misc.hh:463
@ CSR_MHPMEVENT26
Definition misc.hh:466
@ CSR_MHPMCOUNTER09
Definition misc.hh:385
@ CSR_MHPMCOUNTER24
Definition misc.hh:400
@ CSR_MHPMCOUNTER26
Definition misc.hh:402
@ CSR_HPMCOUNTER21H
Definition misc.hh:314
@ CSR_MHPMCOUNTER04H
Definition misc.hh:413
@ CSR_MHPMCOUNTER30H
Definition misc.hh:439
@ CSR_HPMCOUNTER22H
Definition misc.hh:315
@ CSR_MHPMCOUNTER17
Definition misc.hh:393
@ CSR_MHPMCOUNTER14H
Definition misc.hh:423
@ CSR_MHPMCOUNTER31H
Definition misc.hh:440
@ CSR_HPMCOUNTER13
Definition misc.hh:272
@ CSR_MHPMCOUNTER20
Definition misc.hh:396
@ CSR_MHPMCOUNTER20H
Definition misc.hh:429
@ CSR_HPMCOUNTER12
Definition misc.hh:271
@ CSR_MHPMCOUNTER21
Definition misc.hh:397
@ CSR_MHPMEVENT28
Definition misc.hh:468
@ CSR_HPMCOUNTER14
Definition misc.hh:273
@ CSR_MHPMCOUNTER31
Definition misc.hh:407
@ CSR_HPMCOUNTER31
Definition misc.hh:290
@ CSR_HPMCOUNTER13H
Definition misc.hh:306
@ CSR_MHPMCOUNTER28H
Definition misc.hh:437
@ CSR_MHPMCOUNTER14
Definition misc.hh:390
@ CSR_MHPMCOUNTER19H
Definition misc.hh:428
@ CSR_HPMCOUNTER12H
Definition misc.hh:305
@ CSR_HPMCOUNTER09
Definition misc.hh:268
@ CSR_HPMCOUNTER19
Definition misc.hh:278
@ CSR_HPMCOUNTER03
Definition misc.hh:262
@ CSR_MHPMCOUNTER18
Definition misc.hh:394
@ CSR_MHPMCOUNTER27H
Definition misc.hh:436
@ CSR_MHPMCOUNTER08H
Definition misc.hh:417
@ CSR_MHPMCOUNTER12
Definition misc.hh:388
@ CSR_MHPMCOUNTER30
Definition misc.hh:406
@ CSR_MHPMCOUNTER04
Definition misc.hh:380
@ CSR_MHPMEVENT24
Definition misc.hh:464
@ CSR_HPMCOUNTER24H
Definition misc.hh:317
@ CSR_MHPMCOUNTER08
Definition misc.hh:384
Bitfield< 1 > ssi
Definition misc.hh:800
Bitfield< 35, 34 > sxl
Definition misc.hh:733
constexpr enums::RiscvType RV32
Definition pcstate.hh:54
const RegVal FRM_MASK
Definition misc.hh:918
const RegVal MI_MASK
Definition misc.hh:910
Bitfield< 8 > rvi
Definition misc.hh:775
Bitfield< 21 > rvv
Definition misc.hh:764
const RegVal STATUS_MBE_MASK[enums::Num_RiscvType]
Definition misc.hh:837
const RegVal CAUSE_INTERRUPT_MASKS[enums::Num_RiscvType]
Definition misc.hh:920
Bitfield< 6 > rvg
Definition misc.hh:777
Bitfield< 0 > usi
Definition misc.hh:801
Bitfield< 20 > rvu
Definition misc.hh:765
Bitfield< 18 > sum
Definition misc.hh:740
Bitfield< 8 > spp
Definition misc.hh:746
const RegVal STATUS_SBE_MASK[enums::Num_RiscvType]
Definition misc.hh:841
Bitfield< 7 > rvh
Definition misc.hh:776
const RegVal SI_MASK
Definition misc.hh:913
Bitfield< 4 > uti
Definition misc.hh:798
const RegVal SSTATUS_MASKS[enums::Num_RiscvType]
Definition misc.hh:882
const RegVal MEI_MASK
Definition misc.hh:901
Bitfield< 8 > uei
Definition misc.hh:795
Bitfield< 4 > upie
Definition misc.hh:749
Bitfield< 17 > mprv
Definition misc.hh:741
const RegVal SEI_MASK
Definition misc.hh:902
Bitfield< 23 > rvx
Definition misc.hh:763
const RegVal SSI_MASK
Definition misc.hh:908
const off_t UXL_OFFSET
Definition misc.hh:817
Bitfield< 5 > sti
Definition misc.hh:797
Bitfield< 1 > sie
Definition misc.hh:751
const RegVal UTI_MASK
Definition misc.hh:906
Bitfield< 18 > rvs
Definition misc.hh:767
const off_t SXL_OFFSET
Definition misc.hh:816
const RegVal STATUS_MIE_MASK
Definition misc.hh:861
Bitfield< 31 > rv32_sd
Definition misc.hh:735
const RegVal STATUS_SIE_MASK
Definition misc.hh:862
const off_t FS_OFFSET
Definition misc.hh:818
const RegVal STATUS_TW_MASK
Definition misc.hh:848
const RegVal STATUS_MPIE_MASK
Definition misc.hh:858
Bitfield< 14, 13 > fs
Definition misc.hh:743
Bitfield< 12 > rvm
Definition misc.hh:771
const RegVal STATUS_VS_MASK
Definition misc.hh:856
const RegVal USTATUS_MASKS[enums::Num_RiscvType]
Definition misc.hh:892
const RegVal MTI_MASK
Definition misc.hh:904
const off_t MBE_OFFSET[enums::Num_RiscvType]
Definition misc.hh:808
Bitfield< 20 > tvm
Definition misc.hh:738
const RegVal STATUS_XS_MASK
Definition misc.hh:853
const RegVal STATUS_SXL_MASK
Definition misc.hh:845
const RegVal FFLAGS_MASK
Definition misc.hh:917
Bitfield< 7 > mti
Definition misc.hh:796
Bitfield< 0 > rva
Definition misc.hh:783
Bitfield< 16 > rvq
Definition misc.hh:768
const RegVal STATUS_MPRV_MASK
Definition misc.hh:852
Bitfield< 33, 32 > uxl
Definition misc.hh:734
Bitfield< 15 > rvp
Definition misc.hh:769
const RegVal MSI_MASK
Definition misc.hh:907
Bitfield< 5 > spie
Definition misc.hh:748
Bitfield< 3 > mie
Definition misc.hh:750
Bitfield< 7 > mpie
Definition misc.hh:747
const RegVal STATUS_UXL_MASK
Definition misc.hh:846
const RegVal USI_MASK
Definition misc.hh:909
const RegVal STATUS_MXR_MASK
Definition misc.hh:850
const std::unordered_map< int, CSRMetadata > CSRData
Definition misc.hh:494
Bitfield< 22 > tsr
Definition misc.hh:736
const RegVal UEI_MASK
Definition misc.hh:903
const RegVal STATUS_FS_MASK
Definition misc.hh:854
const RegVal STATUS_SPP_MASK
Definition misc.hh:857
const RegVal ISA_EXT_MASK
Definition misc.hh:825
const RegVal MSTATUSH_MASKS
Definition misc.hh:881
const RegVal STATUS_SD_MASKS[enums::Num_RiscvType]
Definition misc.hh:833
const RegVal STATUS_SPIE_MASK
Definition misc.hh:859
const std::unordered_map< int, RegVal > CSRMasks[enums::Num_RiscvType]
Definition misc.hh:925
const RegVal STATUS_MPP_MASK
Definition misc.hh:855
const RegVal STATUS_UIE_MASK
Definition misc.hh:863
Bitfield< 13 > rvn
Definition misc.hh:770
Bitfield< 4 > rve
Definition misc.hh:779
constexpr enums::RiscvType RV64
Definition pcstate.hh:55
const RegVal ISA_EXT_C_MASK
Definition misc.hh:826
Bitfield< 1 > rvb
Definition misc.hh:782
@ MISCREG_PMPADDR11
Definition misc.hh:170
@ MISCREG_HPMCOUNTER16H
Definition misc.hh:223
@ MISCREG_HPMCOUNTER09
Definition misc.hh:87
@ MISCREG_HPMEVENT31
Definition misc.hh:138
@ MISCREG_IMPID
Definition misc.hh:73
@ MISCREG_HPMEVENT07
Definition misc.hh:114
@ MISCREG_HPMCOUNTER16
Definition misc.hh:94
@ MISCREG_HPMCOUNTER13H
Definition misc.hh:220
@ MISCREG_HPMCOUNTER19
Definition misc.hh:97
@ MISCREG_PMPADDR12
Definition misc.hh:171
@ MISCREG_HPMCOUNTER07
Definition misc.hh:85
@ MISCREG_HPMEVENT29
Definition misc.hh:136
@ MISCREG_HPMCOUNTER26
Definition misc.hh:104
@ MISCREG_PMPADDR05
Definition misc.hh:164
@ MISCREG_HPMCOUNTER13
Definition misc.hh:91
@ MISCREG_PMPADDR10
Definition misc.hh:169
@ MISCREG_SIDELEG
Definition misc.hh:177
@ MISCREG_PMPADDR14
Definition misc.hh:173
@ MISCREG_PMPCFG3
Definition misc.hh:158
@ MISCREG_HPMCOUNTER22H
Definition misc.hh:229
@ MISCREG_PMPADDR09
Definition misc.hh:168
@ MISCREG_HPMEVENT06
Definition misc.hh:113
@ MISCREG_TSELECT
Definition misc.hh:139
@ MISCREG_MSCRATCH
Definition misc.hh:151
@ MISCREG_HPMCOUNTER04H
Definition misc.hh:211
@ MISCREG_HPMEVENT21
Definition misc.hh:128
@ MISCREG_HPMCOUNTER12H
Definition misc.hh:219
@ MISCREG_STATUS
Definition misc.hh:75
@ MISCREG_HPMEVENT12
Definition misc.hh:119
@ MISCREG_HPMCOUNTER25
Definition misc.hh:103
@ MISCREG_PMPADDR04
Definition misc.hh:163
@ MISCREG_INSTRETH
Definition misc.hh:209
@ MISCREG_MCOUNTEREN
Definition misc.hh:150
@ MISCREG_PMPADDR00
Definition misc.hh:159
@ MISCREG_HPMCOUNTER22
Definition misc.hh:100
@ MISCREG_HPMEVENT17
Definition misc.hh:124
@ MISCREG_HPMEVENT20
Definition misc.hh:127
@ MISCREG_HPMCOUNTER03H
Definition misc.hh:210
@ MISCREG_HPMCOUNTER15H
Definition misc.hh:222
@ MISCREG_MEDELEG
Definition misc.hh:147
@ MISCREG_USCRATCH
Definition misc.hh:187
@ MISCREG_HPMEVENT25
Definition misc.hh:132
@ MISCREG_HPMCOUNTER31H
Definition misc.hh:238
@ MISCREG_HPMCOUNTER11
Definition misc.hh:89
@ MISCREG_HPMCOUNTER17H
Definition misc.hh:224
@ MISCREG_HPMEVENT03
Definition misc.hh:110
@ MISCREG_PMPCFG1
Definition misc.hh:156
@ MISCREG_HPMEVENT13
Definition misc.hh:120
@ MISCREG_PMPADDR13
Definition misc.hh:172
@ MISCREG_HPMCOUNTER12
Definition misc.hh:90
@ MISCREG_HPMCOUNTER29H
Definition misc.hh:236
@ MISCREG_HPMEVENT04
Definition misc.hh:111
@ MISCREG_HPMEVENT08
Definition misc.hh:115
@ MISCREG_HPMEVENT19
Definition misc.hh:126
@ MISCREG_DSCRATCH
Definition misc.hh:145
@ MISCREG_HPMEVENT30
Definition misc.hh:137
@ MISCREG_SEDELEG
Definition misc.hh:176
@ MISCREG_PMPADDR06
Definition misc.hh:165
@ MISCREG_HPMCOUNTER21
Definition misc.hh:99
@ MISCREG_HPMCOUNTER21H
Definition misc.hh:228
@ MISCREG_PMPADDR03
Definition misc.hh:162
@ MISCREG_SCOUNTEREN
Definition misc.hh:179
@ MISCREG_HPMCOUNTER18H
Definition misc.hh:225
@ MISCREG_HPMCOUNTER06
Definition misc.hh:84
@ MISCREG_HPMCOUNTER20H
Definition misc.hh:227
@ MISCREG_HPMCOUNTER28
Definition misc.hh:106
@ MISCREG_PMPADDR02
Definition misc.hh:161
@ MISCREG_MIDELEG
Definition misc.hh:148
@ MISCREG_HPMCOUNTER30
Definition misc.hh:108
@ MISCREG_HPMCOUNTER14
Definition misc.hh:92
@ MISCREG_MSTATUSH
Definition misc.hh:205
@ MISCREG_HPMEVENT10
Definition misc.hh:117
@ MISCREG_HPMEVENT26
Definition misc.hh:133
@ MISCREG_HPMEVENT18
Definition misc.hh:125
@ MISCREG_HPMEVENT23
Definition misc.hh:130
@ MISCREG_INSTRET
Definition misc.hh:80
@ MISCREG_HARTID
Definition misc.hh:74
@ MISCREG_HPMCOUNTER05H
Definition misc.hh:212
@ MISCREG_HPMCOUNTER20
Definition misc.hh:98
@ MISCREG_HPMEVENT09
Definition misc.hh:116
@ MISCREG_HPMCOUNTER04
Definition misc.hh:82
@ MISCREG_HPMCOUNTER25H
Definition misc.hh:232
@ MISCREG_HPMCOUNTER27H
Definition misc.hh:234
@ MISCREG_HPMCOUNTER06H
Definition misc.hh:213
@ MISCREG_PMPADDR07
Definition misc.hh:166
@ MISCREG_HPMCOUNTER08H
Definition misc.hh:215
@ MISCREG_HPMEVENT16
Definition misc.hh:123
@ MISCREG_HPMCOUNTER18
Definition misc.hh:96
@ MISCREG_SSCRATCH
Definition misc.hh:180
@ MISCREG_HPMCOUNTER19H
Definition misc.hh:226
@ MISCREG_HPMEVENT14
Definition misc.hh:121
@ MISCREG_HPMCOUNTER10H
Definition misc.hh:217
@ MISCREG_HPMCOUNTER05
Definition misc.hh:83
@ MISCREG_HPMCOUNTER30H
Definition misc.hh:237
@ MISCREG_HPMCOUNTER17
Definition misc.hh:95
@ MISCREG_HPMCOUNTER09H
Definition misc.hh:216
@ MISCREG_HPMCOUNTER27
Definition misc.hh:105
@ MISCREG_HPMCOUNTER24
Definition misc.hh:102
@ MISCREG_HPMCOUNTER28H
Definition misc.hh:235
@ MISCREG_HPMCOUNTER14H
Definition misc.hh:221
@ MISCREG_HPMCOUNTER23
Definition misc.hh:101
@ MISCREG_CYCLE
Definition misc.hh:78
@ MISCREG_HPMCOUNTER07H
Definition misc.hh:214
@ MISCREG_HPMCOUNTER15
Definition misc.hh:93
@ MISCREG_HPMEVENT24
Definition misc.hh:131
@ MISCREG_HPMCOUNTER10
Definition misc.hh:88
@ MISCREG_HPMCOUNTER29
Definition misc.hh:107
@ MISCREG_VENDORID
Definition misc.hh:71
@ MISCREG_PMPADDR01
Definition misc.hh:160
@ MISCREG_HPMEVENT27
Definition misc.hh:134
@ MISCREG_HPMEVENT15
Definition misc.hh:122
@ MISCREG_HPMEVENT05
Definition misc.hh:112
@ MISCREG_ARCHID
Definition misc.hh:72
@ MISCREG_HPMCOUNTER24H
Definition misc.hh:231
@ MISCREG_HPMEVENT11
Definition misc.hh:118
@ MISCREG_HPMCOUNTER31
Definition misc.hh:109
@ MISCREG_HPMCOUNTER23H
Definition misc.hh:230
@ MISCREG_HPMCOUNTER11H
Definition misc.hh:218
@ MISCREG_PMPADDR08
Definition misc.hh:167
@ MISCREG_HPMCOUNTER03
Definition misc.hh:81
@ MISCREG_PMPADDR15
Definition misc.hh:174
@ MISCREG_HPMEVENT28
Definition misc.hh:135
@ MISCREG_HPMEVENT22
Definition misc.hh:129
@ MISCREG_PMPCFG0
Definition misc.hh:155
@ MISCREG_HPMCOUNTER08
Definition misc.hh:86
@ MISCREG_HPMCOUNTER26H
Definition misc.hh:233
@ MISCREG_PMPCFG2
Definition misc.hh:157
const RegVal MISA_MASKS[enums::Num_RiscvType]
Definition misc.hh:827
Bitfield< 10 > rvk
Definition misc.hh:773
Bitfield< 19 > rvt
Definition misc.hh:766
const off_t FRM_OFFSET
Definition misc.hh:819
Bitfield< 9, 5 > vs
Bitfield< 16, 15 > xs
Definition misc.hh:742
const RegVal ISA_MXL_MASKS[enums::Num_RiscvType]
Definition misc.hh:821
const RegVal STI_MASK
Definition misc.hh:905
const RegVal STATUS_SUM_MASK
Definition misc.hh:851
Bitfield< 5 > rvf
Definition misc.hh:778
Bitfield< 9 > rvj
Definition misc.hh:774
Bitfield< 31, 30 > rv32_mxl
Definition misc.hh:762
Bitfield< 2 > rvc
Definition misc.hh:781
Bitfield< 11 > rvl
Definition misc.hh:772
const off_t SBE_OFFSET[enums::Num_RiscvType]
Definition misc.hh:812
Bitfield< 19 > mxr
Definition misc.hh:739
const RegVal STATUS_UPIE_MASK
Definition misc.hh:860
constexpr uint64_t rvTypeFlags(T... args)
Definition misc.hh:490
Bitfield< 9 > sei
Definition misc.hh:794
const RegVal STATUS_TVM_MASK
Definition misc.hh:849
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
constexpr char MiscRegClassName[]
Definition reg_class.hh:81
uint64_t RegVal
Definition types.hh:173
@ MiscRegClass
Control (misc) register.
Definition reg_class.hh:69
const uint64_t rvTypes
Definition misc.hh:486
const std::string name
Definition misc.hh:484
Vector Registers layout specification.

Generated on Mon Jul 10 2023 15:32:03 for gem5 by doxygen 1.9.7