Introduction
There are four boot logos in kk4.4.3_2.0.0-beta system at first: uboot logo\linux logo\android init logo\android animation. We plan to use uboot logo to cover linux logo and android init logo so that we can combine first three logoes into one logo.This guide provides a step by step explanation of how to transfer uboot UI to linux kernel and android init smoothly on board sasbresd_6dq sabresd_6dl.
The core ideas of the patch:
what do the patch do in uboot
1、 can not shut down video after uboot is over.The patch delete releted code in function arch_preboot_os()
2、 keep hsp clock (ipu clock) the same with linux 3.10
the below is the setting in sabrasd DQ board:
osc(24MHz) -> pll2(528MHz) -> mmdc_ch0(528MHz) -> ipu1_hsp_clk(264MHz)
the below is the setting in sabrasd DL board:
osc(24MHz) -> pll3(480MHz) -> pll3_pdf1(540MHz) -> ipu1_hsp_clk(270MHz)
3、 keep pixel clock the same with linux 3.10
the below is the setting in sabrasd DQ board:
osc(24MHz) -> pll2(528MHz) -> pll2_pfd0(452.57MHz) ->
ldb_di1(64.65MHz) -> ipu1_di1(64.65MHz) -> ipu1_pixel(64.65MHz)
the below is the setting in sabrasd DL board:
osc(24MHz) -> pll2(528MHz) -> pll2_pfd0(452.57MHz) ->
ldb_di1(64.65MHz) -> ipu1_di1(64.65MHz) -> ipu1_pixel(64.65MHz)
4、 keep pwm clock
In kernel,there is a 100% duty pwm to drive lvds panel.So the patch set the pad SD1_DATA3 to a 100% duty pwm pin.
5、 add fbbase and fbmem to bootargs
the fbbase is the uboot logo’s phy addr. So the patch pass the parament to kernel through cmdline.we should allocate address aligned 1M for linux 3.10 reserve address aligned by 1 M.
what do the patch do in linux 3.10
1、 reserve the address which come from fbbase
2、 keep ipu related clock when system init the clock in clk-imx6q.c
The patch enable ldb_di1_clk、ipu1_di1_clk、ipu1_clk、pwm1_clk. Do not disable pll2 and pll3 related clock for the clock may be the source of ipu clock.
Although we enable ldb_di1_clk、ipu1_di1_clk and so on in register, we need to use the function clk_prepare_enable(). Because the system may close some clocks for their user count is 0(if we use clk_prepare_enable(),it and it’s parent user count will add 1 )
3、 disable cabc which will light the panel according the content.
Change cabc_enable in dts file.
4、 Move global alpha and color key setting in probe after framebuffer is registered. Delay register IPU interrupts used by framebuffer until IPU hsp clock is enabled.Because global alpha and color key setting and register IPU interrupts may disable hsp clock.
disable show android init logo
android init logo is the text"android_". we need disable to show it so that the former three logos looks the same logo.The patch 92-system_core solve this problem.
The environment of the patch:
Hardware: SABRASD DQ&DL
Soft ware: kk4.4.3_2.0.0-beta on linux 3.10
How to use the patch:
$ cd my_android/kernel_imx/
$ patch -p1 < ./92-kernel_v2
$ cd my_android/bootable/bootloader/uboot-imx/
$ patch -p1 < ./92-uboot_v2
$ cd my_android/system/core
$ patch -p1 < 92-system_core
Note:
1、 If you want to have this feature on sabraSD dq&dl board,this patch is OK .After you use this patch, you want to change to other board such as sx, you may meet this problem that the kernel logo penguin don’t appear.
You may change this file:
arch/arm/configs/imx_v7_android_defconfig
CONFIG_LOGO=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
#CONFIG_MX6_CLK_FOR_BOOTUI_TRANS=y
#CONFIG_MX6_CLK_FOR_BOOTUI_TRANS_LVDS_IPU1_DI1=y
Excuse me,
Does this work?
I applied this patch.
After I remove "ipuv3_fb_shutdown()" in uboot
It can not boot into kernel....
Do I miss something?