报错如下
Generate Region at Offset 0x0
Region Size = 0x200000
Region Name = FV
Generating FVMAIN_COMPACT FV
###
Generating FVMAIN FV
#########
Generating IMAGEFV FV
Generating IMAGEFV_COMPACT FV
#Return Value = 2
GenFv: ERROR 3000: Invalid
the required fv image size 0x32e8 exceeds the set fv image size 0x2000
在MSM8953 LK Bootloader中使用splash.img保存开机Logo,由于splash.img镜像使用压缩算法,所以即使是1920x1080 24bpp的开机Logo源文件转化为splash.img镜像也不会超过splsah分区大小。但是在QCM6125 UEFI XBl中,开机Logo只支持8-bit BMP 24-bit BMP 32-bit BMP 8-bit indexed BMP这四种格式,并且不支持压缩(参考boot_images/QcomPkg/Docs/CustomSplashLogo.txt),导致开机Logo源文件在比较大时会出现一些问题。如果对于颜色要求不高,可以使用8-bit BMP文件代替24/32-bit BMP,或者使用小尺寸的开机Logo代替大尺寸的开机Logo。如果这两种方法都无法满足要求的话,可以采用以下方案满足大尺寸开机Logo的需求
首先确定imagefv分区的大小
console:/ # ls /dev/block/by-name/imagefv_* -l
lrwxrwxrwx 1 root root 16 1970-01-01 08:32 /dev/block/by-name/imagefv_a -> /dev/block/sde18
lrwxrwxrwx 1 root root 16 1970-01-01 08:32 /dev/block/by-name/imagefv_b -> /dev/block/sde37
console:/ # cat /proc/partitions
major minor #blocks name
259 2 2048 sde18
259 21 2048 sde37
可见imagefv分区大小为2048K,所以当前imagefv.elf镜像大小不能超过2048K
boot_images/QcomPkg/SocPkg/NicobarPkg/LAA/ImageFv.fdf.inc
[FV.IMAGEFV_COMPACT]
BlockSize = 0x200
NumBlocks = 0x10
0x200 * 0x10 = 0x2000 = 8192 = 8K
生成的imagefv.elf镜像大小为20k(还包含其他logo文件)
修改为
[FV.IMAGEFV_COMPACT]
BlockSize = 0x200
NumBlocks = 0xF00
0x200 * 0xF00 = 0x1E 0000 = 1966080 = 1920K < 2048K
生成的imagefv.elf镜像大小为1978368=1932K(还包含其他logo文件)
此时开机Logo源文件可以支持更大的尺寸
如果此时开机Logo大小仍然不能满足要求,可以同时调整NumBlocks大小和imagefv分区大小