Chao Li
f560c5d112
MdePkg: Add some comments for LoongArch exceptions
...
Added some comments for registing LoongArch exceptions.
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 >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2024-02-06 23:51:47 +08:00
Chao Li
3f8fb8aeb9
MdePkg: Add a new library named PeiServicesTablePointerLibKs0
...
Adding PeiServicesTablePointerLibKs0 for LoongArch64, which provides
setting and getting the PEI service table pointer through the CSR KS0
register.
The idea of this library is derived from
ArmPkg/Library/PeiServicesTablePointerLib/
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 >
Cc: Laszlo Ersek <lersek@redhat.com >
Signed-off-by: Chao Li <lichao@loongson.cn >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2024-02-06 23:51:47 +08:00
Chao Li
bc0b418cba
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 >
2024-02-06 23:51:47 +08:00
Chao Li
0565a8e885
MdePkg: Add CSR operation for LoongArch
...
Add CsrRead, CsrWrite and CsrXChg functions for LoongArch, and use them
to operate the CSR register 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 >
Co-authored-by: Bibo Mao <maobibo@loongson.cn >
Acked-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2024-02-06 23:51:47 +08:00
Chao Li
414ad233a5
MdePkg: Add read stable counter operation for LoongArch
...
Add LoongArch gets stable counter ASM function.
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 >
2024-02-06 23:51:47 +08:00
Chao Li
344dc4b9d3
MdePkg: Add LoongArch Cpucfg function
...
Add LoongArch AsmCpucfg function and Cpucfg definitions.
Also added Include/Register/LoongArch64/Cpucfg.h to IgnoreFiles of
EccCheck.
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 >
2024-02-06 23:51:47 +08:00
Chao Li
2ff435b264
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 >
2024-02-06 23:51:47 +08:00
Chao Li
57684402e4
MdePkg: Add LoongArch64 exception function set into BaseLib
...
Adding SetExceptionBaseAddress and SetTlbRebaseAddress functions
for LoongArch64.
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 >
2024-02-06 23:51:47 +08:00
Chao Li
e5b5073153
MdePkg: Add LoongArch64 FPU function set into BaseCpuLib
...
Adding InitializeFloatingPointUnits, EnableFloatingPointUnits and
DisableFloatingPointUnits functions for LoongArch64.
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 >
2024-02-06 23:51:47 +08:00
Chao Li
9e1576bc10
MdePkg: Add the header file named Csr.h for LoongArch64
...
Adding Csr.h for LoongArch64, it is use for accessing the CSR registers.
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 >
2024-02-06 23:51:47 +08:00
Abdul Lateef Attar
d14526372d
MdePkg: Adds AMD Extended CPU topology CPUID
...
Adds cpuid macro for AMD extended CPU topology.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Rahul Kumar <rahul1.kumar@intel.com >
Cc: Gerd Hoffmann <kraxel@redhat.com >
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com >
Message-Id: <15199aaefbc497bb1ea7b20028c13ebedd8c488b.1705549445.git.AbdulLateef.Attar@amd.com >
Acked-by: Michael D Kinney <michael.d.kinney@intel.com >
Acked-by: Ray Ni <ray.ni@intel.com >
Acked-by: Tom Lendacky <thomas.lendacky@amd.com >
2024-01-31 13:08:29 +00:00
Michael D Kinney
4c43209a74
MdePkg/Library/BaseCpuLibNull: Add missing X86 specific services
...
* Add InitializeFloatingPointUnits() to x86 specific file
* Add GetCpuFamilyModel() to x86 specific file
* Add GetCpuSteppingId() to x86 specific file
* Move StandardSignatureIsAuthenticAMD() to x86 specific file.
* Add CpuLib library class include to all C files.
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: Laszlo Ersek <lersek@redhat.com >
Cc: Qing Huang <qing.huang@intel.com >
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
2024-01-27 19:40:15 +00:00
Ming Tan
5694ff42d5
MdePkg: Add EFI_BROWSER_ACTION_REQUEST_QUESTION_APPLY
...
REF: UEFI_Spec_2_10_Aug29.pdf page 1694
In 35.5.4 EFI_HII_CONFIG_ACCESS_PROTOCOL.CallBack() parameter
ActionRequest, add EFI_BROWSER_ACTION_REQUEST_QUESTION_APPLY.
Signed-off-by: Ming Tan <ming.tan@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: Dandan Bi <dandan.bi@intel.com >
Reviewed-by: Dandan Bi <dandan.bi@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2024-01-24 15:57:35 +00:00
devel@edk2.groups.io
97e1ef8730
MdePkg: Add FdtLib gmock support
...
Add Google Mock Library for FdtLib
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: Jeff Brasen <jbrasen@nvidia.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Gua Guo <gua.guo@intel.com >
2024-01-24 07:58:52 +00:00
Jeff Brasen
d24187a81f
MdePkg/BaseFdtLib: Rename standard functions
...
Rename the standard functions in the LibFdtSupport to remove conflicts
with other libraries that define them.
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: Jeff Brasen <jbrasen@nvidia.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2024-01-24 06:24:32 +00:00
devel@edk2.groups.io
7f72c2829f
MdePkg/Library/BaseCpuLibNull: Add StandardSignatureIsAuthenticAMD()
...
CpuLib.h exposes StandardSignatureIsAuthenticAMD() API and we require
stub function in its BaseCpuLibNull library instance to avoid potential
link issue.
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: Qing Huang <qing.huang@intel.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2024-01-23 21:43:08 +00:00
Suqiang Ren
417ebe6d1d
MdePkg/Include/Guid: Update the definition of FileName in EFI_FILE_INFO
...
Add the description of EFI_FILE_INFO FileName[1] field to align
with UEFI spec 2.10 Section 13.5.16.
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: Suqiang Ren <suqiangx.ren@intel.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2024-01-23 20:21:15 +00:00
Zhiquan Li
da228b29bd
MdePkg/Library/BaseIoLibIntrinsic: Fix TD MMIO read type cast
...
Currently the types of casting mismatch with TD MMIO read 1, 2 and 4
bytes, that might introduce potential issues. So fix the types as
conventional MmioRead[8|16|32] does.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Signed-off-by: Zhiquan Li <zhiquan1.li@intel.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2024-01-20 04:35:43 +00:00
Pierre Gondois
5d016fe0a0
MdePkg/IndustryStandard: Add _PSD/_CPC/Coord types definitions
...
Add definitions for:
- _PSD version: added in ACPI 3.0
- C-state Coordination Types: added in ACPI 3.0
- _CPC version: added in ACPI 5.0
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com >
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2024-01-20 03:27:02 +00:00
Yi Li
00bf6890a9
MdePkg: Add DECLARE_LENGTH opcode of dependency expression
...
To avoid messy parsing of the Depex section of a Capsule, it would
be a lot easier for everyone involved if we preceded the Capsule Depex
Section with a length declaration. It provides simple bounds checking
to avoid having to parse the op-codes, but in the case of a malformed
depex being parsed, avoid other issues which can be messy.
REF: UEFI spec 2.10 Table 23.4
Signed-off-by: Yi Li <yi1.li@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Reviewed-by: Wei6 Xu <wei6.xu@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2024-01-19 06:47:46 +00:00
Junfeng Guan
a4b8944e27
MdePkg: Update the Label definitions of the EFI_NVDIMM_LABEL
...
Refer to Uefi spec 2.10 section 13.19.5, update the label definitions
for NVDIMM SPA location cookie.
Signed-off-by: Junfeng Guan <junfengx.guan@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2024-01-16 06:41:53 +00:00
Suqiang Ren
638e4ca238
MdePkg: RFC1323 definition changed to RFC7323
...
Change the description of RFC1323 to RFC7323
to align with UEFI spec 2.10.
REF: UEFI spec 2.10 section 28.2.5
Signed-off-by: Suqiang Ren <suqiangx.ren@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2024-01-16 01:17:34 +00:00
Suqiang Ren
7c2757c298
MdePkg: Update the comments of callback in EFI_FORM_BROWSER2_PROTOCOL
...
Add status code return for BROWSER callback in EFI_FORM_BROWSER2_PROTOCOL
to align with UEFI spec 2.10.
REF: UEFI spec 2.10 section 35.6.3
Signed-off-by: Suqiang Ren <suqiangx.ren@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
Reviewed-by: Felix Polyudov <felixp@ami.com >
2024-01-15 17:32:27 +00:00
Suqiang Ren
195e59bd0c
MdePkg: Update the comments of HiiConfigAccess ExtractConfig
...
Add the status code return for HiiConfigAccess ExtractConfig to
align with UEFI spec 2.10.
REF: UEFI spec 2.10 section 35.5.2
Signed-off-by: Suqiang Ren <suqiangx.ren@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2024-01-15 10:02:33 +00:00
王洋
0765ee6cd3
MdePkg/BaseLib: Fix boot DxeCore hang on riscv platform
...
For scene of
HandOffToDxeCore()->SwitchStack(DxeCoreEntryPoint)->
InternalSwitchStack()->LongJump(),Variable HobList.Raw
will be passed (from *Context1 to register a0) to
DxeMain() in parameter *HobStart.
However, meanwhile the function LongJump() overrides
register a0 with a1 (-1) due to commit (ea628f28e5
"RISCV: Fix
InternalLongJump to return correct value"), then cause hang.
Replacing calling LongJump() with new InternalSwitchStackAsm() to pass
addres data in register s0 to register a0 could fix this issue (just
like the solution in MdePkg/Library/BaseLib/AArch64/SwitchStack.S)
Signed-off-by: Yang Wang <wangyang@bosc.ac.cn >
Cc: Bamvor Jian ZHANG <zhangjian@bosc.ac.cn >
Cc: Andrei Warkentin <andrei.warkentin@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Sunil V L <sunilvl@ventanamicro.com >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Reviewed-by: Ran Wang <wangran@bosc.ac.cn >
Reviewed-by: Andrei Warkentin <andrei.warkentin@intel.com >
2024-01-11 15:19:26 +00:00
Sunil V L
8ae17a71af
MdePkg/BaseLib: RISC-V: Add function to update stimecmp register
...
stimecmp is a CSR supported only when Sstc extension is supported by the
platform. This register can be used to set the timer interrupt directly in
S-mode instead of going via SBI call. Add a function to update this
register.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: Andrei Warkentin <andrei.warkentin@intel.com >
Signed-off-by: Sunil V L <sunilvl@ventanamicro.com >
Reviewed-by: Andrei Warkentin <andrei.warkentin@intel.com >
2024-01-11 12:07:42 +00:00
Sunil V L
fd629ef6e3
MdePkg.dec: RISC-V: Define override bit for Sstc extension
...
Define the BIT 1 as the override bit for Sstc extension. This will be
used by the timer driver to decide whether to use SBI calls or direct
CSR access to configure the timer.
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: Andrei Warkentin <andrei.warkentin@intel.com >
Signed-off-by: Sunil V L <sunilvl@ventanamicro.com >
Reviewed-by: Andrei Warkentin <andrei.warkentin@intel.com >
2024-01-11 12:07:42 +00:00
Junfeng Guan
889535caf8
MdePkg: Update GetHealthStatus function description
...
Refer to Uefi spec 2.10 section 11.10.2, update the return value
for EFI_DRIVER_HEALTH_PROTOCOL.GetHealthStatus.
Signed-off-by: Junfeng Guan <junfengx.guan@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2024-01-11 03:04:58 +00:00
Suqiang Ren
f2b074398c
MdePkg: Update the definition of EFI_NVDIMM_LABEL_FLAGS_LOCAL
...
Add the description of EFI_NVDIMM_LABEL_FLAGS_LOCAL to
align with UEFI spec 2.10.
REF: UEFI spec 2.10 section 13.19.4
Signed-off-by: Suqiang Ren <suqiangx.ren@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2024-01-09 02:48:25 +00:00
Suqiang Ren
ff1305c9fb
MdePkg: Update the definition of CapsuleImageSize on EFI_CAPSULE_HEADER
...
Add the description of CapsuleImageSize to align with UEFI spec 2.10.
REF: UEFI spec 2.10 section 8.5.3.1
Signed-off-by: Suqiang Ren <suqiangx.ren@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
Reviewed-by: Felix Polyudov <felixp@ami.com >
2024-01-08 02:09:24 +00:00
Jiaxin Wu
6f6a43cc8e
MdePkg/MdeLibs.dsc.inc: Add SafeIntLib instance
...
This patch is to add SafeIntLib in MdeLibs.dsc.inc
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: Laszlo Ersek <lersek@redhat.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zeng Star <star.zeng@intel.com >
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2023-12-20 02:30:56 +00:00
Dhaval Sharma
904b002c50
MdePkg: Utilize Cache Management Operations Implementation For RISC-V
...
Use newly defined cache management operations for RISC-V where possible
It builds up on the support added for RISC-V cache management
instructions in BaseLib.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: Laszlo Ersek <lersek@redhat.com >
Cc: Pedro Falcato <pedro.falcato@gmail.com >
Signed-off-by: Dhaval Sharma <dhaval@rivosinc.com >
Acked-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Pedro Falcato <pedro.falcato@gmail.com >
Reviewed-by: Sunil V L <sunilvl@ventanamicro.com >
2023-12-19 12:48:14 +00:00
Dhaval
26727c2ae2
MdePkg: Implement RISC-V Cache Management Operations
...
Implement Cache Management Operations (CMO) defined by
RISC-V spec https://github.com/riscv/riscv-CMOs .
Notes:
1. CMO only supports block based Operations. Meaning cache
flush/invd/clean Operations are not available for the entire
range. In that case we fallback on fence.i instructions.
2. Operations are implemented using Opcodes to make them compiler
independent. binutils 2.39+ compilers support CMO instructions.
Test:
1. Ensured correct instructions are refelecting in asm
2. Qemu implements basic support for CMO operations in that it allwos
instructions without exceptions. Verified it works properly in
that sense.
3. SG2042Pkg implements CMO-like instructions. It was verified that
CpuFlushCpuDataCache works fine. This more of less
confirms that framework is alright.
4. TODO: Once Silicon is available with exact instructions, we will
further verify this.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: Sunil V L <sunilvl@ventanamicro.com >
Cc: Daniel Schaefer <git@danielschaefer.me >
Cc: Laszlo Ersek <lersek@redhat.com >
Cc: Pedro Falcato <pedro.falcato@gmail.com >
Signed-off-by: Dhaval Sharma <dhaval@rivosinc.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Sunil V L <sunilvl@...>
Reviewed-by: Jingyu Li <jingyu.li01@...>
2023-12-19 12:48:14 +00:00
Dhaval
30faafd024
MdePkg: Rename Cache Management Function To Clarify Fence Based Op
...
There are different ways to manage cache on RISC-V Processors.
One way is to use fence instruction. Another way is to use CPU
specific cache management operation instructions ratified as
per RISC-V ISA specifications to be introduced in future
patches. Current method is fence instruction based, rename the
function accordingly to add that clarity.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: Sunil V L <sunilvl@ventanamicro.com >
Cc: Daniel Schaefer <git@danielschaefer.me >
Cc: Laszlo Ersek <lersek@redhat.com >
Cc: Pedro Falcato <pedro.falcato@gmail.com >
Signed-off-by: Dhaval Sharma <dhaval@rivosinc.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
2023-12-19 12:48:14 +00:00
Dhaval Sharma
286b30f517
MdePkg: Move RISC-V Cache Management Declarations Into BaseLib
...
The declarations for cache Management functions belong to BaseLib
instead of instance source file. This helps with further restructuring
of cache management code for RISC-V.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: Laszlo Ersek <lersek@redhat.com >
Cc: Pedro Falcato <pedro.falcato@gmail.com >
Signed-off-by: Dhaval Sharma <dhaval@rivosinc.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
2023-12-19 12:48:14 +00:00
Dun Tan
1d50544aa2
MdePkg:simplify Fifo API in BaseIoLibIntrinsic
...
Simplify IoRead/WriteFifo implement by repeatedly
calling IoRead/Write in the C code.
This can avoid calling assembly code to use string
I/O instructions. With this change Ia32/IoFifo.nasm
and X64/IoFifo.nasm can be removed. Then the source
files for IA32 and X64 are the same.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: Ray Ni <ray.ni@intel.com >
Signed-off-by: Dun Tan <dun.tan@intel.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
Acked-by: Michael D Kinney <michael.d.kinney@intel.com >
Acked-by: Laszlo Ersek <lersek@redhat.com >
2023-12-11 21:11:37 +00:00
Dun Tan
3c73532a8a
MdePkg: Change IoLibFifo.c to IoLibFifoCc.c
...
Change IoLibFifo.c to IoLibFifoCc.c since the
file is for Tdx and SEV in BaseIoLibIntrinsicSev.
It's also to distinguish with a new incoming
IoLibFifo.c for BaseIoLibIntrinsic.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: Ray Ni <ray.ni@intel.com >
Signed-off-by: Dun Tan <dun.tan@intel.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
Acked-by: Michael D Kinney <michael.d.kinney@intel.com >
Acked-by: Laszlo Ersek <lersek@redhat.com >
2023-12-11 21:11:37 +00:00
Rebecca Cran
9e9c35970a
MdePkg: Update MdePkg.uni with manageability debug level
...
Update MdePkg.uni with the manageability debug level.
Signed-off-by: Rebecca Cran <rebecca@os.amperecomputing.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2023-12-11 17:07:03 +00:00
Rebecca Cran
20ca600d67
MdePkg: Add manageability debug level to PcdFixedDebugPrintErrorLevel
...
Update MdePkg.dec to add the manageability debug level to
PcdFixedDebugPrintErrorLevel.
Signed-off-by: Rebecca Cran <rebecca@os.amperecomputing.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2023-12-11 17:07:03 +00:00
Rebecca Cran
03be51e106
MdePkg: Improve wording of manageability debug level comment
...
Improve the wording of the comment explaining the DEBUG_MANAGEABILITY
debug level.
Signed-off-by: Rebecca Cran <rebecca@os.amperecomputing.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2023-12-11 17:07:03 +00:00
ManickamX Srinivasan
85a5141a32
MdePkg: Add UEFI v2.10 ISA memory type definition
...
New memory type as defined in UEFI standard v2.10
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: T V Krishnamoorthy <krishnamoorthy.t.v@intel.com >
Signed-off-by: ManickamX Srinivasan <manickamx.srinivasan@intel.com >
Reviewed-by: Zhiguang Liu <zhiguang.liu@intel.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2023-12-09 01:50:07 +00:00
ManickamX Srinivasan
3c40ee8c68
MdePkg: Define the DevicePath argument from LoadImage as optional
...
Update the EFI LoadImage API in accordance with the
UEFI v2.10 specification.
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: T V Krishnamoorthy <krishnamoorthy.t.v@intel.com >
Signed-off-by: ManickamX Srinivasan <manickamx.srinivasan@intel.com >
Reviewed-by: Zhiguang Liu <zhiguang.liu@intel.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2023-12-08 22:52:02 +00:00
Jake Garver
b59ab98049
BaseStackCheckLib: Fix STACK FAULT message
...
__builtin_return_address returns a pointer, not a string. Fix
the STACK FAULT message in BaseStackCheckLib appropriately.
Signed-off-by: Jake Garver <jake@nvidia.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2023-12-06 17:10:45 +00:00
Tina Chen
ef3fde64aa
MdePkg:Add NVME Sanitize command support to Nvme.h
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4591
1. Refer NVME spec 2.0c chapter 5.24, add Sanitize Command
related definition.
2. Refer NVME spec 2.0c chapter 5.16, add Get Log Page
Command related definition for Sanitize status support.
Cc: Ray Ni <ray.ni@intel.com >
Cc: Xiao X Chen <xiao.x.chen@intel.com >
Cc: Arthur Chen <arthur.g.chen@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Cc: Sean Brogan <sean.brogan@microsoft.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Signed-off-by: Tina Chen <tina.chen@intel.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2023-12-05 20:27:27 +00:00
Pedro Falcato
3e133f730b
MdePkg/Test: Add google tests for BaseLib
...
Add GoogleTestBaseLib, which contains gtest unit tests for BaseLib.
For now, only add checksum tests for CRC32C and CRC16; these tests check
for correctness on various inputs using precomputed hashes.
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Signed-off-by: Pedro Falcato <pedro.falcato@gmail.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2023-12-03 02:37:26 +00:00
Pedro Falcato
e2d4f75913
MdePkg/BaseLib: Fix CRC16-ANSI calculation
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4609
The current CalculateCrc16Ansi implementation does the following:
1) Invert the passed checksum
2) Calculate the new checksum by going through data and using the
lookup table
3) Invert it back again
This emulated my design for CalculateCrc32c, where 0 is
passed as the initial checksum, and it inverts in the end.
However, CRC16 does not invert the checksum on input and output.
So this is incorrect.
Fix the problem by not inverting input checksums nor output checksums.
Callers should now pass CRC16ANSI_INIT as the initial value instead of
"0". This is a breaking change.
This problem was found out-of-list when older ext4 filesystems
(that use crc16 checksums) failed to mount with "corruption".
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Zhiguang Liu <zhiguang.liu@intel.com >
Signed-off-by: Pedro Falcato <pedro.falcato@gmail.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2023-12-03 02:37:26 +00:00
Ceping Sun
212cf07aaa
MdePkg/Tdx.h: Add TDVMCALL_STATUS_RETRY
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4572
TDVMCALL_STATUS_RETRY is defined in GHCI spec section 2.4.1.
Reference:
[GHCI]: TDX Guest-Host-Communication Interface v1.0
https://cdrdv2.intel.com/v1/dl/getContent/726790
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Erdem Aktas <erdemaktas@google.com >
Cc: James Bottomley <jejb@linux.ibm.com >
Cc: Min Xu <min.m.xu@intel.com >
Cc: Tom Lendacky <thomas.lendacky@amd.com >
Cc: Michael Roth <michael.roth@amd.com >
Cc: Gerd Hoffmann <kraxel@redhat.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
Signed-off-by: Ceping Sun <cepingx.sun@intel.com >
2023-11-09 17:15:39 +00:00
Ceping Sun
68e37f4578
MdePkg/BaseLib: Update TdVmcall to always output the value in R11
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4572
According to section 3.2 of the [GHCI] spec, if the return status
of MapGPA is "TDG.VP.VMCALL_RETRY", TD must retry this operation
for the pages in the region starting at the GPA specified in R11.
Currently, TDVF has not handled the retry results and always clears
the R11 on unsuccessful return status. For this, the TdVmcall needs
to output the value of R11 on unsuccessful return status to handle
the retry results of MapGPA.
Reference:
[GHCI]: TDX Guest-Host-Communication Interface v1.0
https://cdrdv2.intel.com/v1/dl/getContent/726790
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Erdem Aktas <erdemaktas@google.com >
Cc: James Bottomley <jejb@linux.ibm.com >
Cc: Min Xu <min.m.xu@intel.com >
Cc: Tom Lendacky <thomas.lendacky@amd.com >
Cc: Michael Roth <michael.roth@amd.com >
Acked-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
Signed-off-by: Ceping Sun <cepingx.sun@intel.com >
2023-11-09 17:15:39 +00:00
Joey Vagedes
e53c618ea4
MdePkg: IndustryStandard: Add DLL Characteristics
...
Add the bit masks for DLL Characteristics, used within the optional
header of a PE, to the PeImage.h header file.
Update the Visual Studio, Microsoft Portable Executable and Common
Object File Format Specification, and the PE/COFF Specification to the
latest version.
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: Joey Vagedes <joeyvagedes@gmail.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Rebecca Cran <rebecca@bsdio.com >
2023-11-06 21:44:34 +00:00
Jinlong Xu
2426a35625
MdePkg ACPI65: Add 0x0B/PRM to Generic Address Structure
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4567
ACPI_Spec_6_5_Aug29 Table 5.1, add 0x0B/Platform Runtime Mechanism (PRM)
in Address Space ID of Generic Address Structure (GAS)
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Liming Gao <gaoliming@byosoft.com.cn >
Signed-off-by: Jinlong Xu <jinlong.xu@intel.com >
Message-Id: <20231020111348.2921-1-jinlong.xu@intel.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
2023-10-31 14:40:50 +00:00