Message ID | 39592224-4f2d-a1b2-b8e5-3004db942f6b@ti.com |
---|---|
State | New |
Headers | show |
Series | imx8qxp mek: Booting mainline kernel with mainline U-Boot | expand |
On 17/01/20, Lokesh Vutla wrote: > >>> Just wondering if anyone else managed to boot mainline U-Boot with > >>> mainline kernel on i.MX8QXP. > >> I can test it for you with the revert patch for f0cc4eae9a applied tomorrow. > > > > Adding in Lokesh as he nak'd the revert before because that would break > > other platforms and I chimed in saying that breaking one set of > > platforms to unbreak another set of platforms isn't a trade-off I like. > > > > Right, the mentioned patch f0cc4eae9a1 ("core: device: use dev_power_domain_on") > checks for power_domain return status when dm core tries to enable pd during > probe. If power domain enabling is failed then no point proceeding further to probe. > > There are 2 ways to solve this: > 1) Drop the return check like below. Which IMHO is a hack: > > diff --git a/drivers/core/device.c b/drivers/core/device.c > index 9f39218423..c80ce16fbd 100644 > --- a/drivers/core/device.c > +++ b/drivers/core/device.c > @@ -432,11 +432,8 @@ int device_probe(struct udevice *dev) > > if (CONFIG_IS_ENABLED(POWER_DOMAIN) && dev->parent && > (device_get_uclass_id(dev) != UCLASS_POWER_DOMAIN) && > - !(drv->flags & DM_FLAG_DEFAULT_PD_CTRL_OFF)) { > - ret = dev_power_domain_on(dev); > - if (ret) > - goto fail; > - } > + !(drv->flags & DM_FLAG_DEFAULT_PD_CTRL_OFF)) > + dev_power_domain_on(dev); > > ret = uclass_pre_probe_device(dev); > if (ret) ok very thx, this works for me together with fresh a compiled scfw (1.2.5) from advantech. Now I'am running into this phy issue: U-Boot 2020.01-00001-g7b3e47a09f (Jan 23 2020 - 14:30:03 +0100) CPU: NXP i.MX8QM RevB A53 at 1200 MHz Model: Advantech iMX8QM Qseven series Board: ROM-7720-A1 4GB Build: SCFW 494c97f3, SECO-FW 5ea79733, ATF d6451cc Boot: SD2 DRAM: 4 GiB MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 Loading Environment from MMC... *** Warning - bad CRC, using default environment In: serial at 5a060000 Out: serial at 5a060000 Err: serial at 5a060000 Net: Could not get PHY for FEC0: addr 0 Could not get PHY for FEC0: addr 0 Can't find FEC0 clk rate: -19 Could not get PHY for FEC1: addr 1 No ethernet found. Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc2 is current device ** No partition table - mmc 2 ** ** No partition table - mmc 2 ** Booting from net ... Could not get PHY for FEC0: addr 0 Could not get PHY for FEC0: addr 0 Could not get PHY for FEC0: addr 0 Could not get PHY for FEC0: addr 0 No ethernet found. Could not get PHY for FEC0: addr 0 Could not get PHY for FEC0: addr 0 Could not get PHY for FEC0: addr 0 Could not get PHY for FEC0: addr 0 Could not get PHY for FEC0: addr 0 No ethernet found. Could not get PHY for FEC0: addr 0 Best Regards, Oliver
On 23/01/20 7:23 PM, Oliver Graute wrote: > On 17/01/20, Lokesh Vutla wrote: >>>>> Just wondering if anyone else managed to boot mainline U-Boot with >>>>> mainline kernel on i.MX8QXP. >>>> I can test it for you with the revert patch for f0cc4eae9a applied tomorrow. >>> >>> Adding in Lokesh as he nak'd the revert before because that would break >>> other platforms and I chimed in saying that breaking one set of >>> platforms to unbreak another set of platforms isn't a trade-off I like. >>> >> >> Right, the mentioned patch f0cc4eae9a1 ("core: device: use dev_power_domain_on") >> checks for power_domain return status when dm core tries to enable pd during >> probe. If power domain enabling is failed then no point proceeding further to probe. >> >> There are 2 ways to solve this: >> 1) Drop the return check like below. Which IMHO is a hack: >> >> diff --git a/drivers/core/device.c b/drivers/core/device.c >> index 9f39218423..c80ce16fbd 100644 >> --- a/drivers/core/device.c >> +++ b/drivers/core/device.c >> @@ -432,11 +432,8 @@ int device_probe(struct udevice *dev) >> >> if (CONFIG_IS_ENABLED(POWER_DOMAIN) && dev->parent && >> (device_get_uclass_id(dev) != UCLASS_POWER_DOMAIN) && >> - !(drv->flags & DM_FLAG_DEFAULT_PD_CTRL_OFF)) { >> - ret = dev_power_domain_on(dev); >> - if (ret) >> - goto fail; >> - } >> + !(drv->flags & DM_FLAG_DEFAULT_PD_CTRL_OFF)) >> + dev_power_domain_on(dev); >> >> ret = uclass_pre_probe_device(dev); >> if (ret) > > ok very thx, this works for me together with fresh a compiled scfw This is because enabling power domain is failed and the failure is being ignored. Ignorance of such issues can lead to unexpected behavior like the one below :) > (1.2.5) from advantech. Now I'am running into this phy issue: I am not really an expert here. Peng should be able to comment on this. Thanks and regards, Lokesh > > U-Boot 2020.01-00001-g7b3e47a09f (Jan 23 2020 - 14:30:03 +0100) > > CPU: NXP i.MX8QM RevB A53 at 1200 MHz > > Model: Advantech iMX8QM Qseven series > Board: ROM-7720-A1 4GB > Build: SCFW 494c97f3, SECO-FW 5ea79733, ATF d6451cc > Boot: SD2 > DRAM: 4 GiB > MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 > Loading Environment from MMC... *** Warning - bad CRC, using default environment > > In: serial at 5a060000 > Out: serial at 5a060000 > Err: serial at 5a060000 > Net: Could not get PHY for FEC0: addr 0 > Could not get PHY for FEC0: addr 0 > Can't find FEC0 clk rate: -19 > Could not get PHY for FEC1: addr 1 > No ethernet found. > > Hit any key to stop autoboot: 0 > switch to partitions #0, OK > mmc2 is current device > ** No partition table - mmc 2 ** > ** No partition table - mmc 2 ** > Booting from net ... > Could not get PHY for FEC0: addr 0 > Could not get PHY for FEC0: addr 0 > Could not get PHY for FEC0: addr 0 > Could not get PHY for FEC0: addr 0 > No ethernet found. > Could not get PHY for FEC0: addr 0 > Could not get PHY for FEC0: addr 0 > Could not get PHY for FEC0: addr 0 > Could not get PHY for FEC0: addr 0 > Could not get PHY for FEC0: addr 0 > No ethernet found. > Could not get PHY for FEC0: addr 0 > > Best Regards, > > Oliver >
> Subject: Re: imx8qxp mek: Booting mainline kernel with mainline U-Boot > > > > On 23/01/20 7:23 PM, Oliver Graute wrote: > > On 17/01/20, Lokesh Vutla wrote: > >>>>> Just wondering if anyone else managed to boot mainline U-Boot with > >>>>> mainline kernel on i.MX8QXP. > >>>> I can test it for you with the revert patch for f0cc4eae9a applied > tomorrow. > >>> > >>> Adding in Lokesh as he nak'd the revert before because that would > >>> break other platforms and I chimed in saying that breaking one set > >>> of platforms to unbreak another set of platforms isn't a trade-off I like. > >>> > >> > >> Right, the mentioned patch f0cc4eae9a1 ("core: device: use > >> dev_power_domain_on") checks for power_domain return status when > dm > >> core tries to enable pd during probe. If power domain enabling is failed > then no point proceeding further to probe. > >> > >> There are 2 ways to solve this: > >> 1) Drop the return check like below. Which IMHO is a hack: > >> > >> diff --git a/drivers/core/device.c b/drivers/core/device.c index > >> 9f39218423..c80ce16fbd 100644 > >> --- a/drivers/core/device.c > >> +++ b/drivers/core/device.c > >> @@ -432,11 +432,8 @@ int device_probe(struct udevice *dev) > >> > >> if (CONFIG_IS_ENABLED(POWER_DOMAIN) && dev->parent && > >> (device_get_uclass_id(dev) != UCLASS_POWER_DOMAIN) && > >> - !(drv->flags & DM_FLAG_DEFAULT_PD_CTRL_OFF)) { > >> - ret = dev_power_domain_on(dev); > >> - if (ret) > >> - goto fail; > >> - } > >> + !(drv->flags & DM_FLAG_DEFAULT_PD_CTRL_OFF)) > >> + dev_power_domain_on(dev); > >> > >> ret = uclass_pre_probe_device(dev); > >> if (ret) > > > > ok very thx, this works for me together with fresh a compiled scfw > > This is because enabling power domain is failed and the failure is being > ignored. Ignorance of such issues can lead to unexpected behavior like the > one below :) Yes. A err msg be printed out when failure should be helpful. Regards, Peng. > > > (1.2.5) from advantech. Now I'am running into this phy issue: > > I am not really an expert here. Peng should be able to comment on this. > > Thanks and regards, > Lokesh > > > > > U-Boot 2020.01-00001-g7b3e47a09f (Jan 23 2020 - 14:30:03 +0100) > > > > CPU: NXP i.MX8QM RevB A53 at 1200 MHz > > > > Model: Advantech iMX8QM Qseven series > > Board: ROM-7720-A1 4GB > > Build: SCFW 494c97f3, SECO-FW 5ea79733, ATF d6451cc > > Boot: SD2 > > DRAM: 4 GiB > > MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 > > Loading Environment from MMC... *** Warning - bad CRC, using default > > environment > > > > In: serial at 5a060000 > > Out: serial at 5a060000 > > Err: serial at 5a060000 > > Net: Could not get PHY for FEC0: addr 0 > > Could not get PHY for FEC0: addr 0 > > Can't find FEC0 clk rate: -19 > > Could not get PHY for FEC1: addr 1 > > No ethernet found. > > > > Hit any key to stop autoboot: 0 > > switch to partitions #0, OK > > mmc2 is current device > > ** No partition table - mmc 2 ** > > ** No partition table - mmc 2 ** > > Booting from net ... > > Could not get PHY for FEC0: addr 0 > > Could not get PHY for FEC0: addr 0 > > Could not get PHY for FEC0: addr 0 > > Could not get PHY for FEC0: addr 0 > > No ethernet found. > > Could not get PHY for FEC0: addr 0 > > Could not get PHY for FEC0: addr 0 > > Could not get PHY for FEC0: addr 0 > > Could not get PHY for FEC0: addr 0 > > Could not get PHY for FEC0: addr 0 > > No ethernet found. > > Could not get PHY for FEC0: addr 0 > > > > Best Regards, > > > > Oliver > >
diff --git a/drivers/core/device.c b/drivers/core/device.c index 9f39218423..c80ce16fbd 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -432,11 +432,8 @@ int device_probe(struct udevice *dev) if (CONFIG_IS_ENABLED(POWER_DOMAIN) && dev->parent && (device_get_uclass_id(dev) != UCLASS_POWER_DOMAIN) && - !(drv->flags & DM_FLAG_DEFAULT_PD_CTRL_OFF)) { - ret = dev_power_domain_on(dev); - if (ret) - goto fail; - } + !(drv->flags & DM_FLAG_DEFAULT_PD_CTRL_OFF)) + dev_power_domain_on(dev); ret = uclass_pre_probe_device(dev); if (ret)