This is for conformance with the TCG "Platform Reset Attack Mitigation Specification". Because clearing the CPU caches at boot doesn't impact performance significantly, do it unconditionally, for simplicity's sake. Flush the cache on all logical processors, thanks to EFI_PEI_MP_SERVICES_PPI and CacheMaintenanceLib. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Anthony Perard <anthony.perard@citrix.com> Cc: Julien Grall <julien.grall@linaro.org> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Tested-by: Anthony PERARD <anthony.perard@citrix.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Regression-tested-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com> [lersek@redhat.com: remove bogus Message-Id line from commit msg]
124 lines
2.1 KiB
C
124 lines
2.1 KiB
C
/** @file
|
|
Platform PEI module include file.
|
|
|
|
Copyright (c) 2006 - 2016, 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.
|
|
|
|
**/
|
|
|
|
#ifndef _PLATFORM_PEI_H_INCLUDED_
|
|
#define _PLATFORM_PEI_H_INCLUDED_
|
|
|
|
#include <IndustryStandard/E820.h>
|
|
|
|
VOID
|
|
AddIoMemoryBaseSizeHob (
|
|
EFI_PHYSICAL_ADDRESS MemoryBase,
|
|
UINT64 MemorySize
|
|
);
|
|
|
|
VOID
|
|
AddIoMemoryRangeHob (
|
|
EFI_PHYSICAL_ADDRESS MemoryBase,
|
|
EFI_PHYSICAL_ADDRESS MemoryLimit
|
|
);
|
|
|
|
VOID
|
|
AddMemoryBaseSizeHob (
|
|
EFI_PHYSICAL_ADDRESS MemoryBase,
|
|
UINT64 MemorySize
|
|
);
|
|
|
|
VOID
|
|
AddMemoryRangeHob (
|
|
EFI_PHYSICAL_ADDRESS MemoryBase,
|
|
EFI_PHYSICAL_ADDRESS MemoryLimit
|
|
);
|
|
|
|
VOID
|
|
AddReservedMemoryBaseSizeHob (
|
|
EFI_PHYSICAL_ADDRESS MemoryBase,
|
|
UINT64 MemorySize,
|
|
BOOLEAN Cacheable
|
|
);
|
|
|
|
VOID
|
|
AddressWidthInitialization (
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
Q35TsegMbytesInitialization (
|
|
VOID
|
|
);
|
|
|
|
EFI_STATUS
|
|
PublishPeiMemory (
|
|
VOID
|
|
);
|
|
|
|
UINT32
|
|
GetSystemMemorySizeBelow4gb (
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
InitializeRamRegions (
|
|
VOID
|
|
);
|
|
|
|
EFI_STATUS
|
|
PeiFvInitialization (
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
InstallFeatureControlCallback (
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
InstallClearCacheCallback (
|
|
VOID
|
|
);
|
|
|
|
EFI_STATUS
|
|
InitializeXen (
|
|
VOID
|
|
);
|
|
|
|
BOOLEAN
|
|
XenDetect (
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
AmdSevInitialize (
|
|
VOID
|
|
);
|
|
|
|
extern BOOLEAN mXen;
|
|
|
|
VOID
|
|
XenPublishRamRegions (
|
|
VOID
|
|
);
|
|
|
|
extern EFI_BOOT_MODE mBootMode;
|
|
|
|
extern BOOLEAN mS3Supported;
|
|
|
|
extern UINT8 mPhysMemAddressWidth;
|
|
|
|
extern UINT32 mMaxCpuCount;
|
|
|
|
extern UINT16 mHostBridgeDevId;
|
|
|
|
#endif // _PLATFORM_PEI_H_INCLUDED_
|