hcounteren

Hypervisor Counter Enable

Together with scounteren, delegates control of the hardware performance-monitoring counters to VS/VU-mode

See cycle for a table describing how exceptions occur.

Attributes

CSR Address

0x606

Defining extension

  • H, version >= 0

Length

32-bit

Privilege Mode

S

Format

hcounteren format
Figure 1. hcounteren format

Field Summary

Name Location Type Reset Value

CY

0

RW

UNDEFINED_LEGAL

TM

1

RO

0

IR

2

RW

UNDEFINED_LEGAL

HPM3

3

RW

UNDEFINED_LEGAL

HPM4

4

RW

UNDEFINED_LEGAL

HPM5

5

RW

UNDEFINED_LEGAL

HPM6

6

RW

UNDEFINED_LEGAL

HPM7

7

RW

UNDEFINED_LEGAL

HPM8

8

RW

UNDEFINED_LEGAL

HPM9

9

RW

UNDEFINED_LEGAL

HPM10

10

RW

UNDEFINED_LEGAL

HPM11

11

RO

0

HPM12

12

RO

0

HPM13

13

RO

0

HPM14

14

RO

0

HPM15

15

RO

0

HPM16

16

RO

0

HPM17

17

RO

0

HPM18

18

RO

0

HPM19

19

RO

0

HPM20

20

RO

0

HPM21

21

RO

0

HPM22

22

RO

0

HPM23

23

RO

0

HPM24

24

RO

0

HPM25

25

RO

0

HPM26

26

RO

0

HPM27

27

RO

0

HPM28

28

RO

0

HPM29

29

RO

0

HPM30

30

RO

0

HPM31

31

RO

0

Fields

CY

Location

hcounteren[0]

Description

When all of scounteren.CY, mcounteren.CY, and hcounteren.CY are set, the cycle CSR (an alias of mcycle) is accessible to VU-mode.

When mcounteren.CY and hcounteren.CY are set, the cycle CSR (an alias of mcycle) is accessible to VS-mode.

When hcounteren.CY is clear and mcounteren.CY is set, then any access to cycle in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.CY

mcounteren.CY

scounteren.CY

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RW

Read-Write

Field is writable by software. Any value that fits in the field is acceptable and shall be retained for subsequent reads.

Reset value

UNDEFINED_LEGAL

TM

Location

hcounteren[1]

Description

When all of scounteren.TM, mcounteren.TM, and hcounteren.TM are set, the time CSR (an alias of mtime memory-mapped CSR) is accessible to VU-mode.

When mcounteren.TM and hcounteren.TM are set, the time CSR (an alias of mtime) is accessible to VS-mode.

When hcounteren.TM is clear and mcounteren.TM is set, then any access to time in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.TM

mcounteren.TM

scounteren.TM

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

IR

Location

hcounteren[2]

Description

When all of scounteren.IR, mcounteren.IR, and hcounteren.IR are set, the instret CSR (an alias of minstret) is accessible to VU-mode.

When mcounteren.IR and hcounteren.IR are set, the instret CSR (an alias of minstret) is accessible to VS-mode.

When hcounteren.IR is clear and mcounteren.IR is set, then any access to instret in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.IR

mcounteren.IR

scounteren.IR

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RW

Read-Write

Field is writable by software. Any value that fits in the field is acceptable and shall be retained for subsequent reads.

Reset value

UNDEFINED_LEGAL

HPM3

Location

hcounteren[3]

Description

When all of scounteren.HPM3, mcounteren.HPM3, and hcounteren.HPM3 are set, the hpmcounter3 CSR (an alias of mhpmcounter3) is accessible to VU-mode.

When mcounteren.HPM3 and hcounteren.HPM3 are set, the hpmcounter3 CSR (an alias of mhpmcounter3) is accessible to VS-mode.

When hcounteren.HPM3 is clear and mcounteren.HPM3 is set, then any access to hpmcounter3 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM3

mcounteren.HPM3

scounteren.HPM3

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RW

Read-Write

Field is writable by software. Any value that fits in the field is acceptable and shall be retained for subsequent reads.

Reset value

UNDEFINED_LEGAL

HPM4

Location

hcounteren[4]

Description

When all of scounteren.HPM4, mcounteren.HPM4, and hcounteren.HPM4 are set, the hpmcounter4 CSR (an alias of mhpmcounter4) is accessible to VU-mode.

When mcounteren.HPM4 and hcounteren.HPM4 are set, the hpmcounter4 CSR (an alias of mhpmcounter4) is accessible to VS-mode.

When hcounteren.HPM4 is clear and mcounteren.HPM4 is set, then any access to hpmcounter4 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM4

mcounteren.HPM4

scounteren.HPM4

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RW

Read-Write

Field is writable by software. Any value that fits in the field is acceptable and shall be retained for subsequent reads.

Reset value

UNDEFINED_LEGAL

HPM5

Location

hcounteren[5]

Description

When all of scounteren.HPM5, mcounteren.HPM5, and hcounteren.HPM5 are set, the hpmcounter5 CSR (an alias of mhpmcounter5) is accessible to VU-mode.

When mcounteren.HPM5 and hcounteren.HPM5 are set, the hpmcounter5 CSR (an alias of mhpmcounter5) is accessible to VS-mode.

When hcounteren.HPM5 is clear and mcounteren.HPM5 is set, then any access to hpmcounter5 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM5

mcounteren.HPM5

scounteren.HPM5

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RW

Read-Write

Field is writable by software. Any value that fits in the field is acceptable and shall be retained for subsequent reads.

Reset value

UNDEFINED_LEGAL

HPM6

Location

hcounteren[6]

Description

When all of scounteren.HPM6, mcounteren.HPM6, and hcounteren.HPM6 are set, the hpmcounter6 CSR (an alias of mhpmcounter6) is accessible to VU-mode.

When mcounteren.HPM6 and hcounteren.HPM6 are set, the hpmcounter6 CSR (an alias of mhpmcounter6) is accessible to VS-mode.

When hcounteren.HPM6 is clear and mcounteren.HPM6 is set, then any access to hpmcounter6 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM6

mcounteren.HPM6

scounteren.HPM6

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RW

Read-Write

Field is writable by software. Any value that fits in the field is acceptable and shall be retained for subsequent reads.

Reset value

UNDEFINED_LEGAL

HPM7

Location

hcounteren[7]

Description

When all of scounteren.HPM7, mcounteren.HPM7, and hcounteren.HPM7 are set, the hpmcounter7 CSR (an alias of mhpmcounter7) is accessible to VU-mode.

When mcounteren.HPM7 and hcounteren.HPM7 are set, the hpmcounter7 CSR (an alias of mhpmcounter7) is accessible to VS-mode.

When hcounteren.HPM7 is clear and mcounteren.HPM7 is set, then any access to hpmcounter7 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM7

mcounteren.HPM7

scounteren.HPM7

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RW

Read-Write

Field is writable by software. Any value that fits in the field is acceptable and shall be retained for subsequent reads.

Reset value

UNDEFINED_LEGAL

HPM8

Location

hcounteren[8]

Description

When all of scounteren.HPM8, mcounteren.HPM8, and hcounteren.HPM8 are set, the hpmcounter8 CSR (an alias of mhpmcounter8) is accessible to VU-mode.

When mcounteren.HPM8 and hcounteren.HPM8 are set, the hpmcounter8 CSR (an alias of mhpmcounter8) is accessible to VS-mode.

When hcounteren.HPM8 is clear and mcounteren.HPM8 is set, then any access to hpmcounter8 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM8

mcounteren.HPM8

scounteren.HPM8

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RW

Read-Write

Field is writable by software. Any value that fits in the field is acceptable and shall be retained for subsequent reads.

Reset value

UNDEFINED_LEGAL

HPM9

Location

hcounteren[9]

Description

When all of scounteren.HPM9, mcounteren.HPM9, and hcounteren.HPM9 are set, the hpmcounter9 CSR (an alias of mhpmcounter9) is accessible to VU-mode.

When mcounteren.HPM9 and hcounteren.HPM9 are set, the hpmcounter9 CSR (an alias of mhpmcounter9) is accessible to VS-mode.

When hcounteren.HPM9 is clear and mcounteren.HPM9 is set, then any access to hpmcounter9 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM9

mcounteren.HPM9

scounteren.HPM9

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RW

Read-Write

Field is writable by software. Any value that fits in the field is acceptable and shall be retained for subsequent reads.

Reset value

UNDEFINED_LEGAL

HPM10

Location

hcounteren[10]

Description

When all of scounteren.HPM10, mcounteren.HPM10, and hcounteren.HPM10 are set, the hpmcounter10 CSR (an alias of mhpmcounter10) is accessible to VU-mode.

When mcounteren.HPM10 and hcounteren.HPM10 are set, the hpmcounter10 CSR (an alias of mhpmcounter10) is accessible to VS-mode.

When hcounteren.HPM10 is clear and mcounteren.HPM10 is set, then any access to hpmcounter10 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM10

mcounteren.HPM10

scounteren.HPM10

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RW

Read-Write

Field is writable by software. Any value that fits in the field is acceptable and shall be retained for subsequent reads.

Reset value

UNDEFINED_LEGAL

HPM11

Location

hcounteren[11]

Description

When all of scounteren.HPM11, mcounteren.HPM11, and hcounteren.HPM11 are set, the hpmcounter11 CSR (an alias of mhpmcounter11) is accessible to VU-mode.

When mcounteren.HPM11 and hcounteren.HPM11 are set, the hpmcounter11 CSR (an alias of mhpmcounter11) is accessible to VS-mode.

When hcounteren.HPM11 is clear and mcounteren.HPM11 is set, then any access to hpmcounter11 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM11

mcounteren.HPM11

scounteren.HPM11

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM12

Location

hcounteren[12]

Description

When all of scounteren.HPM12, mcounteren.HPM12, and hcounteren.HPM12 are set, the hpmcounter12 CSR (an alias of mhpmcounter12) is accessible to VU-mode.

When mcounteren.HPM12 and hcounteren.HPM12 are set, the hpmcounter12 CSR (an alias of mhpmcounter12) is accessible to VS-mode.

When hcounteren.HPM12 is clear and mcounteren.HPM12 is set, then any access to hpmcounter12 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM12

mcounteren.HPM12

scounteren.HPM12

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM13

Location

hcounteren[13]

Description

When all of scounteren.HPM13, mcounteren.HPM13, and hcounteren.HPM13 are set, the hpmcounter13 CSR (an alias of mhpmcounter13) is accessible to VU-mode.

When mcounteren.HPM13 and hcounteren.HPM13 are set, the hpmcounter13 CSR (an alias of mhpmcounter13) is accessible to VS-mode.

When hcounteren.HPM13 is clear and mcounteren.HPM13 is set, then any access to hpmcounter13 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM13

mcounteren.HPM13

scounteren.HPM13

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM14

Location

hcounteren[14]

Description

When all of scounteren.HPM14, mcounteren.HPM14, and hcounteren.HPM14 are set, the hpmcounter14 CSR (an alias of mhpmcounter14) is accessible to VU-mode.

When mcounteren.HPM14 and hcounteren.HPM14 are set, the hpmcounter14 CSR (an alias of mhpmcounter14) is accessible to VS-mode.

When hcounteren.HPM14 is clear and mcounteren.HPM14 is set, then any access to hpmcounter14 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM14

mcounteren.HPM14

scounteren.HPM14

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM15

Location

hcounteren[15]

Description

When all of scounteren.HPM15, mcounteren.HPM15, and hcounteren.HPM15 are set, the hpmcounter15 CSR (an alias of mhpmcounter15) is accessible to VU-mode.

When mcounteren.HPM15 and hcounteren.HPM15 are set, the hpmcounter15 CSR (an alias of mhpmcounter15) is accessible to VS-mode.

When hcounteren.HPM15 is clear and mcounteren.HPM15 is set, then any access to hpmcounter15 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM15

mcounteren.HPM15

scounteren.HPM15

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM16

Location

hcounteren[16]

Description

When all of scounteren.HPM16, mcounteren.HPM16, and hcounteren.HPM16 are set, the hpmcounter16 CSR (an alias of mhpmcounter16) is accessible to VU-mode.

When mcounteren.HPM16 and hcounteren.HPM16 are set, the hpmcounter16 CSR (an alias of mhpmcounter16) is accessible to VS-mode.

When hcounteren.HPM16 is clear and mcounteren.HPM16 is set, then any access to hpmcounter16 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM16

mcounteren.HPM16

scounteren.HPM16

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM17

Location

hcounteren[17]

Description

When all of scounteren.HPM17, mcounteren.HPM17, and hcounteren.HPM17 are set, the hpmcounter17 CSR (an alias of mhpmcounter17) is accessible to VU-mode.

When mcounteren.HPM17 and hcounteren.HPM17 are set, the hpmcounter17 CSR (an alias of mhpmcounter17) is accessible to VS-mode.

