mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
x86: fsp: Add FSP_GRAPHICS_INFO_HOB
This adds a new HOB type for graphics information introduced in FSP spec 1.1. When graphics capability is included in FSP and enabled, FSP produces an FSP_GRAPHICS_INFO_HOB as described in the EFI PI specification which provides information about the graphics mode and framebuffer. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
bb737ced7f
commit
4ff333b7dd
3 changed files with 45 additions and 0 deletions
|
@ -127,6 +127,26 @@ struct hob_guid {
|
|||
/* GUID specific data goes here */
|
||||
};
|
||||
|
||||
enum pixel_format {
|
||||
pixel_rgbx_8bpc, /* RGB 8 bit per color */
|
||||
pixel_bgrx_8bpc, /* BGR 8 bit per color */
|
||||
pixel_bitmask,
|
||||
};
|
||||
|
||||
struct __packed hob_graphics_info {
|
||||
phys_addr_t fb_base; /* framebuffer base address */
|
||||
u32 fb_size; /* framebuffer size */
|
||||
u32 version;
|
||||
u32 width;
|
||||
u32 height;
|
||||
enum pixel_format pixel_format;
|
||||
u32 red_mask;
|
||||
u32 green_mask;
|
||||
u32 blue_mask;
|
||||
u32 reserved_mask;
|
||||
u32 pixels_per_scanline;
|
||||
};
|
||||
|
||||
/**
|
||||
* get_next_hob() - return a pointer to the next HOB in the HOB list
|
||||
*
|
||||
|
@ -250,4 +270,10 @@ static inline u16 get_guid_hob_data_size(const struct hob_header *hdr)
|
|||
{ 0xb3, 0x16, 0x36, 0x35, 0x36, 0x67, 0xad, 0x44 } \
|
||||
}
|
||||
|
||||
#define FSP_GRAPHICS_INFO_HOB_GUID \
|
||||
{ \
|
||||
0x39f62cce, 0x6825, 0x4669, \
|
||||
{ 0xbb, 0x56, 0x54, 0x1a, 0xba, 0x75, 0x3a, 0x07 } \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -190,6 +190,18 @@ void *fsp_get_nvs_data(const void *hob_list, u32 *len);
|
|||
*/
|
||||
void *fsp_get_bootloader_tmp_mem(const void *hob_list, u32 *len);
|
||||
|
||||
/**
|
||||
* This function retrieves graphics information.
|
||||
*
|
||||
* @hob_list: A HOB list pointer.
|
||||
* @len: A pointer to the graphics info HOB length.
|
||||
* If the HOB is located, the length will be updated.
|
||||
*
|
||||
* @retval NULL: Failed to find the graphics info HOB.
|
||||
* @retval others: A pointer to struct hob_graphics_info.
|
||||
*/
|
||||
void *fsp_get_graphics_info(const void *hob_list, u32 *len);
|
||||
|
||||
/**
|
||||
* This function overrides the default configurations of FSP.
|
||||
*
|
||||
|
|
|
@ -425,3 +425,10 @@ void *fsp_get_bootloader_tmp_mem(const void *hob_list, u32 *len)
|
|||
|
||||
return fsp_get_guid_hob_data(hob_list, len, (struct efi_guid *)&guid);
|
||||
}
|
||||
|
||||
void *fsp_get_graphics_info(const void *hob_list, u32 *len)
|
||||
{
|
||||
const struct efi_guid guid = FSP_GRAPHICS_INFO_HOB_GUID;
|
||||
|
||||
return fsp_get_guid_hob_data(hob_list, len, (struct efi_guid *)&guid);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue