[PATCH 16/16] board: rzg2l: Add RZ/G2L SMARC EVK board
Marek Vasut
marek.vasut at mailbox.org
Tue Oct 3 15:36:30 CEST 2023
On 9/20/23 14:42, Paul Barker wrote:
> The Renesas RZ/G2L SMARC Evaluation Board Kit consists of the RZ/G2L
> System-on-Module (SOM) based on the R9A07G044L2 SoC, and a common SMARC
> carrier board.
>
> The ARM TrustedFirmware code for the Renesas RZ/G2L SoC family passes a
> devicetree blob to the bootloader as an argument in the same was
> previous R-Car gen3/gen4 SoCs. This blob contains a compatible string
> which can be used to identify the particular SoC we are running on and
> this is used to select the appropriate device tree to load.
>
> The configuration renesas_rzg2l_smarc_defconfig is added to support
> building for this target. In the future this defconfig will be extended
> to support other SoCs and evaluation boards from the RZ/G2L family.
>
> Signed-off-by: Paul Barker <paul.barker.ct at bp.renesas.com>
> Reviewed-by: Biju Das <biju.das.jz at bp.renesas.com>
> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj at bp.renesas.com>
> ---
> arch/arm/mach-rmobile/Kconfig.rzg2l | 14 +++++
> board/renesas/rzg2l/Kconfig | 18 +++++++
> board/renesas/rzg2l/MAINTAINERS | 6 +++
> board/renesas/rzg2l/Makefile | 4 ++
> board/renesas/rzg2l/rzg2l.c | 76 +++++++++++++++++++++++++++
> configs/renesas_rzg2l_smarc_defconfig | 52 ++++++++++++++++++
> include/configs/rzg2l-smarc.h | 14 +++++
> 7 files changed, 184 insertions(+)
> create mode 100644 board/renesas/rzg2l/Kconfig
> create mode 100644 board/renesas/rzg2l/MAINTAINERS
> create mode 100644 board/renesas/rzg2l/Makefile
> create mode 100644 board/renesas/rzg2l/rzg2l.c
> create mode 100644 configs/renesas_rzg2l_smarc_defconfig
> create mode 100644 include/configs/rzg2l-smarc.h
>
> diff --git a/arch/arm/mach-rmobile/Kconfig.rzg2l b/arch/arm/mach-rmobile/Kconfig.rzg2l
> index 7d268e8c366a..1fe49e323300 100644
> --- a/arch/arm/mach-rmobile/Kconfig.rzg2l
> +++ b/arch/arm/mach-rmobile/Kconfig.rzg2l
> @@ -9,6 +9,20 @@ config R9A07G044L
> help
> Enable support for the R9A07G044L SoC used in the RZ/G2L.
>
> +choice
> + prompt "Renesas RZ/G2L Family Board selection"
> + default TARGET_RZG2L_SMARC_EVK
> +
> +config TARGET_RZG2L_SMARC_EVK
> + bool "Renesas RZ/G2L SMARC EVK"
> + imply R9A07G044L
> + help
> + Enable support for the RZ/G2L SMARC evaluation board.
> +
> +source "board/renesas/rzg2l/Kconfig"
> +
> +endchoice
> +
> config MULTI_DTB_FIT_UNCOMPRESS_SZ
> default 0x80000 if TARGET_RZG2L_SMARC_EVK
>
> diff --git a/board/renesas/rzg2l/Kconfig b/board/renesas/rzg2l/Kconfig
> new file mode 100644
> index 000000000000..1335fc7ae806
> --- /dev/null
> +++ b/board/renesas/rzg2l/Kconfig
> @@ -0,0 +1,18 @@
> +# Copyright (C) 2023 Renesas Electronics Corporation
> +# SPDX-License-Identifier: GPL-2.0+
> +
> +if TARGET_RZG2L_SMARC_EVK
> +
> +config SYS_SOC
> + default "rmobile"
> +
> +config SYS_BOARD
> + default "rzg2l"
> +
> +config SYS_VENDOR
> + default "renesas"
> +
> +config SYS_CONFIG_NAME
> + default "rzg2l-smarc"
> +
> +endif
> diff --git a/board/renesas/rzg2l/MAINTAINERS b/board/renesas/rzg2l/MAINTAINERS
> new file mode 100644
> index 000000000000..0a51391c1fc9
> --- /dev/null
> +++ b/board/renesas/rzg2l/MAINTAINERS
> @@ -0,0 +1,6 @@
> +RENESAS RZG2L BOARD FAMILY
> +M: Paul Barker <paul.barker.ct at bp.renesas.com>
> +S: Supported
> +F: arch/arm/dts/rz-smarc-common.dtsi
I suspect there should be more files here, right ?
You likely want to be CCed on things like rzg2l clock, scif, and so on.
> +N: rzg2l
> +N: r9a07g044
> diff --git a/board/renesas/rzg2l/Makefile b/board/renesas/rzg2l/Makefile
> new file mode 100644
> index 000000000000..466935fc8158
> --- /dev/null
> +++ b/board/renesas/rzg2l/Makefile
> @@ -0,0 +1,4 @@
> +# Copyright (C) 2023 Renesas Electronics Corporation
> +# SPDX-License-Identifier: GPL-2.0+
> +
> +obj-y := rzg2l.o
> diff --git a/board/renesas/rzg2l/rzg2l.c b/board/renesas/rzg2l/rzg2l.c
> new file mode 100644
> index 000000000000..2b1bb3546c26
> --- /dev/null
> +++ b/board/renesas/rzg2l/rzg2l.c
> @@ -0,0 +1,76 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * RZ/G2L board support.
> + * Copyright (C) 2023 Renesas Electronics Corporation
> + */
> +
> +#include <common.h>
> +#include <fdtdec.h>
> +#include <linux/libfdt.h>
> +
> +#if IS_ENABLED(CONFIG_MULTI_DTB_FIT)
> +/* If the firmware passed a device tree, use it for board identification. */
> +extern u64 rcar_atf_boot_args[];
> +
> +static bool is_rzg2l_board(const char *board_name)
> +{
> + void *atf_fdt_blob = (void *)(rcar_atf_boot_args[1]);
> +
> + return fdt_node_check_compatible(atf_fdt_blob, 0, board_name) == 0;
> +}
> +
> +int board_fit_config_name_match(const char *name)
> +{
> + void *atf_fdt_blob = (void *)(rcar_atf_boot_args[1]);
> +
> + if (fdt_magic(atf_fdt_blob) != FDT_MAGIC)
> + return -1;
> +
> + if (is_rzg2l_board("renesas,r9a07g044l2"))
> + return strcmp(name, "r9a07g044l2-smarc");
> +
> + return -1;
> +}
> +#endif
> +
> +static void apply_atf_overlay(void *fdt_blob)
> +{
> + void *atf_fdt_blob = (void *)(rcar_atf_boot_args[1]);
> +
> + if (fdt_magic(atf_fdt_blob) == FDT_MAGIC)
> + fdt_overlay_apply_node(fdt_blob, 0, atf_fdt_blob, 0);
> +}
> +
> +int fdtdec_board_setup(const void *fdt_blob)
> +{
> + apply_atf_overlay((void *)fdt_blob);
> +
> + return 0;
> +}
> +
> +int ft_board_setup(void *blob, struct bd_info *bd)
> +{
> + return 0;
Are all these stub functions really needed or can they be removed
(possibly also with removal of unnecessary config options) ?
> +}
> +
> +int __weak board_init(void)
> +{
> + return 0;
> +}
> +
> +int dram_init(void)
> +{
> + return fdtdec_setup_mem_size_base();
> +}
> +
> +int dram_init_banksize(void)
> +{
> + fdtdec_setup_memory_banksize();
This and the one function above can likely go into arch/mach-rmobile/
> + return 0;
> +}
> +
> +void __weak reset_cpu(void)
> +{
Is this platform missing a way to reset the system ?
Please fix.
[...]
More information about the U-Boot
mailing list