diff options
author | Edgar E. Iglesias <edgar.iglesias@amd.com> | 2024-04-30 10:26:45 +0200 |
---|---|---|
committer | Edgar E. Iglesias <edgar.iglesias@amd.com> | 2024-06-09 20:16:14 +0200 |
commit | 9ecdd4bf08dfe4a37e16b8a8b228575aff641468 (patch) | |
tree | bd717509502ee1f9866eed25a15033edba8f81f7 /hw/xen/xen-hvm-common.c | |
parent | 49a7202979e49c7c9c02461fce497a868ef6b143 (diff) |
xen: mapcache: Add support for grant mappings
Add a second mapcache for grant mappings. The mapcache for
grants needs to work with XC_PAGE_SIZE granularity since
we can't map larger ranges than what has been granted to us.
Like with foreign mappings (xen_memory), machines using grants
are expected to initialize the xen_grants MR and map it
into their address-map accordingly.
CC: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Diffstat (limited to 'hw/xen/xen-hvm-common.c')
-rw-r--r-- | hw/xen/xen-hvm-common.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/hw/xen/xen-hvm-common.c b/hw/xen/xen-hvm-common.c index a0a0252da0..b8ace1c368 100644 --- a/hw/xen/xen-hvm-common.c +++ b/hw/xen/xen-hvm-common.c @@ -10,12 +10,18 @@ #include "hw/boards.h" #include "hw/xen/arch_hvm.h" -MemoryRegion xen_memory; +MemoryRegion xen_memory, xen_grants; -/* Check for xen memory. */ +/* Check for any kind of xen memory, foreign mappings or grants. */ bool xen_mr_is_memory(MemoryRegion *mr) { - return mr == &xen_memory; + return mr == &xen_memory || mr == &xen_grants; +} + +/* Check specifically for grants. */ +bool xen_mr_is_grants(MemoryRegion *mr) +{ + return mr == &xen_grants; } void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size, MemoryRegion *mr, |