sie

Supervisor interrupt-enable register

Supervisor interrupt-enable register.

Attributes

Requirement

S

Defining extensions

S

Supervisor mode

CSR Address

0x104

Length

* 32 when CSR[mstatus].SXL == 0 * 64 when CSR[mstatus].SXL == 1

Privilege Mode

S

Format

This CSR format changes dynamically.

sie Format when CSR[mstatus].SXL == 0
Figure 1. sie Format when CSR[mstatus].SXL == 0
sie Format when CSR[mstatus].SXL == 1
Figure 2. sie Format when CSR[mstatus].SXL == 1

Field Summary

Name Location Type Reset Value

sie.SSIE

1

RW-R

UNDEFINED_LEGAL

sie.STIE

5

RW-R

UNDEFINED_LEGAL

sie.SEIE

9

RW-R

UNDEFINED_LEGAL

sie.LCOFIE

13

RW-R

UNDEFINED_LEGAL

Fields

SSIE

Location

1

Description

Supervisor Software Interrupt Enable

Type

RW-R

Reset value

UNDEFINED_LEGAL

STIE

Location

5

Description

Supervisor Timer Interrupt Enable

Type

RW-R

Reset value

UNDEFINED_LEGAL

SEIE

Location

9

Description

Supervisor External Interrupt Enable

Type

RW-R

Reset value

UNDEFINED_LEGAL

LCOFIE

Location

13

Description

Local Counter Overflow Interrupt Enable

Type

RW-R

Reset value

UNDEFINED_LEGAL

Software write

This CSR may store a value that is different from what software attempts to write.

When a software write occurs (e.g., through csrrw), the following determines the written value:

SSIE = if (CSR[mideleg].SSI == 1'b1) {
  CSR[mie].SSIE = csr_value.SSIE;
  return csr_value.SSIE;
}
return 1'b0;

STIE = if (CSR[mideleg].STI == 1'b1) {
  CSR[mie].STIE = csr_value.STIE;
  return csr_value.STIE;
}
return 1'b0;

SEIE = if (CSR[mideleg].SEI == 1'b1) {
  CSR[mie].SEIE = csr_value.SEIE;
  return csr_value.SEIE;
}
return 1'b0;

LCOFIE = if (CSR[mideleg].LCOFI == 1'b1) {
  CSR[mie].LCOFIE = csr_value.LCOFIE;
  return csr_value.LCOFIE;
}
return 1'b0;

Software read

This CSR may return a value that is different from what is stored in hardware.

return $bits(CSR[CSR[mie]]) & $bits(CSR[CSR[mideleg]]);