OvmfPkg: Apply uncrustify changes
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the OvmfPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Andrew Fish <afish@apple.com>
This commit is contained in:
committed by
mergify[bot]
parent
d1050b9dff
commit
ac0a286f4d
@@ -21,19 +21,19 @@
|
||||
// The following bit value stands for "broadcast SMI" in the
|
||||
// "etc/smi/supported-features" and "etc/smi/requested-features" fw_cfg files.
|
||||
//
|
||||
#define ICH9_LPC_SMI_F_BROADCAST BIT0
|
||||
#define ICH9_LPC_SMI_F_BROADCAST BIT0
|
||||
//
|
||||
// The following bit value stands for "enable CPU hotplug, and inject an SMI
|
||||
// with control value ICH9_APM_CNT_CPU_HOTPLUG upon hotplug", in the
|
||||
// "etc/smi/supported-features" and "etc/smi/requested-features" fw_cfg files.
|
||||
//
|
||||
#define ICH9_LPC_SMI_F_CPU_HOTPLUG BIT1
|
||||
#define ICH9_LPC_SMI_F_CPU_HOTPLUG BIT1
|
||||
//
|
||||
// The following bit value stands for "enable CPU hot-unplug, and inject an SMI
|
||||
// with control value ICH9_APM_CNT_CPU_HOTPLUG upon hot-unplug", in the
|
||||
// "etc/smi/supported-features" and "etc/smi/requested-features" fw_cfg files.
|
||||
//
|
||||
#define ICH9_LPC_SMI_F_CPU_HOT_UNPLUG BIT2
|
||||
#define ICH9_LPC_SMI_F_CPU_HOT_UNPLUG BIT2
|
||||
|
||||
//
|
||||
// Provides a scratch buffer (allocated in EfiReservedMemoryType type memory)
|
||||
@@ -41,8 +41,8 @@
|
||||
//
|
||||
#pragma pack (1)
|
||||
typedef union {
|
||||
UINT64 Features;
|
||||
UINT8 FeaturesOk;
|
||||
UINT64 Features;
|
||||
UINT8 FeaturesOk;
|
||||
} SCRATCH_BUFFER;
|
||||
#pragma pack ()
|
||||
|
||||
@@ -51,14 +51,14 @@ typedef union {
|
||||
// "etc/smi/features-ok" fw_cfg files from NegotiateSmiFeatures() to
|
||||
// AppendFwCfgBootScript().
|
||||
//
|
||||
STATIC FIRMWARE_CONFIG_ITEM mRequestedFeaturesItem;
|
||||
STATIC FIRMWARE_CONFIG_ITEM mFeaturesOkItem;
|
||||
STATIC FIRMWARE_CONFIG_ITEM mRequestedFeaturesItem;
|
||||
STATIC FIRMWARE_CONFIG_ITEM mFeaturesOkItem;
|
||||
|
||||
//
|
||||
// Carries the negotiated SMI features from NegotiateSmiFeatures() to
|
||||
// AppendFwCfgBootScript().
|
||||
//
|
||||
STATIC UINT64 mSmiFeatures;
|
||||
STATIC UINT64 mSmiFeatures;
|
||||
|
||||
/**
|
||||
Negotiate SMI features with QEMU.
|
||||
@@ -76,11 +76,11 @@ NegotiateSmiFeatures (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
FIRMWARE_CONFIG_ITEM SupportedFeaturesItem;
|
||||
UINTN SupportedFeaturesSize;
|
||||
UINTN RequestedFeaturesSize;
|
||||
UINTN FeaturesOkSize;
|
||||
UINT64 RequestedFeaturesMask;
|
||||
FIRMWARE_CONFIG_ITEM SupportedFeaturesItem;
|
||||
UINTN SupportedFeaturesSize;
|
||||
UINTN RequestedFeaturesSize;
|
||||
UINTN FeaturesOkSize;
|
||||
UINT64 RequestedFeaturesMask;
|
||||
|
||||
//
|
||||
// Look up the fw_cfg files used for feature negotiation. The selector keys
|
||||
@@ -88,14 +88,33 @@ NegotiateSmiFeatures (
|
||||
// statically. If the files are missing, then QEMU doesn't support SMI
|
||||
// feature negotiation.
|
||||
//
|
||||
if (RETURN_ERROR (QemuFwCfgFindFile ("etc/smi/supported-features",
|
||||
&SupportedFeaturesItem, &SupportedFeaturesSize)) ||
|
||||
RETURN_ERROR (QemuFwCfgFindFile ("etc/smi/requested-features",
|
||||
&mRequestedFeaturesItem, &RequestedFeaturesSize)) ||
|
||||
RETURN_ERROR (QemuFwCfgFindFile ("etc/smi/features-ok",
|
||||
&mFeaturesOkItem, &FeaturesOkSize))) {
|
||||
DEBUG ((DEBUG_INFO, "%a: SMI feature negotiation unavailable\n",
|
||||
__FUNCTION__));
|
||||
if (RETURN_ERROR (
|
||||
QemuFwCfgFindFile (
|
||||
"etc/smi/supported-features",
|
||||
&SupportedFeaturesItem,
|
||||
&SupportedFeaturesSize
|
||||
)
|
||||
) ||
|
||||
RETURN_ERROR (
|
||||
QemuFwCfgFindFile (
|
||||
"etc/smi/requested-features",
|
||||
&mRequestedFeaturesItem,
|
||||
&RequestedFeaturesSize
|
||||
)
|
||||
) ||
|
||||
RETURN_ERROR (
|
||||
QemuFwCfgFindFile (
|
||||
"etc/smi/features-ok",
|
||||
&mFeaturesOkItem,
|
||||
&FeaturesOkSize
|
||||
)
|
||||
))
|
||||
{
|
||||
DEBUG ((
|
||||
DEBUG_INFO,
|
||||
"%a: SMI feature negotiation unavailable\n",
|
||||
__FUNCTION__
|
||||
));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -103,11 +122,15 @@ NegotiateSmiFeatures (
|
||||
// If the files are present but their sizes disagree with us, that's a fatal
|
||||
// error (we can't trust the behavior of SMIs either way).
|
||||
//
|
||||
if (SupportedFeaturesSize != sizeof mSmiFeatures ||
|
||||
RequestedFeaturesSize != sizeof mSmiFeatures ||
|
||||
FeaturesOkSize != sizeof (UINT8)) {
|
||||
DEBUG ((DEBUG_ERROR, "%a: size mismatch in feature negotiation\n",
|
||||
__FUNCTION__));
|
||||
if ((SupportedFeaturesSize != sizeof mSmiFeatures) ||
|
||||
(RequestedFeaturesSize != sizeof mSmiFeatures) ||
|
||||
(FeaturesOkSize != sizeof (UINT8)))
|
||||
{
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
"%a: size mismatch in feature negotiation\n",
|
||||
__FUNCTION__
|
||||
));
|
||||
goto FatalError;
|
||||
}
|
||||
|
||||
@@ -129,6 +152,7 @@ NegotiateSmiFeatures (
|
||||
RequestedFeaturesMask |= ICH9_LPC_SMI_F_CPU_HOTPLUG;
|
||||
RequestedFeaturesMask |= ICH9_LPC_SMI_F_CPU_HOT_UNPLUG;
|
||||
}
|
||||
|
||||
mSmiFeatures &= RequestedFeaturesMask;
|
||||
QemuFwCfgSelectItem (mRequestedFeaturesItem);
|
||||
QemuFwCfgWriteBytes (sizeof mSmiFeatures, &mSmiFeatures);
|
||||
@@ -141,8 +165,12 @@ NegotiateSmiFeatures (
|
||||
//
|
||||
QemuFwCfgSelectItem (mFeaturesOkItem);
|
||||
if (QemuFwCfgRead8 () != 1) {
|
||||
DEBUG ((DEBUG_ERROR, "%a: negotiation failed for feature bitmap 0x%Lx\n",
|
||||
__FUNCTION__, mSmiFeatures));
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
"%a: negotiation failed for feature bitmap 0x%Lx\n",
|
||||
__FUNCTION__,
|
||||
mSmiFeatures
|
||||
));
|
||||
goto FatalError;
|
||||
}
|
||||
|
||||
@@ -159,26 +187,37 @@ NegotiateSmiFeatures (
|
||||
// the original QEMU behavior (i.e., unicast SMI) used to differ.
|
||||
//
|
||||
if (RETURN_ERROR (PcdSet64S (PcdCpuSmmApSyncTimeout, 1000000)) ||
|
||||
RETURN_ERROR (PcdSet8S (PcdCpuSmmSyncMode, 0x00))) {
|
||||
DEBUG ((DEBUG_ERROR, "%a: PiSmmCpuDxeSmm PCD configuration failed\n",
|
||||
__FUNCTION__));
|
||||
RETURN_ERROR (PcdSet8S (PcdCpuSmmSyncMode, 0x00)))
|
||||
{
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
"%a: PiSmmCpuDxeSmm PCD configuration failed\n",
|
||||
__FUNCTION__
|
||||
));
|
||||
goto FatalError;
|
||||
}
|
||||
|
||||
DEBUG ((DEBUG_INFO, "%a: using SMI broadcast\n", __FUNCTION__));
|
||||
}
|
||||
|
||||
if ((mSmiFeatures & ICH9_LPC_SMI_F_CPU_HOTPLUG) == 0) {
|
||||
DEBUG ((DEBUG_INFO, "%a: CPU hotplug not negotiated\n", __FUNCTION__));
|
||||
} else {
|
||||
DEBUG ((DEBUG_INFO, "%a: CPU hotplug with SMI negotiated\n",
|
||||
__FUNCTION__));
|
||||
DEBUG ((
|
||||
DEBUG_INFO,
|
||||
"%a: CPU hotplug with SMI negotiated\n",
|
||||
__FUNCTION__
|
||||
));
|
||||
}
|
||||
|
||||
if ((mSmiFeatures & ICH9_LPC_SMI_F_CPU_HOT_UNPLUG) == 0) {
|
||||
DEBUG ((DEBUG_INFO, "%a: CPU hot-unplug not negotiated\n", __FUNCTION__));
|
||||
} else {
|
||||
DEBUG ((DEBUG_INFO, "%a: CPU hot-unplug with SMI negotiated\n",
|
||||
__FUNCTION__));
|
||||
DEBUG ((
|
||||
DEBUG_INFO,
|
||||
"%a: CPU hot-unplug with SMI negotiated\n",
|
||||
__FUNCTION__
|
||||
));
|
||||
}
|
||||
|
||||
//
|
||||
@@ -203,12 +242,12 @@ STATIC
|
||||
VOID
|
||||
EFIAPI
|
||||
AppendFwCfgBootScript (
|
||||
IN OUT VOID *Context OPTIONAL,
|
||||
IN OUT VOID *ExternalScratchBuffer
|
||||
IN OUT VOID *Context OPTIONAL,
|
||||
IN OUT VOID *ExternalScratchBuffer
|
||||
)
|
||||
{
|
||||
SCRATCH_BUFFER *ScratchBuffer;
|
||||
RETURN_STATUS Status;
|
||||
SCRATCH_BUFFER *ScratchBuffer;
|
||||
RETURN_STATUS Status;
|
||||
|
||||
ScratchBuffer = ExternalScratchBuffer;
|
||||
|
||||
@@ -216,8 +255,10 @@ AppendFwCfgBootScript (
|
||||
// Write the negotiated feature bitmap into "etc/smi/requested-features".
|
||||
//
|
||||
ScratchBuffer->Features = mSmiFeatures;
|
||||
Status = QemuFwCfgS3ScriptWriteBytes (mRequestedFeaturesItem,
|
||||
sizeof ScratchBuffer->Features);
|
||||
Status = QemuFwCfgS3ScriptWriteBytes (
|
||||
mRequestedFeaturesItem,
|
||||
sizeof ScratchBuffer->Features
|
||||
);
|
||||
if (RETURN_ERROR (Status)) {
|
||||
goto FatalError;
|
||||
}
|
||||
@@ -226,8 +267,10 @@ AppendFwCfgBootScript (
|
||||
// Read back "etc/smi/features-ok". This invokes the feature validation &
|
||||
// lockdown. (The validation succeeded at first boot.)
|
||||
//
|
||||
Status = QemuFwCfgS3ScriptReadBytes (mFeaturesOkItem,
|
||||
sizeof ScratchBuffer->FeaturesOk);
|
||||
Status = QemuFwCfgS3ScriptReadBytes (
|
||||
mFeaturesOkItem,
|
||||
sizeof ScratchBuffer->FeaturesOk
|
||||
);
|
||||
if (RETURN_ERROR (Status)) {
|
||||
goto FatalError;
|
||||
}
|
||||
@@ -236,14 +279,21 @@ AppendFwCfgBootScript (
|
||||
// If "etc/smi/features-ok" read as 1, we're good. Otherwise, hang the S3
|
||||
// resume process.
|
||||
//
|
||||
Status = QemuFwCfgS3ScriptCheckValue (&ScratchBuffer->FeaturesOk,
|
||||
sizeof ScratchBuffer->FeaturesOk, MAX_UINT8, 1);
|
||||
Status = QemuFwCfgS3ScriptCheckValue (
|
||||
&ScratchBuffer->FeaturesOk,
|
||||
sizeof ScratchBuffer->FeaturesOk,
|
||||
MAX_UINT8,
|
||||
1
|
||||
);
|
||||
if (RETURN_ERROR (Status)) {
|
||||
goto FatalError;
|
||||
}
|
||||
|
||||
DEBUG ((DEBUG_VERBOSE, "%a: SMI feature negotiation boot script saved\n",
|
||||
__FUNCTION__));
|
||||
DEBUG ((
|
||||
DEBUG_VERBOSE,
|
||||
"%a: SMI feature negotiation boot script saved\n",
|
||||
__FUNCTION__
|
||||
));
|
||||
return;
|
||||
|
||||
FatalError:
|
||||
@@ -251,7 +301,6 @@ FatalError:
|
||||
CpuDeadLoop ();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Append a boot script fragment that will re-select the previously negotiated
|
||||
SMI features during S3 resume.
|
||||
@@ -261,15 +310,18 @@ SaveSmiFeatures (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
RETURN_STATUS Status;
|
||||
RETURN_STATUS Status;
|
||||
|
||||
//
|
||||
// We are already running at TPL_CALLBACK, on the stack of
|
||||
// OnS3SaveStateInstalled(). But that's okay, we can easily queue more
|
||||
// notification functions while executing a notification function.
|
||||
//
|
||||
Status = QemuFwCfgS3CallWhenBootScriptReady (AppendFwCfgBootScript, NULL,
|
||||
sizeof (SCRATCH_BUFFER));
|
||||
Status = QemuFwCfgS3CallWhenBootScriptReady (
|
||||
AppendFwCfgBootScript,
|
||||
NULL,
|
||||
sizeof (SCRATCH_BUFFER)
|
||||
);
|
||||
if (RETURN_ERROR (Status)) {
|
||||
ASSERT (FALSE);
|
||||
CpuDeadLoop ();
|
||||
|
@@ -38,8 +38,8 @@ STATIC
|
||||
VOID
|
||||
EFIAPI
|
||||
OnS3SaveStateInstalled (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
//
|
||||
@@ -48,19 +48,19 @@ OnS3SaveStateInstalled (
|
||||
// S3SaveState protocol installation callback, strictly before the runtime
|
||||
// phase.
|
||||
//
|
||||
STATIC UINTN mSmiEnable;
|
||||
STATIC UINTN mSmiEnable;
|
||||
|
||||
//
|
||||
// Captures whether SMI feature negotiation is supported. The variable is only
|
||||
// used to carry this information from the entry point function to the
|
||||
// S3SaveState protocol installation callback.
|
||||
//
|
||||
STATIC BOOLEAN mSmiFeatureNegotiation;
|
||||
STATIC BOOLEAN mSmiFeatureNegotiation;
|
||||
|
||||
//
|
||||
// Event signaled when an S3SaveState protocol interface is installed.
|
||||
//
|
||||
STATIC EFI_EVENT mS3SaveStateInstalled;
|
||||
STATIC EFI_EVENT mS3SaveStateInstalled;
|
||||
|
||||
/**
|
||||
Invokes SMI activation from either the preboot or runtime environment.
|
||||
@@ -97,7 +97,7 @@ SmmControl2DxeTrigger (
|
||||
//
|
||||
// No support for queued or periodic activation.
|
||||
//
|
||||
if (Periodic || ActivationInterval > 0) {
|
||||
if (Periodic || (ActivationInterval > 0)) {
|
||||
return EFI_DEVICE_ERROR;
|
||||
}
|
||||
|
||||
@@ -161,7 +161,7 @@ SmmControl2DxeClear (
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
STATIC EFI_SMM_CONTROL2_PROTOCOL mControl2 = {
|
||||
STATIC EFI_SMM_CONTROL2_PROTOCOL mControl2 = {
|
||||
&SmmControl2DxeTrigger,
|
||||
&SmmControl2DxeClear,
|
||||
MAX_UINTN // MinimumTriggerPeriod -- we don't support periodic SMIs
|
||||
@@ -173,13 +173,13 @@ STATIC EFI_SMM_CONTROL2_PROTOCOL mControl2 = {
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
SmmControl2DxeEntryPoint (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
UINT32 PmBase;
|
||||
UINT32 SmiEnableVal;
|
||||
EFI_STATUS Status;
|
||||
UINT32 PmBase;
|
||||
UINT32 SmiEnableVal;
|
||||
EFI_STATUS Status;
|
||||
|
||||
//
|
||||
// This module should only be included if SMRAM support is required.
|
||||
@@ -192,7 +192,7 @@ SmmControl2DxeEntryPoint (
|
||||
// ACPI PM IO space.)
|
||||
//
|
||||
PmBase = PciRead32 (POWER_MGMT_REGISTER_Q35 (ICH9_PMBASE)) &
|
||||
ICH9_PMBASE_MASK;
|
||||
ICH9_PMBASE_MASK;
|
||||
mSmiEnable = PmBase + ICH9_PMBASE_OFS_SMI_EN;
|
||||
|
||||
//
|
||||
@@ -202,8 +202,11 @@ SmmControl2DxeEntryPoint (
|
||||
//
|
||||
SmiEnableVal = IoRead32 (mSmiEnable);
|
||||
if ((SmiEnableVal & ICH9_SMI_EN_APMC_EN) != 0) {
|
||||
DEBUG ((DEBUG_ERROR, "%a: this Q35 implementation lacks SMI\n",
|
||||
__FUNCTION__));
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
"%a: this Q35 implementation lacks SMI\n",
|
||||
__FUNCTION__
|
||||
));
|
||||
goto FatalError;
|
||||
}
|
||||
|
||||
@@ -217,8 +220,10 @@ SmmControl2DxeEntryPoint (
|
||||
//
|
||||
// Prevent software from undoing the above (until platform reset).
|
||||
//
|
||||
PciOr16 (POWER_MGMT_REGISTER_Q35 (ICH9_GEN_PMCON_1),
|
||||
ICH9_GEN_PMCON_1_SMI_LOCK);
|
||||
PciOr16 (
|
||||
POWER_MGMT_REGISTER_Q35 (ICH9_GEN_PMCON_1),
|
||||
ICH9_GEN_PMCON_1_SMI_LOCK
|
||||
);
|
||||
|
||||
//
|
||||
// If we can clear GBL_SMI_EN now, that means QEMU's SMI support is not
|
||||
@@ -226,8 +231,11 @@ SmmControl2DxeEntryPoint (
|
||||
//
|
||||
IoWrite32 (mSmiEnable, SmiEnableVal & ~(UINT32)ICH9_SMI_EN_GBL_SMI_EN);
|
||||
if (IoRead32 (mSmiEnable) != SmiEnableVal) {
|
||||
DEBUG ((DEBUG_ERROR, "%a: failed to lock down GBL_SMI_EN\n",
|
||||
__FUNCTION__));
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
"%a: failed to lock down GBL_SMI_EN\n",
|
||||
__FUNCTION__
|
||||
));
|
||||
goto FatalError;
|
||||
}
|
||||
|
||||
@@ -237,26 +245,37 @@ SmmControl2DxeEntryPoint (
|
||||
mSmiFeatureNegotiation = NegotiateSmiFeatures ();
|
||||
|
||||
if (PcdGetBool (PcdAcpiS3Enable)) {
|
||||
VOID *Registration;
|
||||
VOID *Registration;
|
||||
|
||||
//
|
||||
// On S3 resume the above register settings have to be repeated. Register a
|
||||
// protocol notify callback that, when boot script saving becomes
|
||||
// available, saves operations equivalent to the above to the boot script.
|
||||
//
|
||||
Status = gBS->CreateEvent (EVT_NOTIFY_SIGNAL, TPL_CALLBACK,
|
||||
OnS3SaveStateInstalled, NULL /* Context */,
|
||||
&mS3SaveStateInstalled);
|
||||
Status = gBS->CreateEvent (
|
||||
EVT_NOTIFY_SIGNAL,
|
||||
TPL_CALLBACK,
|
||||
OnS3SaveStateInstalled,
|
||||
NULL /* Context */,
|
||||
&mS3SaveStateInstalled
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
DEBUG ((DEBUG_ERROR, "%a: CreateEvent: %r\n", __FUNCTION__, Status));
|
||||
goto FatalError;
|
||||
}
|
||||
|
||||
Status = gBS->RegisterProtocolNotify (&gEfiS3SaveStateProtocolGuid,
|
||||
mS3SaveStateInstalled, &Registration);
|
||||
Status = gBS->RegisterProtocolNotify (
|
||||
&gEfiS3SaveStateProtocolGuid,
|
||||
mS3SaveStateInstalled,
|
||||
&Registration
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
DEBUG ((DEBUG_ERROR, "%a: RegisterProtocolNotify: %r\n", __FUNCTION__,
|
||||
Status));
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
"%a: RegisterProtocolNotify: %r\n",
|
||||
__FUNCTION__,
|
||||
Status
|
||||
));
|
||||
goto ReleaseEvent;
|
||||
}
|
||||
|
||||
@@ -274,12 +293,19 @@ SmmControl2DxeEntryPoint (
|
||||
// We have no pointers to convert to virtual addresses. The handle itself
|
||||
// doesn't matter, as protocol services are not accessible at runtime.
|
||||
//
|
||||
Status = gBS->InstallMultipleProtocolInterfaces (&ImageHandle,
|
||||
&gEfiSmmControl2ProtocolGuid, &mControl2,
|
||||
NULL);
|
||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||
&ImageHandle,
|
||||
&gEfiSmmControl2ProtocolGuid,
|
||||
&mControl2,
|
||||
NULL
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
DEBUG ((DEBUG_ERROR, "%a: InstallMultipleProtocolInterfaces: %r\n",
|
||||
__FUNCTION__, Status));
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
"%a: InstallMultipleProtocolInterfaces: %r\n",
|
||||
__FUNCTION__,
|
||||
Status
|
||||
));
|
||||
goto ReleaseEvent;
|
||||
}
|
||||
|
||||
@@ -311,20 +337,23 @@ STATIC
|
||||
VOID
|
||||
EFIAPI
|
||||
OnS3SaveStateInstalled (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_S3_SAVE_STATE_PROTOCOL *S3SaveState;
|
||||
UINT32 SmiEnOrMask, SmiEnAndMask;
|
||||
UINT64 GenPmCon1Address;
|
||||
UINT16 GenPmCon1OrMask, GenPmCon1AndMask;
|
||||
EFI_STATUS Status;
|
||||
EFI_S3_SAVE_STATE_PROTOCOL *S3SaveState;
|
||||
UINT32 SmiEnOrMask, SmiEnAndMask;
|
||||
UINT64 GenPmCon1Address;
|
||||
UINT16 GenPmCon1OrMask, GenPmCon1AndMask;
|
||||
|
||||
ASSERT (Event == mS3SaveStateInstalled);
|
||||
|
||||
Status = gBS->LocateProtocol (&gEfiS3SaveStateProtocolGuid,
|
||||
NULL /* Registration */, (VOID **)&S3SaveState);
|
||||
Status = gBS->LocateProtocol (
|
||||
&gEfiS3SaveStateProtocolGuid,
|
||||
NULL /* Registration */,
|
||||
(VOID **)&S3SaveState
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
return;
|
||||
}
|
||||
@@ -335,37 +364,45 @@ OnS3SaveStateInstalled (
|
||||
//
|
||||
SmiEnOrMask = ICH9_SMI_EN_APMC_EN | ICH9_SMI_EN_GBL_SMI_EN;
|
||||
SmiEnAndMask = MAX_UINT32;
|
||||
Status = S3SaveState->Write (
|
||||
S3SaveState,
|
||||
EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE,
|
||||
EfiBootScriptWidthUint32,
|
||||
(UINT64)mSmiEnable,
|
||||
&SmiEnOrMask,
|
||||
&SmiEnAndMask
|
||||
);
|
||||
Status = S3SaveState->Write (
|
||||
S3SaveState,
|
||||
EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE,
|
||||
EfiBootScriptWidthUint32,
|
||||
(UINT64)mSmiEnable,
|
||||
&SmiEnOrMask,
|
||||
&SmiEnAndMask
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
DEBUG ((DEBUG_ERROR, "%a: EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE: %r\n",
|
||||
__FUNCTION__, Status));
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
"%a: EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE: %r\n",
|
||||
__FUNCTION__,
|
||||
Status
|
||||
));
|
||||
ASSERT (FALSE);
|
||||
CpuDeadLoop ();
|
||||
}
|
||||
|
||||
GenPmCon1Address = POWER_MGMT_REGISTER_Q35_EFI_PCI_ADDRESS (
|
||||
ICH9_GEN_PMCON_1);
|
||||
ICH9_GEN_PMCON_1
|
||||
);
|
||||
GenPmCon1OrMask = ICH9_GEN_PMCON_1_SMI_LOCK;
|
||||
GenPmCon1AndMask = MAX_UINT16;
|
||||
Status = S3SaveState->Write (
|
||||
S3SaveState,
|
||||
EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE,
|
||||
EfiBootScriptWidthUint16,
|
||||
GenPmCon1Address,
|
||||
&GenPmCon1OrMask,
|
||||
&GenPmCon1AndMask
|
||||
);
|
||||
Status = S3SaveState->Write (
|
||||
S3SaveState,
|
||||
EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE,
|
||||
EfiBootScriptWidthUint16,
|
||||
GenPmCon1Address,
|
||||
&GenPmCon1OrMask,
|
||||
&GenPmCon1AndMask
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
DEBUG ((DEBUG_ERROR,
|
||||
"%a: EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE: %r\n", __FUNCTION__,
|
||||
Status));
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
"%a: EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE: %r\n",
|
||||
__FUNCTION__,
|
||||
Status
|
||||
));
|
||||
ASSERT (FALSE);
|
||||
CpuDeadLoop ();
|
||||
}
|
||||
|
Reference in New Issue
Block a user