mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-22 04:44:46 +00:00
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:
parent
cef34baad1
commit
5fe9e0deab
3 changed files with 29 additions and 16 deletions
|
@ -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;
|
||||||
|
|
11
arch/arm/mach-stm32mp/include/mach/stm32mp.h
Normal file
11
arch/arm/mach-stm32mp/include/mach/stm32mp.h
Normal 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
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue