]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/Include/Library/ArmPlatformLib.h
ArmPlatformPkg/ArmPlatformLib: remove ARM_SYSTEM_MEMORY_REGION_DESCRIPTOR
[mirror_edk2.git] / ArmPlatformPkg / Include / Library / ArmPlatformLib.h
index 3f6c1517b0f836c15f3513734a1a0e2be55ead08..c74d53506feeba06f4a176c126c8e3a8525f23ac 100644 (file)
@@ -1,14 +1,14 @@
 /** @file\r
 *\r
-*  Copyright (c) 2011-2012, ARM Limited. All rights reserved.\r
-*  \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
+*  Copyright (c) 2011-2013, ARM Limited. All rights reserved.\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
+*  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
 **/\r
 \r
 //\r
 #include <Ppi/MasterBootMode.h>\r
 #include <Ppi/BootInRecoveryMode.h>\r
-#include <Guid/MemoryTypeInformation.h>\r
 \r
 #include <Library/ArmLib.h>\r
 \r
 /**\r
-  This structure is used to describe a region of the EFI memory map\r
+  Return the core position from the value of its MpId register\r
 \r
-  Every EFI regions of the system memory described by their physical start address and their size\r
-  can have different attributes. Some regions can be tested and other untested.\r
+  This function returns the core position from the position 0 in the processor.\r
+  This function might be called from assembler before any stack is set.\r
 \r
-**/\r
-typedef struct {\r
-  EFI_RESOURCE_ATTRIBUTE_TYPE  ResourceAttribute;\r
-  EFI_PHYSICAL_ADDRESS         PhysicalStart;\r
-  UINT64                       NumberOfBytes;\r
-} ARM_SYSTEM_MEMORY_REGION_DESCRIPTOR;\r
+  @return   Return the core position\r
 \r
+**/\r
 UINTN\r
 ArmPlatformGetCorePosition (\r
   IN UINTN MpId\r
   );\r
 \r
+/**\r
+  Return a non-zero value if the callee is the primary core\r
+\r
+  This function returns a non-zero value if the callee is the primary core.\r
+  The primary core is the core responsible to initialize the hardware and run UEFI.\r
+  This function might be called from assembler before any stack is set.\r
+\r
+  @return   Return a non-zero value if the callee is the primary core.\r
+\r
+**/\r
+UINTN\r
+ArmPlatformIsPrimaryCore (\r
+  IN UINTN MpId\r
+  );\r
+\r
+/**\r
+  Return the MpId of the primary core\r
+\r
+  This function returns the MpId of the primary core.\r
+  This function might be called from assembler before any stack is set.\r
+\r
+  @return   Return the MpId of the primary core\r
+\r
+**/\r
+UINTN\r
+ArmPlatformGetPrimaryCoreMpId (\r
+  VOID\r
+  );\r
+\r
 /**\r
   Return the current Boot Mode\r
 \r
@@ -59,6 +83,22 @@ ArmPlatformGetBootMode (
   VOID\r
   );\r
 \r
+/**\r
+  First platform specific function to be called in the PEI phase\r
+\r
+  This function is actually the first function called by the PrePi\r
+  or PrePeiCore modules. It allows to retrieve arguments passed to\r
+  the UEFI firmware through the CPU registers.\r
+\r
+  This function might be written into assembler as no stack are set\r
+  when the function is invoked.\r
+\r
+**/\r
+VOID\r
+ArmPlatformPeiBootAction (\r
+  VOID\r
+  );\r
+\r
 /**\r
   Initialize controllers that must setup in the normal world\r
 \r