summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Powell <john.powell@arm.com>2026-05-18 12:29:33 -0500
committerJohn Powell <john.powell@arm.com>2026-06-30 14:56:26 +0000
commit779393ae1b092ec6f4e02c3a522b8e9ab8acd345 (patch)
tree8fb6cb8f66876357e37ecc80089c5d87aaf9f6bd
parent769380b33b0a20f6c05b22e6897680a9e28f573d (diff)
downloadarm-trusted-firmware-779393ae1b092ec6f4e02c3a522b8e9ab8acd345.tar.gz
arm-trusted-firmware-779393ae1b092ec6f4e02c3a522b8e9ab8acd345.zip
feat(lfa): xlat changes for BL31 LFA
This patch adds xlat library changes needed to support live activation of BL31 images. Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I3956542b7978133dddcb0d1ace5512b6cfbfedc0
-rw-r--r--include/lib/xlat_tables/xlat_tables_v2.h5
-rw-r--r--lib/xlat_tables_v2/xlat_tables_context.c7
2 files changed, 12 insertions, 0 deletions
diff --git a/include/lib/xlat_tables/xlat_tables_v2.h b/include/lib/xlat_tables/xlat_tables_v2.h
index bfc4e5ce0..88c23e15b 100644
--- a/include/lib/xlat_tables/xlat_tables_v2.h
+++ b/include/lib/xlat_tables/xlat_tables_v2.h
@@ -390,6 +390,11 @@ int xlat_change_mem_attributes_ctx(const xlat_ctx_t *ctx, uintptr_t base_va,
size_t size, uint32_t attr);
int xlat_change_mem_attributes(uintptr_t base_va, size_t size, uint32_t attr);
+#if ENABLE_LFA_BL31
+/* Returns a pointer to the current xlat table, only used during BL31 LFA */
+const xlat_ctx_t *get_xlat_tables(void);
+#endif
+
#ifdef PLAT_RO_XLAT_TABLES
/*
* Change the memory attributes of the memory region encompassing the higher
diff --git a/lib/xlat_tables_v2/xlat_tables_context.c b/lib/xlat_tables_v2/xlat_tables_context.c
index d6f809006..a648dd97a 100644
--- a/lib/xlat_tables_v2/xlat_tables_context.c
+++ b/lib/xlat_tables_v2/xlat_tables_context.c
@@ -120,6 +120,13 @@ int xlat_change_mem_attributes(uintptr_t base_va, size_t size, uint32_t attr)
return xlat_change_mem_attributes_ctx(&tf_xlat_ctx, base_va, size, attr);
}
+#if ENABLE_LFA_BL31
+const xlat_ctx_t *get_xlat_tables(void)
+{
+ return &tf_xlat_ctx;
+}
+#endif
+
#ifdef PLAT_RO_XLAT_TABLES
/* Change the memory attributes of the descriptors which resolve the address
* range that belongs to the translation tables themselves, which are by default