Hello,
I'm working on sabre sd board (imx6dl) and trying to switch to a different display. But the bad news, i'm new to Android.
The resolution of the LVDS display that comes with the board is 1024x768. However my new display is 1024x600 LVDS and it does not support EDID.
In the u-boot, it says; "No panel detected: default to Hannstar-XGA"
I have edited the resolution of this panel in "mx6sabresd.c" and that fixed the resolution of the u-boot (and the u-boot logo).
But the resolution inside Android (lollipop) is still wrong. The bottom of the screen is outside of my display.
I have tried editing "BoardConfig.mk" like that
"BOARD_KERNEL_CMDLINE := console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,1024x600M@60,if=RGB666 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=400M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M androidboot.serialno=1e1b29d4dbc91258"
and that
"BOARD_KERNEL_CMDLINE := console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,1024x600M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=400M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M androidboot.serialno=1e1b29d4dbc91258"
Nothing changed.
The display works fine, but the bottom area is still outside of the display.
Could you please tell me how to change the resolution?
Solved! Go to Solution.
igorpadykov:
Hi atakan
below link shows example for changing ldb resolution for kernel with device tree,
as in lollipop
Thank you Igor.
Finally my problem is solved.
I have edited the file "kernel_imx/arch/arm/boot/dts/imx6qdl_sabresd.dtsi" and modified only this part:
&ldb {
status = "okay";
lvds-channel@0 {
fsl,data-mapping = "spwg";
fsl,data-width = <18>;
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: hsd100pxn1 {
clock-frequency = <65000000>;
hactive = <1024>;
vactive = <768>;
hback-porch = <220>;
hfront-porch = <40>;
vback-porch = <21>;
vfront-porch = <7>;
hsync-len = <60>;
vsync-len = <10>;
};
};
};
lvds-channel@1 {
fsl,data-mapping = "spwg";
fsl,data-width = <18>;
primary;
status = "okay";
display-timings {
native-mode = <&timing1>;
timing1: hsd100pxn1 {
clock-frequency = <65000000>;
hactive = <1024>;
vactive = <768>;
hback-porch = <220>;
hfront-porch = <40>;
vback-porch = <21>;
vfront-porch = <7>;
hsync-len = <60>;
vsync-len = <10>;
};
};
};
};
HI atakan
general procedure for adding new LCD to Android is described at
iMX6QD How to Add 24-bit LVDS Support in Android
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/fb/modedb.txt
regarding 1024x600 LVDS configuration, one can look at boundary devices Android releases
as it use Nit6X_1024x600 LCD
http://boundarydevices.com/configuring-i-mx6-machines-different-screens-nitrogen6x-sabre-lite/
below some example adding new lvds lcd:
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thank you for assistance.
I've double checked the procedure that you said, digged into "ldb.c" and some other files but could not find a place to add my new display. Sure, this way is applicable for the previous releases but not for lollipop. (Because "ldb.c" is different than the previous releases.)
And the Boundary Devices solution is also useless in my case. As i told before, i have tried adding the resolution to "BoardConfig.mk" but nothing changed. The only thing is, i'm not sure if i've added the resolution to the correct place or not. Here is what exactly i did in "BoardConfig.mk"
"BOARD_KERNEL_CMDLINE := console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,1024x600M@60,if=RGB666 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=400M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M androidboot.serialno=1e1b29d4dbc91258"
Is that correct?
Is there a working solution for lollipop?
I have also discovered that editing "BoardConfig.mk" alone, is ineffective for jellybean too. I think i'm digging the wrong place.
So where should i write "video=mxcfb0:dev=ldb,1024x600M@60,if=RGB666" to be effective?
1024x600 LCD is not supported by default in BSP, so you can not
write these parameters, they will be ignored. Support for 1024x600 LCD
may be added using procedures given before:
iMX6QD How to Add 24-bit LVDS Support in Android
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/fb/modedb.txt
or looking at boundary devices BSP releases with its Nit6X_1024x600 LCD
http://boundarydevices.com/configuring-i-mx6-machines-different-screens-nitrogen6x-sabre-lite/
Best regards
igor
Thank you Igor.
As i said, the procedures cannot be applied to lollipop (and also kitkat i think). For jellybean, it's ok, but lollipop is a little bit different, especially in "ldb.c".
I cant find the place that i should define the new display.
Hi atakan
below link shows example for changing ldb resolution for kernel with device tree,
as in lollipop
~igor
igorpadykov:
Hi atakan
below link shows example for changing ldb resolution for kernel with device tree,
as in lollipop
Thank you Igor.
Finally my problem is solved.
I have edited the file "kernel_imx/arch/arm/boot/dts/imx6qdl_sabresd.dtsi" and modified only this part:
&ldb {
status = "okay";
lvds-channel@0 {
fsl,data-mapping = "spwg";
fsl,data-width = <18>;
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: hsd100pxn1 {
clock-frequency = <65000000>;
hactive = <1024>;
vactive = <768>;
hback-porch = <220>;
hfront-porch = <40>;
vback-porch = <21>;
vfront-porch = <7>;
hsync-len = <60>;
vsync-len = <10>;
};
};
};
lvds-channel@1 {
fsl,data-mapping = "spwg";
fsl,data-width = <18>;
primary;
status = "okay";
display-timings {
native-mode = <&timing1>;
timing1: hsd100pxn1 {
clock-frequency = <65000000>;
hactive = <1024>;
vactive = <768>;
hback-porch = <220>;
hfront-porch = <40>;
vback-porch = <21>;
vfront-porch = <7>;
hsync-len = <60>;
vsync-len = <10>;
};
};
};
};