]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbHelper.S
ARM Packages: Replace tabs by spaces for indentation
[mirror_edk2.git] / ArmPlatformPkg / ArmRealViewEbPkg / Library / ArmRealViewEbLibRTSM / ArmRealViewEbHelper.S
index ca18aa88ddb9706db1ca8a6fd2afd340de41d752..2978753c357c56cee05bfa0a05e7ad879ef76af3 100644 (file)
@@ -1,62 +1,53 @@
 //\r
-//  Copyright (c) 2011, 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) 2012-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
 #include <AsmMacroIoLib.h>\r
-#include <Base.h>\r
-#include <Library/PcdLib.h>\r
-#include <ArmPlatform.h>\r
-#include <AutoGen.h>\r
+#include <Library/ArmLib.h>\r
 \r
-#Start of Code section\r
 .text\r
-.align 3\r
-\r
-GCC_ASM_EXPORT(ArmPlatformIsMemoryInitialized)\r
-GCC_ASM_EXPORT(ArmPlatformInitializeBootMemory)\r
-\r
-/**\r
-  Called at the early stage of the Boot phase to know if the memory has already been initialized\r
-\r
-  Running the code from the reset vector does not mean we start from cold boot. In some case, we\r
-  can go through this code with the memory already initialized.\r
-  Because this function is called at the early stage, the implementation must not use the stack.\r
-  Its implementation must probably done in assembly to ensure this requirement.\r
-\r
-  @return   Return the condition value into the 'Z' flag\r
-\r
-**/\r
-ASM_PFX(ArmPlatformIsMemoryInitialized):\r
-  // Check if the memory has been already mapped, if so skipped the memory initialization\r
-  LoadConstantToReg (ARM_EB_SYSCTRL, r0)\r
-  ldr   r0, [r0, #0]\r
-  \r
-  // 0x200 (BIT9): This read-only bit returns the remap status.\r
-  and   r0, r0, #0x200\r
-  tst   r0, #0x200\r
-  bx   lr\r
-    \r
-/**\r
-  Initialize the memory where the initial stacks will reside\r
-\r
-  This memory can contain the initial stacks (Secure and Secure Monitor stacks).\r
-  In some platform, this region is already initialized and the implementation of this function can\r
-  do nothing. This memory can also represent the Secure RAM.\r
-  This function is called before the satck has been set up. Its implementation must ensure the stack\r
-  pointer is not used (probably required to use assembly language)\r
+.align 2\r
+\r
+GCC_ASM_EXPORT(ArmPlatformPeiBootAction)\r
+GCC_ASM_EXPORT(ArmPlatformGetCorePosition)\r
+GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)\r
+\r
+GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCore)\r
+GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask)\r
+\r
+//UINTN\r
+//ArmPlatformGetCorePosition (\r
+//  IN UINTN MpId\r
+//  );\r
+ASM_PFX(ArmPlatformGetCorePosition):\r
+  and   r1, r0, #ARM_CORE_MASK\r
+  and   r0, r0, #ARM_CLUSTER_MASK\r
+  add   r0, r1, r0, LSR #7\r
+  bx    lr\r
 \r
-**/\r
-ASM_PFX(ArmPlatformInitializeBootMemory):\r
-  // The SMC does not need to be initialized for RTSM\r
+//UINTN\r
+//ArmPlatformIsPrimaryCore (\r
+//  IN UINTN MpId\r
+//  );\r
+ASM_PFX(ArmPlatformIsPrimaryCore):\r
+  LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r1)\r
+  ldr   r1, [r1]\r
+  and   r0, r0, r1\r
+  LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r1)\r
+  ldr   r1, [r1]\r
+  cmp   r0, r1\r
+  moveq r0, #1\r
+  movne r0, #0\r
   bx    lr\r
 \r
-ASM_FUNCTION_REMOVE_IF_UNREFERENCED
\ No newline at end of file
+ASM_PFX(ArmPlatformPeiBootAction):\r
+  bx    lr\r