UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Participant mojtaba.ahmadi
Participant
348 Views
Registered: ‎05-20-2018

startx turns LCD off

hello.

I am working on MYiR zturn board. I want to boot up linux with desktop environment. I designed my PL with vdma and axi4 lite video out and an LCD is connected to board with HDMI. and corresponding driver is written for linux.

when system boots, The LCD turns on and displays random colors, but when "startx" runs (that I expect desktop environment to be shown), LCD turns off and after a while this error is claimed:

cpufreq: __cpufreq_driver_target: Failed to change cpu frequency: -16
cpufreq_cpu0: failed to set clock rate: -16

 

what is the problem? does running server X harms cpu frequency? or the problem is with driver?

I have serache da lot but have not found any solution for my problem.

thank you.

0 Kudos
4 Replies
Moderator
Moderator
332 Views
Registered: ‎09-12-2007

Re: startx turns LCD off

Can you share the device-tree node for your LCD ip?
0 Kudos
Participant mojtaba.ahmadi
Participant
297 Views
Registered: ‎05-20-2018

Re: startx turns LCD off

@stephenm

I have nothing about LCD in my device tree, but have something for my driver that is working with frame buffer of linux. device tree for LCD is not nedded becuase of my design.

design is in this way:

 

Capture.PNG

 

corresponding device tree is:

 

 

logicvc@43c10000 {
compatible = "fmr,logicvc-1.00.a";
interrupt-parent = <0x3>;
interrupts = <0x0 0x1e 0x4>;
reg = <0x43000000 0x10000>;
fmr,clk-baseaddr = <0x43c10000>;
fmr,clk-size = <0x10000>;
fmr,vtc-baseaddr = <0x43c00000>;
fmr,vtc-size = <0x10000>;
fmr,buffer-0-offset = <0x438>;
fmr,buffer-1-offset = <0x438>;
fmr,buffer-2-offset = <0x438>;
fmr,buffer-3-offset = <0x438>;
fmr,display-color-space = <0x0>;
fmr,buffer-4-offset = <0x400>;
fmr,display-interface = <0x0>;
fmr,layer-0-alpha-mode = <0x1>;
fmr,layer-0-data-width = <0x18>;
fmr,layer-0-offset = <0x0>;
fmr,layer-0-type = <0x0>;
fmr,layer-1-alpha-mode = <0x0>;
fmr,layer-1-data-width = <0x18>;
fmr,layer-1-offset = <0xfd2>;
fmr,layer-1-type = <0x0>;
fmr,layer-2-alpha-mode = <0x0>;
fmr,layer-2-data-width = <0x18>;
fmr,layer-2-offset = <0x0>;
fmr,layer-2-type = <0x0>;
fmr,layer-3-alpha-mode = <0x3>;
fmr,layer-3-data-width = <0x8>;
fmr,layer-3-offset = <0x32a0>;
fmr,layer-3-type = <0x0>;
fmr,layer-4-alpha-mode = <0x0>;
fmr,layer-4-data-width = <0x18>;
fmr,layer-4-offset = <0x2000>;
fmr,layer-4-type = <0x0>;
fmr,num-of-layers = <0x1>;
fmr,readable-regs = <0x1>;
fmr,row-stride = <0x800>;
fmr,vmem-baseaddr = <0x30000000>;
fmr,vmem-highaddr = <0x3fffffff>;
pixel-clock-source = <0x2>;
pixel-data-invert = <0x0>;
pixel-clock-active-high = <0x0>;
pixel-component-format = "ARGB";
pixel-component-layer = <0x0 0x1 0x2>;
fmr,use-background = <0x0>;
active-layer = <0x0>;
videomode = "1920x1080";

edid {
preffered-videomode = <0x1>;
display-data = <0x1>;
};

fmr-video-params {

640x480_LCD1 {
refresh = <0x3c>;
xres = <0x280>;
yres = <0x1e0>;
pixclock-khz = <0x61a8>;
left-margin = <0x10>;
right-margin = <0x30>;
upper-margin = <0xa>;
lower-margin = <0x21>;
hsync-len = <0x60>;
vsync-len = <0x2>;
sync = <0x0>;
vmode = <0x0>;
};

480x272_LCDV1 {
refresh = <0x3c>;
xres = <0x1e0>;
yres = <0x110>;
pixclock-khz = <0x2710>;
left-margin = <0x28>;
right-margin = <0x28>;
upper-margin = <0x1d>;
lower-margin = <0xd>;
hsync-len = <0x30>;
vsync-len = <0x3>;
sync = <0x0>;
vmode = <0x0>;
};

800x480_LCDV2 {
refresh = <0x3c>;
xres = <0x320>;
yres = <0x1e0>;
pixclock-khz = <0x8232>;
left-margin = <0xd2>;
right-margin = <0x2c>;
upper-margin = <0x16>;
lower-margin = <0x15>;
hsync-len = <0x2>;
vsync-len = <0x2>;
sync = <0x0>;
vmode = <0x0>;
};

1024x768 {
refresh = <0x3c>;
xres = <0x400>;
yres = <0x300>;
pixclock-khz = <0xfde8>;
left-margin = <0xa0>;
right-margin = <0x18>;
upper-margin = <0x1d>;
lower-margin = <0x3>;
hsync-len = <0x88>;
vsync-len = <0x6>;
sync = <0x1>;
vmode = <0x0>;
};

1280x720 {
refresh = <0x3c>;
xres = <0x500>;
yres = <0x2d0>;
pixclock-khz = <0x1220a>;
left-margin = <0xdc>;
right-margin = <0x6e>;
upper-margin = <0x14>;
lower-margin = <0x5>;
hsync-len = <0x28>;
vsync-len = <0x5>;
sync = <0x1>;
vmode = <0x0>;
};

1680x1050 {
refresh = <0x3c>;
xres = <0x690>;
yres = <0x41a>;
pixclock-khz = <0x1d0d8>;
left-margin = <0x50>;
right-margin = <0x30>;
upper-margin = <0x15>;
lower-margin = <0x3>;
hsync-len = <0x20>;
vsync-len = <0x6>;
sync = <0x0>;
vmode = <0x0>;
};

1920x1080 {
refresh = <0x3c>;
xres = <0x780>;
yres = <0x438>;
pixclock-khz = <0x24414>;
left-margin = <0x94>;
right-margin = <0x58>;
upper-margin = <0x24>;
lower-margin = <0x4>;
hsync-len = <0x2c>;
vsync-len = <0x5>;
sync = <0x0>;
vmode = <0x0>;
};
};
};
0 Kudos
Participant mojtaba.ahmadi
Participant
280 Views
Registered: ‎05-20-2018

