Changeset View
Changeset View
Standalone View
Standalone View
stand/efi/loader/bootinfo.c
Show First 20 Lines • Show All 44 Lines • ▼ Show 20 Lines | |||||
#include "bootstrap.h" | #include "bootstrap.h" | ||||
#include "loader_efi.h" | #include "loader_efi.h" | ||||
#if defined(__amd64__) | #if defined(__amd64__) | ||||
#include <machine/specialreg.h> | #include <machine/specialreg.h> | ||||
#endif | #endif | ||||
#include "framebuffer.h" | #include "gfx_fb.h" | ||||
#if defined(LOADER_FDT_SUPPORT) | #if defined(LOADER_FDT_SUPPORT) | ||||
#include <fdt_platform.h> | #include <fdt_platform.h> | ||||
#endif | #endif | ||||
#ifdef LOADER_GELI_SUPPORT | #ifdef LOADER_GELI_SUPPORT | ||||
#include "geliboot.h" | #include "geliboot.h" | ||||
#endif | #endif | ||||
▲ Show 20 Lines • Show All 233 Lines • ▼ Show 20 Lines | bi_load_efi_data(struct preloaded_file *kfp) | ||||
UINTN dsz, pages, retry, sz; | UINTN dsz, pages, retry, sz; | ||||
UINT32 mmver; | UINT32 mmver; | ||||
struct efi_map_header *efihdr; | struct efi_map_header *efihdr; | ||||
bool do_vmap; | bool do_vmap; | ||||
#if defined(__amd64__) || defined(__aarch64__) | #if defined(__amd64__) || defined(__aarch64__) | ||||
struct efi_fb efifb; | struct efi_fb efifb; | ||||
if (efi_find_framebuffer(&efifb) == 0) { | efifb.fb_addr = gfx_state.tg_fb.fb_addr; | ||||
efifb.fb_size = gfx_state.tg_fb.fb_size; | |||||
efifb.fb_height = gfx_state.tg_fb.fb_height; | |||||
efifb.fb_width = gfx_state.tg_fb.fb_width; | |||||
efifb.fb_stride = gfx_state.tg_fb.fb_stride; | |||||
efifb.fb_mask_red = gfx_state.tg_fb.fb_mask_red; | |||||
efifb.fb_mask_green = gfx_state.tg_fb.fb_mask_green; | |||||
efifb.fb_mask_blue = gfx_state.tg_fb.fb_mask_blue; | |||||
efifb.fb_mask_reserved = gfx_state.tg_fb.fb_mask_reserved; | |||||
printf("EFI framebuffer information:\n"); | printf("EFI framebuffer information:\n"); | ||||
printf("addr, size 0x%jx, 0x%jx\n", efifb.fb_addr, | printf("addr, size 0x%jx, 0x%jx\n", efifb.fb_addr, efifb.fb_size); | ||||
efifb.fb_size); | printf("dimensions %d x %d\n", efifb.fb_width, efifb.fb_height); | ||||
printf("dimensions %d x %d\n", efifb.fb_width, | |||||
efifb.fb_height); | |||||
printf("stride %d\n", efifb.fb_stride); | printf("stride %d\n", efifb.fb_stride); | ||||
printf("masks 0x%08x, 0x%08x, 0x%08x, 0x%08x\n", | printf("masks 0x%08x, 0x%08x, 0x%08x, 0x%08x\n", | ||||
efifb.fb_mask_red, efifb.fb_mask_green, efifb.fb_mask_blue, | efifb.fb_mask_red, efifb.fb_mask_green, efifb.fb_mask_blue, | ||||
efifb.fb_mask_reserved); | efifb.fb_mask_reserved); | ||||
if (efifb.fb_addr != 0) | |||||
file_addmetadata(kfp, MODINFOMD_EFI_FB, sizeof(efifb), &efifb); | file_addmetadata(kfp, MODINFOMD_EFI_FB, sizeof(efifb), &efifb); | ||||
} | |||||
#endif | #endif | ||||
do_vmap = true; | do_vmap = true; | ||||
efi_novmap = getenv("efi_disable_vmap"); | efi_novmap = getenv("efi_disable_vmap"); | ||||
if (efi_novmap != NULL) | if (efi_novmap != NULL) | ||||
do_vmap = strcasecmp(efi_novmap, "YES") != 0; | do_vmap = strcasecmp(efi_novmap, "YES") != 0; | ||||
efisz = (sizeof(struct efi_map_header) + 0xf) & ~0xf; | efisz = (sizeof(struct efi_map_header) + 0xf) & ~0xf; | ||||
▲ Show 20 Lines • Show All 234 Lines • Show Last 20 Lines |