Hi, Please have a look at https://lists.xenproject.org/archives/html/xen-devel/2022-11/msg01465.html for the context.
The benefits of using 32 bit physical addresses are as follows :- 1. It helps to use Xen on platforms (for eg R52) which supports 32 bit physical addresses and has no support for large page address extension. On 32 bit MPU systems which supports flat-mapping (for eg R52), it helps to translate 32 bit VA into 32 bit PA. 2. It also helps in code optimization when the underlying platform does not use large page address extension. The following points are to be noted :- 1. Device tree always use u64 for address and size. The caller needs to translate between u64 and u32 (when 32 bit physical addressing is used). 2. Currently, we have enabled this option for Arm_32 as the MMU for Arm_64 uses 48 bit physical addressing. 3. https://lists.xenproject.org/archives/html/xen-devel/2022-12/msg00117.html has been added to this series. Ayan Kumar Halder (9): xen/arm: Remove the extra assignment xen/arm: Define translate_dt_address_size() for the translation between u64 and paddr_t xen/arm: Always use 'u64' instead of 'paddr_t' for address and size in DT xen/arm: Use translate_dt_address_size() to translate between device tree addr/size and paddr_t xen/arm: Use 'PRIpaddr' to display 'paddr_t' variable xen/arm: Use 'u64' to represent 'unsigned long long' xen/arm: Restrict zeroeth_table_offset for ARM_64 xen/arm: Other adaptations required to support 32bit paddr xen/arm: Introduce ARM_PA_32 to support 32 bit physical address xen/arch/arm/Kconfig | 9 ++++ xen/arch/arm/bootfdt.c | 22 +++++---- xen/arch/arm/domain_build.c | 69 ++++++++++++++++++++-------- xen/arch/arm/gic-v2.c | 39 ++++++++++++---- xen/arch/arm/gic-v3.c | 33 +++++++++++-- xen/arch/arm/guest_walk.c | 2 + xen/arch/arm/include/asm/lpae.h | 10 ++++ xen/arch/arm/include/asm/page-bits.h | 2 + xen/arch/arm/include/asm/platform.h | 26 +++++++++++ xen/arch/arm/include/asm/types.h | 7 +++ xen/arch/arm/mm.c | 6 ++- xen/arch/arm/platforms/brcm.c | 9 +++- xen/arch/arm/platforms/exynos5.c | 48 +++++++++++++------ xen/arch/arm/platforms/sunxi.c | 11 ++++- xen/arch/arm/setup.c | 18 +++++++- xen/drivers/char/exynos4210-uart.c | 10 +++- xen/drivers/char/ns16550.c | 16 ++++--- xen/drivers/char/omap-uart.c | 10 +++- xen/drivers/char/pl011.c | 10 +++- xen/drivers/char/scif-uart.c | 10 +++- xen/drivers/passthrough/arm/smmu.c | 18 ++++++-- xen/include/xen/serial.h | 2 +- 22 files changed, 305 insertions(+), 82 deletions(-) -- 2.17.1