]> git.ipfire.org Git - thirdparty/qemu.git/commit
hw/riscv/riscv-iommu: Fix process directory table walk
authorJason Chien <jason.chien@sifive.com>
Sat, 1 Mar 2025 17:37:51 +0000 (01:37 +0800)
committerAlistair Francis <alistair.francis@wdc.com>
Wed, 19 Mar 2025 06:35:58 +0000 (16:35 +1000)
commit3ea8fb521d6161a64879b6f43fac46b4d80d2e39
treee34b2e7b2ca4da5a8388c4e999001a19ab456f80
parentd2c5759c8dd4c00195d4ebecc7d009e41df6baef
hw/riscv/riscv-iommu: Fix process directory table walk

The PPN field in a non-leaf PDT entry is positioned differently from that
in a leaf PDT entry. The original implementation incorrectly used the leaf
entry's PPN mask to extract the PPN from a non-leaf entry, leading to an
erroneous page table walk.

This commit introduces new macros to properly define the fields for
non-leaf PDT entries and corrects the page table walk.

Signed-off-by: Jason Chien <jason.chien@sifive.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20250301173751.9446-1-jason.chien@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
hw/riscv/riscv-iommu-bits.h
hw/riscv/riscv-iommu.c