ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
Macros
Encoding.h File Reference

Go to the source code of this file.

Macros

#define MSTATUS_UIE   0x00000001
 
#define MSTATUS_SIE   0x00000002
 
#define MSTATUS_HIE   0x00000004
 
#define MSTATUS_MIE   0x00000008
 
#define MSTATUS_UPIE   0x00000010
 
#define MSTATUS_SPIE   0x00000020
 
#define MSTATUS_HPIE   0x00000040
 
#define MSTATUS_MPIE   0x00000080
 
#define MSTATUS_SPP   0x00000100
 
#define MSTATUS_HPP   0x00000600
 
#define MSTATUS_MPP   0x00001800
 
#define MSTATUS_FS   0x00006000
 
#define MSTATUS_XS   0x00018000
 
#define MSTATUS_MPRV   0x00020000
 
#define MSTATUS_SUM   0x00040000
 
#define MSTATUS_MXR   0x00080000
 
#define MSTATUS_TVM   0x00100000
 
#define MSTATUS_TW   0x00200000
 
#define MSTATUS_TSR   0x00400000
 
#define MSTATUS32_SD   0x80000000
 
#define MSTATUS_UXL   0x0000000300000000
 
#define MSTATUS_SXL   0x0000000C00000000
 
#define MSTATUS64_SD   0x8000000000000000
 
#define SSTATUS_UIE   0x00000001
 
#define SSTATUS_SIE   0x00000002
 
#define SSTATUS_UPIE   0x00000010
 
#define SSTATUS_SPIE   0x00000020
 
#define SSTATUS_SPP   0x00000100
 
#define SSTATUS_FS   0x00006000
 
#define SSTATUS_XS   0x00018000
 
#define SSTATUS_SUM   0x00040000
 
#define SSTATUS_MXR   0x00080000
 
#define SSTATUS32_SD   0x80000000
 
#define SSTATUS_UXL   0x0000000300000000
 
#define SSTATUS64_SD   0x8000000000000000
 
#define MIP_SSIP   (1 << IRQ_S_SOFT)
 
#define MIP_HSIP   (1 << IRQ_H_SOFT)
 
#define MIP_MSIP   (1 << IRQ_M_SOFT)
 
#define MIP_STIP   (1 << IRQ_S_TIMER)
 
#define MIP_HTIP   (1 << IRQ_H_TIMER)
 
#define MIP_MTIP   (1 << IRQ_M_TIMER)
 
#define MIP_SEIP   (1 << IRQ_S_EXT)
 
#define MIP_HEIP   (1 << IRQ_H_EXT)
 
#define MIP_MEIP   (1 << IRQ_M_EXT)
 
#define SIP_SSIP   MIP_SSIP
 
#define SIP_STIP   MIP_STIP
 
#define PRV_U   0
 
#define PRV_S   1
 
#define PRV_H   2
 
#define PRV_M   3
 
#define PAGE_OFFSET   12
 
#define OFFSET_MASK   ((1 << PAGE_OFFSET) - 1)
 
#define PAGE_SIZE   1 << PAGE_OFFSET
 
#define LEVELS   3
 
#define VPN_OFFSET   9
 
#define PTESIZE   8
 
#define SATP_PPN_MASK   ((0x1ULL << 44ULL) - 1ULL)
 
#define SATP32_MODE   0x80000000
 
#define SATP32_ASID   0x7FC00000
 
#define SATP32_PPN   0x003FFFFF
 
#define SATP64_MODE   0xF000000000000000
 
#define SATP64_ASID   0x0FFFF00000000000
 
#define SATP64_PPN   0x00000FFFFFFFFFFF
 
#define SATP_MODE_OFF   0
 
#define SATP_MODE_SV32   1
 
#define SATP_MODE_SV39   8
 
#define SATP_MODE_SV48   9
 
#define SATP_MODE_SV57   10
 
#define SATP_MODE_SV64   11
 
#define PMP_R   0x01
 
#define PMP_W   0x02
 
#define PMP_X   0x04
 
#define PMP_A   0x18
 
#define PMP_L   0x80
 
#define PMP_SHIFT   2
 
#define PMP_TOR   0x08
 
#define PMP_NA4   0x10
 
#define PMP_NAPOT   0x18
 
