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

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格式):
-
在device/sigmastar/pioneer5/logo/路径下放入需要显示的图片
-
修改device/sigmastar/pioneer5/logo/logo_configuration.json

更换图片后把
file_name改为对应的图片名,如果是新增bootlogo图片则类似添加一个flie_name -
新增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需要根据硬件设置。