Home | History | Annotate | Download | only in Ppi
      1 /** @file
      2 *
      3 *  Copyright (c) 2011, ARM Limited. All rights reserved.
      4 *
      5 *  This program and the accompanying materials
      6 *  are licensed and made available under the terms and conditions of the BSD License
      7 *  which accompanies this distribution.  The full text of the license may be found at
      8 *  http://opensource.org/licenses/bsd-license.php
      9 *
     10 *  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11 *  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 *
     13 **/
     14 
     15 #ifndef __ARM_MP_CORE_INFO_PPI_H__
     16 #define __ARM_MP_CORE_INFO_PPI_H__
     17 
     18 #include <Guid/ArmMpCoreInfo.h>
     19 
     20 #define ARM_MP_CORE_INFO_PPI_GUID  \
     21   { 0x6847cc74, 0xe9ec, 0x4f8f, {0xa2, 0x9d, 0xab, 0x44, 0xe7, 0x54, 0xa8, 0xfc} }
     22 
     23 /**
     24   This service of the EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI that migrates temporary RAM into
     25   permanent memory.
     26 
     27   @param PeiServices            Pointer to the PEI Services Table.
     28   @param TemporaryMemoryBase    Source Address in temporary memory from which the SEC or PEIM will copy the
     29                                 Temporary RAM contents.
     30   @param PermanentMemoryBase    Destination Address in permanent memory into which the SEC or PEIM will copy the
     31                                 Temporary RAM contents.
     32   @param CopySize               Amount of memory to migrate from temporary to permanent memory.
     33 
     34   @retval EFI_SUCCESS           The data was successfully returned.
     35   @retval EFI_INVALID_PARAMETER PermanentMemoryBase + CopySize > TemporaryMemoryBase when
     36                                 TemporaryMemoryBase > PermanentMemoryBase.
     37 
     38 **/
     39 typedef
     40 EFI_STATUS
     41 (EFIAPI * ARM_MP_CORE_INFO_GET) (
     42   OUT UINTN                   *ArmCoreCount,
     43   OUT ARM_CORE_INFO           **ArmCoreTable
     44 );
     45 
     46 ///
     47 /// This service abstracts the ability to migrate contents of the platform early memory store.
     48 /// Note: The name EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI is different from the current PI 1.2 spec.
     49 ///       This PPI was optional.
     50 ///
     51 typedef struct {
     52   ARM_MP_CORE_INFO_GET   GetMpCoreInfo;
     53 } ARM_MP_CORE_INFO_PPI;
     54 
     55 extern EFI_GUID gArmMpCoreInfoPpiGuid;
     56 extern EFI_GUID gArmMpCoreInfoGuid;
     57 
     58 #endif
     59