#define IRQ_S_SOFT   1
 
#define IRQ_H_SOFT   2
 
#define IRQ_M_SOFT   3
 
#define IRQ_S_TIMER   5
 
#define IRQ_H_TIMER   6
 
#define IRQ_M_TIMER   7
 
#define IRQ_S_EXT   9
 
#define IRQ_H_EXT   10
 
#define IRQ_M_EXT   11
 
#define IRQ_COP   12
 
#define IRQ_HOST   13
 
#define DEFAULT_RSTVEC   0x00001000
 
#define CLINT_BASE   0x02000000
 
#define CLINT_SIZE   0x000c0000
 
#define EXT_IO_BASE   0x40000000
 
#define DRAM_BASE   0x80000000
 
#define PTE_V   0x001
 
#define PTE_R   0x002
 
#define PTE_W   0x004
 
#define PTE_X   0x008
 
#define PTE_U   0x010
 
#define PTE_G   0x020
 
#define PTE_A   0x040
 
#define PTE_D   0x080
 
#define PTE_SOFT   0x300
 
#define PTE_TABLE(PTE)   (((PTE) & (PTE_V | PTE_R | PTE_W | PTE_X)) == PTE_V)
 
#define CSR_SSTATUS   0x100
 
#define CSR_SIE   0x104
 
#define CSR_STVEC   0x105
 
#define CSR_SCOUNTEREN   0x106
 
#define CSR_SSCRATCH   0x140
 
#define CSR_SEPC   0x141
 
#define CSR_SCAUSE   0x142
 
#define CSR_STVAL   0x143
 
#define CSR_SIP   0x144
 
#define CSR_SATP   0x180
 
#define CSR_MSTATUS   0x300
 
#define CSR_MISA   0x301
 
#define CSR_MEDELEG   0x302
 
#define CSR_MIDELEG   0x303
 
#define CSR_MIE   0x304
 
#define CSR_MTVEC   0x305
 
#define CSR_MCOUNTEREN   0x306
 
#define CSR_MSCRATCH   0x340
 
#define CSR_MEPC   0x341
 
#define CSR_MCAUSE   0x342
 
#define CSR_MTVAL   0x343
 
#define CSR_MIP   0x344
 
#define CAUSE_MISALIGNED_FETCH   0x0
 
#define CAUSE_FETCH_ACCESS   0x1
 
#define CAUSE_ILLEGAL_INSTRUCTION   0x2
 
#define CAUSE_BREAKPOINT   0x3
 
#define CAUSE_MISALIGNED_LOAD   0x4
 
#define CAUSE_LOAD_ACCESS   0x5
 
#define CAUSE_MISALIGNED_STORE   0x6
 
#define CAUSE_STORE_ACCESS   0x7
 
#define CAUSE_USER_ECALL   0x8
 
#define CAUSE_SUPERVISOR_ECALL   0x9
 
#define CAUSE_HYPERVISOR_ECALL   0xa
 
#define CAUSE_MACHINE_ECALL   0xb
 
#define CAUSE_FETCH_PAGE_FAULT   0xc
 
#define CAUSE_LOAD_PAGE_FAULT   0xd
 
#define CAUSE_STORE_PAGE_FAULT   0xf
 

Macro Definition Documentation

◆ CAUSE_BREAKPOINT

#define CAUSE_BREAKPOINT   0x3

Definition at line 191 of file Encoding.h.

◆ CAUSE_FETCH_ACCESS

#define CAUSE_FETCH_ACCESS   0x1

Definition at line 189 of file Encoding.h.

◆ CAUSE_FETCH_PAGE_FAULT

#define CAUSE_FETCH_PAGE_FAULT   0xc

Definition at line 200 of file Encoding.h.

◆ CAUSE_HYPERVISOR_ECALL

#define CAUSE_HYPERVISOR_ECALL   0xa

Definition at line 198 of file Encoding.h.

◆ CAUSE_ILLEGAL_INSTRUCTION

#define CAUSE_ILLEGAL_INSTRUCTION   0x2

Definition at line 190 of file Encoding.h.

◆ CAUSE_LOAD_ACCESS

#define CAUSE_LOAD_ACCESS   0x5

Definition at line 193 of file Encoding.h.

