mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 18:23:57 -06:00
hw/riscv/riscv-iommu: add Address Translation Cache (IOATC)
The RISC-V IOMMU spec predicts that the IOMMU can use translation caches to hold entries from the DDT. This includes implementation for all cache commands that are marked as 'not implemented'. There are some artifacts included in the cache that predicts s-stage and g-stage elements, although we don't support it yet. We'll introduce them next. Signed-off-by: Tomasz Jeznach <tjeznach@rivosinc.com> Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Reviewed-by: Frank Chang <frank.chang@sifive.com> Acked-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20241016204038.649340-9-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
40b44316d8
commit
9d085a1c3c
2 changed files with 204 additions and 5 deletions
|
@ -69,6 +69,9 @@ struct RISCVIOMMUState {
|
|||
|
||||
GHashTable *ctx_cache; /* Device translation Context Cache */
|
||||
|
||||
GHashTable *iot_cache; /* IO Translated Address Cache */
|
||||
unsigned iot_limit; /* IO Translation Cache size limit */
|
||||
|
||||
/* MMIO Hardware Interface */
|
||||
MemoryRegion regs_mr;
|
||||
uint8_t *regs_rw; /* register state (user write) */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue