[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] xen/arm32: mpu: Stubs to build MPU for arm32
commit 62a4858dd576ec611178c4afbd9a5564412ca08e Author: Ayan Kumar Halder <ayan.kumar.halder@xxxxxxx> AuthorDate: Mon Apr 14 17:45:14 2025 +0100 Commit: Michal Orzel <michal.orzel@xxxxxxx> CommitDate: Wed Apr 16 08:50:13 2025 +0200 xen/arm32: mpu: Stubs to build MPU for arm32 Add stubs to enable compilation. is_xen_heap_page() and is_xen_heap_mfn() are not implemented for arm32 MPU. Thus, introduce the stubs for these functions in asm/mpu/mm.h and move the original code to asm/mmu/mm.h (as it is used for arm32 MMU based system). Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@xxxxxxx> Reviewed-by: Luca Fancellu <luca.fancellu@xxxxxxx> Reviewed-by: Michal Orzel <michal.orzel@xxxxxxx> Tested-by: Luca Fancellu <luca.fancellu@xxxxxxx> --- xen/arch/arm/arm32/mpu/Makefile | 2 ++ xen/arch/arm/arm32/mpu/p2m.c | 19 +++++++++++++++++ xen/arch/arm/arm32/mpu/smpboot.c | 26 ++++++++++++++++++++++ xen/arch/arm/include/asm/mm.h | 9 +------- xen/arch/arm/include/asm/mmu/mm.h | 7 ++++++ xen/arch/arm/include/asm/mpu/mm.h | 5 +++++ xen/arch/arm/mpu/Makefile | 1 + xen/arch/arm/mpu/domain-page.c | 45 +++++++++++++++++++++++++++++++++++++++ 8 files changed, 106 insertions(+), 8 deletions(-) diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile index 3340058c08..cf0540aecc 100644 --- a/xen/arch/arm/arm32/mpu/Makefile +++ b/xen/arch/arm/arm32/mpu/Makefile @@ -1 +1,3 @@ obj-y += head.o +obj-y += p2m.o +obj-y += smpboot.o diff --git a/xen/arch/arm/arm32/mpu/p2m.c b/xen/arch/arm/arm32/mpu/p2m.c new file mode 100644 index 0000000000..3d9abe4400 --- /dev/null +++ b/xen/arch/arm/arm32/mpu/p2m.c @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <asm/p2m.h> +#include <xen/bug.h> +#include <xen/init.h> + +void __init setup_virt_paging(void) +{ + BUG_ON("unimplemented"); +} + +/* + * Local variables: + * mode: C + * c-file-style: "BSD" + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/xen/arch/arm/arm32/mpu/smpboot.c b/xen/arch/arm/arm32/mpu/smpboot.c new file mode 100644 index 0000000000..5090f443f5 --- /dev/null +++ b/xen/arch/arm/arm32/mpu/smpboot.c @@ -0,0 +1,26 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <xen/bug.h> +#include <xen/errno.h> +#include <xen/mm.h> +#include <xen/stdbool.h> + +int prepare_secondary_mm(int cpu) +{ + BUG_ON("unimplemented"); + return -EINVAL; +} + +void update_boot_mapping(bool enable) +{ + BUG_ON("unimplemented"); +} + +/* + * Local variables: + * mode: C + * c-file-style: "BSD" + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h index fbffaccef4..5b67c0f8bb 100644 --- a/xen/arch/arm/include/asm/mm.h +++ b/xen/arch/arm/include/asm/mm.h @@ -170,14 +170,7 @@ struct page_info #define _PGC_need_scrub _PGC_allocated #define PGC_need_scrub PGC_allocated -#ifdef CONFIG_ARM_32 -#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page)) -#define is_xen_heap_mfn(mfn) ({ \ - unsigned long mfn_ = mfn_x(mfn); \ - (mfn_ >= mfn_x(directmap_mfn_start) && \ - mfn_ < mfn_x(directmap_mfn_end)); \ -}) -#else +#ifdef CONFIG_ARM_64 #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap) #define is_xen_heap_mfn(mfn) \ (mfn_valid(mfn) && is_xen_heap_page(mfn_to_page(mfn))) diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h index caba987edc..7f4d59137d 100644 --- a/xen/arch/arm/include/asm/mmu/mm.h +++ b/xen/arch/arm/include/asm/mmu/mm.h @@ -27,6 +27,13 @@ extern unsigned long directmap_base_pdx; }) #ifdef CONFIG_ARM_32 +#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page)) +#define is_xen_heap_mfn(mfn) ({ \ + unsigned long mfn_ = mfn_x(mfn); \ + (mfn_ >= mfn_x(directmap_mfn_start) && \ + mfn_ < mfn_x(directmap_mfn_end)); \ +}) + /** * Find the virtual address corresponding to a machine address * diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h index 86f33d9836..bfd840fa5d 100644 --- a/xen/arch/arm/include/asm/mpu/mm.h +++ b/xen/arch/arm/include/asm/mpu/mm.h @@ -13,6 +13,11 @@ extern struct page_info *frame_table; #define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK)) +#ifdef CONFIG_ARM_32 +#define is_xen_heap_page(page) ({ BUG_ON("unimplemented"); false; }) +#define is_xen_heap_mfn(mfn) ({ BUG_ON("unimplemented"); false; }) +#endif + /* On MPU systems there is no translation, ma == va. */ static inline void *maddr_to_virt(paddr_t ma) { diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile index 21bbc517b5..808e3e2cb3 100644 --- a/xen/arch/arm/mpu/Makefile +++ b/xen/arch/arm/mpu/Makefile @@ -1,3 +1,4 @@ +obj-$(CONFIG_ARM_32) += domain-page.o obj-y += mm.o obj-y += p2m.o obj-y += setup.init.o diff --git a/xen/arch/arm/mpu/domain-page.c b/xen/arch/arm/mpu/domain-page.c new file mode 100644 index 0000000000..df5e06b6db --- /dev/null +++ b/xen/arch/arm/mpu/domain-page.c @@ -0,0 +1,45 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <xen/bug.h> +#include <xen/domain_page.h> +#include <xen/mm-frame.h> +#include <xen/types.h> + +void *map_domain_page_global(mfn_t mfn) +{ + BUG_ON("unimplemented"); + return NULL; +} + +/* Map a page of domheap memory */ +void *map_domain_page(mfn_t mfn) +{ + BUG_ON("unimplemented"); + return NULL; +} + +/* Release a mapping taken with map_domain_page() */ +void unmap_domain_page(const void *ptr) +{ + BUG_ON("unimplemented"); +} + +mfn_t domain_page_map_to_mfn(const void *ptr) +{ + BUG_ON("unimplemented"); + return INVALID_MFN; +} + +void unmap_domain_page_global(const void *va) +{ + BUG_ON("unimplemented"); +} + +/* + * Local variables: + * mode: C + * c-file-style: "BSD" + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ -- generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |