From: Дамјан Георгиевски Date: Mon, 15 Jan 2018 17:01:04 +0000 (+0100) Subject: EFI stub: add LoaderFirmwareInfo, LoaderFirmwareType if non-existant X-Git-Tag: v237~56^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1aa15defbf37ef83191c4b0dd224957f3d1114b6;p=thirdparty%2Fsystemd.git EFI stub: add LoaderFirmwareInfo, LoaderFirmwareType if non-existant bootctl previously: ``` System: Firmware: n/a (n/a) ``` after: ``` System: Firmware: UEFI 2.50 (Lenovo 0.4704) ``` --- diff --git a/src/boot/efi/stub.c b/src/boot/efi/stub.c index 8066c2b8b58..cf525790864 100644 --- a/src/boot/efi/stub.c +++ b/src/boot/efi/stub.c @@ -111,6 +111,20 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) { FreePool(loaded_image_path); } + /* if LoaderFirmwareInfo is not set, let's set it */ + if (efivar_get_raw(&global_guid, L"LoaderFirmwareInfo", &b, &size) != EFI_SUCCESS) { + CHAR16 *loader_firmware_info = PoolPrint(L"%s %d.%02d", ST->FirmwareVendor, ST->FirmwareRevision >> 16, ST->FirmwareRevision & 0xffff); + efivar_set(L"LoaderFirmwareInfo", loader_firmware_info, FALSE); + FreePool(loader_firmware_info); + } + /* ditto for LoaderFirmwareType */ + if (efivar_get_raw(&global_guid, L"LoaderFirmwareType", &b, &size) != EFI_SUCCESS) { + CHAR16 *loader_firmware_type = PoolPrint(L"UEFI %d.%02d", ST->Hdr.Revision >> 16, ST->Hdr.Revision & 0xffff); + efivar_set(L"LoaderFirmwareType", loader_firmware_type, FALSE); + FreePool(loader_firmware_type); + } + + if (szs[3] > 0) graphics_splash((UINT8 *)((UINTN)loaded_image->ImageBase + addrs[3]), szs[3], NULL);