summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <[email protected]>2025-01-29 18:04:34 +0100
committerMarek Vasut <[email protected]>2025-01-29 22:52:35 +0100
commite0df073bc0df843e0a3c5f9990defcbf2207c8b9 (patch)
treedbe294ae09eabada4aabfbcb28785a0397d4b512
parenta75792914fdf72314c739ecc6db5b73b41c595f9 (diff)
arm64: renesas: Deduplicate R-Car Gen3 and Gen4 SPL
Move R-Car Gen3 and Gen4 jump_to_image_no_args() into dedicated rcar64-spl.c file. The implementation of jump_to_image_no_args() is identical. No functional change. Reviewed-by: Quentin Schulz <[email protected]> Signed-off-by: Marek Vasut <[email protected]>
-rw-r--r--board/renesas/common/Makefile4
-rw-r--r--board/renesas/common/gen3-spl.c21
-rw-r--r--board/renesas/common/gen4-spl.c17
-rw-r--r--board/renesas/common/rcar64-spl.c24
4 files changed, 27 insertions, 39 deletions
diff --git a/board/renesas/common/Makefile b/board/renesas/common/Makefile
index 8c26c0afd90..347be5cc93c 100644
--- a/board/renesas/common/Makefile
+++ b/board/renesas/common/Makefile
@@ -17,7 +17,9 @@ endif
# 64 bit SoCs
ifdef CONFIG_RCAR_64
-ifndef CONFIG_XPL_BUILD
+ifdef CONFIG_XPL_BUILD
+obj-y += rcar64-spl.o
+else
obj-y += rcar64-common.o
endif
diff --git a/board/renesas/common/gen3-spl.c b/board/renesas/common/gen3-spl.c
index 44a20cef2df..9590b5d6a2e 100644
--- a/board/renesas/common/gen3-spl.c
+++ b/board/renesas/common/gen3-spl.c
@@ -5,13 +5,9 @@
* Copyright (C) 2019 Marek Vasut <[email protected]>
*/
-#include <cpu_func.h>
-#include <image.h>
#include <init.h>
-#include <log.h>
#include <asm/io.h>
#include <spl.h>
-#include <linux/bitops.h>
#define RCAR_CNTC_BASE 0xE6080000
#define CNTCR_EN BIT(0)
@@ -33,23 +29,6 @@ u32 spl_boot_device(void)
return BOOT_DEVICE_UART;
}
-void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
-{
- debug("image entry point: 0x%lx\n", spl_image->entry_point);
- if (spl_image->os == IH_OS_ARM_TRUSTED_FIRMWARE) {
- typedef void (*image_entry_arg_t)(int, int, int, int)
- __attribute__ ((noreturn));
- image_entry_arg_t image_entry =
- (image_entry_arg_t)(uintptr_t) spl_image->entry_point;
- image_entry(IH_MAGIC, CONFIG_SPL_TEXT_BASE, 0, 0);
- } else {
- typedef void __noreturn (*image_entry_noargs_t)(void);
- image_entry_noargs_t image_entry =
- (image_entry_noargs_t)spl_image->entry_point;
- image_entry();
- }
-}
-
void s_init(void)
{
}
diff --git a/board/renesas/common/gen4-spl.c b/board/renesas/common/gen4-spl.c
index 2aca8baf3dd..e46ef0a3075 100644
--- a/board/renesas/common/gen4-spl.c
+++ b/board/renesas/common/gen4-spl.c
@@ -76,23 +76,6 @@ struct legacy_img_hdr *spl_get_load_buffer(ssize_t offset, size_t size)
return map_sysmem(CONFIG_SYS_LOAD_ADDR + offset, 0);
}
-void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
-{
- debug("image entry point: 0x%lx\n", spl_image->entry_point);
- if (spl_image->os == IH_OS_ARM_TRUSTED_FIRMWARE) {
- typedef void (*image_entry_arg_t)(int, int, int, int)
- __attribute__ ((noreturn));
- image_entry_arg_t image_entry =
- (image_entry_arg_t)(uintptr_t) spl_image->entry_point;
- image_entry(IH_MAGIC, CONFIG_SPL_TEXT_BASE, 0, 0);
- } else {
- typedef void __noreturn (*image_entry_noargs_t)(void);
- image_entry_noargs_t image_entry =
- (image_entry_noargs_t)spl_image->entry_point;
- image_entry();
- }
-}
-
#define APMU_BASE 0xe6170000U
#define CL0GRP3_BIT BIT(3)
#define CL1GRP3_BIT BIT(7)
diff --git a/board/renesas/common/rcar64-spl.c b/board/renesas/common/rcar64-spl.c
new file mode 100644
index 00000000000..76f2bde924e
--- /dev/null
+++ b/board/renesas/common/rcar64-spl.c
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2024 Marek Vasut <[email protected]>
+ */
+
+#include <image.h>
+#include <spl.h>
+
+void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
+{
+ debug("image entry point: 0x%lx\n", spl_image->entry_point);
+ if (spl_image->os == IH_OS_ARM_TRUSTED_FIRMWARE) {
+ typedef void (*image_entry_arg_t)(int, int, int, int)
+ __attribute__ ((noreturn));
+ image_entry_arg_t image_entry =
+ (image_entry_arg_t)(uintptr_t) spl_image->entry_point;
+ image_entry(IH_MAGIC, CONFIG_SPL_TEXT_BASE, 0, 0);
+ } else {
+ typedef void __noreturn (*image_entry_noargs_t)(void);
+ image_entry_noargs_t image_entry =
+ (image_entry_noargs_t)spl_image->entry_point;
+ image_entry();
+ }
+}