aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/drivers/tzc380.c12
-rw-r--r--core/include/drivers/tzc380.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/core/drivers/tzc380.c b/core/drivers/tzc380.c
index 3cebddf6..2827cfb5 100644
--- a/core/drivers/tzc380.c
+++ b/core/drivers/tzc380.c
@@ -62,6 +62,11 @@ static void tzc_write_action(vaddr_t base, enum tzc_action action)
io_write32(base + ACTION_OFF, action);
}
+static uint32_t tzc_read_action(vaddr_t base)
+{
+ return io_read32(base + ACTION_OFF);
+}
+
static void tzc_write_region_base_low(vaddr_t base, uint32_t region,
uint32_t val)
{
@@ -204,6 +209,13 @@ void tzc_set_action(enum tzc_action action)
tzc_write_action(tzc.base, action);
}
+uint32_t tzc_get_action(void)
+{
+ assert(tzc.base);
+
+ return tzc_read_action(tzc.base);
+}
+
#if TRACE_LEVEL >= TRACE_DEBUG
static uint32_t tzc_read_region_base_low(vaddr_t base, uint32_t region)
diff --git a/core/include/drivers/tzc380.h b/core/include/drivers/tzc380.h
index 970be536..24708d0c 100644
--- a/core/include/drivers/tzc380.h
+++ b/core/include/drivers/tzc380.h
@@ -201,6 +201,7 @@ void tzc_configure_region(uint8_t region, vaddr_t region_base, uint32_t attr);
void tzc_region_enable(uint8_t region);
void tzc_security_inversion_en(vaddr_t base);
void tzc_set_action(enum tzc_action action);
+uint32_t tzc_get_action(void);
void tzc_fail_dump(void);
void tzc_int_clear(void);