◆ CAUSE_LOAD_PAGE_FAULT

#define CAUSE_LOAD_PAGE_FAULT   0xd

Definition at line 201 of file Encoding.h.

◆ CAUSE_MACHINE_ECALL

#define CAUSE_MACHINE_ECALL   0xb

Definition at line 199 of file Encoding.h.

◆ CAUSE_MISALIGNED_FETCH

#define CAUSE_MISALIGNED_FETCH   0x0

Definition at line 188 of file Encoding.h.

◆ CAUSE_MISALIGNED_LOAD

#define CAUSE_MISALIGNED_LOAD   0x4

Definition at line 192 of file Encoding.h.

◆ CAUSE_MISALIGNED_STORE

#define CAUSE_MISALIGNED_STORE   0x6

Definition at line 194 of file Encoding.h.

◆ CAUSE_STORE_ACCESS

#define CAUSE_STORE_ACCESS   0x7

Definition at line 195 of file Encoding.h.

◆ CAUSE_STORE_PAGE_FAULT

#define CAUSE_STORE_PAGE_FAULT   0xf

Definition at line 202 of file Encoding.h.

◆ CAUSE_SUPERVISOR_ECALL

#define CAUSE_SUPERVISOR_ECALL   0x9

Definition at line 197 of file Encoding.h.

◆ CAUSE_USER_ECALL

#define CAUSE_USER_ECALL   0x8

Definition at line 196 of file Encoding.h.

◆ CLINT_BASE

#define CLINT_BASE   0x02000000

Definition at line 147 of file Encoding.h.

◆ CLINT_SIZE

#define CLINT_SIZE   0x000c0000

Definition at line 148 of file Encoding.h.

◆ CSR_MCAUSE

#define CSR_MCAUSE   0x342

Definition at line 184 of file Encoding.h.

◆ CSR_MCOUNTEREN

#define CSR_MCOUNTEREN   0x306

Definition at line 181 of file Encoding.h.

◆ CSR_MEDELEG

#define CSR_MEDELEG   0x302

Definition at line 177 of file Encoding.h.

◆ CSR_MEPC

#define CSR_MEPC   0x341

Definition at line 183 of file Encoding.h.

◆ CSR_MIDELEG

#define CSR_MIDELEG   0x303

Definition at line 178 of file Encoding.h.

◆ CSR_MIE

#define CSR_MIE   0x304

Definition at line 179 of file Encoding.h.

◆ CSR_MIP

#define CSR_MIP   0x344

Definition at line 186 of file Encoding.h.

◆ CSR_MISA

#define CSR_MISA   0x301

Definition at line 176 of file Encoding.h.

◆ CSR_MSCRATCH

#define CSR_MSCRATCH   0x340

Definition at line 182 of file Encoding.h.

◆ CSR_MSTATUS

#define CSR_MSTATUS   0x300

Definition at line 175 of file Encoding.h.

◆ CSR_MTVAL

#define CSR_MTVAL   0x343

Definition at line 185 of file Encoding.h.

◆ CSR_MTVEC

#define CSR_MTVEC   0x305

Definition at line 180 of file Encoding.h.

◆ CSR_SATP

#define CSR_SATP   0x180

Definition at line 174 of file Encoding.h.

◆ CSR_SCAUSE

#define CSR_SCAUSE   0x142

Definition at line 171 of file Encoding.h.

◆ CSR_SCOUNTEREN

#define CSR_SCOUNTEREN   0x106

Definition at line 168 of file Encoding.h.

◆ CSR_SEPC

#define CSR_SEPC   0x141

Definition at line 170 of file Encoding.h.

◆ CSR_SIE

#define CSR_SIE   0x104

Definition at line 166 of file Encoding.h.

◆ CSR_SIP

#define CSR_SIP   0x144

Definition at line 173 of file Encoding.h.

◆ CSR_SSCRATCH

#define CSR_SSCRATCH   0x140

Definition at line 169 of file Encoding.h.

◆ CSR_SSTATUS

#define CSR_SSTATUS   0x100

Definition at line 165 of file Encoding.h.

◆ CSR_STVAL

#define CSR_STVAL   0x143

Definition at line 172 of file Encoding.h.

◆ CSR_STVEC

#define CSR_STVEC   0x105

