qemu/target
Fea.Wang ab348b0982 target/riscv: Check memory access to meet svukte rule
Follow the Svukte spec, do the memory access address checking

1. Include instruction fetches or explicit memory accesses
2. System run in effective privilege U or VU
3. Check senvcfg[UKTE] being set, or hstatus[HUKTE] being set if
instruction is HLV, HLVX, HSV and execute from U mode to VU mode
4. Depend on Sv39 and check virtual addresses bit[SXLEN-1]
5. Raises a page-fault exception corresponding to the original access
type.

Ref: https://github.com/riscv/riscv-isa-manual/pull/1564/files

Signed-off-by: Frank Chang <frank.chang@sifive.com>
Signed-off-by: Fea.Wang <fea.wang@sifive.com>
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Jim Shu <jim.shu@sifive.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241203034932.25185-5-fea.wang@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2024-12-20 11:22:47 +10:00
..
alpha target/alpha: Set default NaN pattern explicitly 2024-12-11 15:31:05 +00:00
arm target/arm: Enable FEAT_XS for the max cpu 2024-12-17 15:17:46 +00:00
avr target/avr: Constify all Property 2024-12-15 12:53:54 -06:00
hexagon target/hexagon: Constify all Property 2024-12-15 12:53:57 -06:00
hppa target/hppa: Set default NaN pattern explicitly 2024-12-11 15:31:05 +00:00
i386 target/i386: Constify all Property 2024-12-15 12:54:02 -06:00
loongarch target/loongarch: Set default NaN pattern explicitly 2024-12-11 15:31:05 +00:00
m68k target/m68k: Set default NaN pattern explicitly 2024-12-11 15:31:06 +00:00
microblaze target/microblaze: Constify all Property 2024-12-15 12:54:05 -06:00
mips target/mips: Constify all Property 2024-12-15 12:54:07 -06:00
openrisc target/openrisc: Set default NaN pattern explicitly 2024-12-11 15:31:06 +00:00
ppc * rust: better integration with clippy, rustfmt and rustdoc 2024-12-12 18:40:32 -05:00
riscv target/riscv: Check memory access to meet svukte rule 2024-12-20 11:22:47 +10:00
rx target/rx: Set default NaN pattern explicitly 2024-12-11 15:31:07 +00:00
s390x target/s390x: Constify all Property 2024-12-15 12:54:12 -06:00
sh4 target/sh4: Set default NaN pattern explicitly 2024-12-11 15:31:06 +00:00
sparc target/sparc: Constify all Property and PropertyInfo 2024-12-15 12:54:15 -06:00
tricore target/tricore: Set default NaN pattern explicitly 2024-12-11 15:31:07 +00:00
xtensa * rust: better integration with clippy, rustfmt and rustdoc 2024-12-12 18:40:32 -05:00
Kconfig target/cris: Remove the deprecated CRIS target 2024-09-13 20:11:13 +02:00
meson.build target/cris: Remove the deprecated CRIS target 2024-09-13 20:11:13 +02:00