Drive LVDS panel on i.MX8QM board with Xen Hypervisor

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Drive LVDS panel on i.MX8QM board with Xen Hypervisor

1,073 次查看
nevozade
Contributor IV

Hello,

I am working on the i.MX8QM board and I desire to drive (display) LVDS panel on a DomU which is created with Xen hypervisor. Without Xen hypervisor, when I set the fdt_file as imx8qm-mek-jdi-wuxga-lvds1-panel.dtb on u-boot, the Weston service runs and I can get view on the LVDS panel. (imx8qm-mek-jdi-wuxga-lvds1-panel.dtsi is attached that I used, also screenshot of the status of the Weston when it is active.) 

ok.PNG

Then I reboot the board and, I run xenmmcboot to run with Xen hypervisor and Xen works properly. (I can see Domain-0 with xl list command as shown in the attached screenshot).

dom0ain.PNG

After that, I create DomU with the /etc/xen/domu-imx8qm-mek.cfg file which is also attached and I boot it with xl console DomU command. However, after booting, when I check the Weston service, I observed that it is failed so I cannot drive the LVDS panel from DomU. (imx8qm-mek-domu.dts is also attached.)

domu.PNG

err.PNG

Would you please check the attached screenshots and files, then reply for a solution to drive LVDS?

Best Regards,

Nevzat

标记 (5)
1 回复

1,045 次查看
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

This problem is fixed and the display is working smoothly. 
For some reason defining in the device tree the deserializer node and the display timing inside the serializer node were causing an issue. Also just providing the deserializer I2C address in the serializer node is sufficient.

So I removed the deserializer node and created a panel node to define the display timing like this:

 

&ldb1 {
	status = "okay";
	fsl,dual-channel;
	
	lvds-channel@0 {
		fsl,data-mapping = "spwg";
		fsl,data-width = <24>;
		status = "okay";
 
		port@1 {
			reg = <1>;
			lvds0_out: endpoint {
				remote-endpoint = <&panel0_input>;
			};
		};
	};
};

/ {
	panel0: panel0 {
		status = "okay";
		compatible = "panel-lvds";
		data-mapping = "vesa-24";
		width-mm = <283>;
		height-mm = <159>;

		panel-timing {
			clock-frequency = <143200000>;
			hactive = <1920>;
			vactive = <1080>;
			hfront-porch = <32>;
			hback-porch = <32>;
			hsync-len = <16>;
			vback-porch = <16>;
			vfront-porch = <70>;
			vsync-len = <8>;
			hsync-active = <1>;
			vsync-active = <0>;
		};

		port {
			panel0_input: endpoint {
				remote-endpoint = <&lvds0_out>;
			};
		};
	};
};

&i2c0_lvds0 {
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_lvds0_lpi2c0>;
	clock-frequency = <100000>;
	status = "okay";

	serializer: serializer@c {
		compatible = "ti,ds90ub947";
		reg = <0x0c>;
		#address-cells = <0x1>;
		#size-cells = <0x0>;
		#reset-cells = <0x1>;
		dual-pixel-mode;
		ti,enable-bchnl-i2c = <0x1>;	// I2C Pass All/I2C Passthrough - reg 0x3 bit 3 - reg 0x17 bit 7
		ti,enable-bchnl-irq = <0x1>;	// Interrupt - 0xc6 bit 0 and 5
		ti,deser-addr = <0x2c>;			// DES Device ID - reg 0x6 bit 1:7
		ti,slave-addr = <0x00>;			// Slave ID 0 - reg 0x7 bit 1:7
		ti,slave-alias-addr = <0x00>;	// Slave Alias ID 0 - reg 0x8 bit 1:7
	};
	
	// Led Driver for backlight control
	lp8860@2d {
		compatible = "ti,lp8860";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x2d>;
		label = "display_cluster";
	};
};

 

Regards

0 项奖励
回复