On 14/04/2025 18:45, Ayan Kumar Halder wrote:
> Create Boot-time MPU protection regions (similar to Armv8-R AArch64) for
> Armv8-R AArch32.
> Also, defined *_PRBAR macros for arm32. The only difference from arm64 is that
> XN is 1-bit for arm32.
> Define the system registers and macros in mpu/cpregs.h.
>
> Introduce WRITE_SYSREG_ASM() to write to system registers in assembly.
>
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.hal...@amd.com>
> Reviewed-by: Luca Fancellu <luca.fance...@arm.com>
> Tested-by: Luca Fancellu <luca.fance...@arm.com>
> ---
> Changes from
>
> v1 -
>
> 1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
> being done in enable_mmu(). All the mm related configurations happen in this
> function.
>
> 2. Fixed some typos.
>
> v2 -
> 1. Include the common prepare_xen_region.inc in head.S.
>
> 2. Define LOAD_SYSREG()/STORE_SYSREG() for arm32.
>
> v3 -
> 1. Rename STORE_SYSREG() as WRITE_SYSREG_ASM()
>
> 2. enable_boot_cpu_mm() is defined in head.S
>
> v4 -
> 1. *_PRBAR is moved to arm32/sysregs.h.
>
> 2. MPU specific CP15 system registers are defined in mpu/cpregs.h.
>
> v5 -
> 1. WRITE_SYSREG_ASM is enclosed within #ifdef __ASSEMBLY__
>
> 2. enable_mpu() clobbers r0 only.
>
> 3. Definitions in mpu/cpregs.h in enclosed within ARM_32.
>
> 4. Removed some #ifdefs and style changes.
>
> v6 -
> 1. Coding style issues.
>
> 2. Kept Luca's R-b and T-b as the changes should not impact the behavior.
Note for the future: Especially for T-b, it's better to drop the tags because
the series has not been tested in its current shape.
Reviewed-by: Michal Orzel <michal.or...@amd.com>
~Michal