Current implemenation sets PM1_CNT.SCI_EN bit at ReadyToBoot event. However, this should not be done because this causes OS to skip triggering FADT.SMI_CMD, which leads to the functions implemented in the SMI handler being omitted. This issue was identified by Matt Delco <delco@google.com>. The fix does the following: - The SCI_EN bit setting is removed from CbSupportDxe driver. - Some additional checks are added in CbParseFadtInfo() in CbParseLib.c to output some error message and ASSERT (FALSE) if ALL of the following conditions are met: 1) HARDWARE_REDUCED_ACPI is not set; 2) SMI_CMD field is zero; 3) SCI_EN bit is zero; which indicates the ACPI enabling status is inconsistent: SCI is not enabled but the ACPI table does not provide a means to enable it through FADT->SMI_CMD. This may cause issues in OS. Cc: Maurice Ma <maurice.ma@intel.com> Cc: Prince Agyeman <prince.agyeman@intel.com> Cc: Matt Delco <delco@google.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Benjamin You <benjamin.you@intel.com> Reviewed-by: Maurice Ma <maurice.ma@intel.com> Reviewed-by: Matt Delco <delco@google.com>
66 lines
1.9 KiB
INI
66 lines
1.9 KiB
INI
## @file
|
|
# Coreboot Support DXE Module
|
|
#
|
|
# Report some MMIO/IO resources to dxe core, extract smbios and acpi tables from coreboot and install.
|
|
#
|
|
# Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>
|
|
#
|
|
# This program and the accompanying materials
|
|
# are licensed and made available under the terms and conditions of the BSD License
|
|
# which accompanies this distribution. The full text of the license may be found at
|
|
# http://opensource.org/licenses/bsd-license.php.
|
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = CbSupportDxe
|
|
FILE_GUID = C68DAA4E-7AB5-41e8-A91D-5954421053F3
|
|
MODULE_TYPE = DXE_DRIVER
|
|
VERSION_STRING = 1.0
|
|
ENTRY_POINT = CbDxeEntryPoint
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
|
|
#
|
|
|
|
[Sources]
|
|
CbSupportDxe.c
|
|
CbSupportDxe.h
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
IntelFrameworkPkg/IntelFrameworkPkg.dec
|
|
IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
|
|
CorebootModulePkg/CorebootModulePkg.dec
|
|
|
|
[LibraryClasses]
|
|
UefiDriverEntryPoint
|
|
UefiBootServicesTableLib
|
|
DxeServicesTableLib
|
|
DebugLib
|
|
BaseMemoryLib
|
|
UefiLib
|
|
HobLib
|
|
|
|
[Guids]
|
|
gEfiAcpiTableGuid
|
|
gEfiSmbiosTableGuid
|
|
gUefiSystemTableInfoGuid
|
|
gUefiAcpiBoardInfoGuid
|
|
gUefiFrameBufferInfoGuid
|
|
|
|
[Pcd]
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution
|
|
|
|
[Depex]
|
|
TRUE
|