From 097aeeb119538a60f68355f1c3ac47df1834c90a Mon Sep 17 00:00:00 2001 From: Abner Chang Date: Wed, 21 Jul 2021 18:55:13 +0800 Subject: MdePkg/BaseLib: Add MemoryFence implementation for RiscV64 Cc: Abner Chang Cc: Michael D Kinney Cc: Liming Gao Cc: Zhiguang Liu Cc: Leif Lindholm Signed-off-by: Daniel Schaefer Reviewed-by: Abner Chang Acked-by: Liming Gao --- MdePkg/Library/BaseLib/BaseLib.inf | 3 ++- MdePkg/Library/BaseLib/RiscV64/MemoryFence.S | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 MdePkg/Library/BaseLib/RiscV64/MemoryFence.S diff --git a/MdePkg/Library/BaseLib/BaseLib.inf b/MdePkg/Library/BaseLib/BaseLib.inf index 6ccb8997b7..6efa5315b6 100644 --- a/MdePkg/Library/BaseLib/BaseLib.inf +++ b/MdePkg/Library/BaseLib/BaseLib.inf @@ -4,7 +4,7 @@ # Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.
# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
# Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.
-# Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.
+# Copyright (c) 2020 - 2021, Hewlett Packard Enterprise Development LP. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -401,6 +401,7 @@ RiscV64/DisableInterrupts.c RiscV64/EnableInterrupts.c RiscV64/CpuPause.c + RiscV64/MemoryFence.S | GCC RiscV64/RiscVSetJumpLongJump.S | GCC RiscV64/RiscVCpuBreakpoint.S | GCC RiscV64/RiscVCpuPause.S | GCC diff --git a/MdePkg/Library/BaseLib/RiscV64/MemoryFence.S b/MdePkg/Library/BaseLib/RiscV64/MemoryFence.S new file mode 100644 index 0000000000..cc81683692 --- /dev/null +++ b/MdePkg/Library/BaseLib/RiscV64/MemoryFence.S @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// MemoryFence() for RiscV64 +// +// Copyright (c) 2021, Hewlett Packard Enterprise Development. All rights reserved. +// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +//------------------------------------------------------------------------------ + +.text +.p2align 2 + +ASM_GLOBAL ASM_PFX(MemoryFence) + +// +// Memory fence for RiscV64 +// +// +ASM_PFX(MemoryFence): + fence // Fence on all memory and I/O + ret -- cgit v1.2.3