Re: [RFC net-next PATCH 08/16] net: macb: Clean up macb_validate

From: Sean Anderson
Date: Thu Oct 07 2021 - 20:20:23 EST


Hi Nicolas,

On 10/7/21 9:22 AM, Nicolas Ferre wrote:
On 04/10/2021 at 21:15, Sean Anderson wrote:
While we're on the subject, could someone clarify the relationship
between the various speed capabilities? What's the difference between
MACB_CAPS_GIGABIT_MODE_AVAILABLE, MACB_CAPS_HIGH_SPEED, MACB_CAPS_PCS,
and macb_is_gem()? Would there ever be a GEM without GIGABIT_MODE?

Yes. GEM is a new revision of the IP that is capable of doing Gigabit
mode or not. sama7g5_emac_config is typically one of those doing only
10/100.

Thanks for pointing that out. But even that config still has
MACB_CAPS_GIGABIT_MODE_AVAILABLE. So presumably you can use it for
gigabit speed if you don't use MII-on-RGMII. I suppose that
sama7g5_emac_config is not a GEM?

HIGH_SPEED without PCS? Why doesn't SGMII care if we're a gem (I think
this one is a bug, because it cares later on)?

MACB_CAPS_HIGH_SPEED and MACB_CAPS_PCS were added by
e4e143e26ce8f5f57c60a994bdc63d0ddce3a823 ("net: macb: add support for
high speed interface"). In this commit it is said that "This
controller has separate MAC's and PCS'es for low and high speed
paths." Maybe it's a hint.

Ah, so perhaps HIGH_SPEED only represents the capability for a
high-speed PCS. Which of course is a bit strange considering that we
check for both it, PCS, and GIGABIT_MODE when determining whether we can
do 10G.

--Sean