Hi Ayan, > On 28 Oct 2024, at 12:45, Ayan Kumar Halder <ayan.kumar.hal...@amd.com> wrote: > > From: Wei Chen <wei.c...@arm.com> > > On Armv8-A, Xen has a fixed virtual start address (link address too) for all > Armv8-A platforms. In an MMU based system, Xen can map its loaded address to > this virtual start address. So, on Armv8-A platforms, the Xen start address > does > not need to be configurable. But on Armv8-R platforms, there is no MMU to map > loaded address to a fixed virtual address and different platforms will have > very > different address space layout. So Xen cannot use a fixed physical address on > MPU based system and need to have it configurable. > > So, we introduce a Kconfig option for users to set the start address. The > start > address needs to be aligned to 4KB. We have a check for this alignment. > > MPU allows us to define regions which are 64 bits aligned. This restriction > comes from the bitfields of PRBAR, PRLAR (the lower 6 bits are 0 extended to > provide the base and limit address of a region). This means that the start > address of Xen needs to be at least 64 bits aligned (as it will correspond to > the start address of memory protection region). > > As for now Xen on MPU tries to use the same memory alignment restrictions as > it > has been for MMU. We have added a build assertion to ensure that the page size > is 4KB. Unlike MMU where the starting virtual address is 2MB, Xen on MPU needs > the start address to be 4KB (ie page size) aligned. > > In case if the user forgets to set the start address, then 0xffffffff is used > as default. This is to trigger the error (on alignment check) and thereby > prompt > user to set the start address. > > Also updated config.h so that it includes mpu/layout.h when CONFIG_MPU is > defined. > > Signed-off-by: Wei Chen <wei.c...@arm.com> > Signed-off-by: Jiamei.Xie <jiamei....@arm.com> > Signed-off-by: Ayan Kumar Halder <ayan.kumar.hal...@amd.com> > —
Looks good to me Reviewed-by: Luca Fancellu <luca.fance...@arm.com>