Sapphire SoC DS Sapphire SoC UG Sapphire HP SoC DS Sapphire HP SoC UG RISC-V Embedded IDE UG Board Support Package
Loading...
Searching...
No Matches
Register Definitions

Overview

Register bitmasks and offsets.

RISC-V M-Cause Interrupt Register Bitmasks

#define CAUSE_SUPERVISOR_SOFTWARE   1
 Interrupt: Supervisor Software.
#define CAUSE_MACHINE_SOFTWARE   3
 Interrupt: Machine Software.
#define CAUSE_USER_TIME   4
 Interrupt: User Timer.
#define CAUSE_SUPERVISOR_TIMER   5
 Interrupt: Supervisor Timer.
#define CAUSE_MACHINE_TIMER   7
 Interrupt: Machine Timer.
#define CAUSE_USER_EXTERNAL   8
 Interrupt: User External.
#define CAUSE_SCALL   9
 Interrupt: Supervisor Call.
#define CAUSE_MACHINE_EXTERNAL   11
 Interrupt: Machine External.

RISC-V M-Cause Exception Register Bitmasks

#define CAUSE_INSTRUCTION_ADDR_MISALIGNED   0
 Exception: Instruction Address Misaligned.
#define CAUSE_ACCESS_FAULT   1
 Exception: Instruction Access Fault.
#define CAUSE_ILLEGAL_INSTRUCTION   2
 Exception: Illegal Instruction.
#define CAUSE_BREAKPOINT   3
 Exception: Breakpoint.
#define CAUSE_LOAD_ADDR_MISALIGNED   4
 Exception: Load Address Misaligned.
#define CAUSE_LOAD_ACCESS_FAULT   5
 Exception: Load Access Fault.
#define CAUSE_STORE_AMO_ADDR_MISALIGNED   6
 Exception: Store/AMO Address Misaligned.
#define CAUSE_STORE_AMO_ACCESS_FAULT   7
 Exception: Store/AMO Access Fault.
#define CAUSE_ENV_CALL_U_MODE   8
 Exception: Environment Call from U Mode.
#define CAUSE_ENV_CALL_S_MODE   9
 Exception: Environment Call from S Mode.
#define CAUSE_ENV_CALL_M_MODE   11
 Exception: Environment Call from M Mode.
#define CAUSE_INSTRUCTION_PAGE_FAULT   12
 Exception: Instruction Page Fault.
#define CAUSE_LOAD_PAGE_FAULT   13
 Exception: Load Page Fault.
#define CAUSE_STORE_AMO_PAGE_FAULT   15
 Exception: Store/AMO Page Fault.

RISC-V MEDELEG and MIDELEG Register Bitmasks

#define MEDELEG_INSTRUCTION_PAGE_FAULT   (1 << 12)
 Delegate Instruction Page Fault to S-mode.
#define MEDELEG_LOAD_PAGE_FAULT   (1 << 13)
 Delegate Load Page Fault to S-mode.
#define MEDELEG_STORE_PAGE_FAULT   (1 << 15)
 Delegate Store/AMO Page Fault to S-mode.
#define MEDELEG_USER_ENVIRONNEMENT_CALL   (1 << 8)
 Delegate Environment Call from U-mode to S-mode.
#define MIDELEG_SUPERVISOR_SOFTWARE   (1 << 1)
 Delegate Supervisor Software Interrupt to S-mode.
#define MIDELEG_SUPERVISOR_TIMER   (1 << 5)
 Delegate Supervisor Timer Interrupt to S-mode.
#define MIDELEG_SUPERVISOR_EXTERNAL   (1 << 9)
 Delegate Supervisor External Interrupt to S-mode.

RISC-V External Interrupt (PLIC) Bitmasks

#define MIE_MSIE   (1 << CAUSE_MACHINE_SOFTWARE)
 Machine Software Interrupt Enable (Bit 3).
#define MIE_MTIE   (1 << CAUSE_MACHINE_TIMER)
 Machine Timer Interrupt Enable (Bit 7).
#define MIE_MEIE   (1 << CAUSE_MACHINE_EXTERNAL)
 Machine External Interrupt Enable (Bit 11).

RISC-V Time Related Register (Read-Only)

#define RDCYCLE   0xC00
 Read-only cycle Cycle counter for RDCYCLE instruction.
#define RDTIME   0xC01
 Read-only time Timer for RDTIME instruction.
#define RDINSTRET   0xC02
 Read-only instret Instructions-retired counter for RDINSTRET instruction.
