stm32mp: allow calling optee_get_reserved_memory() from U-Boot

The optee_get_reserved_memory() function returns the OP-TEE base
address and size. The function gets these values from the
FDT. Currently, this function is defined only to be called in the SPL
phase. Move this function to a place where it can be invoked from the
main U-Boot phase, where it will be used to compute the ram_top
address.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
This commit is contained in:
Sughosh Ganu 2024-08-26 17:29:38 +05:30 committed by Tom Rini
parent cef34baad1
commit 5fe9e0deab
3 changed files with 29 additions and 16 deletions

View file

@ -14,9 +14,26 @@
#include <ram.h> #include <ram.h>
#include <asm/global_data.h> #include <asm/global_data.h>
#include <asm/system.h> #include <asm/system.h>
#include <mach/stm32mp.h>
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
int optee_get_reserved_memory(u32 *start, u32 *size)
{
fdt_addr_t fdt_mem_size;
fdt_addr_t fdt_start;
ofnode node;
node = ofnode_path("/reserved-memory/optee");
if (!ofnode_valid(node))
return -ENOENT;
fdt_start = ofnode_get_addr_size(node, "reg", &fdt_mem_size);
*start = fdt_start;
*size = fdt_mem_size;
return (fdt_start < 0) ? fdt_start : 0;
}
int dram_init(void) int dram_init(void)
{ {
struct ram_info ram; struct ram_info ram;

View file

@ -0,0 +1,11 @@
/* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */
/*
* Copyright (C) 2024, STMicroelectronics - All Rights Reserved
*/
#ifndef __MACH_STM32MP_H_
#define __MACH_STM32MP_H_
int optee_get_reserved_memory(u32 *start, u32 *size);
#endif

View file

@ -18,6 +18,7 @@
#include <asm/io.h> #include <asm/io.h>
#include <asm/arch/sys_proto.h> #include <asm/arch/sys_proto.h>
#include <mach/tzc.h> #include <mach/tzc.h>
#include <mach/stm32mp.h>
#include <linux/libfdt.h> #include <linux/libfdt.h>
u32 spl_boot_device(void) u32 spl_boot_device(void)
@ -110,22 +111,6 @@ uint32_t stm32mp_get_dram_size(void)
return ram.size; return ram.size;
} }
static int optee_get_reserved_memory(uint32_t *start, uint32_t *size)
{
fdt_addr_t fdt_mem_size;
fdt_addr_t fdt_start;
ofnode node;
node = ofnode_path("/reserved-memory/optee");
if (!ofnode_valid(node))
return -ENOENT;
fdt_start = ofnode_get_addr_size(node, "reg", &fdt_mem_size);
*start = fdt_start;
*size = fdt_mem_size;
return (fdt_start < 0) ? fdt_start : 0;
}
#define CFG_SHMEM_SIZE 0x200000 #define CFG_SHMEM_SIZE 0x200000
#define STM32_TZC_NSID_ALL 0xffff #define STM32_TZC_NSID_ALL 0xffff
#define STM32_TZC_FILTER_ALL 3 #define STM32_TZC_FILTER_ALL 3