MdePkg: Add LoongArch64 local interrupt function set into BaseLib
Adding LoongArch local interrupt function set, which is used to control the opening or closing of the local interrupt when the global interrupt is enabled. BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4584 Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Zhiguang Liu <zhiguang.liu@intel.com> Signed-off-by: Chao Li <lichao@loongson.cn> Acked-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
@@ -1,21 +1,33 @@
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# LoongArch interrupt enable
|
||||
# LoongArch interrupt enable operations
|
||||
#
|
||||
# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.<BR>
|
||||
# Copyright (c) 2024, Loongson Technology Corporation Limited. All rights reserved.<BR>
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#include <Base.h>
|
||||
#include <Register/LoongArch64/Csr.h>
|
||||
|
||||
ASM_GLOBAL ASM_PFX(EnableLocalInterrupts)
|
||||
ASM_GLOBAL ASM_PFX(EnableInterrupts)
|
||||
|
||||
#/**
|
||||
# Enables CPU interrupts.
|
||||
# Enables local CPU interrupts.
|
||||
#
|
||||
# @param Needs to enable local interrupt bit.
|
||||
#**/
|
||||
ASM_PFX(EnableLocalInterrupts):
|
||||
csrxchg $a0, $a0, LOONGARCH_CSR_ECFG
|
||||
jirl $zero, $ra, 0
|
||||
|
||||
#/**
|
||||
# Enables global CPU interrupts.
|
||||
#**/
|
||||
ASM_PFX(EnableInterrupts):
|
||||
li.w $t0, 0x4
|
||||
csrxchg $t0, $t0, 0x0
|
||||
li.w $t0, BIT2
|
||||
csrxchg $t0, $t0, LOONGARCH_CSR_CRMD
|
||||
jirl $zero, $ra, 0
|
||||
.end
|
||||
|
Reference in New Issue
Block a user