#define RDCYCLEH   0xC80
 Read-only cycleh Upper 32 bits of cycle, RV32I only.
#define RDTIMEH   0xC81
 Read-only timeh Upper 32 bits of time, RV32I only.
#define RDINSTRETH   0xC82
 Read-only instreth Upper 32 bits of instret, RV32I only.

Macro Definition Documentation

◆ CAUSE_ACCESS_FAULT

#define CAUSE_ACCESS_FAULT   1

#include <riscv.h>

Exception: Instruction Access Fault.

Definition at line 58 of file riscv.h.

◆ CAUSE_BREAKPOINT

#define CAUSE_BREAKPOINT   3

#include <riscv.h>

Exception: Breakpoint.

Definition at line 60 of file riscv.h.

◆ CAUSE_ENV_CALL_M_MODE

#define CAUSE_ENV_CALL_M_MODE   11

#include <riscv.h>

Exception: Environment Call from M Mode.

Definition at line 67 of file riscv.h.

◆ CAUSE_ENV_CALL_S_MODE

#define CAUSE_ENV_CALL_S_MODE   9

#include <riscv.h>

Exception: Environment Call from S Mode.

Definition at line 66 of file riscv.h.

◆ CAUSE_ENV_CALL_U_MODE

#define CAUSE_ENV_CALL_U_MODE   8

#include <riscv.h>

Exception: Environment Call from U Mode.

Definition at line 65 of file riscv.h.

◆ CAUSE_ILLEGAL_INSTRUCTION

#define CAUSE_ILLEGAL_INSTRUCTION   2

#include <riscv.h>

Exception: Illegal Instruction.

Definition at line 59 of file riscv.h.

◆ CAUSE_INSTRUCTION_ADDR_MISALIGNED

#define CAUSE_INSTRUCTION_ADDR_MISALIGNED   0

#include <riscv.h>

Exception: Instruction Address Misaligned.

Definition at line 57 of file riscv.h.

◆ CAUSE_INSTRUCTION_PAGE_FAULT

#define CAUSE_INSTRUCTION_PAGE_FAULT   12

#include <riscv.h>

Exception: Instruction Page Fault.

Definition at line 68 of file riscv.h.

◆ CAUSE_LOAD_ACCESS_FAULT

#define CAUSE_LOAD_ACCESS_FAULT   5

#include <riscv.h>

Exception: Load Access Fault.

Definition at line 62 of file riscv.h.

◆ CAUSE_LOAD_ADDR_MISALIGNED

#define CAUSE_LOAD_ADDR_MISALIGNED   4

#include <riscv.h>

Exception: Load Address Misaligned.

Definition at line 61 of file riscv.h.

◆ CAUSE_LOAD_PAGE_FAULT

#define CAUSE_LOAD_PAGE_FAULT   13

#include <riscv.h>

Exception: Load Page Fault.

Definition at line 69 of file riscv.h.

◆ CAUSE_MACHINE_EXTERNAL

#define CAUSE_MACHINE_EXTERNAL   11

#include <riscv.h>

Interrupt: Machine External.

Definition at line 51 of file riscv.h.

◆ CAUSE_MACHINE_SOFTWARE

#define CAUSE_MACHINE_SOFTWARE   3

#include <riscv.h>

Interrupt: Machine Software.

Definition at line 45 of file riscv.h.

◆ CAUSE_MACHINE_TIMER

#define CAUSE_MACHINE_TIMER   7

#include <riscv.h>

Interrupt: Machine Timer.

Definition at line 48 of file riscv.h.

◆ CAUSE_SCALL

#define CAUSE_SCALL   9

#include <riscv.h>

Interrupt: Supervisor Call.

Definition at line 50 of file riscv.h.

◆ CAUSE_STORE_AMO_ACCESS_FAULT

#define CAUSE_STORE_AMO_ACCESS_FAULT   7

#include <riscv.h>

Exception: Store/AMO Access Fault.

Definition at line 64 of file riscv.h.

◆ CAUSE_STORE_AMO_ADDR_MISALIGNED

#define CAUSE_STORE_AMO_ADDR_MISALIGNED   6

#include <riscv.h>

Exception: Store/AMO Address Misaligned.

Definition at line 63 of file riscv.h.

◆ CAUSE_STORE_AMO_PAGE_FAULT

#define CAUSE_STORE_AMO_PAGE_FAULT   15

#include <riscv.h>

Exception: Store/AMO Page Fault.

Definition at line 70 of file riscv.h.

◆ CAUSE_SUPERVISOR_SOFTWARE

#define CAUSE_SUPERVISOR_SOFTWARE   1

