MdePkg/Library/BaseCpuLib: Enable VS2017/ARM64 builds

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Pete Batard <pete@akeo.ie>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Pete Batard 2018-03-28 23:55:21 +08:00 committed by Liming Gao
parent 37db86ae23
commit 55f67014d7
3 changed files with 84 additions and 3 deletions

View File

@ -0,0 +1,39 @@
;------------------------------------------------------------------------------
;
; CpuFlushTlb() for ARM
;
; Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
; Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
; Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
; 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.
;
;------------------------------------------------------------------------------
EXPORT CpuFlushTlb
AREA BaseCpuLib_LowLevel, CODE, READONLY
;/**
; Flushes all the Translation Lookaside Buffers(TLB) entries in a CPU.
;
; Flushes all the Translation Lookaside Buffers(TLB) entries in a CPU.
;
;**/
;VOID
;EFIAPI
;CpuFlushTlb (
; VOID
; );
;
CpuFlushTlb
tlbi vmalle1 // Invalidate Inst TLB and Data TLB
dsb sy
isb
ret
END

View File

@ -0,0 +1,40 @@
;------------------------------------------------------------------------------
;
; CpuSleep() for AArch64
;
; Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
; Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
; Portions copyright (c) 2011 - 2013, ARM LTD. All rights reserved.<BR>
; 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.
;
;------------------------------------------------------------------------------
EXPORT CpuSleep
AREA BaseCpuLib_LowLevel, CODE, READONLY
;/**
; Places the CPU in a sleep state until an interrupt is received.
;
; Places the CPU in a sleep state until an interrupt is received. If interrupts
; are disabled prior to calling this function, then the CPU will be placed in a
; sleep state indefinitely.
;
;**/
;VOID
;EFIAPI
;CpuSleep (
; VOID
; );
;
CpuSleep
wfi
ret
END

View File

@ -1,7 +1,7 @@
## @file
# Instance of CPU Library for various architecture.
#
# CPU Library implemented using ASM functions for IA-32 and X64,
# CPU Library implemented using ASM functions for IA32, X64, ARM, AARCH64,
# PAL CALLs for IPF, and empty functions for EBC.
#
# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
@ -71,8 +71,10 @@
Arm/CpuSleep.S | GCC
[Sources.AARCH64]
AArch64/CpuFlushTlb.S | GCC
AArch64/CpuSleep.S | GCC
AArch64/CpuFlushTlb.S | GCC
AArch64/CpuSleep.S | GCC
AArch64/CpuFlushTlb.asm | MSFT
AArch64/CpuSleep.asm | MSFT
[Packages]
MdePkg/MdePkg.dec