video: Add a Kconfig option for SPL video handoff

At present this feature is enabled in SPL if a bloblist is available.
Some platforms may not want to use this, so add an option to allow the
feature to be disabled.

Note that the feature unfortunately only fills in part of the
video-handoff information, so causes failures on x86 platforms. For now,
disable it there.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com> # qemu-x86_64
This commit is contained in:
Simon Glass 2023-07-30 11:16:05 -06:00 committed by Bin Meng
parent 4099df48a6
commit b7080bfceb
3 changed files with 12 additions and 3 deletions

View file

@ -411,8 +411,7 @@ __weak int arch_reserve_mmu(void)
static int reserve_video(void)
{
if (IS_ENABLED(CONFIG_SPL_VIDEO) && spl_phase() > PHASE_SPL &&
CONFIG_IS_ENABLED(BLOBLIST)) {
if (IS_ENABLED(CONFIG_SPL_VIDEO_HANDOFF) && spl_phase() > PHASE_SPL) {
struct video_handoff *ho;
ho = bloblist_find(BLOBLISTT_U_BOOT_VIDEO, sizeof(*ho));

View file

@ -1011,6 +1011,16 @@ config SPL_VIDEO
if SPL_VIDEO
source "drivers/video/tidss/Kconfig"
config SPL_VIDEO_HANDOFF
bool "Pass the video frame-buffer through to U-Boot proper"
depends on SPL_BLOBLIST
default y if !X86
help
Enable this to set up video-handoff information in SPL which can be
picked up in U-Boot proper. This includes the frame buffer and
various other pieces of information. With this enabled, SPL can set
up video and avoid re-initing it later.
config SPL_VIDEO_LOGO
bool "Show the U-Boot logo on the display at SPL"
default y if !SPL_SPLASH_SCREEN

View file

@ -141,7 +141,7 @@ int video_reserve(ulong *addrp)
debug("Video frame buffers from %lx to %lx\n", gd->video_bottom,
gd->video_top);
if (spl_phase() == PHASE_SPL && CONFIG_IS_ENABLED(BLOBLIST)) {
if (spl_phase() == PHASE_SPL && CONFIG_IS_ENABLED(VIDEO_HANDOFF)) {
struct video_handoff *ho;
ho = bloblist_add(BLOBLISTT_U_BOOT_VIDEO, sizeof(*ho), 0);