summaryrefslogtreecommitdiff
path: root/TexasInstrumentsPkg/BeagleBoneBlackPkg/Library/Am335xLib/Am335xHelper.S
diff options
context:
space:
mode:
Diffstat (limited to 'TexasInstrumentsPkg/BeagleBoneBlackPkg/Library/Am335xLib/Am335xHelper.S')
-rw-r--r--TexasInstrumentsPkg/BeagleBoneBlackPkg/Library/Am335xLib/Am335xHelper.S51
1 files changed, 51 insertions, 0 deletions
diff --git a/TexasInstrumentsPkg/BeagleBoneBlackPkg/Library/Am335xLib/Am335xHelper.S b/TexasInstrumentsPkg/BeagleBoneBlackPkg/Library/Am335xLib/Am335xHelper.S
new file mode 100644
index 000000000..c32ea77f2
--- /dev/null
+++ b/TexasInstrumentsPkg/BeagleBoneBlackPkg/Library/Am335xLib/Am335xHelper.S
@@ -0,0 +1,51 @@
+//
+// Copyright (c) 2012-2013, ARM Limited. All rights reserved.
+//
+// This program and the accompanying materials
+// are licensed and made available under the terms and conditions of the BSD License
+// which accompanies this distribution. The full text of the license may be found at
+// http://opensource.org/licenses/bsd-license.php
+//
+// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+//
+//
+
+#include <AsmMacroIoLib.h>
+#include <Library/ArmLib.h>
+
+.text
+.align 2
+
+GCC_ASM_EXPORT(ArmPlatformPeiBootAction)
+GCC_ASM_EXPORT(ArmPlatformGetCorePosition)
+GCC_ASM_EXPORT(ArmPlatformGetPrimaryCoreMpId)
+GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)
+
+ASM_PFX(ArmPlatformPeiBootAction):
+ bx lr
+
+//UINTN
+//ArmPlatformGetCorePosition (
+// IN UINTN MpId
+// );
+ASM_PFX(ArmPlatformGetCorePosition):
+ // single core, return 1
+ mov r0, #1
+ bx lr
+
+//UINTN
+//ArmPlatformGetPrimaryCoreMpId (
+// VOID
+// );
+ASM_PFX(ArmPlatformGetPrimaryCoreMpId):
+ // return MPIDR of calling CPU
+ b ArmReadMpidr
+
+//UINTN
+//ArmPlatformIsPrimaryCore (
+// IN UINTN MpId
+// );
+ASM_PFX(ArmPlatformIsPrimaryCore):
+ mov r0, #1
+ bx lr