What is the difference between MXC IPU3 u-Boot and Linux drivers?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

What is the difference between MXC IPU3 u-Boot and Linux drivers?

645 Views
robertspriggs
Contributor I

Our custom i.MX6DL Sabre-based board is booting with the MXC IPU3 driver, and I can see the correct signals on the DISP pads using a scope until Linux loads. The MXC IPU3 driver is also enabled in Linux, but the DISP pads are inactive for some reason. Just before u-Boot starts the OS, it disables all the IPU signals and I'm wondering why. Those signals don't seem to be renabled when Linux loads the IPU driver... Can anyone please explain to me what they think might be happening, and/or what else I can check for to gain some insight?

Also, how do I find where u-boot configuration for the IPU is, and where/how can I configure the IPU driver in Linux to behave the same way?

I inserted debug statements in some of the IPU code to see what was happening:

serial terminal output:

>>>>> ipu_probe <<<<<
>>>>> ipu_reset <<<<<
>>>>> clk_enable <<<<<
>>>>> clk_ipu_enable <<<<<
>>>>> ipu_init_dc_mappings <<<<<
>>>>> ipu_dc_map_config <<<<<
...
>>>>> ipu_dc_map_config <<<<<
>>>>> ipu_dmfc_init <<<<<
>>>>> clk_disable <<<<<
>>>>> clk_ipu_disable <<<<<
>>>>> clk_enable <<<<<
>>>>> clk_ipu_enable <<<<<
>>>>> clk_disable <<<<<
>>>>> clk_ipu_disable <<<<<
>>>>> clk_enable <<<<<
>>>>> clk_ipu_enable <<<<<
>>>>> clk_disable <<<<<
>>>>> clk_ipu_disable <<<<<
>>>>> mxcfb_set_par <<<<<
>>>>> ipu_disable_channel <<<<<
>>>>> ipu_uninit_channel <<<<<
>>>>> init channel = 9 <<<<<
>>>>> clk_enable <<<<<
>>>>> clk_ipu_enable <<<<<
>>>>> ipu_dp_init <<<<<
>>>>> ipu_dc_init <<<<<
>>>>> ipu_init_sync_panel <<<<<
>>>>> adapt_panel_to_ipu_restricitions <<<<<
>>>>> ipu_pixel_clk_set_rate <<<<<
>>>>> ipu_di_data_wave_config <<<<<
>>>>> ipu_di_data_pin_config <<<<<
>>>>> ipu_di_sync_config <<<<<
>>>>> ipu_di_sync_config <<<<<
>>>>> ipu_di_sync_config <<<<<
>>>>> ipu_di_sync_config <<<<<
>>>>> ipu_di_sync_config <<<<<
>>>>> ipu_init_channel_buffer <<<<<
>>>>> ipu_ch_param_init <<<<<
>>>>> ipu_dmfc_init <<<<<
>>>>> ipu_enable_channel <<<<<
>>>>> ipu_dp_dc_enable <<<<<
>>>>> clk_enable <<<<<
>>>>> ipu_pixel_clk_enable <<<<<

...

Kernel image @ 0x12000000 [ 0x000000 - 0x495668 ]
## Flattened Device Tree blob at 18000000
Booting using the fdt blob at 0x18000000
Using Device Tree in place at 18000000, end 1800c002
>>>>> boot_selected_os <<<<<
>>>>> arch_preboot_os <<<<<
>>>>> ipuv3_fb_shutdown <<<<<
>>>>> ipuv3_fb_shutdown <<<<<
>>>>> ipu_disable_channel <<<<<
>>>>> ipu_dp_dc_disable <<<<<
>>>>> clk_disable <<<<<
>>>>> ipu_pixel_clk_disable <<<<<
>>>>> ipu_uninit_channel <<<<<
>>>>> ipu_dp_uninit <<<<<
>>>>> ipu_dc_uninit <<<<<
>>>>> clk_disable <<<<<
>>>>> clk_ipu_disable <<<<<

Starting kernel...

...

>>>>> ipu_gen_init <<<<<
>>>>> ipu_probe <<<<<
>>>>> ipu_mem_reset <<<<<
>>>>> _ipu_init_dc_mappings <<<<<
>>>>> _ipu_dc_map_config <<<<<
...
>>>>> _ipu_dc_map_config <<<<<
>>>>> _ipu_dmfc_init <<<<<
imx-ipuv3 2400000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
>>>>> ipu_clk_setup_enable <<<<<

Labels (3)
0 Kudos
1 Reply

465 Views
igorpadykov
NXP Employee
NXP Employee

Hi Robert

please check patches providing ipu smooth transition from uboot

to linux

https://community.freescale.com/docs/DOC-98109

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos