MdePkg: Add IOCSR operation for LoongArch
Add IoCsrRead8, IoCsrRead16, IoCsrRead32, IoCsrRead64, IoCsrWrite8, IoCsrWrite16, IoCsrWrite32, IoCsrWrite64 to operate the IOCSR registers of LoongArch architecture. 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:
@@ -396,6 +396,118 @@ CsrXChg (
|
||||
IN UINTN Mask
|
||||
);
|
||||
|
||||
/**
|
||||
IO CSR read byte operation.
|
||||
|
||||
@param[in] Select IO CSR read instruction select values.
|
||||
|
||||
@return The return value of iocsrrd.b instruction.
|
||||
|
||||
**/
|
||||
UINT8
|
||||
IoCsrRead8 (
|
||||
IN UINTN Select
|
||||
);
|
||||
|
||||
/**
|
||||
IO CSR read half word operation.
|
||||
|
||||
@param[in] Select IO CSR read instruction select values.
|
||||
|
||||
@return The return value of iocsrrd.h instruction.
|
||||
|
||||
**/
|
||||
UINT16
|
||||
IoCsrRead16 (
|
||||
IN UINTN Select
|
||||
);
|
||||
|
||||
/**
|
||||
IO CSR read word operation.
|
||||
|
||||
@param[in] Select IO CSR read instruction select values.
|
||||
|
||||
@return The return value of iocsrrd.w instruction.
|
||||
|
||||
**/
|
||||
UINT32
|
||||
IoCsrRead32 (
|
||||
IN UINTN Select
|
||||
);
|
||||
|
||||
/**
|
||||
IO CSR read double word operation. Only for LoongArch64.
|
||||
|
||||
@param[in] Select IO CSR read instruction select values.
|
||||
|
||||
@return The return value of iocsrrd.d instruction.
|
||||
|
||||
**/
|
||||
UINT64
|
||||
IoCsrRead64 (
|
||||
IN UINTN Select
|
||||
);
|
||||
|
||||
/**
|
||||
IO CSR write byte operation.
|
||||
|
||||
@param[in] Select IO CSR write instruction select values.
|
||||
@param[in] Value The iocsrwr.b will write the value.
|
||||
|
||||
@return VOID.
|
||||
|
||||
**/
|
||||
VOID
|
||||
IoCsrWrite8 (
|
||||
IN UINTN Select,
|
||||
IN UINT8 Value
|
||||
);
|
||||
|
||||
/**
|
||||
IO CSR write half word operation.
|
||||
|
||||
@param[in] Select IO CSR write instruction select values.
|
||||
@param[in] Value The iocsrwr.h will write the value.
|
||||
|
||||
@return VOID.
|
||||
|
||||
**/
|
||||
VOID
|
||||
IoCsrWrite16 (
|
||||
IN UINTN Select,
|
||||
IN UINT16 Value
|
||||
);
|
||||
|
||||
/**
|
||||
IO CSR write word operation.
|
||||
|
||||
@param[in] Select IO CSR write instruction select values.
|
||||
@param[in] Value The iocsrwr.w will write the value.
|
||||
|
||||
@return VOID.
|
||||
|
||||
**/
|
||||
VOID
|
||||
IoCsrWrite32 (
|
||||
IN UINTN Select,
|
||||
IN UINT32 Value
|
||||
);
|
||||
|
||||
/**
|
||||
IO CSR write double word operation. Only for LoongArch64.
|
||||
|
||||
@param[in] Select IO CSR write instruction select values.
|
||||
@param[in] Value The iocsrwr.d will write the value.
|
||||
|
||||
@return VOID.
|
||||
|
||||
**/
|
||||
VOID
|
||||
IoCsrWrite64 (
|
||||
IN UINTN Select,
|
||||
IN UINT64 Value
|
||||
);
|
||||
|
||||
#endif // defined (MDE_CPU_LOONGARCH64)
|
||||
|
||||
//
|
||||
|
Reference in New Issue
Block a user