diff mbox series

[2/2] soc: renesas: Identify RZ/Five SoC

Message ID 20220721221212.18491-3-prabhakar.mahadev-lad.rj@bp.renesas.com (mailing list archive)
State Superseded
Delegated to: Geert Uytterhoeven
Headers show
Series Add support to identify RZ/Five SoC | expand

Commit Message

Prabhakar July 21, 2022, 10:12 p.m. UTC
Add support for identifying the (R9A07G043) RZ/Five SoC.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
 drivers/soc/renesas/Kconfig       | 10 ++++++++++
 drivers/soc/renesas/renesas-soc.c | 14 ++++++++++++++
 2 files changed, 24 insertions(+)

Comments

Geert Uytterhoeven July 22, 2022, 9:37 a.m. UTC | #1
Hi Prabhakar,

On Fri, Jul 22, 2022 at 12:12 AM Lad Prabhakar
<prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
> Add support for identifying the (R9A07G043) RZ/Five SoC.
>
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

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 -- geert@linux-m68k.org

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
Lad, Prabhakar July 22, 2022, 10:30 a.m. UTC | #2
Hi Geert,

Thank you for the review.

On Fri, Jul 22, 2022 at 10:37 AM Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
>
> Hi Prabhakar,
>
> On Fri, Jul 22, 2022 at 12:12 AM Lad Prabhakar
> <prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
> > Add support for identifying the (R9A07G043) RZ/Five SoC.
> >
> > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
>
> 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
diff mbox series

Patch

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 },