Definition at line 167 of file Encoding.h.

◆ DEFAULT_RSTVEC

#define DEFAULT_RSTVEC   0x00001000

Definition at line 146 of file Encoding.h.

◆ DRAM_BASE

#define DRAM_BASE   0x80000000

Definition at line 150 of file Encoding.h.

◆ EXT_IO_BASE

#define EXT_IO_BASE   0x40000000

Definition at line 149 of file Encoding.h.

◆ IRQ_COP

#define IRQ_COP   12

Definition at line 143 of file Encoding.h.

◆ IRQ_H_EXT

#define IRQ_H_EXT   10

Definition at line 141 of file Encoding.h.

◆ IRQ_H_SOFT

#define IRQ_H_SOFT   2

Definition at line 135 of file Encoding.h.

◆ IRQ_H_TIMER

#define IRQ_H_TIMER   6

Definition at line 138 of file Encoding.h.

◆ IRQ_HOST

#define IRQ_HOST   13

Definition at line 144 of file Encoding.h.

◆ IRQ_M_EXT

#define IRQ_M_EXT   11

Definition at line 142 of file Encoding.h.

◆ IRQ_M_SOFT

#define IRQ_M_SOFT   3

Definition at line 136 of file Encoding.h.

◆ IRQ_M_TIMER

#define IRQ_M_TIMER   7

Definition at line 139 of file Encoding.h.

◆ IRQ_S_EXT

#define IRQ_S_EXT   9

Definition at line 140 of file Encoding.h.

◆ IRQ_S_SOFT

#define IRQ_S_SOFT   1

Definition at line 134 of file Encoding.h.

◆ IRQ_S_TIMER

#define IRQ_S_TIMER   5

Definition at line 137 of file Encoding.h.

◆ LEVELS

#define LEVELS   3

Definition at line 104 of file Encoding.h.

◆ MIP_HEIP

#define MIP_HEIP   (1 << IRQ_H_EXT)

Definition at line 90 of file Encoding.h.

◆ MIP_HSIP

#define MIP_HSIP   (1 << IRQ_H_SOFT)

Definition at line 84 of file Encoding.h.

◆ MIP_HTIP

#define MIP_HTIP   (1 << IRQ_H_TIMER)

Definition at line 87 of file Encoding.h.

◆ MIP_MEIP

#define MIP_MEIP   (1 << IRQ_M_EXT)

Definition at line 91 of file Encoding.h.

◆ MIP_MSIP

#define MIP_MSIP   (1 << IRQ_M_SOFT)

Definition at line 85 of file Encoding.h.

◆ MIP_MTIP

#define MIP_MTIP   (1 << IRQ_M_TIMER)

Definition at line 88 of file Encoding.h.

◆ MIP_SEIP

#define MIP_SEIP   (1 << IRQ_S_EXT)

Definition at line 89 of file Encoding.h.

◆ MIP_SSIP

#define MIP_SSIP   (1 << IRQ_S_SOFT)

Definition at line 83 of file Encoding.h.

◆ MIP_STIP

#define MIP_STIP   (1 << IRQ_S_TIMER)

Definition at line 86 of file Encoding.h.

◆ MSTATUS32_SD

#define MSTATUS32_SD   0x80000000

Definition at line 65 of file Encoding.h.

◆ MSTATUS64_SD

#define MSTATUS64_SD   0x8000000000000000

Definition at line 68 of file Encoding.h.

◆ MSTATUS_FS

#define MSTATUS_FS   0x00006000

Definition at line 57 of file Encoding.h.

◆ MSTATUS_HIE

#define MSTATUS_HIE   0x00000004

Definition at line 48 of file Encoding.h.

◆ MSTATUS_HPIE

#define MSTATUS_HPIE   0x00000040

Definition at line 52 of file Encoding.h.

◆ MSTATUS_HPP

#define MSTATUS_HPP   0x00000600

Definition at line 55 of file Encoding.h.

◆ MSTATUS_MIE

#define MSTATUS_MIE   0x00000008

Definition at line 49 of file Encoding.h.

◆ MSTATUS_MPIE

#define MSTATUS_MPIE   0x00000080

Definition at line 53 of file Encoding.h.

◆ MSTATUS_MPP

