736 lines
32 KiB
C
736 lines
32 KiB
C
/** @file
|
|
|
|
;******************************************************************************
|
|
;* Copyright (c) 2012 - 2019, Insyde Software Corp. All Rights Reserved.
|
|
;*
|
|
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
|
|
;* transmit, broadcast, present, recite, release, license or otherwise exploit
|
|
;* any part of this publication in any form, by any means, without the prior
|
|
;* written permission of Insyde Software Corporation.
|
|
;*
|
|
;******************************************************************************
|
|
*/
|
|
#ifndef _L05_CONFIG_H_
|
|
#define _L05_CONFIG_H_
|
|
|
|
#pragma pack(1)
|
|
|
|
//================================================================================
|
|
// L05 Feature Start
|
|
//================================================================================
|
|
//
|
|
// Current Spec version: Lenovo China Minimum BIOS Spec V1.39
|
|
// Please modify the LATEST_L05_SPEC_VERSION when update spec.
|
|
//
|
|
//[-start-211224-Ching000021-modify]//
|
|
#define LATEST_L05_SPEC_VERSION 140
|
|
//[-end-211224-Ching000021-modify]//
|
|
|
|
#define L05_INVALID_VALUE (-1)
|
|
//================================================================================
|
|
// L05 Feature End
|
|
//================================================================================
|
|
|
|
|
|
//================================================================================
|
|
// L05 Logo Start
|
|
//================================================================================
|
|
//_Start_L05_LOGO_
|
|
typedef enum {
|
|
L05BgrtLogo = 0,
|
|
L05MaxLogoType
|
|
} EFI_L05_LOGO_TYPE;
|
|
|
|
typedef struct _L05_LOGO_RESOLUTION_TABLE {
|
|
UINT32 X;// Location X
|
|
UINT32 Y;// Location Y
|
|
EFI_GUID Guid;// File Guid
|
|
} L05_LOGO_RESOLUTION_TABLE;
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_CUSTOMER_LOGO_1 \
|
|
{ \
|
|
0x9415b75c, 0xe1b8, 0x4e2a, 0x98, 0x8d, 0xdd, 0x39, 0x9b, 0x9a, 0x98, 0x5e \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_CUSTOMER_LOGO_2 \
|
|
{ \
|
|
0xc3c89ea3, 0x58a6, 0x43ed, 0xb6, 0x85, 0xe, 0xd5, 0x35, 0xb2, 0xe3, 0x6f \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_CUSTOMER_LOGO_3 \
|
|
{ \
|
|
0x4cd76a24, 0xc25b, 0x4e60, 0x9b, 0x4f, 0x25, 0xe9, 0x6b, 0x9e, 0xbf, 0xf6 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_ENGYSTAR \
|
|
{ \
|
|
0x846192c0, 0x9728, 0x4614, 0xbc, 0x38, 0x0b, 0x53, 0xb6, 0x09, 0x2f, 0xd2 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_768x1024 \
|
|
{ \
|
|
0x9DF7F118, 0xBA9F, 0x43a7, 0xAD, 0xE4, 0xB9, 0xA1, 0x1B, 0x6C, 0x3A, 0x02 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_800x1280 \
|
|
{ \
|
|
0xC9AC7314, 0xC250, 0x4AEC, 0x8E, 0x34, 0xB0, 0x49, 0x0A, 0x75, 0x66, 0x3C \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_2160x1440 \
|
|
{ \
|
|
0x0F85BFDB, 0xB54B, 0x4C5E, 0x85, 0xE6, 0x6A, 0x94, 0x19, 0xF8, 0x14, 0xF6 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_1024x600 \
|
|
{ \
|
|
0x15b009cf, 0xa818, 0x4927, 0xa0, 0xed, 0x2b, 0x4f, 0x5, 0x7e, 0xa5, 0xa8 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_1280x768 \
|
|
{ \
|
|
0XEC5A76B5, 0XEB48, 0X4321, 0XB8, 0XDF, 0XD2, 0X43, 0X7F, 0X4F, 0X46, 0X41 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_1280x800 \
|
|
{ \
|
|
0x00F5ADCE, 0xFF3A, 0x498B, 0x91, 0xD8, 0x67, 0x92, 0x50, 0xB4, 0x08, 0x49 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_1366x768 \
|
|
{ \
|
|
0xFCE82B05, 0x526C, 0x436F, 0xAE, 0x1A, 0x93, 0xAE, 0x75, 0x7F, 0x3E, 0x43 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_1600x900 \
|
|
{ \
|
|
0xF333BD43, 0x5C62, 0x4F93, 0xBB, 0x9D, 0x0E, 0x3A, 0xC3, 0x83, 0x91, 0x7B \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_1920x1080 \
|
|
{ \
|
|
0x156A8FFE, 0x62DB, 0x4FF3, 0x82, 0xAD, 0x2E, 0xBD, 0x8A, 0x3E, 0x3D, 0xF7 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_1920x1200 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xE2 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_2880x1800 \
|
|
{ \
|
|
0x7ED15186, 0xB06C, 0x4CEF, 0x92, 0xDA, 0x6E, 0x02, 0x90, 0x43, 0x69, 0xF3 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_3072x1920 \
|
|
{ \
|
|
0xC57A67F9, 0xCD1F, 0x4234, 0xBB, 0xE9, 0x7F, 0x2D, 0x9F, 0xED, 0x8C, 0xA4 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_3200x1800 \
|
|
{ \
|
|
0x742EC58A, 0x17FD, 0x414E, 0x8E, 0xA3, 0x2A, 0x4F, 0x52, 0xC8, 0x3A, 0xF4 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_3480x2160 \
|
|
{ \
|
|
0x82331078, 0xD0A4, 0x4004, 0x92, 0x32, 0xD7, 0x36, 0x81, 0x9F, 0xF4, 0x7E \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_3840x2160 \
|
|
{ \
|
|
0x1F56B2F9, 0x6E6D, 0x4014, 0xBF, 0xD4, 0x37, 0xC9, 0xE5, 0xD3, 0x98, 0xF1 \
|
|
}
|
|
|
|
//[-start-210702-Dongxu0006-add]//
|
|
//[-start-211001-Ching000008-add]//
|
|
#if defined(C970_SUPPORT) || defined(C770_SUPPORT) || defined(S77014_SUPPORT) || defined(S77013_SUPPORT) || defined(S77014IAH_SUPPORT)
|
|
//[-end-211001-Ching000008-add]//
|
|
#define EFI_OEM_BADGING_FILENAME_JPEG_L05_1920x1200 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xE3 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_JPEG_L05_2880x1800 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xE4 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_JPEG_L05_3840x2400 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xE5 \
|
|
}
|
|
//[-start-210830-STORM1110-modify]//
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_2240x1400 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xE6 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_2560x1600 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xE7 \
|
|
}
|
|
#endif
|
|
//#[-start-211026-Dongxu0025-add]## yoga logo for C970
|
|
#if defined(C970_SUPPORT)
|
|
#define EFI_OEM_BADGING_YOGA_JPEG_L05_1920x1200 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xE8 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_YOGA_JPEG_L05_2880x1800 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xE9 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_YOGA_JPEG_L05_3840x2400 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xEA \
|
|
}
|
|
#endif
|
|
//#[-end-211026-Dongxu0025-add]## yoga logo for C970
|
|
|
|
//#[-start-211027-Dongxu0026-add]##
|
|
#if defined(C770_SUPPORT)
|
|
#define EFI_OEM_BADGING_YOGA_JPEG_L05_2240x1400 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xE8 \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_YOGA_JPEG_L05_2880x1800 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xE9 \
|
|
}
|
|
|
|
#endif
|
|
//#[-end-211027-Dongxu0026-add]##
|
|
//[-start-21111-TAMT000031-add]//
|
|
#if defined(S77014_SUPPORT) || defined(S77014IAH_SUPPORT)
|
|
#define EFI_OEM_BADGING_YOGA_JPEG_L05_2240x1400 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xEB \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_YOGA_JPEG_L05_2880x1800 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xEC \
|
|
}
|
|
#endif
|
|
//[-start-220412-Ching000044-modify]//
|
|
//[-start-220422-Ching000046-modify]//
|
|
#if defined(S77014IAH_SUPPORT) || defined(S77014_SUPPORT)
|
|
#define EFI_OEM_BADGING_FILENAME_XIAOXIN_L05_2240x1400 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xEE \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_XIAOXIN_L05_2880x1800 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xEF \
|
|
}
|
|
#endif
|
|
//[-end-220422-Ching000046-modify]//
|
|
//[-end-220412-Ching000044-modify]//
|
|
#if defined(S77013_SUPPORT)
|
|
#define EFI_OEM_BADGING_YOGA_JPEG_L05_2560x1600 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xED \
|
|
}
|
|
#endif
|
|
//[-end-21111-TAMT000031-add]//
|
|
//[-end-210830-STORM1110-modify]//
|
|
//[-end-210702-Dongxu0006-add]//
|
|
|
|
//[-start-210906-QINGLIN0043-add]//
|
|
#if defined(S570_SUPPORT)
|
|
#define EFI_OEM_BADGING_FILENAME_XIAOXIN_L05_1920x1080 \
|
|
{ \
|
|
0x12050FC0, 0xF57F, 0x4CF4, 0xAB, 0xED, 0xEB, 0xDF, 0xED, 0x4C, 0x31, 0xF8 \
|
|
}
|
|
#endif
|
|
//[-end-210906-QINGLIN0043-add]//
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_L05_3840x2400 \
|
|
{ \
|
|
0x4E4F5299, 0x915C, 0x42CF, 0x8D, 0x12, 0xCB, 0xB0, 0xD9, 0x5C, 0x26, 0x2D \
|
|
}
|
|
|
|
#define EFI_OEM_BADGING_FILENAME_BGRT_IP_640x360 \
|
|
{ \
|
|
0x72C83F78, 0x0F54, 0x400B, 0xBD, 0x61, 0x24, 0x24, 0x7E, 0xD5, 0x9E, 0x54 \
|
|
}
|
|
//_End_L05_LOGO_
|
|
|
|
//================================================================================
|
|
// L05 Logo End
|
|
//================================================================================
|
|
|
|
|
|
//================================================================================
|
|
// Acpi Table Id Start
|
|
//================================================================================
|
|
#ifdef L05_ACPI_TABLE_ID_ENABLE
|
|
#define EFI_L05_ACPI_OEM_ID SIGNATURE_64 ('L','E','N','O','V','O',' ',' ') // OEMID 6 bytes long
|
|
#define EFI_L05_ACPI_OEM_ID_MASK 0x0000FFFFFFFFFFFF
|
|
#define EFI_L05_ACPI_OEM_TABLE_ID SIGNATURE_64 ('C','B','-','0','1',' ',' ',' ') // OEM table id 8 bytes long
|
|
#define EFI_L05_ACPI_OEM_TABLE_ID_MASK 0x000000FFFFFFFFFF
|
|
|
|
#endif // #ifdef L05_ACPI_TABLE_ID_ENABLE
|
|
//================================================================================
|
|
// Acpi Table Id End
|
|
//================================================================================
|
|
|
|
|
|
//================================================================================
|
|
// SLP1.0 Start
|
|
//================================================================================
|
|
//_Start_L05_SLP_STRING_
|
|
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
|
#define L05_SLP10_STRING { 'L', 'E', 'G', 'E', 'N', 'D', ' ', 'D', 'r', 'a', 'g', 'o', 'n', 0x00, 0x00, 0x00 }
|
|
#define L05_SLP10_STRING2 { 'L', 'E', 'N', 'O', 'V', 'O', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
|
|
//_End_L05_SLP_STRING_
|
|
//================================================================================
|
|
// SLP1.0 End
|
|
//================================================================================
|
|
|
|
|
|
//================================================================================
|
|
// HDD Password Start
|
|
//================================================================================
|
|
#define EFI_L05_SYSTEM_PASSWORD_MAX_RETRY 0x03
|
|
#define EFI_L05_HDD_PASSWORD_MAX_RETRY 0x02
|
|
//================================================================================
|
|
// HDD Password End
|
|
//================================================================================
|
|
|
|
|
|
//================================================================================
|
|
// SetupMenu Start
|
|
//================================================================================
|
|
|
|
typedef struct {
|
|
UINT8 Bus;
|
|
UINT8 Device;
|
|
UINT8 Function;
|
|
UINT8 PortNumber;
|
|
} EFI_L05_SATA_HDD_ODD_LOCATION;
|
|
|
|
#define EFI_L05_BOOT_DEVICE_NAME_MAX_SIZE 0x20
|
|
#define EFI_L05_BOOT_DEVICE_NAME_TABLE_MAX 0x20
|
|
|
|
typedef struct _EFI_L05_BOOT_DEVICE_NAME {
|
|
UINT16 DeviceType;
|
|
CHAR16 NameString[EFI_L05_BOOT_DEVICE_NAME_MAX_SIZE];
|
|
} EFI_L05_BOOT_DEVICE_NAME;
|
|
|
|
#define L05_BOOT_TYPE_BBS_FIRST_SATA_HDD ((0x01) * 256 + BBS_HARDDISK)
|
|
#define L05_BOOT_TYPE_BBS_SECOND_SATA_HDD ((0x02) * 256 + BBS_HARDDISK)
|
|
#define L05_BOOT_TYPE_BBS_USB_HDD ((BBS_HARDDISK) * 256 + BBS_USB)
|
|
#define L05_BOOT_TYPE_BBS_USB_CDROM ((BBS_CDROM) * 256 + BBS_USB)
|
|
#define L05_BOOT_TYPE_BBS_USB_FLOPPY ((BBS_FLOPPY) * 256 + BBS_USB)
|
|
#define L05_BOOT_TYPE_BBS_USB_MEMORY 0x07
|
|
|
|
#define L05_BOOT_TYPE_EFI_FIRST_SATA_HDD ((0xE0 + 0x01) * 256 + BBS_HARDDISK)
|
|
#define L05_BOOT_TYPE_EFI_SECOND_SATA_HDD ((0xE0 + 0x02) * 256 + BBS_HARDDISK)
|
|
#define L05_BOOT_TYPE_EFI_HARDDISK ((0xE0)* 256 + BBS_HARDDISK)
|
|
#define L05_BOOT_TYPE_EFI_USB_HDD ((0xE0 + BBS_HARDDISK) * 256 + BBS_USB)
|
|
#define L05_BOOT_TYPE_EFI_USB_CDROM ((0xE0 + BBS_CDROM) * 256 + BBS_USB)
|
|
#define L05_BOOT_TYPE_EFI_CDROM ((0xE0)* 256 + BBS_CDROM)
|
|
#define L05_BOOT_TYPE_EFI_FLOPPY ((0xE0)* 256 + BBS_FLOPPY)
|
|
#define L05_BOOT_TYPE_EFI_USB_FLOPPY ((0xE0 + BBS_FLOPPY) * 256 + BBS_USB)
|
|
#define L05_BOOT_TYPE_EFI_USB_MEMORY ((0xE0 + L05_BOOT_TYPE_BBS_USB_MEMORY) * 256 + BBS_USB)
|
|
#define L05_BOOT_TYPE_EFI_NETWORK ((0xE0)* 256 + BBS_EMBED_NETWORK)
|
|
#define L05_BOOT_TYPE_EFI_NETWORK_WIFI ((0xE0 + 0x0A) * 256 + BBS_EMBED_NETWORK)
|
|
#define L05_BOOT_TYPE_EFI_LENOVO_CLOUD ((0xE0 + 0x08) * 256 + BBS_EMBED_NETWORK)
|
|
#define L05_BOOT_TYPE_EFI_LENOVO_CLOUD_WIFI ((0xE0 + 0x09) * 256 + BBS_EMBED_NETWORK)
|
|
#define L05_BOOT_TYPE_NOVO_RECOVERY_SYSTEM ((0xE0 + 0x05) * 256 + BBS_HARDDISK)
|
|
#define L05_BOOT_TYPE_EFI_PORTABLE_DEVICE ((0xE0 + 0x08) * 256 + BBS_USB)
|
|
#define L05_BOOT_TYPE_EFI_UNKNOWN 0xE0FF
|
|
#define L05_BOOT_TYPE_NON_EFI 0xE0BB
|
|
|
|
#define L05_BOOT_TYPE_END_OF_LIST 0xFFFF
|
|
|
|
//
|
|
// For PXE Combine Feature
|
|
//
|
|
// Please make sure the PXE boot option description string at BuildNetworkBootOption function in BdsBoot.c.
|
|
// H2O Rev5.2 kernel PXE boot option description string is "EFI PXE %d for IPv%d (%02x-%02x-%02x-%02x-%02x-%02x)"
|
|
// L05_COMPARE_NETWORK_STRING should be follow kernel PXE boot option description to set to "EFI PXE"
|
|
//
|
|
#define L05_PXE_NETWROK_STRING L"EFI PXE Network"
|
|
#define L05_NETWORK_OPTION_STRING L"EFI PXE Network (%02x-%02x-%02x-%02x-%02x-%02x)"
|
|
#define L05_NETWORK_DUMMY_OPTION_STRING L"EFI PXE Network (88-88-88-88-87-88)"
|
|
#define L05_PXE_IPV4_BOOT_FAIL_STRING L"EFI PXE 0 for IPv4 (88-88-88-88-87-88)"
|
|
#define L05_PXE_IPV6_BOOT_FAIL_STRING L"EFI PXE 0 for IPv6 (88-88-88-88-87-88)"
|
|
#define L05_COMPARE_NETWORK_STRING L"EFI PXE"
|
|
#define L05_MAX_SUPPORT_PXE_DEVICE 3
|
|
|
|
//
|
|
// For HTTP Combine Feature
|
|
//
|
|
#define L05_CLOUD_SERVICES_STRING L"Lenovo Cloud Services"
|
|
#define L05_MAX_SUPPORT_HTTP_DEVICE 3
|
|
|
|
//
|
|
// For Display Dialog
|
|
//
|
|
#define L05_DIALOG_PAD_FRONT_SPACE_WIDTH 1
|
|
#define L05_DIALOG_PAD_LAST_SPACE_WIDTH 4
|
|
#define L05_PASSWORD_DIALOG_PAD_FRONT_SPACE_WIDTH 1
|
|
#define L05_PASSWORD_DIALOG_PAD_MIDDLE_SPACE_WIDTH 2
|
|
#define L05_PASSWORD_DIALOG_PAD_LAST_SPACE_WIDTH 4
|
|
|
|
//
|
|
// L05_SECURITY_ERASE
|
|
//
|
|
#define L05_SECURITY_ERASE_PERCENTAGE_FORMAT_STRING L"%3d%%"
|
|
#define L05_SECURITY_ERASE_DEFAULT_TIME_SECOND 30
|
|
#define L05_SECURITY_ERASE_PROGRESS_RING_MICROSECOND 250
|
|
|
|
#define L05_GET_NUMBER_LENGTH(Number, NumberSize) do { \
|
|
UINTN TempNumber; \
|
|
TempNumber = Number; \
|
|
NumberSize = 0; \
|
|
while (TempNumber != 0) { \
|
|
TempNumber /= 10; \
|
|
NumberSize++; \
|
|
} \
|
|
} while (0)
|
|
|
|
#define L05_GET_HEX_NUMBER_LENGTH(Number, NumberSize) do { \
|
|
UINTN TempNumber; \
|
|
TempNumber = Number; \
|
|
NumberSize = 0; \
|
|
while (TempNumber != 0) { \
|
|
TempNumber /= 0x10; \
|
|
NumberSize++; \
|
|
} \
|
|
} while (0)
|
|
|
|
#define L05_RFC_3066_ENGLISH_CODE "en-US"
|
|
#define L05_RFC_3066_SIMPLIFIED_CHINESE_CODE "zh-CN"
|
|
|
|
//================================================================================
|
|
// SetupMenu End
|
|
//================================================================================
|
|
|
|
//================================================================================
|
|
// SMBIOS Start
|
|
//================================================================================
|
|
//
|
|
// Please modify this according to actual status
|
|
// Follow L05 Spec V1.15 3.4.6 SMBIOS,
|
|
// System BIOS Major Version is always 0 prior to shiping the product.
|
|
// Always "1" after a products ships unless a major change occurs which then development can increment this number
|
|
//
|
|
#define L05_SMBIOS_TYPE00_BIOS_MAJOR_VERSION 0x00
|
|
|
|
//
|
|
// Follow L05 Spec V1.15 3.4.6 SMBIOS,
|
|
// These setting may reference to L05Config.h
|
|
//
|
|
#define L05_SMBIOS_TYPE00_ENCLOSURE_TYPE EFI_L05_SMBIOS_TYPE00_ENCLOSURE_TYPE_PORTABLE
|
|
#define L05_SMBIOS_TYPE00_BRAND_TYPE EFI_L05_SMBIOS_TYPE00_BRAND_TYPE_L05_CONSUMER_NOTEBOOK
|
|
|
|
#define L05_SMBIOS_TYPE11_COUNTRY_CODE_STRING "Country - XX"
|
|
#define L05_SMBIOS_TYPE11_REGION_CODE_STRING "Region - %a"
|
|
#define L05_SMBIOS_ISO_3166_ALPHA_2_CODE_STRING "XX"
|
|
#define L05_SMBIOS_TYPE11_MODERN_PRELOAD_STRING "Modern Preload"
|
|
|
|
//================================================================================
|
|
// SMBIOS End
|
|
//================================================================================
|
|
|
|
//================================================================================
|
|
// EEPROM Start
|
|
//================================================================================
|
|
|
|
//
|
|
// Definition of EEPROM Offset and Length.
|
|
// Based on LENOVO_CHINA_EEPROMContents_and_Tools_Spsc V1.19 for Lenovo China Minimum BIOS Spec V.135
|
|
//
|
|
#if (LATEST_L05_SPEC_VERSION == 135)
|
|
#define L05_EEPROM_PRODUCT_NAME_OFFSET 0x00
|
|
#define L05_EEPROM_PRODUCT_NAME_LENGTH 0x20
|
|
#define L05_EEPROM_RESERVED_1_OFFSET 0x20
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_RESERVED_2_OFFSET 0x30
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_RESERVED_3_OFFSET 0x70
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_RESERVED_4_OFFSET 0x80
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_RESERVED_5_OFFSET 0x90
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_RESERVED_6_OFFSET 0x70
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_SERIAL_NUMBER_OFFSET 0x80
|
|
#define L05_EEPROM_SERIAL_NUMBER_LENGTH 0x20
|
|
#define L05_EEPROM_RESERVED_7_OFFSET 0xA0
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_UUID_OFFSET 0xB0
|
|
#define L05_EEPROM_UUID_LENGTH 0x10
|
|
#define L05_EEPROM_RESERVED_8_OFFSET 0xC0
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_RESERVED_9_OFFSET 0xD0
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_PROJECT_NAME_OFFSET 0xE0
|
|
#define L05_EEPROM_PROJECT_NAME_LENGTH 0x20
|
|
#define L05_EEPROM_MISC_ATTRIBUTES_OFFSET 0x100
|
|
#define L05_EEPROM_MISC_ATTRIBUTES_LENGTH 0x10
|
|
#define L05_EEPROM_FAMILY_NAME_OFFSET 0x110
|
|
#define L05_EEPROM_FAMILY_NAME_LENGTH 0x10
|
|
#define L05_EEPROM_ASSET_TAG_OFFSET 0x120
|
|
#define L05_EEPROM_ASSET_TAG_LENGTH 0x10
|
|
#define L05_EEPROM_OS_PN_NUMBER_OFFSET 0x130
|
|
#define L05_EEPROM_OS_PN_NUMBER_LENGTH 0x10
|
|
#define L05_EEPROM_OS_DESCRIPTOR_OFFSET 0x140
|
|
#define L05_EEPROM_OS_DESCRIPTOR_LENGTH 0x20
|
|
#define L05_EEPROM_MACHINE_TYPE_MODEL_OFFSET 0x160
|
|
#define L05_EEPROM_MACHINE_TYPE_MODEL_LENGTH 0x20
|
|
#define L05_EEPROM_OA3_KEY_ID_OFFSET 0x180
|
|
#define L05_EEPROM_OA3_KEY_ID_LENGTH 0x20
|
|
#define L05_EEPROM_OA3_KEY_ID_SIZE_USED 15
|
|
|
|
#else
|
|
//
|
|
// Definition of EEPROM Offset and Length.
|
|
// Based on LENOVO_CHINA_EEPROMContents_and_Tools_Spsc V1.20 for Lenovo China Minimum BIOS Spec V.138
|
|
//
|
|
#define L05_EEPROM_PRODUCT_NAME_OFFSET 0x00
|
|
#define L05_EEPROM_PRODUCT_NAME_LENGTH 0x40
|
|
#define L05_EEPROM_RESERVED_1_OFFSET 0x40
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_RESERVED_2_OFFSET 0x50
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_RESERVED_3_OFFSET 0x60
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_RESERVED_4_OFFSET 0x70
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_RESERVED_5_OFFSET 0x80
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_RESERVED_6_OFFSET 0x90
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_SERIAL_NUMBER_OFFSET 0xA0
|
|
#define L05_EEPROM_SERIAL_NUMBER_LENGTH 0x20
|
|
#define L05_EEPROM_RESERVED_7_OFFSET 0xC0
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_UUID_OFFSET 0xD0
|
|
#define L05_EEPROM_UUID_LENGTH 0x10
|
|
#define L05_EEPROM_RESERVED_8_OFFSET 0xE0
|
|
#define L05_EEPROM_RESERVED_LENGTH 0x10
|
|
#define L05_EEPROM_TPM_LOCK_OFFSET 0xF0
|
|
#define L05_EEPROM_TPM_LOCK_LENGTH 0x01
|
|
#define L05_EEPROM_COMPUTRACE_ERASE_FLAG_OFFSET 0xF1
|
|
#define L05_EEPROM_COMPUTRACE_ERASE_FLAG_LENGTH 0x01
|
|
#define L05_EEPROM_BIOS_SELF_HEALING_FLAG_OFFSET 0xF2
|
|
#define L05_EEPROM_BIOS_SELF_HEALING_FLAG_LENGTH 0x01
|
|
#define L05_EEPROM_RESERVED_9_OFFSET 0xF3
|
|
#define L05_EEPROM_RESERVED_9_LENGTH 0x0D
|
|
#define L05_EEPROM_PROJECT_NAME_OFFSET 0x100
|
|
#define L05_EEPROM_PROJECT_NAME_LENGTH 0x40
|
|
#define L05_EEPROM_MISC_ATTRIBUTES_OFFSET 0x140
|
|
#define L05_EEPROM_MISC_ATTRIBUTES_LENGTH 0x10
|
|
#define L05_EEPROM_FAMILY_NAME_OFFSET 0x150
|
|
#define L05_EEPROM_FAMILY_NAME_LENGTH 0x40
|
|
#define L05_EEPROM_ASSET_TAG_OFFSET 0x190
|
|
#define L05_EEPROM_ASSET_TAG_LENGTH 0x10
|
|
#define L05_EEPROM_OS_PN_NUMBER_OFFSET 0x1A0
|
|
#define L05_EEPROM_OS_PN_NUMBER_LENGTH 0x10
|
|
#define L05_EEPROM_OS_DESCRIPTOR_OFFSET 0x1B0
|
|
#define L05_EEPROM_OS_DESCRIPTOR_LENGTH 0x20
|
|
#define L05_EEPROM_MACHINE_TYPE_MODEL_OFFSET 0x1D0
|
|
#define L05_EEPROM_MACHINE_TYPE_MODEL_LENGTH 0x40
|
|
#define L05_EEPROM_OA3_KEY_ID_OFFSET 0x210
|
|
#define L05_EEPROM_OA3_KEY_ID_LENGTH 0x20
|
|
#define L05_EEPROM_OA3_KEY_ID_SIZE_USED 15
|
|
#endif
|
|
|
|
//
|
|
// Definition of EEPROM Spsc V1.20 Map for L05 BIOS Spec V1.38. This is only for reference.
|
|
//
|
|
typedef struct _EFI_L05_MISC_ATTRIBUTES_EEPROM_MAP {
|
|
UINT8 KeyboardId;
|
|
UINT8 BrandTypeId;
|
|
UINT8 EPAFlag;
|
|
UINT8 FunctionFlag;
|
|
UINT8 Customer;
|
|
UINT8 Reserved[11];
|
|
} EFI_L05_MISC_ATTRIBUTES_EEPROM_MAP;
|
|
|
|
//
|
|
// Definition of EEPROM Spsc V1.20 Map for L05 BIOS Spec V1.38. This is only for reference.
|
|
//
|
|
//------+--------------------------------------+
|
|
//|0x0 | Product Name |
|
|
//+-----+--------------------------------------+
|
|
//|0x40 | Reserved 1 |
|
|
//+-----+--------------------------------------+
|
|
//|0x50 | Reserved 2 |
|
|
//+-----+--------------------------------------+
|
|
//|0x60 | Reserved 3 |
|
|
//+-----+--------------------------------------+
|
|
//|0x70 | Reserved 4 |
|
|
//+-----+--------------------------------------+
|
|
//|0x80 | Reserved 5 |
|
|
//+-----+--------------------------------------+
|
|
//|0x90 | Reserved 6 |
|
|
//+-----+--------------------------------------+
|
|
//|0xA0 | Lenovo Serial Number (SMBIOS Type02) |
|
|
//+-----+--------------------------------------+
|
|
//|0xC0 | Reserved 7 |
|
|
//+-----+--------------------------------------+
|
|
//|0xD0 | UUID (DMI TYPE01) |
|
|
//+-----+--------------------------------------+
|
|
//|0xE0 | Reserved 8 |
|
|
//+-----+--------------------------------------+
|
|
//|0xF0 | Reserved 9 |
|
|
//+-----+--------------------------------------+
|
|
//|0x100| Project Name |
|
|
//+-----+--------------------------------------+
|
|
//|0x140| Misc Attributes |
|
|
//+-----+--------------------------------------+
|
|
//|0x150| Family Name |
|
|
//+-----+--------------------------------------+
|
|
//|0x190| No Asset Tag |
|
|
//+-----+--------------------------------------+
|
|
//|0x1A0| OS PN Number |
|
|
//+-----+--------------------------------------+
|
|
//| | |
|
|
//|0x1B0| OS Descriptor |
|
|
//| | |
|
|
//+-----+--------------------------------------+
|
|
//| | |
|
|
//|0x1D0| MTM (SMBIOS TYPE01 Product Name) |
|
|
//| | |
|
|
//+-----+--------------------------------------+
|
|
//| | |
|
|
//|0x210| OA3 Key ID | (NOT the same as OA 3.0 Key in ACPI MSDM Table!!!)
|
|
//| | |
|
|
//+-----+--------------------------------------+
|
|
|
|
typedef struct _EFI_L05_EEPROM_MAP_119 {
|
|
UINT8 ProductName[L05_EEPROM_PRODUCT_NAME_LENGTH];
|
|
UINT8 Reserved1[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 Reserved2[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 Reserved3[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 Reserved4[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 Reserved5[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 Reserved6[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 L05SerialNumber[L05_EEPROM_SERIAL_NUMBER_LENGTH];
|
|
UINT8 Reserved7[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 Uuid[L05_EEPROM_UUID_LENGTH];
|
|
UINT8 Reserved8[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 Reserved9[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 ProjectName[L05_EEPROM_PROJECT_NAME_LENGTH];
|
|
EFI_L05_MISC_ATTRIBUTES_EEPROM_MAP L05MiscAttributes;
|
|
UINT8 FamilyName[L05_EEPROM_FAMILY_NAME_LENGTH];
|
|
UINT8 AssetTag[L05_EEPROM_ASSET_TAG_LENGTH];
|
|
UINT8 OSPNNumber[L05_EEPROM_OS_PN_NUMBER_LENGTH];
|
|
UINT8 OSDescriptor[L05_EEPROM_OS_DESCRIPTOR_LENGTH];
|
|
UINT8 MachineTypeModel[L05_EEPROM_MACHINE_TYPE_MODEL_LENGTH];
|
|
UINT8 Oa3KeyId[L05_EEPROM_OA3_KEY_ID_LENGTH];
|
|
} EFI_L05_EEPROM_MAP_119;
|
|
|
|
typedef struct _EFI_L05_EEPROM_MAP_120 {
|
|
UINT8 ProductName[L05_EEPROM_PRODUCT_NAME_LENGTH];
|
|
UINT8 Reserved1[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 Reserved2[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 Reserved3[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 Reserved4[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 Reserved5[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 Reserved6[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 L05SerialNumber[L05_EEPROM_SERIAL_NUMBER_LENGTH];
|
|
UINT8 Reserved7[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 Uuid[L05_EEPROM_UUID_LENGTH];
|
|
UINT8 Reserved8[L05_EEPROM_RESERVED_LENGTH];
|
|
UINT8 TpmLock[L05_EEPROM_TPM_LOCK_LENGTH];
|
|
UINT8 ComputraceEraseFlag[L05_EEPROM_COMPUTRACE_ERASE_FLAG_LENGTH];
|
|
UINT8 BiosSelfHealingFlag[L05_EEPROM_BIOS_SELF_HEALING_FLAG_LENGTH];
|
|
UINT8 Reserved9[L05_EEPROM_RESERVED_9_LENGTH];
|
|
UINT8 ProjectName[L05_EEPROM_PROJECT_NAME_LENGTH];
|
|
EFI_L05_MISC_ATTRIBUTES_EEPROM_MAP L05MiscAttributes;
|
|
UINT8 FamilyName[L05_EEPROM_FAMILY_NAME_LENGTH];
|
|
UINT8 AssetTag[L05_EEPROM_ASSET_TAG_LENGTH];
|
|
UINT8 OSPNNumber[L05_EEPROM_OS_PN_NUMBER_LENGTH];
|
|
UINT8 OSDescriptor[L05_EEPROM_OS_DESCRIPTOR_LENGTH];
|
|
UINT8 MachineTypeModel[L05_EEPROM_MACHINE_TYPE_MODEL_LENGTH];
|
|
UINT8 Oa3KeyId[L05_EEPROM_OA3_KEY_ID_LENGTH];
|
|
} EFI_L05_EEPROM_MAP_120;
|
|
|
|
//================================================================================
|
|
// EEPROM End
|
|
//================================================================================
|
|
|
|
|
|
//================================================================================
|
|
// L05 System Beep Start
|
|
//================================================================================
|
|
typedef enum {
|
|
PASSWORD_INVALID_KEY_BEEP = 0
|
|
} L05_SYSTEM_BEEP_TYPE;
|
|
//================================================================================
|
|
// L05 System Beep End
|
|
//================================================================================
|
|
|
|
//================================================================================
|
|
// L05 Graphic UI Start
|
|
//================================================================================
|
|
typedef enum {
|
|
Yoga = 0,
|
|
Ideapad,
|
|
Legion,
|
|
XiaoXin,
|
|
//[-start-220410-Ching000042-modify]//
|
|
//[-start-220412-Ching000044-modify]//
|
|
//[-start-220422-Ching000046-modify]//
|
|
#if defined(S77013_SUPPORT) || defined(S77014_SUPPORT)
|
|
LenovoNA,
|
|
#endif
|
|
#if defined(S77014IAH_SUPPORT) || defined(S77014_SUPPORT)
|
|
XiaoXinIAH,
|
|
#endif
|
|
//[-end-220422-Ching000046-modify]//
|
|
//[-end-220412-Ching000044-modify]//
|
|
//[-end-220410-Ching000042-modify]//
|
|
#ifdef L05_SMB_BIOS_ENABLE
|
|
ThinkBook,
|
|
#endif
|
|
MaxBrandingLogoType
|
|
} L05_BRANDING_LOGO_TYPE;
|
|
|
|
typedef enum {
|
|
Its30PerformanceMode = 0,
|
|
Its30BalanceMode,
|
|
Its30QuietMode,
|
|
Its40ExtremeMode,
|
|
Its40IntelligentMode,
|
|
Its40SavingMode,
|
|
MaxPerformanceMode
|
|
} L05_PERFORMANCE_MODE;
|
|
//================================================================================
|
|
// L05 Graphic UI End
|
|
//================================================================================
|
|
|
|
//================================================================================
|
|
// L05 OEM Switch Trigger Point Start
|
|
//================================================================================
|
|
typedef enum {
|
|
DuringPost = 0,
|
|
RouteConfig,
|
|
} L05_OEM_SWITCH_TRIGGER_POINT_TYPE;
|
|
//================================================================================
|
|
// L05 OEM Switch Trigger Point End
|
|
//================================================================================
|
|
|
|
//================================================================================
|
|
// L05 Crisis Recovery Start
|
|
//================================================================================
|
|
#define L05_CRISIS_BIOS_NAME L"xxCN.bin"
|
|
//================================================================================
|
|
// L05 Crisis Recovery End
|
|
//================================================================================
|
|
|
|
#pragma pack()
|
|
#endif // _L05_CONFIG_H_
|