117 lines
1.8 KiB
Rust
117 lines
1.8 KiB
Rust
//! RISC-V CSR's
|
|
//!
|
|
//! The following registers are not available on 64-bit implementations.
|
|
//!
|
|
//! - cycleh
|
|
//! - timeh
|
|
//! - instreth
|
|
//! - hpmcounter[3-31]h
|
|
//! - mcycleh
|
|
//! - minstreth
|
|
//! - mhpmcounter[3-31]h
|
|
|
|
#[macro_use]
|
|
mod macros;
|
|
|
|
// User Trap Setup
|
|
pub mod ustatus;
|
|
pub mod uie;
|
|
pub mod utvec;
|
|
|
|
// User Trap Handling
|
|
pub mod uscratch;
|
|
pub mod uepc;
|
|
pub mod ucause;
|
|
pub mod utval;
|
|
pub mod uip;
|
|
|
|
// User Floating-Point CSRs
|
|
// TODO: frm, fflags
|
|
pub mod fcsr;
|
|
|
|
|
|
// User Counter/Timers
|
|
// TODO: cycle[h], instret[h]
|
|
pub mod time;
|
|
mod hpmcounterx;
|
|
pub use self::hpmcounterx::*;
|
|
pub mod timeh;
|
|
|
|
|
|
// Supervisor Trap Setup
|
|
// TODO: sedeleg, sideleg
|
|
pub mod sstatus;
|
|
pub mod sie;
|
|
pub mod stvec;
|
|
// TODO: scounteren
|
|
|
|
|
|
// Supervisor Trap Handling
|
|
pub mod sscratch;
|
|
pub mod sepc;
|
|
pub mod scause;
|
|
pub mod stval;
|
|
pub mod sip;
|
|
|
|
|
|
// Supervisor Protection and Translation
|
|
pub mod satp;
|
|
|
|
|
|
// Machine Information Registers
|
|
pub mod mvendorid;
|
|
pub mod marchid;
|
|
pub mod mimpid;
|
|
pub mod mhartid;
|
|
|
|
|
|
// Machine Trap Setup
|
|
pub mod mstatus;
|
|
pub mod misa;
|
|
// TODO: medeleg, mideleg
|
|
pub mod mie;
|
|
pub mod mtvec;
|
|
// TODO: mcounteren
|
|
|
|
|
|
// Machine Trap Handling
|
|
pub mod mscratch;
|
|
pub mod mepc;
|
|
pub mod mcause;
|
|
pub mod mtval;
|
|
pub mod mip;
|
|
|
|
|
|
// Machine Protection and Translation
|
|
mod pmpcfgx;
|
|
pub use self::pmpcfgx::*;
|
|
mod pmpaddrx;
|
|
pub use self::pmpaddrx::*;
|
|
|
|
|
|
// Machine Counter/Timers
|
|
pub mod mcycle;
|
|
pub mod minstret;
|
|
mod mhpmcounterx;
|
|
pub use self::mhpmcounterx::*;
|
|
pub mod mcycleh;
|
|
pub mod minstreth;
|
|
|
|
|
|
// Machine Counter Setup
|
|
mod mhpmeventx;
|
|
pub use self::mhpmeventx::*;
|
|
|
|
|
|
// TODO: Debug/Trace Registers (shared with Debug Mode)
|
|
|
|
|
|
// TODO: Debug Mode Registers
|
|
|
|
// VexRiscv registers
|
|
pub mod vmim;
|
|
pub mod vmip;
|
|
pub mod vsim;
|
|
pub mod vsip;
|
|
pub mod vdci;
|