Implement the function `ioremap_attr` for MPU systems.
Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
---
xen/arch/arm/mpu/mm.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index c5128244b7..3570ce6b27 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -475,8 +475,13 @@ void free_init_memory(void)
void __iomem *ioremap_attr(paddr_t start, size_t len, unsigned int flags)
{
- BUG_ON("unimplemented");
- return NULL;
+ paddr_t start_pg = round_pgdown(start);
+ paddr_t end_pg = round_pgup(start_pg + len);
+ if ( xen_mpumap_update(start_pg, end_pg, flags) )
+ return NULL;
+
+ /* Mapped or already mapped */
+ return maddr_to_virt(start_pg);
}
/*
--
2.43.0