AnsweredAssumed Answered

imx7d: Mainstream boots, fslc does not.

Question asked by Dan Merillat on Sep 21, 2019
Latest reply on Oct 18, 2019 by igorpadykov

Mainline 4.14.x kernel works, freescale/nxp modified 4.14.x kernel does not.

 

Running the 4.14.x mainstream kernel on my i.mx7d (specifically the 7d3evk10sc) and everything works as expected except the m4 co-processor.

 

Attempting to run the 4.14-2.0.x-imx branch from https://github.com/Freescale/linux-fslc/tree/4.14-2.0.x-imx  does nothing.  No early-printk on the console, nothing at all.

 

I spent some time doing bisection and the following commits cause a complete boot failure, no serial output after "Starting kernel":

 

9a0a578 MLK-11349-3 ARM: imx: update clk driver for imx7d

Specifically this line in clk-imx7d.c:

 

/* set lcdif pixel root clock source to get the required 33Mhz clock */
imx_clk_set_parent(clks[IMX7D_LCDIF_PIXEL_ROOT_SRC], clks[IMX7D_PLL_VIDEO_POST_DIV]);

 

a75767c774c32  MLK-10406 ARM: imx: check the clk_set_rate() return value - apparently the clock rate is being set correctly but returning an error, and this change aborts serial setup causing no output.

 

And the this one starts to boot but oopses out early on:

58e25094b4 MLK-11357-2 ARM: imx: add cpuidle support for imx7d

 

Additionally, even with those commits reverted, attempting to use the new entries in the device tree fails.

Specific problems include:

imx7d.dtsi unconditionally enabling 1.2ghz, even on the older 1ghz parts.  No console output during boot.

Anything that touches the OCRAM_CLK (ocram, ocrams, ocrams_ddr, etc).  No console output during boot.

 

Possibly others but this was already getting ridiculous.  Clearly something is fundamentally wrong here.

 

My DTS file is currently pared down to just #include "imx7d.dtsi", plus the RAM and serial port for the console to eliminate all other drivers as possible causes.  This boots on mainline, and not on 4.14.x+fslc

 

 

Specific questions:

What board/processor is current imx7d development being tested against?

Are there differences between the 1ghz and 1.2ghz parts that would require separate .dtsi files?

Are there differences between the two pin-count options that would require separate .dtsi files except for the obvious pinctl differences?

If the freescale development kernel is "unsupported", What supported kernel version is newer than 5 years old and has support for the m4 core of the 7d?

Alternately, what changes need to be made to enable the m4 core on the mainline kernels, which work correctly?

 

Mainline 4.14.x kernel works, freescale/nxp modified 4.14.x kernel does not.

Outcomes