On 10/20/2023 5:53 PM, Nishanth Menon wrote: > On 16:47-20231020, Ravi Gunasekaran wrote: >> The errata i2329 affects certain K3 SoC versions. The k3-socinfo.c >> driver generates the revision string for different variants of the >> same SoC in an incremental fashion. This is not true for all SoCs. >> An example case being J721E, for which the actual silicon revision >> names are 1.0, 1.1 for its variants, while the k3-socinfo.c driver >> interprets these variants as revisions 1.0, 2.0 respectively, >> which is incorrect. >> >> While the work to fixup the silicon revision string is posted >> to the soc tree, this patch serves as a fail-safe step by maintaining >> a list of correct and incorrect revision strings, so that the fixup >> work does not break the errata workaround for such corrected SoCs. >> >> The silicon revisions affected by the errata i2329 can be found under >> the MDIO module in the "Advisories by Modules" section of each >> SoC errata document listed below >> >> AM62x: https://www.ti.com/lit/er/sprz487c/sprz487c.pdf >> AM64X: https://www.ti.com/lit/er/sprz457g/sprz457g.pdf >> AM65X: https://www.ti.com/lit/er/sprz452i/sprz452i.pdf >> J7200: https://www.ti.com/lit/er/sprz491d/sprz491d.pdf >> J721E: https://www.ti.com/lit/er/sprz455d/sprz455d.pdf >> J721S2: https://www.ti.com/lit/er/sprz530b/sprz530b.pdf >> >> Signed-off-by: Ravi Gunasekaran <r-gunasekaran@xxxxxx> >> --- >> >> Changes since v1: >> * For J721E, retained the incorrect SR ID and added the correct one >> * Add AM65x SR2.1 to the workaround list >> >> v1: https://lore.kernel.org/all/20231018140009.1725-1-r-gunasekaran@xxxxxx/ >> >> drivers/net/ethernet/ti/davinci_mdio.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c >> index 628c87dc1d28..25aaef502edc 100644 >> --- a/drivers/net/ethernet/ti/davinci_mdio.c >> +++ b/drivers/net/ethernet/ti/davinci_mdio.c >> @@ -516,9 +516,11 @@ static const struct soc_device_attribute k3_mdio_socinfo[] = { >> { .family = "AM64X", .revision = "SR2.0", .data = &am65_mdio_soc_data }, >> { .family = "AM65X", .revision = "SR1.0", .data = &am65_mdio_soc_data }, >> { .family = "AM65X", .revision = "SR2.0", .data = &am65_mdio_soc_data }, >> + { .family = "AM65X", .revision = "SR2.1", .data = &am65_mdio_soc_data }, >> { .family = "J7200", .revision = "SR1.0", .data = &am65_mdio_soc_data }, >> { .family = "J7200", .revision = "SR2.0", .data = &am65_mdio_soc_data }, >> { .family = "J721E", .revision = "SR1.0", .data = &am65_mdio_soc_data }, >> + { .family = "J721E", .revision = "SR1.1", .data = &am65_mdio_soc_data }, >> { .family = "J721E", .revision = "SR2.0", .data = &am65_mdio_soc_data }, >> { .family = "J721S2", .revision = "SR1.0", .data = &am65_mdio_soc_data}, >> { /* sentinel */ }, >> > Looks like every device is impacted -> so, why not just flip the > logic to indicate devices that are NOT impacted? is'nt that a smaller > list? > At the moment, the list of unaffected devices is small. But as and when we introduce more devices, this list will need update. Also I feel that few years down the line, when someone looks at the code, a list of affected devices provides a better context as it is easier to trace it back to the errata document. Regards, Ravi