2022-07-21 22:30:53

by Prabhakar Mahadev Lad

[permalink] [raw]
Subject: [PATCH 0/2] Add support to identify RZ/Five SoC

Hi All,

This patch series adds support to identify the Renesas RZ/Five SoC.

Below is the output tested on SMARC EVK based on RZ/Five SoC:
/ # dmesg | grep Detect
[ 0.065484] Detected Renesas RZ/Five r9a07g043 Rev 0
/ # cat /sys/devices/soc0/family
RZ/Five
/ # cat /sys/devices/soc0/machine
Renesas SMARC EVK based on r9a07g043
/ # cat /sys/devices/soc0/revision
0
/ # cat /sys/devices/soc0/soc_id
r9a07g043
/ #

Cheers,
Prabhakar

Lad Prabhakar (2):
dt-bindings: soc: renesas: renesas,rzg2l-sysc: Document RZ/Five SoC
soc: renesas: Identify RZ/Five SoC

.../soc/renesas/renesas,rzg2l-sysc.yaml | 56 +++++++++++++------
drivers/soc/renesas/Kconfig | 10 ++++
drivers/soc/renesas/renesas-soc.c | 14 +++++
3 files changed, 63 insertions(+), 17 deletions(-)

--
2.25.1


2022-07-21 22:36:24

by Prabhakar Mahadev Lad

[permalink] [raw]
Subject: [PATCH 2/2] soc: renesas: Identify RZ/Five SoC

Add support for identifying the (R9A07G043) RZ/Five SoC.

Signed-off-by: Lad Prabhakar <[email protected]>
---
drivers/soc/renesas/Kconfig | 10 ++++++++++
drivers/soc/renesas/renesas-soc.c | 14 ++++++++++++++
2 files changed, 24 insertions(+)

diff --git a/drivers/soc/renesas/Kconfig b/drivers/soc/renesas/Kconfig
index 390f52109cb7..2e3508fbae53 100644
--- a/drivers/soc/renesas/Kconfig
+++ b/drivers/soc/renesas/Kconfig
@@ -333,6 +333,16 @@ config ARCH_R9A09G011

endif # ARM64

+if RISCV
+
+config ARCH_R9A07G043
+ bool "RISCV Platform support for RZ/Five"
+ select ARCH_RZG2L
+ help
+ This enables support for the Renesas RZ/Five SoC.
+
+endif # RISCV
+
config RST_RCAR
bool "Reset Controller support for R-Car" if COMPILE_TEST

diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c
index d171f1b635c7..1a31692fc884 100644
--- a/drivers/soc/renesas/renesas-soc.c
+++ b/drivers/soc/renesas/renesas-soc.c
@@ -50,6 +50,10 @@ static const struct renesas_family fam_rza2 __initconst __maybe_unused = {
.name = "RZ/A2",
};