When hcounteren.HPM17 is clear and mcounteren.HPM17 is set, then any access to hpmcounter17 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM17

mcounteren.HPM17

scounteren.HPM17

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM18

Location

hcounteren[18]

Description

When all of scounteren.HPM18, mcounteren.HPM18, and hcounteren.HPM18 are set, the hpmcounter18 CSR (an alias of mhpmcounter18) is accessible to VU-mode.

When mcounteren.HPM18 and hcounteren.HPM18 are set, the hpmcounter18 CSR (an alias of mhpmcounter18) is accessible to VS-mode.

When hcounteren.HPM18 is clear and mcounteren.HPM18 is set, then any access to hpmcounter18 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM18

mcounteren.HPM18

scounteren.HPM18

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM19

Location

hcounteren[19]

Description

When all of scounteren.HPM19, mcounteren.HPM19, and hcounteren.HPM19 are set, the hpmcounter19 CSR (an alias of mhpmcounter19) is accessible to VU-mode.

When mcounteren.HPM19 and hcounteren.HPM19 are set, the hpmcounter19 CSR (an alias of mhpmcounter19) is accessible to VS-mode.

When hcounteren.HPM19 is clear and mcounteren.HPM19 is set, then any access to hpmcounter19 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM19

mcounteren.HPM19

scounteren.HPM19

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM20

Location

hcounteren[20]

Description

When all of scounteren.HPM20, mcounteren.HPM20, and hcounteren.HPM20 are set, the hpmcounter20 CSR (an alias of mhpmcounter20) is accessible to VU-mode.

When mcounteren.HPM20 and hcounteren.HPM20 are set, the hpmcounter20 CSR (an alias of mhpmcounter20) is accessible to VS-mode.

When hcounteren.HPM20 is clear and mcounteren.HPM20 is set, then any access to hpmcounter20 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM20

mcounteren.HPM20

scounteren.HPM20

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM21

Location

hcounteren[21]

Description

When all of scounteren.HPM21, mcounteren.HPM21, and hcounteren.HPM21 are set, the hpmcounter21 CSR (an alias of mhpmcounter21) is accessible to VU-mode.

When mcounteren.HPM21 and hcounteren.HPM21 are set, the hpmcounter21 CSR (an alias of mhpmcounter21) is accessible to VS-mode.

When hcounteren.HPM21 is clear and mcounteren.HPM21 is set, then any access to hpmcounter21 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM21

mcounteren.HPM21

scounteren.HPM21

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM22

Location

hcounteren[22]

Description

When all of scounteren.HPM22, mcounteren.HPM22, and hcounteren.HPM22 are set, the hpmcounter22 CSR (an alias of mhpmcounter22) is accessible to VU-mode.

When mcounteren.HPM22 and hcounteren.HPM22 are set, the hpmcounter22 CSR (an alias of mhpmcounter22) is accessible to VS-mode.

When hcounteren.HPM22 is clear and mcounteren.HPM22 is set, then any access to hpmcounter22 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM22

mcounteren.HPM22

scounteren.HPM22

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM23

Location

hcounteren[23]

Description

When all of scounteren.HPM23, mcounteren.HPM23, and hcounteren.HPM23 are set, the hpmcounter23 CSR (an alias of mhpmcounter23) is accessible to VU-mode.

When mcounteren.HPM23 and hcounteren.HPM23 are set, the hpmcounter23 CSR (an alias of mhpmcounter23) is accessible to VS-mode.

When hcounteren.HPM23 is clear and mcounteren.HPM23 is set, then any access to hpmcounter23 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM23

mcounteren.HPM23

scounteren.HPM23

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM24

Location

hcounteren[24]

Description

When all of scounteren.HPM24, mcounteren.HPM24, and hcounteren.HPM24 are set, the hpmcounter24 CSR (an alias of mhpmcounter24) is accessible to VU-mode.

When mcounteren.HPM24 and hcounteren.HPM24 are set, the hpmcounter24 CSR (an alias of mhpmcounter24) is accessible to VS-mode.

When hcounteren.HPM24 is clear and mcounteren.HPM24 is set, then any access to hpmcounter24 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM24

mcounteren.HPM24

scounteren.HPM24

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM25

Location

hcounteren[25]

Description

When all of scounteren.HPM25, mcounteren.HPM25, and hcounteren.HPM25 are set, the hpmcounter25 CSR (an alias of mhpmcounter25) is accessible to VU-mode.

