diff options
author | Johanna Schander <coreboot@mimoja.de> | 2019-07-24 10:14:26 +0200 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-07-26 08:40:23 +0000 |
commit | db7a3ae8635a92764d357a93c04f49e9d9bbdca7 (patch) | |
tree | 3702d5ead582751226efa5deb597d07412c1ae51 /src/include | |
parent | a31cd21c3ad1ef8029aed733a3f8ab2286b81385 (diff) |
src/device/oprom: Fix bootsplash display code for optionroms
So far the bootsplash is only correctly rendered if the framebuffer is
set up as 1024x768@16.
Different resolutions did not show anything, differnent depth resulted
in the distorted images.
This commit removes this limit by using the actual framebuffer resolutions
and combines the code for x86 and yabel.
For the moment the bootsplash is still limited to VGA-OptionROM
framebuffer init.
It was tested in 1280x1024@32 on the wip razer blade stealth using the
intel vgabios.
Change-Id: I5ab7b8a0f28badaa16e25dbe807158870d06e26a
Signed-off-by: Johanna Schander <coreboot@mimoja.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/34537
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/bootsplash.h | 36 | ||||
-rw-r--r-- | src/include/vbe.h | 6 |
2 files changed, 42 insertions, 0 deletions
diff --git a/src/include/bootsplash.h b/src/include/bootsplash.h new file mode 100644 index 0000000000..84ba34cc90 --- /dev/null +++ b/src/include/bootsplash.h @@ -0,0 +1,36 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 Johanna Schander <coreboot@mimoja.de> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __BOOTSPLASH_H__ +#define __BOOTSPLASH_H__ + +#include <types.h> + +/** + * Wraps bootsplash setup for vesa + */ +void set_vesa_bootsplash(void); + + +/** + * Sets up the framebuffer with the bootsplash.jpg from cbfs. + * Returns 0 on success + * CB_ERR on cbfs errors + * and >0 on jpeg errors. + */ +void set_bootsplash(unsigned char *framebuffer, unsigned int x_resolution, + unsigned int y_resolution, unsigned int fb_resolution); + +#endif diff --git a/src/include/vbe.h b/src/include/vbe.h index 67049be613..cfae7e4025 100644 --- a/src/include/vbe.h +++ b/src/include/vbe.h @@ -102,4 +102,10 @@ typedef struct { void vbe_set_graphics(void); void vbe_textmode_console(void); +/** + * Returns the mode_info struct from the vbe context, + * if initialized. NULL on invalid mode_infos. + */ +const vbe_mode_info_t *vbe_mode_info(void); + #endif // VBE_H |