高通LK显示屏分辨率太大,下半部分显示异常-FB buff超了的问题

问题解决:

bootable\bootloader\lk\include\dev\fbcon.h

#define LOGO_IMG_OFFSET (12*1024*1024)改成#define LOGO_IMG_OFFSET (20*1024*1024)

高通LK显示屏分辨率太大,下半部分显示异常-FB buff超了的问题

问题原因:

2880*1920*3=16588800= 16200KB 约=16MB

而LOGO_IMG_OFFSET是12MB所以会把MIPI_FB_ADDR 12M之后的内容覆盖

高通LK显示屏分辨率太大,下半部分显示异常-FB buff超了的问题

高通LK显示屏分辨率太大,下半部分显示异常-FB buff超了的问题

显示的buf的起始地址 MIPI_FB_ADDR

位置:bootable\bootloader\lk\target\msm8996\include\target\display.h

高通LK显示屏分辨率太大,下半部分显示异常-FB buff超了的问题

target_display_init()->gcdb_display_init()->msm_display_init()->fbcon_setup() fbcon.c中的config被赋值

bootable\bootloader\lk\app\aboot\aboot.c

splash_screen_mmc()负责把splash分区的内容拷贝到内存 MIPI_FB_ADDR+LOGO_IMG_OFFSET 的地址上面

bootable\bootloader\lk\dev\fbcon\fbcon.c

fbcon_extract_to_screen()负责从MIPI_FB_ADDR+LOGO_IMG_OFFSET内存上面的数据写到MIPI_FB_ADDR内存上去 用于显示

bootable\bootloader\lk\platform\msm8996\platform.c

设置的是MIPI_FB_ADDR之后的40MB都能用于显示

高通LK显示屏分辨率太大,下半部分显示异常-FB buff超了的问题