BOOTLOGO使用说明


1. 概述

Bootlogo是设备启动时,屏幕输出的logo图像,一般用于展示客户的品牌标志,或在设备升级时用于显示设备的状态。Bootlogo可以显示在各种屏幕上,包括TTL屏、MIPIDSI屏、LVDS屏等。 pic

2. Menuconfig配置

在vendor/sigmastar/bootloader/u-boot目录执行:

make pioneer5_android_defconfig
make menuconfig

1、open bootlogo

Command line interface ---> SigmaStar Common commands ---> bootlogo

2、open driver

SigmaStar drivers ---> Sigmastar camdriver ---> Sigmastar DISP driver
SigmaStar drivers ---> Sigmastar camdriver ---> Sigmastar JPD driver

3、open pwm

SigmaStar drivers ---> Sigmastar PWM

3. 使用示例

bootlogo参数说明:

"bootlogo [logo_id] [aspect ratio] [x] [y]\n"
    "\t logo_id: image id. default is 0\n"
    "\t aspect_ratio: 0: zoom, 1: center, 2: usr. default is 0\n"
    "\t x: show horizontal start. it's valid when aspect_ratio is 2. default is 0\n"
    "\t y: show vertical start. it's valid when aspect_ratio is 2. default is 0\n"
    "\t Example:\n"
    "\t bootlogo \n"
    "\t bootlogo 1 \n",
    "\t bootlogo 0 0 \n"
    "\t bootlogo 0 1 \n"
    "\t bootlogo 0 2 32 64 \n"
    "\t Note:\n"
    "\t bootlogo inner flow: disp_init -> disp_decode -> disp_inject\n";

1、默认是TTL屏,以点亮LVDS 1080P屏幕为例: 进入uboot模式,设置环境变量

setenv kernel_dtbo_list 'sstar_dtbo,ssz028b_s01a_s;sstar_dtbo,panel-SAT070AT50H18BH;sstar_dtbo,panel-M270HVN02'
setenv bootcmd 'bootlogo 0 0 0 0;boot_android mmc 0#misc'
setenv uboot_dtbo_list 'sstar_dtbo,ssz028b_s01a_s;sstar_dtbo,panel-M270HVN02'
saveenv
reset

其中kernel_dtbo_list(配置屏幕正常显示)遵循以下的语法

‘sstar_dtbo,board type;sstar_dtbo, disable panel;sstar_dtbo,enable panel ;’

其中uboot_dtbo_list(配置bootlogo正常显示)遵循以下的语法

'sstar_dtbo,board type;sstar_dtbo,enable panel'

board type 表示开发板的型号

disable panel 表示关闭默认的屏幕型号

enable panel 表示需要输出的屏幕型号

bootcmd中的bootlogo没有带参数表示使用默认值,

即bootlogo等效于bootlogo 0 0 0 0,

表示logo_id=0,aspect_ratio=0,起始坐标x,y(0,0),disp_id=0,PanType是dpi。

最后一个参数PnlType,用户可通过该参数指定屏幕类型:

0:TTL/BT656/BT601屏 1:MIPI屏 2:LVDS屏

saveenv表示保持设置的环境变量

reset表示重启系统

2、切换回 TTL 屏幕:

setenv kernel_dtbo_list 'sstar_dtbo,ssz028b_s01a_s'
setenv bootcmd 'bootlogo;boot_android mmc 0#misc'
setenv uboot_dtbo_list 'sstar_dtbo,ssz028b_s01a_s'
saveenv
reset

3、切换为LVDS 1024x768屏:

setenv kernel_dtbo_list 'sstar_dtbo,ssz028b_s01a_s;sstar_dtbo,panel-SAT070AT50H18BH;sstar_dtbo,panel-DV150X0M'
setenv bootcmd 'bootlogo 0 0 0 0;boot_android mmc 0#misc'
setenv uboot_dtbo_list 'sstar_dtbo,ssz028b_s01a_s;sstar_dtbo,panel-DV150X0M'
saveenv
reset

4、切换为MIPI 720x1280屏幕:

setenv kernel_dtbo_list 'sstar_dtbo,ssz028b_s01a_s;sstar_dtbo,panel-SAT070AT50H18BH;sstar_dtbo,panel-RM68200HDH'
setenv bootcmd 'bootlogo 0 0 0 0;boot_android mmc 0#misc'
setenv uboot_dtbo_list 'sstar_dtbo,ssz028b_s01a_s;sstar_dtbo,panel-RM68200HDH'
saveenv
reset

更换以及增加bootlogo的图片(需要jpg格式):

  1. 在device/sigmastar/pioneer5/logo/路径下放入需要显示的图片

  2. 修改device/sigmastar/pioneer5/logo/logo_configuration.json

    更换图片后把file_name改为对应的图片名,如果是新增bootlogo图片则类似添加一个flie_name

  3. 新增bootlogo图片需要在device/sigmastar/pioneer5/logo.fs中参考添加如下的参数

4. Bootlogo flow

如上图flow所示,bootlogo显示主要分为三个模块:

do_disp_init:初始化操作。获取/设置屏参、设备初始化、videoLayer绑定/使能。

do_disp_decode:解码logo图片。从固定地址解码jpg格式的logo图片。

do_disp_inject:显示图像。获取图像参数,并根据需求对图像进行裁剪放大,输出到屏幕显示。

5. DTS屏参设置

5.1 文件路径说明

dts存放路径:vendor/sigmastar/bootloader/u-boot/arch/arm/dts

(用户可在此处增加需要的屏参)。屏参设置参考:

TTL参考:panel-SAT070AT50H18BH.dtsi
MIPI参考:panel-RM68200.dtsi
LVDS 15寸(单通道)参考:panel-DV150x0M.dtsi
LVDS 27寸(双通道)参考:panel-M270HVN02.dtsi
BT656参考:panel-BT656OUTPUT_800X480.dtsi
BT601参考:panel-BT601OUTPUT_720X480.dtsi

更改phandle指向:pioneer5-display-subsystem.dtsi

更改背光等级、Lane极性/顺序:pioneer5-ssc028a-s01a-s-panels.dtsi

5.2 DTS使用解析

首先在根节点下有个名为/display-subsystem的子节点。下面将以TTL屏,disp_id = 0为例展示DTS中的节点指向关系。通过phandle寻找,最终找到TTL屏参——>panel-timing。用户可根据需求修改phandle指向和更换屏参。

panel-misc节点是指定lane的顺序、极性。backlight是控制屏幕背光亮度等。

参数说明:

name Description
interface 屏幕类型:
TTL、MIPI、LVDS、BT601、BT656
clock-frequency 时钟频率
hactive 有效显示区域的宽
vactive 有效显示区域的高
hsync-len horizontal sync的长度
hback-porch 水平前消隐
horizontal back porch
hfront-porch 水平后消隐
horizontal back porch
vsync-len vertical sync的长度
vback-porch vertical back porch,垂直前消隐
hsync-active hsync极性
vsync-active vsync极性
de-active data input enable极性
pixelclk-active clk极性
drive-current-config 设备驱动能力等级设置
enLaneNum lane number
u8Channel LVDS channel设置
0:dual_channel 1:channel_1 2:channel_2
u8PoLane0/½/¾ LVDS lane极性设置
u8SwapLane0/½/¾ LVDS lane swap
pwms 控制背光的PWM设定
brightness-levels 背光亮度等级设定
num-interpolated-steps 曲线点与亮点均匀划分数量
default-brightness-level 默认亮度值设定

注意:lane极性、swap需要根据硬件设置。