board: rzg2l: Add RZ/G2L SMARC EVK board

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@bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
This commit is contained in:
Paul Barker 2023-10-16 10:25:43 +01:00 committed by Marek Vasut
parent e3e01a6f94
commit 4e65545f7a
7 changed files with 175 additions and 0 deletions

View File

@ -9,6 +9,20 @@ config R9A07G044L
help
Enable support for the Renesas R9A07G044L (RZ/G2L) SoC.
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

View File

@ -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

View File

@ -0,0 +1,6 @@
RENESAS RZG2L BOARD FAMILY
M: Paul Barker <paul.barker.ct@bp.renesas.com>
S: Supported
F: arch/arm/dts/rz-smarc-common.dtsi
N: rzg2l
N: r9a07g044

View File

@ -0,0 +1,4 @@
# Copyright (C) 2023 Renesas Electronics Corporation
# SPDX-License-Identifier: GPL-2.0+
obj-y := rzg2l.o

View File

@ -0,0 +1,67 @@
// 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;
}
int board_init(void)
{
return 0;
}
void reset_cpu(void)
{
/*
* TODO: Implement reset support once TrustedFirmware supports
* the appropriate call.
*/
}

View File

@ -0,0 +1,52 @@
CONFIG_ARM=y
CONFIG_COUNTER_FREQUENCY=16666666
CONFIG_SYS_INIT_SP_BSS_OFFSET=1048576
CONFIG_ARCH_CPU_INIT=y
CONFIG_ARCH_RMOBILE=y
CONFIG_TEXT_BASE=0x50000000
CONFIG_SYS_MALLOC_LEN=0x4000000
CONFIG_SYS_MALLOC_F_LEN=0x80000
CONFIG_ENV_SIZE=0x20000
CONFIG_ENV_OFFSET=0xFFFE0000
CONFIG_DM_GPIO=y
CONFIG_DEFAULT_DEVICE_TREE="r9a07g044l2-smarc"
CONFIG_RZG2L=y
CONFIG_SYS_MONITOR_LEN=1048576
CONFIG_SYS_LOAD_ADDR=0x58000000
CONFIG_REMAKE_ELF=y
CONFIG_FIT=y
CONFIG_SUPPORT_RAW_INITRD=y
CONFIG_USE_BOOTARGS=y
# CONFIG_BOARD_EARLY_INIT_F is not set
CONFIG_SYS_MALLOC_BOOTPARAMS=y
CONFIG_HUSH_PARSER=y
CONFIG_SYS_MAXARGS=64
CONFIG_SYS_PBSIZE=2068
CONFIG_CMD_CLK=y
CONFIG_CMD_GPIO=y
CONFIG_CMD_MMC=y
CONFIG_CMD_PART=y
CONFIG_CMD_EXT2=y
CONFIG_CMD_EXT4=y
CONFIG_CMD_EXT4_WRITE=y
CONFIG_CMD_FAT=y
CONFIG_CMD_FS_GENERIC=y
CONFIG_OF_CONTROL=y
CONFIG_MULTI_DTB_FIT_LZO=y
CONFIG_MULTI_DTB_FIT_USER_DEFINED_AREA=y
CONFIG_ENV_OVERWRITE=y
CONFIG_ENV_IS_IN_MMC=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SYS_MMC_ENV_PART=2
CONFIG_VERSION_VARIABLE=y
CONFIG_REGMAP=y
CONFIG_CLK=y
CONFIG_CLK_RENESAS=y
# CONFIG_CLK_RCAR_GEN3 is not set
CONFIG_GPIO_HOG=y
CONFIG_MMC_IO_VOLTAGE=y
CONFIG_MMC_UHS_SUPPORT=y
CONFIG_MMC_HS400_SUPPORT=y
CONFIG_DM_REGULATOR=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y

View File

@ -0,0 +1,14 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Copyright (C) 2023 Renesas Electronics Corporation
*/
#ifndef __RENESAS_RZG2L_H
#define __RENESAS_RZG2L_H
#include <asm/arch/rmobile.h>
/* console */
#define CFG_SYS_BAUDRATE_TABLE { 115200, 38400 }
#endif /* __RENESAS_RZG2L_H */