Skip to content

Commit 0288a3d

Browse files
authored
Add unratified Smclic, Ssclic, Smclicshv extensions
Spec: https://github.com/riscv/riscv-fast-interrupt Tests: riscv-non-isa/riscv-arch-test#436
1 parent 5819f81 commit 0288a3d

File tree

5 files changed

+21
-0
lines changed

5 files changed

+21
-0
lines changed

c_emulator/riscv_platform.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,16 @@ mach_bits plat_clint_size(unit u)
113113
return rv_clint_size;
114114
}
115115

116+
mach_bits plat_clic_base(unit u)
117+
{
118+
return rv_clic_base;
119+
}
120+
121+
mach_bits plat_clic_size(unit u)
122+
{
123+
return rv_clic_size;
124+
}
125+
116126
unit load_reservation(mach_bits addr)
117127
{
118128
reservation = addr;

c_emulator/riscv_platform.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ mach_bits plat_get_16_random_bits();
2929
mach_bits plat_clint_base(unit);
3030
mach_bits plat_clint_size(unit);
3131

32+
mach_bits plat_clic_base(unit);
33+
mach_bits plat_clic_size(unit);
34+
3235
bool speculate_conditional(unit);
3336
unit load_reservation(mach_bits);
3437
bool match_reservation(mach_bits);

c_emulator/riscv_platform_impl.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ uint64_t rv_16_random_bits(void)
4242
uint64_t rv_clint_base = UINT64_C(0x2000000);
4343
uint64_t rv_clint_size = UINT64_C(0xc0000);
4444

45+
uint64_t rv_clic_base = UINT64_C(0x4000000);
46+
uint64_t rv_clic_size = UINT64_C(0xc0000);
47+
4548
uint64_t rv_htif_tohost = UINT64_C(0x80001000);
4649
uint64_t rv_insns_per_tick = UINT64_C(100);
4750

c_emulator/riscv_platform_impl.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ extern uint64_t rv_16_random_bits(void);
3434
extern uint64_t rv_clint_base;
3535
extern uint64_t rv_clint_size;
3636

37+
extern uint64_t rv_clic_base;
38+
extern uint64_t rv_clic_size;
39+
3740
extern uint64_t rv_htif_tohost;
3841
extern uint64_t rv_insns_per_tick;
3942

c_emulator/riscv_sim.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,8 @@ void init_sail(uint64_t elf_entry)
616616
rv_rom_size = UINT64_C(0);
617617
rv_clint_base = UINT64_C(0);
618618
rv_clint_size = UINT64_C(0);
619+
rv_clic_base = UINT64_C(0);
620+
rv_clic_size = UINT64_C(0);
619621
rv_htif_tohost = UINT64_C(0);
620622
zPC = elf_entry;
621623
} else

0 commit comments

Comments
 (0)