aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorMichal Simek <michal.simek@xilinx.com>2021-05-27 11:40:09 +0200
committerMichal Simek <michal.simek@xilinx.com>2021-06-23 09:48:36 +0200
commitbe2d1a87c73b3f722fc5b0438d780014579a43de (patch)
treeb4cc0298b7829ebe80ee01e9400613393bf17893 /common
parent3972ae65e43ad3a2a4f4c96cdaab5ca1863fe234 (diff)
downloadu-boot-be2d1a87c73b3f722fc5b0438d780014579a43de.zip
u-boot-be2d1a87c73b3f722fc5b0438d780014579a43de.tar.gz
u-boot-be2d1a87c73b3f722fc5b0438d780014579a43de.tar.bz2
spl: fit: Also record architecture in /fit-images
On ARM64 secure OS can run as 64bit or 32bit that's why it is necessary to record information about architecture that other code can read it and properly pass it to TF-A and start in 64bit or 32bit mode. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common')
-rw-r--r--common/fdt_support.c4
-rw-r--r--common/spl/spl_fit.c3
2 files changed, 5 insertions, 2 deletions
diff --git a/common/fdt_support.c b/common/fdt_support.c
index a9a32df..240f1e5 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -594,7 +594,7 @@ void fdt_fixup_ethernet(void *fdt)
int fdt_record_loadable(void *blob, u32 index, const char *name,
uintptr_t load_addr, u32 size, uintptr_t entry_point,
- const char *type, const char *os)
+ const char *type, const char *os, const char *arch)
{
int err, node;
@@ -622,6 +622,8 @@ int fdt_record_loadable(void *blob, u32 index, const char *name,
fdt_setprop_string(blob, node, "type", type);
if (os)
fdt_setprop_string(blob, node, "os", os);
+ if (arch)
+ fdt_setprop_string(blob, node, "arch", arch);
return node;
}
diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
index caddf51..f6c4753 100644
--- a/common/spl/spl_fit.c
+++ b/common/spl/spl_fit.c
@@ -480,7 +480,8 @@ static int spl_fit_record_loadable(const struct spl_fit_info *ctx, int index,
ret = fdt_record_loadable(blob, index, name, image->load_addr,
image->size, image->entry_point,
fdt_getprop(ctx->fit, node, "type", NULL),
- fdt_getprop(ctx->fit, node, "os", NULL));
+ fdt_getprop(ctx->fit, node, "os", NULL),
+ fdt_getprop(ctx->fit, node, "arch", NULL));
return ret;
}