Adding the dcache flushing and invalidation in the smc_send_mailbox()
At the same time replace the use of u64 with uintptr_t to ensure
compatibility across different architectures and correct the
pointer arithmetic for buffer end address calculation.

Signed-off-by: Mahesh Rao <mahesh....@altera.com>
Signed-off-by: Boon Khai Ng <boon.khai...@altera.com>
---
 arch/arm/mach-socfpga/smc_api.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-socfpga/smc_api.c b/arch/arm/mach-socfpga/smc_api.c
index b212a94b321..a531030f5be 100644
--- a/arch/arm/mach-socfpga/smc_api.c
+++ b/arch/arm/mach-socfpga/smc_api.c
@@ -57,6 +57,7 @@ int smc_send_mailbox(u32 cmd, u32 len, u32 *arg, u8 urgent, 
u32 *resp_buf_len,
                         resp, ARRAY_SIZE(resp));
 
        if (ret == INTEL_SIP_SMC_STATUS_OK && resp_buf && resp_buf_len) {
+               invalidate_dcache_range((uintptr_t)resp_buf, 
(uintptr_t)(resp_buf + *resp_buf_len));
                if (!resp[0])
                        *resp_buf_len = resp[1];
        }
-- 
2.35.3

Reply via email to