Re: startx turns LCD off

I edit device tree in this way and the frequency error cleared. but the main problem about turning off the LCD after running startx exists yet.

 

logicvc@43c10000 {
			compatible = "fmr,logicvc-1.00.a";
			interrupt-parent = <0x3>;
			interrupts = <0x0 0x1e 0x4>;
			reg = <0x43000000 0x10000>;
			fmr,clk-baseaddr = <0x43c10000>;
			fmr,clk-size = <0x10000>;
			fmr,vtc-baseaddr = <0x43c00000>;
			fmr,vtc-size = <0x10000>;
			fmr,buffer-0-offset = <0x438>;
			fmr,buffer-1-offset = <0x438>;
			fmr,buffer-2-offset = <0x438>;
			fmr,buffer-3-offset = <0x438>;
			fmr,buffer-4-offset = <0x438>;
			fmr,display-color-space = <0x0>;
			fmr,display-interface = <0x0>;
			fmr,layer-0-alpha-mode = <0x1>;
			fmr,layer-0-data-width = <0x18>;
			fmr,layer-0-offset = <0x1c7a>;
			fmr,layer-0-type = <0x0>;
			fmr,layer-1-alpha-mode = <0x0>;
			fmr,layer-1-data-width = <0x18>;
			fmr,layer-1-offset = <0xfd2>;
			fmr,layer-1-type = <0x0>;
			fmr,layer-2-alpha-mode = <0x0>;
			fmr,layer-2-data-width = <0x18>;
			fmr,layer-2-offset = <0x0>;
			fmr,layer-2-type = <0x0>;
			fmr,layer-3-alpha-mode = <0x3>;
			fmr,layer-3-data-width = <0x8>;
			fmr,layer-3-offset = <0x32a0>;
			fmr,layer-3-type = <0x0>;
			fmr,layer-4-alpha-mode = <0x0>;
			fmr,layer-4-data-width = <0x18>;
			fmr,layer-4-offset = <0x2000>;
			fmr,layer-4-type = <0x0>;
			fmr,num-of-layers = <0x1>;
			fmr,readable-regs = <0x1>;
			fmr,row-stride = <0x800>;
			fmr,vmem-baseaddr = <0x30000000>;
			fmr,vmem-highaddr = <0x3fffffff>;
			pixel-clock-source = <0x2>;
			pixel-data-invert = <0x0>;
			pixel-clock-active-high = <0x0>;
			pixel-component-format = "ARGB";
			pixel-component-layer = <0x0 0x1 0x2>;
			fmr,use-background = <0x0>;
			active-layer = <0x1>;
			videomode = "1920x1080";

			edid {
				preffered-videomode = <0x1>;
				display-data = <0x1>;
			};

			fmr-video-params {

				640x480_LCD1 {
					refresh = <0x3c>;
					xres = <0x280>;
					yres = <0x1e0>;
					pixclock-khz = <0x61a8>;
					left-margin = <0x10>;
					right-margin = <0x30>;
					upper-margin = <0xa>;
					lower-margin = <0x21>;
					hsync-len = <0x60>;
					vsync-len = <0x2>;
					sync = <0x0>;
					vmode = <0x0>;
				};

				480x272_LCDV1 {
					refresh = <0x3c>;
					xres = <0x1e0>;
					yres = <0x110>;
					pixclock-khz = <0x2710>;
					left-margin = <0x28>;
					right-margin = <0x28>;
					upper-margin = <0x1d>;
					lower-margin = <0xd>;
					hsync-len = <0x30>;
					vsync-len = <0x3>;
					sync = <0x0>;
					vmode = <0x0>;
				};

				800x480_LCDV2 {
					refresh = <0x3c>;
					xres = <0x320>;
					yres = <0x1e0>;
					pixclock-khz = <0x8232>;
					left-margin = <0xd2>;
					right-margin = <0x2c>;
					upper-margin = <0x16>;
					lower-margin = <0x15>;
					hsync-len = <0x2>;
					vsync-len = <0x2>;
					sync = <0x0>;
					vmode = <0x0>;
				};

				1024x768 {
					refresh = <0x3c>;
					xres = <0x400>;
					yres = <0x300>;
					pixclock-khz = <0xfde8>;
					left-margin = <0xa0>;
					right-margin = <0x18>;
					upper-margin = <0x1d>;
					lower-margin = <0x3>;
					hsync-len = <0x88>;
					vsync-len = <0x6>;
					sync = <0x1>;
					vmode = <0x0>;
				};

				1280x720 {
					refresh = <0x3c>;
					xres = <0x500>;
					yres = <0x2d0>;
					pixclock-khz = <0x1220a>;
					left-margin = <0xdc>;
					right-margin = <0x6e>;
					upper-margin = <0x14>;
					lower-margin = <0x5>;
					hsync-len = <0x28>;
					vsync-len = <0x5>;
					sync = <0x1>;
					vmode = <0x0>;
				};

				1680x1050 {
					refresh = <0x3c>;
					xres = <0x690>;
					yres = <0x41a>;
					pixclock-khz = <0x1d0d8>;
					left-margin = <0x50>;
					right-margin = <0x30>;
					upper-margin = <0x15>;
					lower-margin = <0x3>;
					hsync-len = <0x20>;
					vsync-len = <0x6>;
					sync = <0x0>;
					vmode = <0x0>;
				};

				1920x1080 {
					refresh = <0x3c>;
					xres = <0x780>;
					yres = <0x438>;
					pixclock-khz = <0x24414>;
					left-margin = <0x94>;
					right-margin = <0x58>;
					upper-margin = <0x24>;
					lower-margin = <0x4>;
					hsync-len = <0x2c>;
					vsync-len = <0x5>;
					sync = <0x0>;
					vmode = <0x0>;
				};
			};
		};
0 Kudos
Participant mojtaba.ahmadi
Participant
183 Views
Registered: ‎05-20-2018

Re: startx turns LCD off

start x after running, looks for xorg.conf and I did not have it. I create this file in /etc/X11/ directory and write this code in it:

 

 

Section "Screen"
        Identifier "Screen0"
        Device "/dev/fb0"
EndSection

now the screen stays at showing random pixels state.

 

but still I can not display the Desktop Environment.

0 Kudos