Re: [RFC DO-NOT-MERGE PATCH] arm64: dts: renesas: R8A77961: Add Renesas M3-W+ (M3 ES3.0) SoC support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Eugeniu,

Thanks for bringing this up!

On Wed, Aug 21, 2019 at 2:45 PM Eugeniu Rosca <erosca@xxxxxxxxxxxxxx> wrote:
> Similar to the revision update from H3-ES1.x to H3-ES2.0, the update
> from M3-ES1.x to M3-ES3.0, in addition to fixing HW bugs/erratas, drops
> entire silicon IPs [1-2] (for cost efficiency and other reasons).
>
> However, unlike in the H3 ES1.x->ES2.0 revision update, the M3-ES3.0
> came with a new SoC id, i.e. r8a77961 (according to both [2] and

Actually R-Car H3 ES2.0 is r8a77951, while ES1.x is r8a77950.
But we ignored the fifth digit (see below).

> the updated SoC HW manual Rev.2.00 Jul 2019). The choice to allocate a
> new identifier seems to strengthen the HW differences between M3-ES1.x
> and M3-ES3.0 (as it is the case for M3N/r8a77965).

While H3 ES2.0 was an evolutionary step, obsoleting H3 ES1.x, it looks
like M3-W and M3-W+ may exist as two separate products, next to each
other.

> Given the above, there are several ways to differentiate between
> M3-ES1.x and M3-ES3.0:
>
> A. The BSP way [1]. Move/rename r8a7796.dtsi to r8a7796-es1.dtsi and
> keep using r8a7796.dtsi for M3-ES3.x.
>
> Pros:
>  * Resembles commit 291e0c4994d081 ("arm64: dts: r8a7795: Add support
>    for R-Car H3 ES2.0")
>  * Reuses the r8a7796 (e.g. sysc, cpg-mssr) drivers for r8a77961 (i.e.
>    minimizes the bring-up effort)
> Cons:
>  * Deliberately diverges from the vendor documentation [2] by
>    ignoring the new SoC identifier r8a77961, i.e. leading to
>    inconsistencies in the names of the drivers and DTS
>
> B. The approach taken in this patch, i.e. create a brand new
>   r8a77961.dtsi (similar to r8a77965.dtsi).
>
> Pros:
>  * Reflects the reality documented by HW designers [2]
>  * Maintains drivers/DTS naming consistency and avoids mismatch between
>    documentation and code
> Cons:
>  * higher bring-up effort than (A)
>  * more discussion is needed on whether it makes sense to separate:
>    - DTS only
>    - DTS + Kconfig (ARCH_R8A77961)
>    - DTS + Kconfig (ARCH_R8A77961) + drivers (sysc, cpg-mssr, other?)
>
> Comments appreciated!

When we started work on H3 ES2.0, it was considered an evolutionary step
from ES1.x, not a different SoC.  We also were used to 4-digit IDs in
compatible values, as before the 5th digit was typically used to
indicate a minor difference, like a different package, or a different
ROM option.  Hence we ignored the 5th digit, reused the compatible
values for H3 ES1.x, and went with soc_device_match() to differentiate,
where needed.

However, it turned out H3 ES2.0 was more like a different SoC in the
same family: it has more similarities with R-Car M3-W ES1.0 than with
R-Car H3 ES1.x.  In the mean time, with the advent of R-Car D3 and M3-N,
we also got used to 5 digits.  Hence in hindsight, it might have been
better if we had considered H3 ES1.x and ES2.0 to be two different
SoCs.

Given R-Car M3-W and M3-W+ may co-exist as separate SoCs, I think
approach B is the best approach, using separate DTS, compatible values,
Kconfig, and drivers, like we did for e.g. R-Car M3-N.

What do you think?
Thanks!

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

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



[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux