Build Bootup Logo for U-Boot

Below are the basic information for the bootup Logo on Amlogic platform(might different with other SoC platforms):

Preperations

Before starting, a bootup picture will be needed with below specs:

Check the bmp file:

$ file ~/Pictures/khadas.bmp 
/home/gouwa/Pictures/khadas.bmp: data
$ 

A example bootup logo file khadas.bmp for reference.

And in this guidance, we will introduce two different approaches to build the bootup Logo.

Build Logo Separately

1) Clone the tool:

$ git clone https://github.com/khadas/utils.git

2) Update a new logo picture as you want:

$ mkdir -p images/logo
$ cp -r ~/Pictures/khadas.bmp images/logo/bootup.bmp

3) Build the logo:

$ ./utils/logo_img_packer -r images/logo/ images/logo.img 
dbg:item num 1
dbg:pack item [bootup]
$ 

Build Logo on Android

1) Update a new logo picture as you want:

$ cp ~/Pictures/khadas.bmp device/khadas/kvim/product/logo/bootup.bmp

2) Build the logo:

$ make logoimg

Following build log for reference:

$ make logoimg

...

generate out/target/product/kvim/upgrade/logo.img
gzip -c device/khadas/kvim/product/logo/bootup.bmp > out/target/product/kvim/upgrade/logo/bootup.bmp
dbg:item num 8
dbg:pack item [bootup]
dbg:pack item [upgrade_upgrading]
dbg:pack item [upgrade_fail]
dbg:pack item [upgrade_unfocus]
dbg:pack item [upgrade_error]
dbg:pack item [upgrade_success]
dbg:pack item [upgrade_logo]
dbg:pack item [upgrade_bar]
Installed out/target/product/kvim/upgrade/logo.img

#### make completed successfully (01:54 (mm:ss)) ####

$

Download the logo.img

1) Copy the new logo.img to a USB disk:

$ cp -r images/logo.img /media/gouwa/9B98-6C15/

2) Insert the USB disk into VIM device, then boot into U-Boot mode.

3) Update logo partition as new logo.img:

kvim# usb_update logo logo.img

4) Refresh to new Logo:

kvim# run init_display

Further reading

You might notice that there are some other pictures listed as below also built into logo.img:

$ ls device/khadas/kvim/product/logo/
bootup.bmp       upgrade_error.bmp  upgrade_logo.bmp     upgrade_unfocus.bmp
upgrade_bar.bmp  upgrade_fail.bmp   upgrade_success.bmp  upgrade_upgrading.bmp

These pictures are used for indicate the different upgrade states, it's optional for bootup Logo.

You can check following source code for further details:

u-boot/drivers/usb/gadget/v2_burning/v2_common/optimus_progress_ui.c

See Also