#include <riscv.h>

Interrupt: Supervisor Software.

Definition at line 44 of file riscv.h.

◆ CAUSE_SUPERVISOR_TIMER

#define CAUSE_SUPERVISOR_TIMER   5

#include <riscv.h>

Interrupt: Supervisor Timer.

Definition at line 47 of file riscv.h.

◆ CAUSE_USER_EXTERNAL

#define CAUSE_USER_EXTERNAL   8

#include <riscv.h>

Interrupt: User External.

Definition at line 49 of file riscv.h.

◆ CAUSE_USER_TIME

#define CAUSE_USER_TIME   4

#include <riscv.h>

Interrupt: User Timer.

Definition at line 46 of file riscv.h.

◆ MEDELEG_INSTRUCTION_PAGE_FAULT

#define MEDELEG_INSTRUCTION_PAGE_FAULT   (1 << 12)

#include <riscv.h>

Delegate Instruction Page Fault to S-mode.

Definition at line 76 of file riscv.h.

◆ MEDELEG_LOAD_PAGE_FAULT

#define MEDELEG_LOAD_PAGE_FAULT   (1 << 13)

#include <riscv.h>

Delegate Load Page Fault to S-mode.

Definition at line 77 of file riscv.h.

◆ MEDELEG_STORE_PAGE_FAULT

#define MEDELEG_STORE_PAGE_FAULT   (1 << 15)

#include <riscv.h>

Delegate Store/AMO Page Fault to S-mode.

Definition at line 78 of file riscv.h.

◆ MEDELEG_USER_ENVIRONNEMENT_CALL

#define MEDELEG_USER_ENVIRONNEMENT_CALL   (1 << 8)

#include <riscv.h>

Delegate Environment Call from U-mode to S-mode.

Definition at line 79 of file riscv.h.

◆ MIDELEG_SUPERVISOR_EXTERNAL

#define MIDELEG_SUPERVISOR_EXTERNAL   (1 << 9)

#include <riscv.h>

Delegate Supervisor External Interrupt to S-mode.

Definition at line 82 of file riscv.h.

◆ MIDELEG_SUPERVISOR_SOFTWARE

#define MIDELEG_SUPERVISOR_SOFTWARE   (1 << 1)

#include <riscv.h>

Delegate Supervisor Software Interrupt to S-mode.

Definition at line 80 of file riscv.h.

◆ MIDELEG_SUPERVISOR_TIMER

#define MIDELEG_SUPERVISOR_TIMER   (1 << 5)

#include <riscv.h>

Delegate Supervisor Timer Interrupt to S-mode.

Definition at line 81 of file riscv.h.

◆ MIE_MEIE

#define MIE_MEIE   (1 << CAUSE_MACHINE_EXTERNAL)

#include <riscv.h>

Machine External Interrupt Enable (Bit 11).

Definition at line 89 of file riscv.h.

◆ MIE_MSIE

#define MIE_MSIE   (1 << CAUSE_MACHINE_SOFTWARE)

#include <riscv.h>

Machine Software Interrupt Enable (Bit 3).

Definition at line 87 of file riscv.h.

◆ MIE_MTIE

#define MIE_MTIE   (1 << CAUSE_MACHINE_TIMER)

#include <riscv.h>

Machine Timer Interrupt Enable (Bit 7).

Definition at line 88 of file riscv.h.

◆ RDCYCLE

#define RDCYCLE   0xC00

#include <riscv.h>

Read-only cycle Cycle counter for RDCYCLE instruction.

Definition at line 94 of file riscv.h.

◆ RDCYCLEH

#define RDCYCLEH   0xC80

#include <riscv.h>

Read-only cycleh Upper 32 bits of cycle, RV32I only.

Definition at line 97 of file riscv.h.

◆ RDINSTRET

#define RDINSTRET   0xC02

#include <riscv.h>

Read-only instret Instructions-retired counter for RDINSTRET instruction.

Definition at line 96 of file riscv.h.

◆ RDINSTRETH

#define RDINSTRETH   0xC82

#include <riscv.h>

Read-only instreth Upper 32 bits of instret, RV32I only.

Definition at line 99 of file riscv.h.

◆ RDTIME

#define RDTIME   0xC01

#include <riscv.h>

Read-only time Timer for RDTIME instruction.

Definition at line 95 of file riscv.h.

◆ RDTIMEH

#define RDTIMEH   0xC81

#include <riscv.h>

Read-only timeh Upper 32 bits of time, RV32I only.

Definition at line 98 of file riscv.h.