rv64im_min_csr.nx
buildroot/runtime/_hdl_build/rv64im_min_csr.nx
about
dependencies 2 imports · 35 importers
diagram shows first 10 each side; +0 more imports, +25 more importers in the complete lists below.
imports: nx_syscalls.nxnishi_hdl_primitives.nx
imported by: _gpu_run.nx_nvme_diag.nxnx_bootcap.nxnx_emu_bench.nxnx_evo_isa_sov.nxnx_geneal_energy_sov.nxnx_isa_cf_sov.nxnx_isa_equiv_sov.nxnx_isa_loop_sov.nxnx_isa_run_sov.nxnx_isa_synth_sov.nxnx_nishios_window.nxnx_nxc_baremetal.nxnx_nxc_run.nxnx_rv64_amo_gate.nxnx_rv64_csr_trap_oracle.nxnx_rv64_fast_dev_gate.nxnx_rv64_fast_gate.nxnx_rv64_kernel_gate.nxnx_rv64_mmu_oracle.nxnx_rv64_qemu_fuzz.nxnx_rv64_qemu_oracle.nxnx_rv64_realc_gate.nxnx_rv64_run_bin.nxnx_rv64_sdeleg_oracle.nxnx_rv64_snapshot_gate.nxnx_rv64_timer_oracle.nxnx_rv64im_cpu_crosscheck.nxrv64im_min_cpu_crosscheck.nxrv64im_min_elf_loader.nxrv64im_min_gfx_gate.nxrv64im_min_hot_report.nxrv64im_min_kernel_boot_smoke.nxrv64im_min_sim.nxrv64im_min_sim_smoke.nx
structs
| 131 | struct NxRv64imCsrFile |
| 223 | struct NxRv64imCsrFilePorts |
consts
| 29 | const NX_CSR_MSTATUS: i64 = 0x300 |
| 30 | const NX_CSR_MIE: i64 = 0x304 |
| 31 | const NX_CSR_MTVEC: i64 = 0x305 |
| 32 | const NX_CSR_MSCRATCH: i64 = 0x340 |
| 33 | const NX_CSR_MEPC: i64 = 0x341 |
| 34 | const NX_CSR_MCAUSE: i64 = 0x342 |
| 35 | const NX_CSR_MTVAL: i64 = 0x343 |
| 36 | const NX_CSR_MHARTID: i64 = 0xF14 |
| 37 | const NX_CSR_MCYCLE: i64 = 0xB00 |
| 38 | const NX_CSR_SATP: i64 = 0x180 // supervisor address-translation + protection (Sv39 paging) |
| 39 | const NX_CSR_STVEC: i64 = 0x105 // S-mode trap vector (the kernel's own trap entry) |
| 40 | const NX_CSR_SEPC: i64 = 0x141 // S-mode exception PC |
| 41 | const NX_CSR_SCAUSE: i64 = 0x142 // S-mode trap cause |
| 42 | const NX_CSR_MEDELEG: i64 = 0x302 // machine exception delegation -> bit c set = exception c handled in S-mode |
| 49 | const NX_CSR_SLOT_MSTATUS: i64 = 0 |
| 50 | const NX_CSR_SLOT_MIE: i64 = 1 |
| 51 | const NX_CSR_SLOT_MTVEC: i64 = 2 |
| 52 | const NX_CSR_SLOT_MSCRATCH: i64 = 3 |
| 53 | const NX_CSR_SLOT_MEPC: i64 = 4 |
| 54 | const NX_CSR_SLOT_MCAUSE: i64 = 5 |
| 55 | const NX_CSR_SLOT_MTVAL: i64 = 6 |
| 56 | const NX_CSR_SLOT_MHARTID: i64 = 7 |
| 57 | const NX_CSR_SLOT_MCYCLE: i64 = 8 |
| 58 | const NX_CSR_SLOT_SATP: i64 = 9 |
| 59 | const NX_CSR_SLOT_STVEC: i64 = 10 |
| 60 | const NX_CSR_SLOT_SEPC: i64 = 11 |
| 61 | const NX_CSR_SLOT_SCAUSE: i64 = 12 |
| 62 | const NX_CSR_SLOT_MEDELEG: i64 = 13 |
| 63 | const NX_CSR_SLOT_N: i64 = 14 |
| 66 | const NX_CSR_OK: i64 = 0 |
| 67 | const NX_CSR_UNIMPLEMENTED: i64 = 1 // CSR address not in MUST or SHOULD set |
| 68 | const NX_CSR_READ_ONLY: i64 = 2 // write attempted to RO csr (mhartid, mcycle) |
| 129 | const NX_CSR_RESET_MSTATUS: i64 = 0x1800 // MPP=11 (M-mode), MIE=0, MPIE=0 |
| 220 | const NX_CSR_WIDTH_ADDR: i64 = 12 // RV64 CSR address space is 12 bits |
| 221 | const NX_CSR_WIDTH_VALUE: i64 = 64 |
| 234 | const NX_CSR_WIDTH_VERDICT: i64 = 4 |
functions
| 76 | func nx_csr_addr_to_slot(addr: i64) -> i64 |
| 102 | func nx_csr_is_read_only(slot: i64) -> i64 |
| 136 | func nx_rv64im_csr_init(csr: *NxRv64imCsrFile, storage: *i64, hartid: i64) -> i64 |
| 161 | func nx_rv64im_csr_read(csr: *NxRv64imCsrFile, addr: i64) -> i64 |
| 173 | func nx_rv64im_csr_write(csr: *NxRv64imCsrFile, addr: i64, value: i64) -> i64 |
| 187 | func nx_rv64im_csr_swap(csr: *NxRv64imCsrFile, addr: i64, |
| 212 | func nx_rv64im_csr_tick_mcycle(csr: *NxRv64imCsrFile) -> i64 called by 1: nx_rv64im_sim_step |
| 236 | func nx_rv64im_csr_build(m: *NxHdlModule, ports: *NxRv64imCsrFilePorts) -> i64 |