[PATCH 3/3] imx: power-domain: Get rid of SMCCC dependency

Adam Ford aford173 at gmail.com
Sun Apr 17 20:24:40 CEST 2022


On Sun, Apr 17, 2022 at 1:15 PM Marek Vasut <marex at denx.de> wrote:
>
> On 4/17/22 18:37, Adam Ford wrote:
>
> [...]
>
> > When I just reverted all three of those, it still hangs.  However,
> > when I removed CONFIG_CLK, it recovered.  I'll examine which clocks
> > may be missing or if there is some other clock dependency.
>
> Hum, clock sounds indeed more plausible cause of the hang because the
> SMC calls (or the power domain driver) does not come up so early in the
> process. (the other possibility is that you're running of MALLOC_F space
> due to the extra clock).
>
> The obvious other question I have would be -- does it hang if you only
> enable CONFIG_CLK=y without these patches here ?

It appears that I just needed to enable the CCF, CCF composite, and
the IMX8MQ clock driver which were previously disabled by default.
With those enabled, it booted just fine.
Once it booted, I was able to start the USB system and it detected a
USB thumb drive.

I did not enable them in SPL, but I can try it if you want.

Should we expand the power domain dependency to include these clocks,
or should these clocks just turn on by default if/when the 8MQ is the
target SOC?

At this point, I don't think it's a MALLOC_F issue, but I considered that.

I can mark your patch with a t-b, but I am not sure if you want to do
a V2 with these clocks enabled or do something different.

As a side note, after I enabled those clocks, U-Boot generated some
new splat.  It's unrelated to your patch. I think it bears some
investigation as a separate thread in itself, but I don't think it
should stop your patch series.

U-Boot 2022.04-00822-g70faebd20c (Apr 17 2022 - 13:12:53 -0500)

CPU:   Freescale i.MX8MQ rev2.1 at 1000 MHz
Reset cause: POR
Model: NXP i.MX8MQ EVK
DRAM:  3 GiB
clk_register: failed to get <NULL> device (parent of ckil)
clk_register: failed to get <NULL> device (parent of clock-osc-27m)
clk_register: failed to get <NULL> device (parent of sys1_pll)
clk_register: failed to get <NULL> device (parent of sys2_pll)
clk_register: failed to get <NULL> device (parent of sys3_pll)
Core:  134 devices, 17 uclasses, devicetree: separate
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
SEC0:  RNG instantiated
Net:   eth0: ethernet at 30be0000
Hit any key to stop autoboot:  0
u-boot=> usb start
starting USB...
Bus usb at 38200000: Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus usb at 38200000 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
u-boot=>


More information about the U-Boot mailing list