diff mbox series

[8/8] arm64: renesas: Deduplicate R-Car Gen3 and Gen4 SPL

Message ID 20250112223528.179828-8-marek.vasut+renesas@mailbox.org
State Accepted
Delegated to: Marek Vasut
Headers show
Series [1/8] ARM: renesas: Rename board/renesas/rcar-common to board/renesas/common | expand

Commit Message

Marek Vasut Jan. 12, 2025, 10:34 p.m. UTC
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.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
---
Cc: Adam Ford <aford173@gmail.com>
Cc: Biju Das <biju.das.jz@bp.renesas.com>
Cc: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Paul Barker <paul.barker.ct@bp.renesas.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: u-boot@lists.denx.de
---
 board/renesas/common/Makefile     |  4 +++-
 board/renesas/common/gen3-spl.c   | 21 ---------------------
 board/renesas/common/gen4-spl.c   | 17 -----------------
 board/renesas/common/rcar64-spl.c | 24 ++++++++++++++++++++++++
 4 files changed, 27 insertions(+), 39 deletions(-)
 create mode 100644 board/renesas/common/rcar64-spl.c

Comments

Quentin Schulz Jan. 15, 2025, 10:34 a.m. UTC | #1
Hi Marek,

On 1/12/25 11:34 PM, Marek Vasut wrote:
> 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.
> 
> Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>

This is just factoring code and looks fine to me,

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>

> ---
> Cc: Adam Ford <aford173@gmail.com>
> Cc: Biju Das <biju.das.jz@bp.renesas.com>
> Cc: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
> Cc: Paul Barker <paul.barker.ct@bp.renesas.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Tom Rini <trini@konsulko.com>
> Cc: u-boot@lists.denx.de
> ---
>   board/renesas/common/Makefile     |  4 +++-
>   board/renesas/common/gen3-spl.c   | 21 ---------------------
>   board/renesas/common/gen4-spl.c   | 17 -----------------
>   board/renesas/common/rcar64-spl.c | 24 ++++++++++++++++++++++++
>   4 files changed, 27 insertions(+), 39 deletions(-)
>   create mode 100644 board/renesas/common/rcar64-spl.c
> 
> diff --git a/board/renesas/common/Makefile b/board/renesas/common/Makefile
> index e6dde3c2597..7a9f3a25440 100644
> --- a/board/renesas/common/Makefile
> +++ b/board/renesas/common/Makefile
> @@ -15,7 +15,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
>   

Wondering if we couldn't use variables to make the Makefile a bit easier 
on the eye (though not necessarily more readable)?

Something like

ifdef CONFIG_XPL_BUILD
SPL_COMMON := spl
else
SPL_COMMON := common
endif

obj-y += rcar64-$(SPL_COMMON).o

Then we could use it for gen3 and gen4 object files as well for example.

I really struggle to parse Makefile/C code when there are a lot of 
ifdefs especially once they get nested, but maybe that's just me :)

Thanks!
Quentin
Marek Vasut Jan. 18, 2025, 7:56 a.m. UTC | #2
On 1/15/25 11:34 AM, Quentin Schulz wrote:

[...]

> Wondering if we couldn't use variables to make the Makefile a bit easier 
> on the eye (though not necessarily more readable)?
> 
> Something like
> 
> ifdef CONFIG_XPL_BUILD
> SPL_COMMON := spl
> else
> SPL_COMMON := common
> endif
> 
> obj-y += rcar64-$(SPL_COMMON).o
> 
> Then we could use it for gen3 and gen4 object files as well for example.
> 
> I really struggle to parse Makefile/C code when there are a lot of 
> ifdefs especially once they get nested, but maybe that's just me :)
What I would like even a bit more would be:

obj-$(!SYMBOL) +=

An inverted match, add stuff into build if symbol is not set.
diff mbox series

Patch

diff --git a/board/renesas/common/Makefile b/board/renesas/common/Makefile
index e6dde3c2597..7a9f3a25440 100644
--- a/board/renesas/common/Makefile
+++ b/board/renesas/common/Makefile
@@ -15,7 +15,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 <marek.vasut@gmail.com>
  */
 
-#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 <marek.vasut+renesas@mailbox.org>
+ */
+
+#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();
+	}
+}