Home | History | Annotate | Download | only in SecPlatformInformation
      1 /*++
      2 
      3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
      4 This program and the accompanying materials
      5 are licensed and made available under the terms and conditions of the BSD License
      6 which accompanies this distribution.  The full text of the license may be found at
      7 http://opensource.org/licenses/bsd-license.php
      8 
      9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     11 
     12 Module Name:
     13 
     14   SecPlatformInformation.h
     15 
     16 Abstract:
     17 
     18   Sec Platform Information PPI as defined in Tiano
     19 
     20 --*/
     21 
     22 #ifndef _PEI_SEC_PLATFORM_INFORMATION_PPI_H
     23 #define _PEI_SEC_PLATFORM_INFORMATION_PPI_H
     24 
     25 #define EFI_SEC_PLATFORM_INFORMATION_GUID \
     26   { \
     27     0x6f8c2b35, 0xfef4, 0x448d, {0x82, 0x56, 0xe1, 0x1b, 0x19, 0xd6, 0x10, 0x77} \
     28   }
     29 
     30 EFI_FORWARD_DECLARATION (EFI_SEC_PLATFORM_INFORMATION_PPI);
     31 
     32 extern EFI_GUID gEfiSecPlatformInformationPpiGuid;
     33 
     34 typedef union {
     35   struct {
     36   UINT32 Status : 2;
     37   UINT32 Tested : 1;
     38   UINT32 Reserved1 :13;
     39   UINT32 VirtualMemoryUnavailable : 1;
     40   UINT32 Ia32ExecutionUnavailable : 1;
     41   UINT32 FloatingPointUnavailable : 1;
     42   UINT32 MiscFeaturesUnavailable : 1;
     43   UINT32 Reserved2 :12;
     44   } Bits;
     45   UINT32 Uint32;
     46 } EFI_HEALTH_FLAGS;
     47 
     48 typedef struct {
     49   EFI_HEALTH_FLAGS HealthFlags;
     50 } SEC_PLATFORM_INFORMATION_RECORD;
     51 
     52 typedef struct {
     53   UINTN BootPhase;      // entry r20 value
     54   UINTN UniqueId;       // PAL arbitration ID
     55   UINTN HealthStat;     // Health Status
     56   UINTN PALRetAddress;  // return address to PAL
     57 } IPF_HANDOFF_STATUS;
     58 
     59 typedef
     60 EFI_STATUS
     61 (EFIAPI *SEC_PLATFORM_INFORMATION) (
     62   IN EFI_PEI_SERVICES                    **PeiServices,
     63   IN OUT UINT64                          *StructureSize,
     64   IN OUT SEC_PLATFORM_INFORMATION_RECORD *PlatformInformationRecord
     65   );
     66 
     67 struct _EFI_SEC_PLATFORM_INFORMATION_PPI {
     68   SEC_PLATFORM_INFORMATION  PlatformInformation;
     69 };
     70 
     71 #endif
     72