Referring to the documentation to set the LCD parameters and frame buffer it mentions using setenv videomode video
I have done this in UBoot and during the UBoot the screen has changed to what i expected.
using printenv i can see the following
vidargs=video=mxsfb:800x480M-16@60
videomode=video=ctfb:x:800,y:480,depth:18,pclk:39722,le:0,ri:10,up:0,lo:10,hs:10,vs:10,sync:0,vmode:0
So all looks good
When the kernel starts to boot, the screen changes back to a different setting
From what i have read the settings are taken from the device tree in ‘imx6ull-colibri-eval-v3.dtsi’
I have tried changing this here (also tried adding my own dts,dtsi file) BUT this has had no effect
I have a C program that is part of my main app that does
struct fb_var_screeninfo fvsi;
struct fb_fix_screeninfo ffsi;
if ((lcd_device = open("/dev/fb0", O_RDWR)) < 0) {
perror("open");
result = 1;
exit(1);
}
if (ioctl(lcd_device, FBIOGET_VSCREENINFO, &fvsi) < 0) {
perror("ioctl(FBIOGET_VSCREENINFO)");
close(lcd_device);
result = 1;
exit(1);
}
and looking at the output of fvsi i see the values
pixclock = 33898, left_margin = 96, right_margin = 24, upper_margin = 10, lower margin = 3, hsync_len = 72
I do not have any of these settings in my device tree and this is not what was set via setenv
It seems to me that it is ignoring my dtb file
When i am in UBoot and run ‘run update’ i expect this is updatin ght euBoot, Kernel and dtb ?
Is there anyway from the console to see what screen settings the kernel believes it is using ?