#define MSTATUS_MPP   0x00001800

Definition at line 56 of file Encoding.h.

◆ MSTATUS_MPRV

#define MSTATUS_MPRV   0x00020000

Definition at line 59 of file Encoding.h.

◆ MSTATUS_MXR

#define MSTATUS_MXR   0x00080000

Definition at line 61 of file Encoding.h.

◆ MSTATUS_SIE

#define MSTATUS_SIE   0x00000002

Definition at line 47 of file Encoding.h.

◆ MSTATUS_SPIE

#define MSTATUS_SPIE   0x00000020

Definition at line 51 of file Encoding.h.

◆ MSTATUS_SPP

#define MSTATUS_SPP   0x00000100

Definition at line 54 of file Encoding.h.

◆ MSTATUS_SUM

#define MSTATUS_SUM   0x00040000

Definition at line 60 of file Encoding.h.

◆ MSTATUS_SXL

#define MSTATUS_SXL   0x0000000C00000000

Definition at line 67 of file Encoding.h.

◆ MSTATUS_TSR

#define MSTATUS_TSR   0x00400000

Definition at line 64 of file Encoding.h.

◆ MSTATUS_TVM

#define MSTATUS_TVM   0x00100000

Definition at line 62 of file Encoding.h.

◆ MSTATUS_TW

#define MSTATUS_TW   0x00200000

Definition at line 63 of file Encoding.h.

◆ MSTATUS_UIE

#define MSTATUS_UIE   0x00000001

Definition at line 46 of file Encoding.h.

◆ MSTATUS_UPIE

#define MSTATUS_UPIE   0x00000010

Definition at line 50 of file Encoding.h.

◆ MSTATUS_UXL

#define MSTATUS_UXL   0x0000000300000000

Definition at line 66 of file Encoding.h.

◆ MSTATUS_XS

#define MSTATUS_XS   0x00018000

Definition at line 58 of file Encoding.h.

◆ OFFSET_MASK

#define OFFSET_MASK   ((1 << PAGE_OFFSET) - 1)

Definition at line 102 of file Encoding.h.

◆ PAGE_OFFSET

#define PAGE_OFFSET   12

Definition at line 101 of file Encoding.h.

◆ PAGE_SIZE

#define PAGE_SIZE   1 << PAGE_OFFSET

Definition at line 103 of file Encoding.h.

◆ PMP_A

#define PMP_A   0x18

Definition at line 126 of file Encoding.h.

◆ PMP_L

#define PMP_L   0x80

Definition at line 127 of file Encoding.h.

◆ PMP_NA4

#define PMP_NA4   0x10

Definition at line 131 of file Encoding.h.

◆ PMP_NAPOT

#define PMP_NAPOT   0x18

Definition at line 132 of file Encoding.h.

◆ PMP_R

#define PMP_R   0x01

Definition at line 123 of file Encoding.h.

◆ PMP_SHIFT

#define PMP_SHIFT   2

Definition at line 128 of file Encoding.h.

◆ PMP_TOR

#define PMP_TOR   0x08

Definition at line 130 of file Encoding.h.

◆ PMP_W

#define PMP_W   0x02

Definition at line 124 of file Encoding.h.

◆ PMP_X

#define PMP_X   0x04

Definition at line 125 of file Encoding.h.

◆ PRV_H

#define PRV_H   2

Definition at line 98 of file Encoding.h.

◆ PRV_M

#define PRV_M   3

Definition at line 99 of file Encoding.h.

◆ PRV_S

#define PRV_S   1

Definition at line 97 of file Encoding.h.

◆ PRV_U

#define PRV_U   0

Definition at line 96 of file Encoding.h.

◆ PTE_A

#define PTE_A   0x040

Definition at line 159 of file Encoding.h.

◆ PTE_D

#define PTE_D   0x080

Definition at line 160 of file Encoding.h.

◆ PTE_G

#define PTE_G   0x020

Definition at line 158 of file Encoding.h.

◆ PTE_R

#define PTE_R   0x002

Definition at line 154 of file Encoding.h.

◆ PTE_SOFT

#define PTE_SOFT   0x300

Definition at line 161 of file Encoding.h.

◆ PTE_TABLE

