hi 您好
使用MX6點panel AUO21.5" 1920*1080 遇到在開機過程中極化的問題,但進到OS之後畫面正常
按照iMX6QD How to Add 24-bit LVDS Support in Android 的說明
請問是那裡還需要在作設定,在setenv 中ldb=spl0 就不會有任何輸出,如果是ldb=spl1會有時出現freescale loge,但顏色及解析度都不對,後來show freescale logo就變成極化現象在也看不到logo。
下面是提供的相關資訊,已卡很久請求協助,謝謝
開機過程中(ldb_disp_init 設定spl/dul..)發生極化
進到OS的畫面
uboot env set:
setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,LDB-XGA,bpp=32,if=RGB24 ldb=spl1 video=mxcfb1:off video=mxcfb2:off fbmem=10M fb0base=0x27b00000 vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=FA33 ldo_active=on
static struct ipuv3_fb_platform_data sabresd_fb_data[] = {
{ /*fb0*/
.disp_dev = "ldb",
.interface_pix_fmt = IPU_PIX_FMT_RGB24,
.mode_str = "LDB-XGA",
.default_bpp = 24,
.int_clk = false,
.late_init = false,
},
};
static struct fsl_mxc_ldb_platform_data ldb_data = {
.ipu_id = 0,
.disp_id = 1,
.ext_ref = 1,
.mode = LDB_SPL_DI1,
.sec_ipu_id = 0,
.sec_disp_id = 0,
};
static struct fb_videomode ldb_modedb[] = {
{
"LDB-WXGA", 60, 1280, 800, 14065,
40, 40,
10, 3,
80, 10,
0,
FB_VMODE_NONINTERLACED,
FB_MODE_IS_DETAILED,},
{//for auo 21.5
"LDB-XGA",60,1920,1080,13899,
70,90,
10,30,
20,10
0,
FB_VMODE_NONINTERLACED,
0,},
};
static int ldb_disp_init(struct mxc_dispdrv_handle *disp,
struct mxc_dispdrv_setting *setting)
{.................
reg = readl(ldb->control_reg);
644 if ((lvds_channel == 0) && (setting->disp_id == 0))
645 reg |= LDB_CH0_MODE_EN_TO_DI0;
646 else if ((lvds_channel == 0) && (setting->disp_id == 1))
647 reg |= LDB_CH0_MODE_EN_TO_DI1;
648 else if ((lvds_channel == 1) && (setting->disp_id == 0))
649 reg |= LDB_CH1_MODE_EN_TO_DI0;
650 else
651 reg |= LDB_CH1_MODE_EN_TO_DI1;
652 ch_mask = lvds_channel ? LDB_CH1_MODE_MASK :
653 LDB_CH0_MODE_MASK;
654 ch_val = reg & ch_mask;
655
656 if (bits_per_pixel(setting->if_fmt) == 24) {
657 if (lvds_channel == 0)
658 reg |= LDB_DATA_WIDTH_CH0_24;
659 else
660 reg |= LDB_DATA_WIDTH_CH1_24;
661 } else {
662 if (lvds_channel == 0)
663 reg |= LDB_DATA_WIDTH_CH0_18;
664 else
665 reg |= LDB_DATA_WIDTH_CH1_18;
666 }
667 writel(reg, ldb->control_reg);<----設定完就極化
...............................................
}
Seems your display is working when kernel is up. Do you modify the code in u-boot so it can support your display?
按照iMX6QD How to Add 24-bit LVDS Support in Android 的說明作設定,uboot 也有作設定
could you show me what you change in u-boot?
Dear Jimmychan
還有一個問題發現與點panel 有關,會產生"kernel panic" 問題(LVDS+HDMI ,當插上HDMI 也會出現),原本的code 所點的panel , 並沒有看到此問題。
比較詳細的log在附件
[ 1.747043] ldb_disp_init(482) winmate frank wait setting->disp_id=[-1072170984]
[ 1.754660] ldb_disp_init(552) winmate frank writel to ldb reg=[4BF]--->writel(reg, ldb->control_reg);//<----設完極化(Polarization)
..........................以下開始panel極化現象.............................................
[ 13.717018] Freeing init memory: 240K
erfd_create failed
[ 15.674006] healthd: BatteryTemperaturePath not found
[ 15.674779] init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery'
[ 15.687890] healthd: BatteryTechnologyPath not found
[ 15.693080] binder: 2302:2302 transaction failed 29189, size 0-0
[ 15.722454] init: using deprecated syntax for specifying property 'ro.serialno', use ${name} instead
[ 15.728810] scsi 0:0:0:0: Direct-Access JetFlash Transcend 16GB 1100 PQ: 0 ANSI: 0 CCS
[ 15.740610] init: property 'ro.serialno' doesn't exist while expanding '$ro.serialno'
[ 15.741718] sd 0:0:0:0: [sda] 31703040 512-byte logical blocks: (16.2 GB/15.1 GiB)
[ 15.742605] sd 0:0:0:0: [sda] Write Protect is off
[ 15.742619] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[ 15.743335] sd 0:0:0:0: [sda] No Caching mode page present
[ 15.743344] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 15.747831] sd 0:0:0:0: [sda] No Caching mode page present
[ 15.747840] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 15.749712] sda: sda1
[ 15.792583] init: cannot expand '$ro.serialno' while writing to '/sys/class/android_usb/android0/iSerial'
[ 15.795745] usb 2-1.2.4: device not accepting address 8, error -32
[ 15.798084] sd 0:0:0:0: [sda] No Caching mode page present
[ 15.798093] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 15.798103] sd 0:0:0:0: [sda] Attached SCSI removable disk
[ 15.826053] init: using deprecated syntax for specifying property 'ro.product.manufacturer', use ${name} instead
[ 15.836478] init: using deprecated syntax for specifying property 'ro.product.model', use ${name} instead
root@FA33:/ # [ 15.896096] usb 2-1.2.4: new low speed USB device number 9 using fsl-ehci
[ 15.929890] init: property 'sys.powerctl' doesn't exist while expanding '${sys.powerctl}'
[ 15.938328] init: powerctl: cannot expand '${sys.powerctl}'
[ 15.944245] init: property 'sys.sysctl.extra_free_kbytes' doesn't exist while expanding '${sys.sysctl.extra_free_kbytes}'
[ 15.955381] init: cannot expand '${sys.sysctl.extra_free_kbytes}' while writing to '/proc/sys/vm/extra_free_kbytes'
[ 15.966185] android_usb: already disabled
[ 15.970542] mtp_bind_config
[ 15.973513] adb_bind_config
[ 15.993002] adb_open
[ 16.091731] android_work: sent uevent USB_STATE=DISCONNECTED
[ 16.206488] android_work: sent uevent USB_STATE=CONNECTED
[ 16.308990] android_usb gadget: high speed config #1: android
[ 16.315209] android_work: sent uevent USB_STATE=CONFIGURED
[ 16.325762] usb 2-1.2.4: device not accepting address 9, error -32
[ 16.332568] hub 2-1.2:1.0: unable to enumerate USB device on port 4
.....出現..kernel panic.........
[ 16.718890] ldb_disp_setup(222) winmate frank
[ 16.718903] find_ldb_setting(206) winmate frank id=[DISP3 BG - DI1]
[ 16.718914] ldb_disp_setup(252) winmate frank pixel_clk=[71999000]
[ 16.735843] drivers/mxc/ipu3/ipu_disp.c__ipu_dmfc_init(251) winmate frank
[ 16.735856] imx-ipuv3 imx-ipuv3.0: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)
[ 16.735865] _ipu_dmfc_init(327) winmate frank wait 2s
[ 16.735903] find_ldb_setting(206) winmate frank id=[DISP3 BG - DI1]
..........................以上的過程panel極化現象.............................................
[ 16.735910] ldb_disp_enable(273) winmate frank index=[0]
[ 18.740289] ldb_disp_enable(280) winmate frank reg=[4bf]
[ 18.740297] ldb_disp_enable(282) winmate frank<--------------------開始出顯 android logo(畫面正常)
Dear frank:
I meet the same question like you,do you solve your question?can you tell me how to deal with that。
Hi Jimmychan
謝謝你的協助。
1:定義一個paneltype.h,並且在mx6q_sabresd.c include paneltype
/*winmate frank Maintenance panel parameters table*/
#ifndef _PANEL_TYEP_
#define _PANEL_TYEP_
#if defined(AUO_M215HTN0) || defined(HANNSTAR_HSD100IFW4)
#include <ipu.h>
#include <linux/fb.h>
#elif defined(CONFIG_PANEL_AUO_M215HTN0) ||defined(CONFIG_PANEL_HANNSTAR_HSD100IFW4)
#include <linux/ipu.h>
#include <linux/fb.h>
#include <linux/fsl_devices.h>
#endif
#if defined(AUO_M215HTN0) || defined(CONFIG_PANEL_AUO_M215HTN0)
#define PANEL_REFRESH 60
#define PANEL_XRES 1920
#define PANEL_YRES 1080
#define PANEL_PIXCLOCK 13889
#define PANEL_LEFT_MARGIN 70
#define PANEL_RIGHT_MARGIN 90
#define PANEL_UPPER_MARGIN 10
#define PANEL_LOWER_MARGIN 30
#define PANEL_HSYNC_LEN 20
#define PANEL_VSYNC_LEN 10
#define PANEL_SYNC FB_SYNC_EXT
#define PANEL_VMODE FB_VMODE_NONINTERLACED//FB_VMODE_DOUBLE
#define PANEL_FLAG 0
#define PANEL_FREQ 72000000
#define PANEL_PIX_FMT IPU_PIX_FMT_RGB24
#define PANEL_PWM_PERIOD 5000000 //pwm Feq 200Hz
#if !defined(CONFIG_PANEL_AUO_M215HTN0)
#define PANEL_PCLK_LDB DI_PCLK_LDB
#else
#define PANEL_LDB_MODE LDB_SPL_DI0
#endif
#endif
#if defined(HANNSTAR_HSD100IFW4) ||defined(CONFIG_PANEL_HANNSTAR_HSD100IFW4)
#define PANEL_REFRESH 60
#define PANEL_XRES 1024
#define PANEL_YRES 600
#define PANEL_PIXCLOCK 15385
#define PANEL_LEFT_MARGIN 220
#define PANEL_RIGHT_MARGIN 40
#define PANEL_UPPER_MARGIN 21
#define PANEL_LOWER_MARGIN 7
#define PANEL_HSYNC_LEN 60
#define PANEL_VSYNC_LEN 10
#define PANEL_SYNC FB_SYNC_EXT
#define PANEL_VMODE FB_VMODE_NONINTERLACED
#define PANEL_FLAG 0
#define PANEL_FREQ 65000000
#define PANEL_PIX_FMT IPU_PIX_FMT_RGB666
#define PANEL_PWM_PERIOD 50000
#if !defined(CONFIG_PANEL_HANNSTAR_HSD100IFW4)
#define PANEL_PCLK_LDB DI_PCLK_LDB
#else
#define PANEL_LDB_MODE LDB_SEP0
#endif
#endif
#endif//#ifndef _PANEL_TYEP_
static struct fb_videomode lvds_xga = {
"LDB-XGA",PANEL_REFRESH,
PANEL_XRES,PANEL_YRES,PANEL_PIXCLOCK,
PANEL_LEFT_MARGIN,PANEL_RIGHT_MARGIN,
PANEL_UPPER_MARGIN,PANEL_LOWER_MARGIN,
PANEL_HSYNC_LEN,PANEL_VSYNC_LEN,
PANEL_SYNC,
PANEL_VMODE,
PANEL_FLAG,
};
void lcd_enable(void)
{
.....
if (di == 1) {
reg = readl(CCM_BASE_ADDR + CLKCTL_CCGR3);
reg |= 0xC033;-->修改成 0x0F3F,不管是原本的0xC033 Or 0XF3F 都是一樣
writel(reg, CCM_BASE_ADDR + CLKCTL_CCGR3);
} else {
reg = readl(CCM_BASE_ADDR + CLKCTL_CCGR3);
reg |= 0x300F;
writel(reg, CCM_BASE_ADDR + CLKCTL_CCGR3);
}
ret = ipuv3_fb_init(&lvds_xga, di,PANEL_PIX_FMT, DI_PCLK_LDB,PANEL_FREQ);<----修改
if (ret)
puts("LCD cannot be configured\n");
......
}
setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,LDB-XGA,bpp=32,if=RGB24 ldb=spl1 video=mxcfb1:off video=mxcfb2:off fbmem=10M fb0base=0x27b00000 vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=FA33 ldo_active=on
以上是修改uboot for LVDS
Hello Jimmy,
thank you for the help, one more update here, Frank has tried to disabled the splash screen in u-boot by comment-out "#define CONFIG_SPLASH_SCREEN", after this modification there is no display at all(even in Android).
by the way, I have found a post below:
https://community.freescale.com/docs/DOC-98109
which might be helpful to this issue but that is for 4.2.2 only, so far the development is based on KK4.4.2, not easy to use as reference.
could you help to check if there is something wrong with the setting in u-boot?
Thank you,
Jim.
I think customer can try the modification in https://community.freescale.com/docs/DOC-98109
Although it is for JB4.2.2, the u-boot is basically the same source code as KK4.4.2.
Have tried, can not boot