mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
Merge patch series "Move DRAM address of ATF"
Andrew Davis <afd@ti.com> says: Explanation for this series is mostly in [4/6]. First 3 patches should be safe to take independent of the last 3.
This commit is contained in:
@@ -105,8 +105,8 @@
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
os = "tee";
|
||||
load = <0x9e800000>;
|
||||
entry = <0x9e800000>;
|
||||
load = <CONFIG_K3_OPTEE_LOAD_ADDR>;
|
||||
entry = <CONFIG_K3_OPTEE_LOAD_ADDR>;
|
||||
tee-os {
|
||||
filename = "tee-raw.bin";
|
||||
};
|
||||
|
||||
@@ -51,8 +51,8 @@
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
os = "tee";
|
||||
load = <0x9e800000>;
|
||||
entry = <0x9e800000>;
|
||||
load = <CONFIG_K3_OPTEE_LOAD_ADDR>;
|
||||
entry = <CONFIG_K3_OPTEE_LOAD_ADDR>;
|
||||
tee-os {
|
||||
};
|
||||
};
|
||||
|
||||
@@ -286,8 +286,8 @@
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
os = "tee";
|
||||
load = <0x9e800000>;
|
||||
entry = <0x9e800000>;
|
||||
load = <CONFIG_K3_OPTEE_LOAD_ADDR>;
|
||||
entry = <CONFIG_K3_OPTEE_LOAD_ADDR>;
|
||||
ti-secure {
|
||||
content = <&tee>;
|
||||
keyfile = "custMpk.pem";
|
||||
@@ -357,8 +357,8 @@
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
os = "tee";
|
||||
load = <0x9e800000>;
|
||||
entry = <0x9e800000>;
|
||||
load = <CONFIG_K3_OPTEE_LOAD_ADDR>;
|
||||
entry = <CONFIG_K3_OPTEE_LOAD_ADDR>;
|
||||
tee-os {
|
||||
filename = "tee-raw.bin";
|
||||
optional;
|
||||
|
||||
@@ -248,8 +248,8 @@
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
os = "tee";
|
||||
load = <0x9e800000>;
|
||||
entry = <0x9e800000>;
|
||||
load = <CONFIG_K3_OPTEE_LOAD_ADDR>;
|
||||
entry = <CONFIG_K3_OPTEE_LOAD_ADDR>;
|
||||
tee-os {
|
||||
filename = "tee-raw.bin";
|
||||
};
|
||||
|
||||
@@ -118,9 +118,17 @@ config K3_EARLY_CONS_IDX
|
||||
|
||||
config K3_ATF_LOAD_ADDR
|
||||
hex "Load address of ATF image"
|
||||
default 0x80000000 if (SOC_K3_AM625 || SOC_K3_AM62A7)
|
||||
default 0x70000000
|
||||
help
|
||||
The load address for the ATF image. This value defaults to 0x70000000
|
||||
The load address for the ATF image. This value is used to build the
|
||||
FIT image header that places ATF in memory where it will run.
|
||||
|
||||
config K3_OPTEE_LOAD_ADDR
|
||||
hex "Load address of OPTEE image"
|
||||
default 0x9e800000
|
||||
help
|
||||
The load address for the OPTEE image. This value defaults to 0x9e800000
|
||||
if not provided in the board defconfig file.
|
||||
|
||||
config K3_DM_FW
|
||||
|
||||
@@ -11,6 +11,7 @@ obj-$(CONFIG_SOC_K3_AM654) += am654_fdt.o
|
||||
obj-$(CONFIG_SOC_K3_J721E) += j721e_fdt.o
|
||||
obj-$(CONFIG_SOC_K3_J721S2) += j721s2_fdt.o
|
||||
obj-$(CONFIG_SOC_K3_AM625) += am625_fdt.o
|
||||
obj-$(CONFIG_SOC_K3_AM62A7) += am62a7_fdt.o
|
||||
obj-$(CONFIG_SOC_K3_J784S4) += j784s4_fdt.o
|
||||
endif
|
||||
ifeq ($(CONFIG_SPL_BUILD),y)
|
||||
|
||||
@@ -80,6 +80,8 @@ int ft_system_setup(void *blob, struct bd_info *bd)
|
||||
fdt_fixup_gpu_nodes_am625(blob, k3_has_gpu());
|
||||
fdt_fixup_pru_node_am625(blob, k3_has_pru());
|
||||
fdt_fixup_thermal_zone_nodes_am625(blob, k3_get_max_temp());
|
||||
fdt_fixup_reserved(blob, "tfa", CONFIG_K3_ATF_LOAD_ADDR, 0x80000);
|
||||
fdt_fixup_reserved(blob, "optee", CONFIG_K3_OPTEE_LOAD_ADDR, 0x1800000);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
16
arch/arm/mach-k3/am62a7_fdt.c
Normal file
16
arch/arm/mach-k3/am62a7_fdt.c
Normal file
@@ -0,0 +1,16 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
|
||||
*/
|
||||
|
||||
#include <asm/hardware.h>
|
||||
#include "common_fdt.h"
|
||||
#include <fdt_support.h>
|
||||
|
||||
int ft_system_setup(void *blob, struct bd_info *bd)
|
||||
{
|
||||
fdt_fixup_reserved(blob, "tfa", CONFIG_K3_ATF_LOAD_ADDR, 0x80000);
|
||||
fdt_fixup_reserved(blob, "optee", CONFIG_K3_OPTEE_LOAD_ADDR, 0x1800000);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -13,6 +13,7 @@ config TARGET_AM62A7_A53_EVM
|
||||
bool "TI K3 based AM62A7 EVM running on A53"
|
||||
select ARM64
|
||||
select BINMAN
|
||||
select OF_SYSTEM_SETUP
|
||||
imply BOARD
|
||||
imply SPL_BOARD
|
||||
imply TI_I2C_BOARD_DETECT
|
||||
|
||||
@@ -13,6 +13,7 @@ config TARGET_AM625_A53_EVM
|
||||
bool "TI K3 based AM625 EVM running on A53"
|
||||
select ARM64
|
||||
select BINMAN
|
||||
select OF_SYSTEM_SETUP
|
||||
|
||||
config TARGET_AM625_R5_EVM
|
||||
bool "TI K3 based AM625 EVM running on R5"
|
||||
@@ -29,6 +30,7 @@ config TARGET_PHYCORE_AM62X_A53
|
||||
bool "PHYTEC phyCORE-AM62x running on A53"
|
||||
select ARM64
|
||||
select BINMAN
|
||||
select OF_SYSTEM_SETUP
|
||||
|
||||
config TARGET_PHYCORE_AM62X_R5
|
||||
bool "PHYTEC phyCORE-AM62x running on R5"
|
||||
@@ -45,6 +47,7 @@ config TARGET_VERDIN_AM62_A53
|
||||
bool "Toradex Verdin AM62 running on A53"
|
||||
select ARM64
|
||||
select BINMAN
|
||||
select OF_SYSTEM_SETUP
|
||||
|
||||
config TARGET_VERDIN_AM62_R5
|
||||
bool "Toradex Verdin AM62 running on R5"
|
||||
|
||||
@@ -112,3 +112,55 @@ int fdt_del_node_path(void *blob, const char *path)
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int fdt_fixup_reserved(void *blob, const char *name,
|
||||
unsigned int new_address, unsigned int new_size)
|
||||
{
|
||||
int nodeoffset, subnode;
|
||||
int ret;
|
||||
|
||||
/* Find reserved-memory */
|
||||
nodeoffset = fdt_subnode_offset(blob, 0, "reserved-memory");
|
||||
if (nodeoffset < 0) {
|
||||
debug("Could not find reserved-memory node\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Find existing matching subnode and remove it */
|
||||
fdt_for_each_subnode(subnode, blob, nodeoffset) {
|
||||
const char *node_name;
|
||||
fdt_addr_t addr;
|
||||
fdt_size_t size;
|
||||
|
||||
/* Name matching */
|
||||
node_name = fdt_get_name(blob, subnode, NULL);
|
||||
if (!name)
|
||||
return -EINVAL;
|
||||
if (!strncmp(node_name, name, strlen(name))) {
|
||||
/* Read out old size first */
|
||||
addr = fdtdec_get_addr_size(blob, subnode, "reg", &size);
|
||||
if (addr == FDT_ADDR_T_NONE)
|
||||
return -EINVAL;
|
||||
new_size = size;
|
||||
|
||||
/* Delete node */
|
||||
ret = fdt_del_node(blob, subnode);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Only one matching node */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
struct fdt_memory carveout = {
|
||||
.start = new_address,
|
||||
.end = new_address + new_size - 1,
|
||||
};
|
||||
ret = fdtdec_add_reserved_memory(blob, name, &carveout, NULL, 0, NULL,
|
||||
FDTDEC_RESERVED_MEMORY_NO_MAP);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -8,5 +8,7 @@
|
||||
|
||||
int fdt_fixup_msmc_ram_k3(void *blob);
|
||||
int fdt_del_node_path(void *blob, const char *path);
|
||||
int fdt_fixup_reserved(void *blob, const char *name,
|
||||
unsigned int new_address, unsigned int new_size);
|
||||
|
||||
#endif /* _COMMON_FDT_H */
|
||||
|
||||
@@ -5,7 +5,6 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_NR_DRAM_BANKS=2
|
||||
CONFIG_SOC_K3_AM62A7=y
|
||||
CONFIG_K3_ATF_LOAD_ADDR=0x9e780000
|
||||
CONFIG_TARGET_AM62A7_A53_EVM=y
|
||||
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
|
||||
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80480000
|
||||
|
||||
@@ -6,7 +6,6 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_NR_DRAM_BANKS=2
|
||||
CONFIG_SOC_K3_AM625=y
|
||||
CONFIG_K3_ATF_LOAD_ADDR=0x9e780000
|
||||
CONFIG_TARGET_AM625_A53_BEAGLEPLAY=y
|
||||
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
|
||||
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80b80000
|
||||
|
||||
@@ -5,7 +5,6 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_NR_DRAM_BANKS=2
|
||||
CONFIG_SOC_K3_AM625=y
|
||||
CONFIG_K3_ATF_LOAD_ADDR=0x9e780000
|
||||
CONFIG_TARGET_AM625_A53_EVM=y
|
||||
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
|
||||
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80b80000
|
||||
|
||||
@@ -5,7 +5,6 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_NR_DRAM_BANKS=2
|
||||
CONFIG_SOC_K3_AM625=y
|
||||
CONFIG_K3_ATF_LOAD_ADDR=0x9e780000
|
||||
CONFIG_TARGET_PHYCORE_AM62X_A53=y
|
||||
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
|
||||
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80b80000
|
||||
|
||||
@@ -8,7 +8,6 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||
CONFIG_NR_DRAM_BANKS=2
|
||||
CONFIG_SOC_K3_AM625=y
|
||||
CONFIG_K3_ATF_LOAD_ADDR=0x9e780000
|
||||
CONFIG_TARGET_VERDIN_AM62_A53=y
|
||||
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
|
||||
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80b80000
|
||||
@@ -38,7 +37,6 @@ CONFIG_LEGACY_IMAGE_FORMAT=y
|
||||
CONFIG_SYS_BOOTM_LEN=0x40000000
|
||||
CONFIG_DISTRO_DEFAULTS=y
|
||||
CONFIG_BOOTDELAY=1
|
||||
CONFIG_OF_SYSTEM_SETUP=y
|
||||
CONFIG_USE_PREBOOT=y
|
||||
CONFIG_PREBOOT="test -n ${fdtfile} || setenv fdtfile k3-am625-verdin-${variant}-${fdt_board}.dtb"
|
||||
CONFIG_LOG=y
|
||||
|
||||
Reference in New Issue
Block a user