+static const struct renesas_family fam_rzfive __initconst __maybe_unused = {
+ .name = "RZ/Five",
+};
+
static const struct renesas_family fam_rzg1 __initconst __maybe_unused = {
.name = "RZ/G1",
.reg = 0xff000044, /* PRR (Product Register) */
@@ -102,6 +106,11 @@ static const struct renesas_soc soc_rmobile_a1 __initconst __maybe_unused = {
.id = 0x40,
};

+static const struct renesas_soc soc_rz_five __initconst __maybe_unused = {
+ .family = &fam_rzfive,
+ .id = 0x847c447,
+};
+
static const struct renesas_soc soc_rz_g1h __initconst __maybe_unused = {
.family = &fam_rzg1,
.id = 0x45,
@@ -358,8 +367,12 @@ static const struct of_device_id renesas_socs[] __initconst = {
{ .compatible = "renesas,r8a779g0", .data = &soc_rcar_v4h },
#endif
#if defined(CONFIG_ARCH_R9A07G043)
+#ifdef CONFIG_RISCV
+ { .compatible = "renesas,r9a07g043", .data = &soc_rz_five },
+#else
{ .compatible = "renesas,r9a07g043", .data = &soc_rz_g2ul },
#endif
+#endif
#if defined(CONFIG_ARCH_R9A07G044)
{ .compatible = "renesas,r9a07g044", .data = &soc_rz_g2l },
#endif
@@ -398,6 +411,7 @@ static const struct renesas_id id_prr __initconst = {

static const struct of_device_id renesas_ids[] __initconst = {
{ .compatible = "renesas,bsid", .data = &id_bsid },
+ { .compatible = "renesas,r9a07g043-rzfive-sysc", .data = &id_rzg2l },
{ .compatible = "renesas,r9a07g043-sysc", .data = &id_rzg2l },
{ .compatible = "renesas,r9a07g044-sysc", .data = &id_rzg2l },
{ .compatible = "renesas,r9a07g054-sysc", .data = &id_rzg2l },
--
2.25.1

2022-07-22 10:15:44

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH 2/2] soc: renesas: Identify RZ/Five SoC

Hi Prabhakar,

On Fri, Jul 22, 2022 at 12:12 AM Lad Prabhakar
<[email protected]> wrote:
> Add support for identifying the (R9A07G043) RZ/Five SoC.
>
> Signed-off-by: Lad Prabhakar <[email protected]>

Thanks for your patch!

> --- a/drivers/soc/renesas/Kconfig
> +++ b/drivers/soc/renesas/Kconfig
> @@ -333,6 +333,16 @@ config ARCH_R9A09G011
>
> endif # ARM64
>
> +if RISCV
> +
> +config ARCH_R9A07G043
> + bool "RISCV Platform support for RZ/Five"

RISC-V

> + select ARCH_RZG2L
> + help
> + This enables support for the Renesas RZ/Five SoC.
> +
> +endif # RISCV
> +
> config RST_RCAR
> bool "Reset Controller support for R-Car" if COMPILE_TEST
>

> @@ -102,6 +106,11 @@ static const struct renesas_soc soc_rmobile_a1 __initconst __maybe_unused = {
> .id = 0x40,
> };
>
> +static const struct renesas_soc soc_rz_five __initconst __maybe_unused = {
> + .family = &fam_rzfive,
> + .id = 0x847c447,

The Hardware User's Manual Rev.1.00 says H’x841_C447?

> @@ -398,6 +411,7 @@ static const struct renesas_id id_prr __initconst = {
>
> static const struct of_device_id renesas_ids[] __initconst = {
> { .compatible = "renesas,bsid", .data = &id_bsid },
> + { .compatible = "renesas,r9a07g043-rzfive-sysc", .data = &id_rzg2l },
> { .compatible = "renesas,r9a07g043-sysc", .data = &id_rzg2l },
> { .compatible = "renesas,r9a07g044-sysc", .data = &id_rzg2l },
> { .compatible = "renesas,r9a07g054-sysc", .data = &id_rzg2l },

This change might not be needed (cfr. my comments on patch 1/2).

The rest LGTM.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2022-07-22 10:45:06

by Lad, Prabhakar

[permalink] [raw]
Subject: Re: [PATCH 2/2] soc: renesas: Identify RZ/Five SoC

Hi Geert,

Thank you for the review.

On Fri, Jul 22, 2022 at 10:37 AM Geert Uytterhoeven
<[email protected]> wrote:
>
> Hi Prabhakar,
>
> On Fri, Jul 22, 2022 at 12:12 AM Lad Prabhakar
> <[email protected]> wrote:
> > Add support for identifying the (R9A07G043) RZ/Five SoC.
> >
> > Signed-off-by: Lad Prabhakar <[email protected]>
>
> Thanks for your patch!
>
> > --- a/drivers/soc/renesas/Kconfig
> > +++ b/drivers/soc/renesas/Kconfig
> > @@ -333,6 +333,16 @@ config ARCH_R9A09G011
> >
> > endif # ARM64
> >
> > +if RISCV
> > +
> > +config ARCH_R9A07G043
> > + bool "RISCV Platform support for RZ/Five"
>
> RISC-V
>
Agreed.

> > + select ARCH_RZG2L
> > + help
> > + This enables support for the Renesas RZ/Five SoC.
> > +
> > +endif # RISCV
> > +
> > config RST_RCAR
> > bool "Reset Controller support for R-Car" if COMPILE_TEST
> >
>
> > @@ -102,6 +106,11 @@ static const struct renesas_soc soc_rmobile_a1 __initconst __maybe_unused = {
> > .id = 0x40,
> > };
> >
> > +static const struct renesas_soc soc_rz_five __initconst __maybe_unused = {
> > + .family = &fam_rzfive,
> > + .id = 0x847c447,
>
> The Hardware User's Manual Rev.1.00 says H’x841_C447?
>
You caught a typo in theHW manual, H’x841_C447 is the value for
RZ/G2L, for RZ/Five the value is H’x847_C447 (and can be verified on
page 146 SYS_DEVID register).

Below is the log from RZ/Five SMARC EVK:
U-Boot SPL 2020.10-ge84e786a34-dirty (Feb 25 2022 - 17:10:04 +0000)
Trying to boot from NOR


U-Boot 2020.10-ge84e786a34-dirty (Feb 25 2022 - 17:10:04 +0000)

CPU: rv64imafdc
Model: smarc-rzf
DRAM: 896 MiB
MMC: sh-sdhi: 0, sh-sdhi: 1
Loading Environment from MMC... OK
In: serial@1004b800
Out: serial@1004b800
Err: serial@1004b800
Net: eth0: ethernet@11c30000
Hit any key to stop autoboot: 0
=> md 0x11020a04 1
11020a04: 0847c447 G.G.
=>


> > @@ -398,6 +411,7 @@ static const struct renesas_id id_prr __initconst = {
> >
> > static const struct of_device_id renesas_ids[] __initconst = {
> > { .compatible = "renesas,bsid", .data = &id_bsid },
> > + { .compatible = "renesas,r9a07g043-rzfive-sysc", .data = &id_rzg2l },
> > { .compatible = "renesas,r9a07g043-sysc", .data = &id_rzg2l },
> > { .compatible = "renesas,r9a07g044-sysc", .data = &id_rzg2l },
> > { .compatible = "renesas,r9a07g054-sysc", .data = &id_rzg2l },
>
> This change might not be needed (cfr. my comments on patch 1/2).
>
Ok.

Cheers,
Prabhakar