<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr"><div dir="ltr"></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Nov 1, 2022 at 4:14 PM Chris Johns <<a href="mailto:chrisj@rtems.org">chrisj@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 2/11/2022 5:51 am, Kinsey Moore wrote:<br>
> Certain hardware configurations will always use SGMII instead of RGMII.<br>
> Apply the appropriate flags for the relevant BSPs.<br>
> ---<br>
>  freebsd/sys/dev/cadence/if_cgem.c | 10 ++++++++++<br>
>  1 file changed, 10 insertions(+)<br>
> <br>
> diff --git a/freebsd/sys/dev/cadence/if_cgem.c b/freebsd/sys/dev/cadence/if_cgem.c<br>
> index 3eaaf6b2..9b4cf693 100644<br>
> --- a/freebsd/sys/dev/cadence/if_cgem.c<br>
> +++ b/freebsd/sys/dev/cadence/if_cgem.c<br>
> @@ -1296,6 +1296,16 @@ cgem_config(struct cgem_softc *sc)<br>
>               CGEM_NET_CFG_FULL_DUPLEX |<br>
>               CGEM_NET_CFG_SPEED100;<br>
>  <br>
> +#ifdef __rtems__<br>
> +#define STRINGIFY(to_str) #to_str<br>
> +#define BSP_STR(to_str) STRINGIFY(to_str)<br>
> +     /* Configure the PHYs to use SGMII for particular BSPs */<br>
> +     if ( 0 == strcmp( BSP_STR(RTEMS_BSP), "xilinx_zynqmp_lp64_cfc400x" ) ) {<br>
> +             net_cfg |= CGEM_NET_CFG_SGMII_EN;<br>
> +             net_cfg |= CGEM_NET_CFG_PCS_SEL;<br>
> +     }<br>
<br>
This makes it a precedent a cgem device has to be an RTEMS BSP to support SGMII.<br>
I do not think that is a good idea.<br></blockquote><div><br></div><div>I don't particularly like this solution either, but I evaluated a few other options (see below). <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Is the simplest solution adding a weak function call asks which mode and the<br>
default call returns RGMII?<br></blockquote><div><br></div><div>The downside to that is that none of the tests can operate as expected on a SGMII-attached-PHY system since the application would be overriding the weak symbol and the tests wouldn't do that. Another option would be to have a generic option in RTEMS that specifies the PHY attachment and can be set in config.ini, but that would appear to be dead code since it's not used within RTEMS.</div><div><br></div><div>As far as I'm aware, the closest analog in LibBSD would be the buildset configuration, but that seems more like a place to define which modules get built than a location for configuring hardware.</div><div><br></div><div>Kinsey<br></div><div><br></div></div></div>