hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
u-boot/lib/optee_clientApi/OpteeClientInterface.c
....@@ -73,6 +73,20 @@
7373 flush_cache(aligned_input, aligned_len);
7474 }
7575
76
+static void crypto_invalidate_cacheline(uint32_t addr, uint32_t size)
77
+{
78
+ ulong alignment = CONFIG_SYS_CACHELINE_SIZE;
79
+ ulong aligned_input, aligned_len;
80
+
81
+ if (!addr || !size)
82
+ return;
83
+
84
+ /* Must invalidate dcache after crypto DMA write data region */
85
+ aligned_input = round_down(addr, alignment);
86
+ aligned_len = round_up(size + (addr - aligned_input), alignment);
87
+ invalidate_dcache_range(aligned_input, aligned_input + aligned_len);
88
+}
89
+
7690 static uint32_t trusty_base_write_security_data(char *filename,
7791 uint32_t filename_size,
7892 uint8_t *data,
....@@ -1014,6 +1028,8 @@
10141028 &TeecOperation,
10151029 &ErrorOrigin);
10161030
1031
+ crypto_invalidate_cacheline(dst_phys_addr, len);
1032
+
10171033 exit:
10181034 TEEC_ReleaseSharedMemory(&SharedMem_config);
10191035 TEEC_CloseSession(&TeecSession);