+++ /dev/null
-\r
- /*++\r
-\r
-Copyright (c) 2004 - 2007, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name:\r
-\r
- PlatformMemtest.h\r
-\r
-Abstract:\r
- This files defines the protocol produced by platform memory test driver.\r
- \r
---*/\r
-\r
-#ifndef __PLATFORM_MEMTEST_H__\r
-#define __PLATFORM_MEMTEST_H__\r
-\r
-#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)\r
-#include EFI_PROTOCOL_CONSUMER (HiiDatabase)\r
-#else\r
-#include EFI_PROTOCOL_CONSUMER (Hii)\r
-#endif\r
-#include EFI_PROTOCOL_CONSUMER (GenericMemoryTest)\r
-\r
-\r
-#define EFI_PLATFORM_MEMTEST_PROTOCOL_GUID \\r
- { 0x859ba18, 0x7dd7, 0x4ed7, {0xa8, 0x8e, 0x10, 0x9c, 0x63, 0x91, 0x7b, 0xdd} }\r
-\r
-//\r
-// Forward reference for pure ANSI compatability\r
-//\r
-EFI_FORWARD_DECLARATION (EFI_PLATFORM_MEMTEST_PROTOCOL);\r
-\r
-\r
-// \r
-// Basic type definitions\r
-//\r
-typedef UINT16 EFI_DIMM_ID; \r
-#define EFI_INVALID_DIMM_ID 0xFFFF\r
-\r
-//\r
-// This describes the capabilities\r
-//\r
-typedef struct {\r
- UINT32 HwCap;\r
- EFI_PHYSICAL_ADDRESS InitBlockSize;\r
- EFI_PHYSICAL_ADDRESS TestBlockSize; \r
-} EFI_PLATFORM_MEMTEST_CAPABILITIES;\r
-\r
-//\r
-// This defines the platform driver phases to use in notify phase \r
-//\r
-typedef enum {\r
- EfiMemtestPhaseBegin,\r
- EfiMemtestPhaseEnd,\r
- EfiMemtestPhaseMaximum \r
-} EFI_MEMTEST_PHASE ;\r
-\r
-\r
-//\r
-// Definitions of Capability bits\r
-//\r
-#define EFI_MEMTEST_CAP_NONE 0X00000000 \r
-#define EFI_MEMTEST_CAP_ECC 0X00000001 \r
-#define EFI_MEMTEST_CAP_HW_TEST 0X00000002 \r
-#define EFI_MEMTEST_CAP_HW_INIT 0X00000004 \r
-\r
-//\r
-// This describes the pattern for testing all memory cells\r
-//\r
-typedef struct {\r
- UINT32 Count; // Number of patterns\r
- UINT32 Width; // Width of patterns\r
- VOID *Pattern; // Array of patterns\r
-}EFI_MEMTEST_DATA_PATTERN;\r
-\r
-//\r
-// This describes the data and address line patterns\r
-//\r
-typedef struct {\r
- UINT32 Count; // Number of patterns\r
- EFI_PHYSICAL_ADDRESS *Address; // Array of addresses\r
- EFI_PHYSICAL_ADDRESS *Pattern; // Array of patterns\r
-} EFI_MEMTEST_ADDRESS_PATTERN;\r
-\r
-\r
-#define EFI_INVALID_DIMM_ID 0xFFFF\r
-\r
-//\r
-// DIMM information exported by the platform driver\r
-//\r
-\r
-typedef struct { \r
- EFI_DIMM_ID DimmId; \r
- STRING_REF DimmReference;\r
-} EFI_MEMTEST_DIMM_INFO;\r
-\r
-\r
-//\r
-// Various types of errors\r
-//\r
-typedef enum {\r
- EfiMemtestCorrectableError = 1,\r
- EfiMemtestUncorrectableError,\r
- EfiMemtestErrorMaximum\r
-} EFI_DIMM_ERROR;\r
-\r
-//\r
-// Actions to be taken. \r
-//\r
-typedef enum {\r
- EfiMemtestActionReport = 1,\r
- EfiMemtestActionDisableMem,\r
- EfiMemtestActionMaximum\r
-} EFI_MEMTEST_ERROR_ACTION;\r
-\r
-\r
-//\r
-// Structure indicating a policy entry.\r
-//\r
-\r
-typedef struct {\r
- EFI_DIMM_ERROR ErrorType;\r
- UINT32 Threshold;\r
- EFI_MEMTEST_ERROR_ACTION Action;\r
-} EFI_MEMTEST_POLICY_ENTRY;\r
-\r
-\r
-\r
-//\r
-// Error Information.\r
-//\r
-typedef struct {\r
- EFI_DIMM_ERROR Error;\r
- EFI_DIMM_ID DimmId;\r
-} EFI_PLATFORM_MEMTEST_ERROR;\r
-\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PLATFORM_MEMTEST_NOTIFY_PHASE) (\r
- IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,\r
- IN EFI_MEMTEST_PHASE Phase\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PLATFORM_MEMTEST_GET_PLATFORM_INFO) (\r
- IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,\r
- OUT EFI_PLATFORM_MEMTEST_CAPABILITIES *Capabilities,\r
- OUT EFI_MEMTEST_ADDRESS_PATTERN *AddressPattern,\r
- OUT EFI_MEMTEST_DATA_PATTERN *DataPattern,\r
- OUT EFI_MEMTEST_DATA_PATTERN *MemoryPattern,\r
- OUT UINT32 *EntryCount,\r
- OUT EFI_MEMTEST_POLICY_ENTRY **PolicyGrid\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI * EFI_PLATFORM_MEMTEST_GET_NEXT_DIMM_INFO) (\r
- IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,\r
- IN OUT EFI_MEMTEST_DIMM_INFO *DimmInfo\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PLATFORM_MEMTEST_INITIALIZE_MEMORY) (\r
- IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,\r
- IN EFI_PHYSICAL_ADDRESS Start,\r
- IN EFI_PHYSICAL_ADDRESS Size\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI * EFI_PLATFORM_MEMTEST_HW_MEMORY_TEST) (\r
- IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,\r
- IN EXTENDMEM_COVERAGE_LEVEL Level,\r
- IN EFI_PHYSICAL_ADDRESS Start,\r
- IN EFI_PHYSICAL_ADDRESS Size,\r
- OUT UINTN *ErrorCount,\r
- OUT EFI_PLATFORM_MEMTEST_ERROR **ErrorInfo\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI * EFI_PLATFORM_MEMTEST_FLUSH_BUFFER) (\r
- IN EFI_PLATFORM_MEMTEST_PROTOCOL *This\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI * EFI_PLATFORM_MEMTEST_CHECK_FOR_ERROR) (\r
- IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,\r
- OUT UINT32 *ErrorCount,\r
- OUT EFI_PLATFORM_MEMTEST_ERROR **ErrorInfo\r
-\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI * EFI_PLATFORM_MEMTEST_LOCATE_BAD_DIMM) (\r
- IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,\r
- IN EFI_PHYSICAL_ADDRESS FailingAddress,\r
- IN UINT8 Expected,\r
- IN UINT8 Found,\r
- OUT UINT32 *ErrorInfoCount,\r
- OUT EFI_PLATFORM_MEMTEST_ERROR **ErrorInfoBuffer\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI * EFI_PLATFORM_MEMTEST_CLEAR_ERROR) (\r
- IN EFI_PLATFORM_MEMTEST_PROTOCOL *This\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI * EFI_PLATFORM_MEMTEST_DISABLE_DIMM) (\r
- IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,\r
- IN UINT16 *DimmCount,\r
- IN EFI_DIMM_ID *DimmIds,\r
- IN BOOLEAN RebootRequired\r
-\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI * EFI_PLATFORM_MEMTEST_OVERLAP) (\r
- IN EFI_PLATFORM_MEMTEST_PROTOCOL *This,\r
- IN EFI_DIMM_ID DimmId, \r
- IN EFI_PHYSICAL_ADDRESS start,\r
- IN EFI_PHYSICAL_ADDRESS Size,\r
- OUT BOOLEAN *Overlap\r
- );\r
-\r
-struct _EFI_PLATFORM_MEMTEST_PROTOCOL {\r
- EFI_PLATFORM_MEMTEST_NOTIFY_PHASE NotifyPhase;\r
- EFI_PLATFORM_MEMTEST_GET_PLATFORM_INFO GetPlatformInfo;\r
- EFI_PLATFORM_MEMTEST_GET_NEXT_DIMM_INFO GetNextDimmInfo;\r
- EFI_PLATFORM_MEMTEST_INITIALIZE_MEMORY InitializeMem;\r
- EFI_PLATFORM_MEMTEST_HW_MEMORY_TEST HwTest;\r
- EFI_PLATFORM_MEMTEST_FLUSH_BUFFER FlushBuffer;\r
- EFI_PLATFORM_MEMTEST_CHECK_FOR_ERROR CheckError;\r
- EFI_PLATFORM_MEMTEST_LOCATE_BAD_DIMM LocateBadDimm;\r
- EFI_PLATFORM_MEMTEST_CLEAR_ERROR ClearError;\r
- EFI_PLATFORM_MEMTEST_DISABLE_DIMM DisableDimm;\r
- EFI_PLATFORM_MEMTEST_OVERLAP Overlap;\r
-};\r
-\r
-\r
-\r
-extern EFI_GUID gEfiPlatformMemTestGuid;\r
-\r
-#endif\r