imx6ull processor based board's console freezes in kernel 6.1.22 when LCD node is disabled in dts

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx6ull processor based board's console freezes in kernel 6.1.22 when LCD node is disabled in dts

272 Views
jay_kaneria
Contributor I

Hi, 

I am using the imx6ull-based custom board. We have used i2c and uart-related interfaces. We have not used UI and sound-related interfaces. Everything is working fine with the 4.9 kernel. Now 4.9 kernel is coming to the end of its life. So we are upgrading to the latest kernel 6.1.22 (mickledore). 

I have followed upgradation steps from here https://www.nxp.com/docs/en/user-guide/IMX_YOCTO_PROJECT_USERS_GUIDE.pdf

I am facing the issue of console freezing. Normally board boots up and I get the login prompt. After getting the login prompt, the console freezes in 5 to 10 seconds.

Initially, I thought that this could be a uart issue. But I have changed debug uart. But that didn't solve the issue. But one weird thing is that when I use the LCD node in my dts file, that avoids the console freezing issue. I have not used LCD in my design at all. LCD node as mentioned below:

&lcdif {
assigned-clocks = <&clks IMX6UL_CLK_LCDIF_PRE_SEL>;
assigned-clock-parents = <&clks IMX6UL_CLK_PLL5_VIDEO_DIV>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lcdif_dat
&pinctrl_lcdif_ctrl>;
display = <&display0>;
status = "disable";

display0: display@0 {
bits-per-pixel = <16>;
bus-width = <24>;

display-timings {
native-mode = <&timing0>;

timing0: timing0 {
clock-frequency = <9200000>;
hactive = <480>;
vactive = <272>;
hfront-porch = <8>;
hback-porch = <4>;
hsync-len = <41>;
vback-porch = <2>;
vfront-porch = <4>;
vsync-len = <10>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
pixelclk-active = <0>;
};
};
};
};

If I enabled this node and pins related to a node in the dts file, this avoids the console freezing issue. I tried to disable the node in my dts file and removed the driver related to LCD from kernel defconfig. That seems not to solve the problem. I can't let the LCD node be enabled in my dts file because I am using some of the LCD pins as gpio in my custom board.

 

How can this LCD node being impacting the console freezing issue?

iMX6ULL iMX6UL 

 

Labels (1)
0 Kudos
1 Reply

204 Views
jay_kaneria
Contributor I

Hi NXP Team,

 

Update on the above issue.

 

It's not an LCD node that avoids kernel freeze on the 6.1.22 kernel.

 

If there is no process running and all other running processes are in a sleep state, then the kernel will freeze after a successful mount of rootfs. It will provide a login prompt and after 4 to 5 seconds, it will freeze.

 

Now, I run any process that makes the kernel busy somehow (e.g. while(1) loop with 1-second sleep), and then the console won't freeze. I have tested this for 3 days and the board was working fine with the mentioned process running. Probably when I enabled the LCD node, that might kept the kernel busy somehow and that avoided the console freeze.

 

I can't understand why I have to make the kernel busy to avoid console freeze. 

 

Any help in this will be appreciated. Thanks. 

0 Kudos