xref: /rk3399_ARM-atf/plat/arm/board/fvp/fvp_el3_spmc.c (revision e8eb44182d0536aaa1ab45bd7576b2e0c5769dad)
16a0788bcSMarc Bonnici /*
26a0788bcSMarc Bonnici  * Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.
36a0788bcSMarc Bonnici  *
46a0788bcSMarc Bonnici  * SPDX-License-Identifier: BSD-3-Clause
56a0788bcSMarc Bonnici  */
6a8be4cd0SMarc Bonnici #include <services/el3_spmc_ffa_memory.h>
76a0788bcSMarc Bonnici 
86a0788bcSMarc Bonnici #include <platform_def.h>
96a0788bcSMarc Bonnici 
10*ba33528aSShruti Gupta IMPORT_SYM(uintptr_t, __PLAT_SPMC_SHMEM_DATASTORE_START__, DATASTORE_BASE);
116a0788bcSMarc Bonnici 
12*ba33528aSShruti Gupta __section(".arm_el3_tzc_dram") __unused static uint8_t
136a0788bcSMarc Bonnici plat_spmc_shmem_datastore[PLAT_SPMC_SHMEM_DATASTORE_SIZE];
146a0788bcSMarc Bonnici 
plat_spmc_shmem_datastore_get(uint8_t ** datastore,size_t * size)156a0788bcSMarc Bonnici int plat_spmc_shmem_datastore_get(uint8_t **datastore, size_t *size)
166a0788bcSMarc Bonnici {
17*ba33528aSShruti Gupta 	*datastore = (uint8_t *)DATASTORE_BASE;
186a0788bcSMarc Bonnici 	*size = PLAT_SPMC_SHMEM_DATASTORE_SIZE;
196a0788bcSMarc Bonnici 	return 0;
206a0788bcSMarc Bonnici }
21a8be4cd0SMarc Bonnici 
22a8be4cd0SMarc Bonnici /*
23a8be4cd0SMarc Bonnici  * Add dummy implementations of memory management related platform hooks.
24a8be4cd0SMarc Bonnici  * These can be used to implement platform specific functionality to support
25a8be4cd0SMarc Bonnici  * a memory sharing/lending operation.
26a8be4cd0SMarc Bonnici  *
27a8be4cd0SMarc Bonnici  * Note: The hooks must be located as part of the initial share request and
28a8be4cd0SMarc Bonnici  * final reclaim to prevent order dependencies with operations that may take
29a8be4cd0SMarc Bonnici  * place in the normal world without visibility of the SPMC.
30a8be4cd0SMarc Bonnici  */
plat_spmc_shmem_begin(struct ffa_mtd * desc)31a8be4cd0SMarc Bonnici int plat_spmc_shmem_begin(struct ffa_mtd *desc)
32a8be4cd0SMarc Bonnici {
33a8be4cd0SMarc Bonnici 	return 0;
34a8be4cd0SMarc Bonnici }
plat_spmc_shmem_reclaim(struct ffa_mtd * desc)35a8be4cd0SMarc Bonnici int plat_spmc_shmem_reclaim(struct ffa_mtd *desc)
36a8be4cd0SMarc Bonnici {
37a8be4cd0SMarc Bonnici 	return 0;
38a8be4cd0SMarc Bonnici }
39