On Tue, 2026-02-03 at 10:51 +0530, Anshul Dalal wrote:
> On Mon Feb 2, 2026 at 7:40 PM IST, Siddharth Vadapalli wrote:
> > Since commit 27cc5951c862 ("include: env: ti: add default for
> > do_main_cpsw0_qsgmii_phyinit"), the value of the environment variable
> > do_main_cpsw0_qsgmii_phyinit happened to remain '0' and couldn't be
> > changed without user intervention. This behavior is due to the following
> > cyclic dependency:
> > A) ti_common.env sets do_main_cpsw0_qsgmii_phyinit to '0' and its value
> >    can only be updated automatically by main_cpsw0_qsgmii_phyinit.
> > B) main_cpsw0_qsgmii_phyinit is defined in j721e.env and it can run only
> >    if 'do_main_cpsw0_qsgmii_phyinit' is already '1' which isn't possible
> >    unless the user manually assigns the value.
> > 
> > Fix the aforementioned cyclic dependency by using board_late_init() to
> > detect the QSGMII Daughtercard and set do_main_cpsw0_qsgmii_phyinit.
> > 
> > Additionally, to address the issue of do_main_cpsw0_qsgmii_phyinit being
> > 'undefined' for other platforms, replace:
> >     if test ${do_main_cpsw0_qsgmii_phyinit} -eq 1;
> > with:
> >     if env exists do_main_cpsw0_qsgmii_phyinit;
> > in ti_common.env.
> > 
> > Fixes: 27cc5951c862 ("include: env: ti: add default for 
> > do_main_cpsw0_qsgmii_phyinit")
> > Signed-off-by: Siddharth Vadapalli <[email protected]>
> > ---
> > 

[TRIMMED]

> > diff --git a/include/env/ti/ti_common.env b/include/env/ti/ti_common.env
> > index 03e3267ef8a..a0ed83f52ac 100644
> > --- a/include/env/ti/ti_common.env
> > +++ b/include/env/ti/ti_common.env
> > @@ -22,11 +22,10 @@ get_fit_overlaystring=
> >     done;
> >  get_fit_config=setexpr name_fit_config gsub / _ conf-${fdtfile}
> >  run_fit=run get_fit_config; bootm 
> > ${addr_fit}#${name_fit_config}${overlaystring}
> > -do_main_cpsw0_qsgmii_phyinit=0
> >  bootcmd_ti_mmc=
> >     run init_${boot};
> >  #if CONFIG_CMD_REMOTEPROC
> > -   if test ${do_main_cpsw0_qsgmii_phyinit} -eq 1;
> > +   if env exists do_main_cpsw0_qsgmii_phyinit;
> 
> The patch looks good to me however I wonder if we should factor out
> cpsw0_qsgmii related envs out of ti_common.env since as far as I can
> tell we only seem to be using it for the j721e/j7200 devices.

Please refer to the following commit from 22 July 2023:
https://github.com/u-boot/u-boot/commit/4ae1a2470ce7895b747c85a140aaf8b647ae6a32
The commit added:
        run main_cpsw0_qsgmii_phyinit
in include/environment/ti/ti_armv7_common.env and ti_armv7_common.env
eventually got renamed to ti_common.env by:
https://github.com/u-boot/u-boot/commit/bf9c61acb6caed97114029d2dc1e91b148cd9b8a

Although I agree with your feedback in that it will make more sense for
do_main_cpsw0_qsgmii_phyinit to be present in the board specific env, given
the background pointed out above, it seems to me that we are simply going
in circles by undoing the changes that were previously made. Nevertheless,
if you think that it should be moved to the board environment, I will do so
in a future cleanup patch.

Regards,
Siddharth.

Reply via email to