#define PTE_TABLE (   PTE)    (((PTE) & (PTE_V | PTE_R | PTE_W | PTE_X)) == PTE_V)

Definition at line 163 of file Encoding.h.

◆ PTE_U

#define PTE_U   0x010

Definition at line 157 of file Encoding.h.

◆ PTE_V

#define PTE_V   0x001

Definition at line 153 of file Encoding.h.

◆ PTE_W

#define PTE_W   0x004

Definition at line 155 of file Encoding.h.

◆ PTE_X

#define PTE_X   0x008

Definition at line 156 of file Encoding.h.

◆ PTESIZE

#define PTESIZE   8

Definition at line 106 of file Encoding.h.

◆ SATP32_ASID

#define SATP32_ASID   0x7FC00000

Definition at line 110 of file Encoding.h.

◆ SATP32_MODE

#define SATP32_MODE   0x80000000

Definition at line 109 of file Encoding.h.

◆ SATP32_PPN

#define SATP32_PPN   0x003FFFFF

Definition at line 111 of file Encoding.h.

◆ SATP64_ASID

#define SATP64_ASID   0x0FFFF00000000000

Definition at line 113 of file Encoding.h.

◆ SATP64_MODE

#define SATP64_MODE   0xF000000000000000

Definition at line 112 of file Encoding.h.

◆ SATP64_PPN

#define SATP64_PPN   0x00000FFFFFFFFFFF

Definition at line 114 of file Encoding.h.

◆ SATP_MODE_OFF

#define SATP_MODE_OFF   0

Definition at line 116 of file Encoding.h.

◆ SATP_MODE_SV32

#define SATP_MODE_SV32   1

Definition at line 117 of file Encoding.h.

◆ SATP_MODE_SV39

#define SATP_MODE_SV39   8

Definition at line 118 of file Encoding.h.

◆ SATP_MODE_SV48

#define SATP_MODE_SV48   9

Definition at line 119 of file Encoding.h.

◆ SATP_MODE_SV57

#define SATP_MODE_SV57   10

Definition at line 120 of file Encoding.h.

◆ SATP_MODE_SV64

#define SATP_MODE_SV64   11

Definition at line 121 of file Encoding.h.

◆ SATP_PPN_MASK

#define SATP_PPN_MASK   ((0x1ULL << 44ULL) - 1ULL)

Definition at line 107 of file Encoding.h.

◆ SIP_SSIP

#define SIP_SSIP   MIP_SSIP

Definition at line 93 of file Encoding.h.

◆ SIP_STIP

#define SIP_STIP   MIP_STIP

Definition at line 94 of file Encoding.h.

◆ SSTATUS32_SD

#define SSTATUS32_SD   0x80000000

Definition at line 79 of file Encoding.h.

◆ SSTATUS64_SD

#define SSTATUS64_SD   0x8000000000000000

Definition at line 81 of file Encoding.h.

◆ SSTATUS_FS

#define SSTATUS_FS   0x00006000

Definition at line 75 of file Encoding.h.

◆ SSTATUS_MXR

#define SSTATUS_MXR   0x00080000

Definition at line 78 of file Encoding.h.

◆ SSTATUS_SIE

#define SSTATUS_SIE   0x00000002

Definition at line 71 of file Encoding.h.

◆ SSTATUS_SPIE

#define SSTATUS_SPIE   0x00000020

Definition at line 73 of file Encoding.h.

◆ SSTATUS_SPP

#define SSTATUS_SPP   0x00000100

Definition at line 74 of file Encoding.h.

◆ SSTATUS_SUM

#define SSTATUS_SUM   0x00040000

Definition at line 77 of file Encoding.h.

◆ SSTATUS_UIE

#define SSTATUS_UIE   0x00000001

Definition at line 70 of file Encoding.h.

◆ SSTATUS_UPIE

#define SSTATUS_UPIE   0x00000010

Definition at line 72 of file Encoding.h.

◆ SSTATUS_UXL

#define SSTATUS_UXL   0x0000000300000000

Definition at line 80 of file Encoding.h.

◆ SSTATUS_XS

#define SSTATUS_XS   0x00018000

Definition at line 76 of file Encoding.h.

◆ VPN_OFFSET

#define VPN_OFFSET   9

Definition at line 105 of file Encoding.h.