X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=OvmfPkg%2FQemuFlashFvbServicesRuntimeDxe%2FQemuFlash.c;h=c81c58972bf22b9aa6192b47d7fa4ebe33c147da;hb=49fb605709796488589c6f282522283911a575f6;hp=a96e0e5275a23fbaa6ae795e82e1997316e70c50;hpb=f7e899c7c74e5983e40e32257b33918ea6f466f0;p=mirror_edk2.git diff --git a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c index a96e0e5275..c81c58972b 100644 --- a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c +++ b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c @@ -2,23 +2,14 @@ OVMF support for QEMU system firmware flash device Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.
- 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. + SPDX-License-Identifier: BSD-2-Clause-Patent **/ -#include "PiDxe.h" -#include #include +#include #include -#include -#include -#include #include "QemuFlash.h" @@ -33,20 +24,11 @@ #define CLEARED_ARRAY_STATUS 0x00 -STATIC UINT8 *mFlashBase = NULL; +UINT8 *mFlashBase; + STATIC UINTN mFdBlockSize = 0; STATIC UINTN mFdBlockCount = 0; - -VOID -QemuFlashConvertPointers ( - VOID - ) -{ - EfiConvertPointer (0x0, (VOID **) &mFlashBase); -} - - STATIC volatile UINT8* QemuFlashPtr ( @@ -256,7 +238,17 @@ QemuFlashInitialize ( ASSERT(PcdGet32 (PcdOvmfFirmwareFdSize) % mFdBlockSize == 0); mFdBlockCount = PcdGet32 (PcdOvmfFirmwareFdSize) / mFdBlockSize; + // + // execute module specific hooks before probing the flash + // + QemuFlashBeforeProbe ( + (EFI_PHYSICAL_ADDRESS)(UINTN) mFlashBase, + mFdBlockSize, + mFdBlockCount + ); + if (!QemuFlashDetected ()) { + ASSERT (!FeaturePcdGet (PcdSmmSmramRequire)); return EFI_WRITE_PROTECTED; }