1*6a0788bcSMarc Bonnici /* 2*6a0788bcSMarc Bonnici * Copyright (c) 2022, Arm Limited and Contributors. All rights reserved. 3*6a0788bcSMarc Bonnici * 4*6a0788bcSMarc Bonnici * SPDX-License-Identifier: BSD-3-Clause 5*6a0788bcSMarc Bonnici */ 6*6a0788bcSMarc Bonnici 7*6a0788bcSMarc Bonnici #include <platform_def.h> 8*6a0788bcSMarc Bonnici 9*6a0788bcSMarc Bonnici /* 10*6a0788bcSMarc Bonnici * On the FVP platform when using the EL3 SPMC implementation allocate the 11*6a0788bcSMarc Bonnici * datastore for tracking shared memory descriptors in the TZC DRAM section 12*6a0788bcSMarc Bonnici * to ensure sufficient storage can be allocated. 13*6a0788bcSMarc Bonnici * Provide an implementation of the accessor method to allow the datastore 14*6a0788bcSMarc Bonnici * details to be retrieved by the SPMC. 15*6a0788bcSMarc Bonnici * The SPMC will take care of initializing the memory region. 16*6a0788bcSMarc Bonnici */ 17*6a0788bcSMarc Bonnici 18*6a0788bcSMarc Bonnici #define PLAT_SPMC_SHMEM_DATASTORE_SIZE 512 * 1024 19*6a0788bcSMarc Bonnici 20*6a0788bcSMarc Bonnici __section("arm_el3_tzc_dram") static uint8_t 21*6a0788bcSMarc Bonnici plat_spmc_shmem_datastore[PLAT_SPMC_SHMEM_DATASTORE_SIZE]; 22*6a0788bcSMarc Bonnici 23*6a0788bcSMarc Bonnici int plat_spmc_shmem_datastore_get(uint8_t **datastore, size_t *size) 24*6a0788bcSMarc Bonnici { 25*6a0788bcSMarc Bonnici *datastore = plat_spmc_shmem_datastore; 26*6a0788bcSMarc Bonnici *size = PLAT_SPMC_SHMEM_DATASTORE_SIZE; 27*6a0788bcSMarc Bonnici return 0; 28*6a0788bcSMarc Bonnici } 29