summaryrefslogtreecommitdiff
path: root/drivers/firmware/scmi/smt.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/firmware/scmi/smt.c')
-rw-r--r--drivers/firmware/scmi/smt.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/firmware/scmi/smt.c b/drivers/firmware/scmi/smt.c
index 5eb78387344..237871559f0 100644
--- a/drivers/firmware/scmi/smt.c
+++ b/drivers/firmware/scmi/smt.c
@@ -62,11 +62,17 @@ int scmi_dt_get_smt_buffer(struct udevice *dev, struct scmi_smt *smt)
scmi_smt_enable_intr(smt, true);
#ifdef CONFIG_ARM
- if (dcache_status())
- mmu_set_region_dcache_behaviour(ALIGN_DOWN((uintptr_t)smt->buf, MMU_SECTION_SIZE),
- ALIGN(smt->size, MMU_SECTION_SIZE),
- DCACHE_OFF);
+ if (dcache_status()) {
+ u32 align_size;
+ if (IS_ENABLED(CONFIG_ARM64))
+ align_size = PAGE_SIZE;
+ else
+ align_size = MMU_SECTION_SIZE;
+
+ mmu_set_region_dcache_behaviour(ALIGN_DOWN((uintptr_t)smt->buf, align_size),
+ ALIGN(smt->size, align_size), DCACHE_OFF);
+ }
#endif
return 0;