I used ipu_id 0 and disp id 0,the follow is my uboot config:
#elif defined CONFIG_MX6DL /* CONFIG_MX6Q */
/*
* IPU1 HSP clock tree:
* osc_clk(24M)->pll3_usb_otg_main_clk(480M)->
* pll3_pfd_540M(540M)->ipu1_clk(270M)
*/
/* pll3_usb_otg_main_clk */
/* divider */
writel(0x3, ANATOP_BASE_ADDR + 0x18);
/* pll3_pfd_540M */
/* divider */
writel(0x3F << 8, ANATOP_BASE_ADDR + 0xF8);
writel(0x10 << 8, ANATOP_BASE_ADDR + 0xF4);
/* enable */
writel(0x1 << 15, ANATOP_BASE_ADDR + 0xF8);
/* ipu1_clk */
reg = readl(CCM_BASE_ADDR + CLKCTL_CSCDR3);
/* source */
reg |= (0x3 << 9);
/* divider */
reg &= ~(0x7 << 11);
reg |= (0x1 << 11);
writel(reg, CCM_BASE_ADDR + CLKCTL_CSCDR3);
/*
* ipu1_pixel_clk_x clock tree:
* osc_clk(24M)->pll2_528_bus_main_clk(528M)->
* pll2_pfd_352M(452.57M)->ldb_dix_clk(64.65M)->
* ipu1_di_clk_x(64.65M)->ipu1_pixel_clk_x(64.65M)
*/
/* pll2_528_bus_main_clk */
/* divider */
writel(0x1, ANATOP_BASE_ADDR + 0x34);
/* pll2_pfd_352M */
/* disable */
writel(0x1 << 7, ANATOP_BASE_ADDR + 0x104);
/* divider */
writel(0x3F, ANATOP_BASE_ADDR + 0x108);
writel(0x15, ANATOP_BASE_ADDR + 0x104);
/* ldb_dix_clk */
/* source */
reg = readl(CCM_BASE_ADDR + CLKCTL_CS2CDR);
reg &= ~(0x3F << 9);
reg |= (0x9 << 9);
writel(reg, CCM_BASE_ADDR + CLKCTL_CS2CDR);
/* divider */
reg = readl(CCM_BASE_ADDR + CLKCTL_CSCMR2);
reg |= (0x3 << 10);
writel(reg, CCM_BASE_ADDR + CLKCTL_CSCMR2);
/* pll2_pfd_352M */
/* enable after ldb_dix_clk source is set */
writel(0x1 << 7, ANATOP_BASE_ADDR + 0x108);
/* ipu1_di_clk_x */
/* source */
reg = readl(CCM_BASE_ADDR + CLKCTL_CHSCCDR);
reg &= ~0xE07;
reg |= 0x803;
writel(reg, CCM_BASE_ADDR + CLKCTL_CHSCCDR);
#endif /* CONFIG_MX6DL */
/* Enable ipu1/ipu1_dix/ldb_dix clocks. */
if (di == 1) {
reg = readl(CCM_BASE_ADDR + CLKCTL_CCGR3);
reg |= 0xC033;
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, IPU_PIX_FMT_RGB666,
DI_PCLK_LDB, 64650000);
if (ret)
puts("LCD cannot be configured\n");
/*
* LVDS0 mux to IPU1 DI0.
* LVDS1 mux to IPU1 DI1.
*/
reg = readl(IOMUXC_BASE_ADDR + 0xC);
reg &= ~(0x000003C0);
reg |= 0x00000100;
writel(reg, IOMUXC_BASE_ADDR + 0xC);
if (di == 1)
writel(0x40C, IOMUXC_BASE_ADDR + 0x8);
else
writel(0x201, IOMUXC_BASE_ADDR + 0x8);
/*Qisda,Aaron.SF.Tang,20150506,add for uboot logo show{*/
enable_lcd_power();
and this is my cmdline:
init=/init video=mxcfb0:dev=ldb,LDB-PAT215,if=RGB666,bpp=32 ldb=sin0 video=mxcfb2:off fbmem=28M vmalloc=400M fb0base=0x27b00000
and this is my panel timing:
static struct fb_videomode lvds_xga = {
"XGA", 60, 1024, 768, 15468,
240, 48,
23, 3,
32, 12,
FB_SYNC_EXT,
FB_VMODE_NONINTERLACED,
0,
};
did my config has any error??when the uboot logo running to the kernel ,the follow error happen:
<7>[ 1.112367] [aaron]mxcfb_probe
<7>[ 1.112443] [aaron]mxcfb_option_setup
<7>[ 1.112570] [aaron]mxcfb_dispdrv_init
<6>[ 1.112639] mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver ldb
<7>[ 1.112760] [aaron]ldb_disp_init
<4>[ 1.112827] ------------[ cut here ]------------
<4>[ 1.112904] WARNING: at /home/aaron/work_place/Pat_215/imx6jb2/kernel_imx/drivers/video/mxc/ldb.c:462 ldb_disp_init+0x34/0xc28()
<7>[ 1.113030] Modules linked in:
<7>[ 1.113240] [<c004c9e4>] (unwind_backtrace+0x0/0x138) from [<c0084660>] (warn_slowpath_common+0x4c/0x64)
<7>[ 1.113316] [<c0084660>] (warn_slowpath_common+0x4c/0x64) from [<c0084694>] (warn_slowpath_null+0x1c/0x24)
<7>[ 1.113446] [<c0084694>] (warn_slowpath_null+0x1c/0x24) from [<c029d8a4>] (ldb_disp_init+0x34/0xc28)
<7>[ 1.113577] [<c029d8a4>] (ldb_disp_init+0x34/0xc28) from [<c029f478>] (mxc_dispdrv_gethandle+0x5c/0xa4)
<7>[ 1.113709] [<c029f478>] (mxc_dispdrv_gethandle+0x5c/0xa4) from [<c02a3238>] (mxcfb_probe+0x21c/0xb4c)
<7>[ 1.113844] [<c02a3238>] (mxcfb_probe+0x21c/0xb4c) from [<c02d7360>] (platform_drv_probe+0x18/0x1c)
<7>[ 1.113976] [<c02d7360>] (platform_drv_probe+0x18/0x1c) from [<c02d5fa8>] (driver_probe_device+0xb0/0x290)
<7>[ 1.114052] [<c02d5fa8>] (driver_probe_device+0xb0/0x290) from [<c02d6214>] (__driver_attach+0x8c/0x90)
<7>[ 1.114181] [<c02d6214>] (__driver_attach+0x8c/0x90) from [<c02d4ffc>] (bus_for_each_dev+0x5c/0x88)
<7>[ 1.114309] [<c02d4ffc>] (bus_for_each_dev+0x5c/0x88) from [<c02d5894>] (bus_add_driver+0x188/0x268)
<7>[ 1.114442] [<c02d5894>] (bus_add_driver+0x188/0x268) from [<c02d66e4>] (driver_register+0x78/0x13c)
<7>[ 1.114577] [<c02d66e4>] (driver_register+0x78/0x13c) from [<c003f640>] (do_one_initcall+0xfc/0x164)
<7>[ 1.114707] [<c003f640>] (do_one_initcall+0xfc/0x164) from [<c00089a8>] (kernel_init+0x9c/0x140)
<7>[ 1.114783] [<c00089a8>] (kernel_init+0x9c/0x140) from [<c0046408>] (kernel_thread_exit+0x0/0x8)
<4>[ 1.114920] ---[ end trace 199f8b1c5287134b ]---
<3>[ 1.125037] _regulator_get: get() with no identifier
<7>[ 1.125193] [aaron]reg=256d,ipu=0,di=0,ldb_ipu_ldb_route
<7>[ 1.125267] [aaron]mxcfb_check_var
<7>[ 1.125389] [aaron]mxcfb_check_var
<7>[ 1.125457] [aaron]ipu=0
<7>[ 1.125459] ,di=0[aaron]mxcfbi->ipu_id=0,mxcfbi->ipu_di=0
<7>[ 1.126166] [aaron]mxcfb_register
<7>[ 1.126234] [aaron]mxcfb_check_var
<7>[ 1.126303] [aaron]ipu_request_irq_late_init
<7>[ 1.126425] [aaron]ipu_request_irq_late_init
<7>[ 1.126495] [aaron]ipu_request_irq_late_init
<7>[ 1.126561] [aaron]ipu_request_irq_late_init
<7>[ 1.126684] [aaron]ipu_init_channel_late_init
<4>[ 1.126699] ------------[ cut here ]------------
<4>[ 1.126717] WARNING: at /home/aaron/work_place/Pat_215/imx6jb2/kernel_imx/drivers/mxc/ipu3/ipu_common.c:1966 ipu_enable_channel+0x24/0x584()
<7>[ 1.126726] Modules linked in:
<7>[ 1.126748] [<c004c9e4>] (unwind_backtrace+0x0/0x138) from [<c0084660>] (warn_slowpath_common+0x4c/0x64)
<7>[ 1.126763] [<c0084660>] (warn_slowpath_common+0x4c/0x64) from [<c0084694>] (warn_slowpath_null+0x1c/0x24)
<7>[ 1.126777] [<c0084694>] (warn_slowpath_null+0x1c/0x24) from [<c03faf68>] (ipu_enable_channel+0x24/0x584)
<4>[ 1.126944] ---[ end trace 199f8b1c5287134c ]---
<7>[ 1.126950] [aaron]ipu_enable_channel
<7>[ 1.128922] mxcfbi->cur_var = 1024
<7>[ 1.128987] fb_info->mode->name = LDB-PAT215
<7>[ 1.129107] fb_info->mode->sync = 0
<7>[ 1.129174] fb_info->mode->vmode = 0
<7>[ 1.129238] fb_info->mode->flag = 1
<7>[ 1.129583] do_register_framebuffer_logo ret = 0
7>[ 1.129662] [aaron]mxcfb_setup_overlay
<7>[ 1.129738] [aaron]mxcfb_register
<7>[ 1.129861] [aaron]mxcfb_check_var
<7>[ 1.129930] [aaron]ipu_request_irq_late_init
[ 1.129996] [aaron]ipu_request_irq_late_init
<7>[ 1.130115] [aaron]ipu_request_irq_late_init
<4>[ 1.132996] ---[ end trace 199f8b1c5287134d ]---
<7>[ 1.133288] [aaron]mxcfb_probe
<7>[ 1.133358] [aaron]mxcfb_option_setup
<7>[ 1.133425] [aaron]mxcfb_dispdrv_init
<6>[ 1.133547] mxc_sdc_fb mxc_sdc_fb.1: register mxc display driver ldb
<7>[ 1.133615] [aaron]ldb_disp_init
<3>[ 1.145946] mxc_ldb mxc_ldb: for second ldb displdb mode should in separate mode
<3>[ 1.146075] mxc_sdc_fb mxc_sdc_fb.1: NO mxc display driver found!
<6>[ 1.146796] imx-sdma imx-sdma: loaded firmware 1.1
<6>[ 1.151492] imx-sdma imx-sdma: initialized
<6>[ 1.290311] Serial: IMX driver
<6>[ 1.290496] imx-uart.4: ttymxc4 at MMIO 0x21f4000 (irq = 62) is a IMX
<6>[ 1.291634] imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX
<6>[ 1.292275] imx-uart.3: ttymxc3 at MMIO 0x21f0000 (irq = 61) is a IMX
<6>[ 1.298663] loop: module loaded
<4>[ 1.298858] i2c-core: driver [isl29003] using legacy suspend method
[ 1.298983] i2c-core: driver [isl29003] using legacy resume method
<7>[ 1.299501] /home/aaron/work_place/Pat_215/imx6jb2/kernel_imx/drivers/misc/qdebug.c dev_init done.
<6>[ 1.300696] FEC Ethernet Driver
<6>[ 1.303372] fec_enet_mii_bus: probed
<7>[ 1.306588] [aaron]ipu_err_irq_handler
<4>[ 1.306668] imx-ipuv3 imx-ipuv3.0: IPU Warning - IPU_INT_STAT_5 = 0x00800000
<4>[ 1.306793] imx-ipuv3 imx-ipuv3.0: IPU Warning - IPU_INT_STAT_10 = 0x00080000
Hi 尚飞 汤
these errors mean that IPU/LCD is not configured properly, please look at
below link for various LCD configurations
http://boundarydevices.com/configuring-i-mx6-machines-different-screens-nitrogen6x-sabre-lite/
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Dear igorpadykov :
when i porting the uboot logo keep to kernel patch,i was hold over the start kernel.
waht is that problem?
how can i locate this error?