When mcounteren.HPM25 and hcounteren.HPM25 are set, the hpmcounter25 CSR (an alias of mhpmcounter25) is accessible to VS-mode.

When hcounteren.HPM25 is clear and mcounteren.HPM25 is set, then any access to hpmcounter25 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM25

mcounteren.HPM25

scounteren.HPM25

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM26

Location

hcounteren[26]

Description

When all of scounteren.HPM26, mcounteren.HPM26, and hcounteren.HPM26 are set, the hpmcounter26 CSR (an alias of mhpmcounter26) is accessible to VU-mode.

When mcounteren.HPM26 and hcounteren.HPM26 are set, the hpmcounter26 CSR (an alias of mhpmcounter26) is accessible to VS-mode.

When hcounteren.HPM26 is clear and mcounteren.HPM26 is set, then any access to hpmcounter26 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM26

mcounteren.HPM26

scounteren.HPM26

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM27

Location

hcounteren[27]

Description

When all of scounteren.HPM27, mcounteren.HPM27, and hcounteren.HPM27 are set, the hpmcounter27 CSR (an alias of mhpmcounter27) is accessible to VU-mode.

When mcounteren.HPM27 and hcounteren.HPM27 are set, the hpmcounter27 CSR (an alias of mhpmcounter27) is accessible to VS-mode.

When hcounteren.HPM27 is clear and mcounteren.HPM27 is set, then any access to hpmcounter27 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM27

mcounteren.HPM27

scounteren.HPM27

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM28

Location

hcounteren[28]

Description

When all of scounteren.HPM28, mcounteren.HPM28, and hcounteren.HPM28 are set, the hpmcounter28 CSR (an alias of mhpmcounter28) is accessible to VU-mode.

When mcounteren.HPM28 and hcounteren.HPM28 are set, the hpmcounter28 CSR (an alias of mhpmcounter28) is accessible to VS-mode.

When hcounteren.HPM28 is clear and mcounteren.HPM28 is set, then any access to hpmcounter28 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM28

mcounteren.HPM28

scounteren.HPM28

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM29

Location

hcounteren[29]

Description

When all of scounteren.HPM29, mcounteren.HPM29, and hcounteren.HPM29 are set, the hpmcounter29 CSR (an alias of mhpmcounter29) is accessible to VU-mode.

When mcounteren.HPM29 and hcounteren.HPM29 are set, the hpmcounter29 CSR (an alias of mhpmcounter29) is accessible to VS-mode.

When hcounteren.HPM29 is clear and mcounteren.HPM29 is set, then any access to hpmcounter29 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM29

mcounteren.HPM29

scounteren.HPM29

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM30

Location

hcounteren[30]

Description

When all of scounteren.HPM30, mcounteren.HPM30, and hcounteren.HPM30 are set, the hpmcounter30 CSR (an alias of mhpmcounter30) is accessible to VU-mode.

When mcounteren.HPM30 and hcounteren.HPM30 are set, the hpmcounter30 CSR (an alias of mhpmcounter30) is accessible to VS-mode.

When hcounteren.HPM30 is clear and mcounteren.HPM30 is set, then any access to hpmcounter30 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM30

mcounteren.HPM30

scounteren.HPM30

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0

HPM31

Location

hcounteren[31]

Description

When all of scounteren.HPM31, mcounteren.HPM31, and hcounteren.HPM31 are set, the hpmcounter31 CSR (an alias of mhpmcounter31) is accessible to VU-mode.

When mcounteren.HPM31 and hcounteren.HPM31 are set, the hpmcounter31 CSR (an alias of mhpmcounter31) is accessible to VS-mode.

When hcounteren.HPM31 is clear and mcounteren.HPM31 is set, then any access to hpmcounter31 in VU-mode or VS-mode causes a VirtualInstruction execption.

Summary:

hcounteren.HPM31

mcounteren.HPM31

scounteren.HPM31

cycle access behavior

VS-mode

VU-mode +

0

0

-

IllegalInstruction

IllegalInstruction

0

1

-

VirtualInstruction

VirtualInstruction

1

0

-

IllegalInstruction

IllegalInstruction

1

1

0

allowed

VirtualInstruction

1

1

1

allowed

allowed

Type

RO

Read-Only

Field has a hardwired value that does not change. Writes to an RO field are ignored.

Reset value

0