arm64/sysreg: Move POR_EL0_INIT to asm/por.h
authorKevin Brodsky <kevin.brodsky@arm.com>
Wed, 19 Feb 2025 16:40:29 +0000 (16:40 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 10 Mar 2025 18:10:41 +0000 (18:10 +0000)
The value of POR_EL0_INIT is not architectural, it is a software
decision. Since we have a dedicated header for POR_ELx, we might as
well define POR_EL0_INIT there.

While at it also define POR_EL0_INIT using POR_ELx_PERM_PREP(),
making it clearer that we are setting permissions for POIndex/pkey
0.

Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
Link: https://lore.kernel.org/r/20250219164029.2309119-4-kevin.brodsky@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/por.h
arch/arm64/include/asm/sysreg.h

index e6bf00b..d913d5b 100644 (file)
@@ -8,6 +8,8 @@
 
 #include <asm/sysreg.h>
 
+#define POR_EL0_INIT   POR_ELx_PERM_PREP(0, POE_RWX)
+
 static inline bool por_elx_allows_read(u64 por, u8 pkey)
 {
        u8 perm = POR_ELx_PERM_GET(pkey, por);
index 034e057..e3252f8 100644 (file)
 #define POR_ELx_PERM_GET(idx, reg)     (((reg) >> POR_ELx_PERM_SHIFT(idx)) & POE_MASK)
 #define POR_ELx_PERM_PREP(idx, perm)   (((perm) & POE_MASK) << POR_ELx_PERM_SHIFT(idx))
 
-/* Initial value for Permission Overlay Extension for EL0 */
-#define POR_EL0_INIT   POE_RWX
-
 /*
  * Definitions for Guarded Control Stack
  */