[edk2-devel] [PATCH v1 1/8] UefiPayloadPkg: Remove FP Init from UPL entry

Guo, Gua gua.guo at intel.com
Thu May 11 09:19:22 UTC 2023


@Dhaval Sharma I give some feedbacks on the PR.
URL: https://github.com/tianocore/edk2/pull/4367
I think we can discuss it on the PR. And currently Edk2 code freeze so the change need to hold on until UPL spec 1.0 publish and Edk2 code freeze unlock (2023/05/26).

Thanks,
Gua

-----Original Message-----
From: Dhaval Sharma <dhaval at rivosinc.com> 
Sent: Thursday, May 11, 2023 3:09 PM
To: devel at edk2.groups.io
Cc: Dong, Guo <guo.dong at intel.com>; Ni, Ray <ray.ni at intel.com>; Rhodes, Sean <sean at starlabs.systems>; Lu, James <james.lu at intel.com>; Guo, Gua <gua.guo at intel.com>
Subject: [PATCH v1 1/8] UefiPayloadPkg: Remove FP Init from UPL entry

According to UPL spec BL should initialize FP init meaning UPL does not need to initialize it. Besides this is arch specific init and needs to be moved out of UPL common flow. In order to not break current BL implementations, for now just moving the init to later point of time but for both x32 and x64 eventually this should be removed once BL impelement this logic.

Test: Verified booting  UEFI shell on coreboot on qemu.

Cc: Guo Dong <guo.dong at intel.com>
Cc: Ray Ni <ray.ni at intel.com>
Cc: Sean Rhodes <sean at starlabs.systems>
Cc: James Lu <james.lu at intel.com>
Cc: Gua Guo <gua.guo at intel.com>

Signed-off-by: Dhaval Sharma <dhaval at rivosinc.com>

Reviewed-by: Gua Guo <gua.guo at ...>
Reviewed-by: James Lu <james.lu at ...>
---

Notes:
    v3:
    - Added FP initialization to X64 path as well
    v4:
    - Updated reviewed-by tag

 UefiPayloadPkg/UefiPayloadEntry/Ia32/DxeLoadFunc.c      | 3 +++
 UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.c | 3 ---
 UefiPayloadPkg/UefiPayloadEntry/X64/DxeLoadFunc.c       | 3 +++
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/UefiPayloadPkg/UefiPayloadEntry/Ia32/DxeLoadFunc.c b/UefiPayloadPkg/UefiPayloadEntry/Ia32/DxeLoadFunc.c
index 61a9f01ec9e7..921a38555e21 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/Ia32/DxeLoadFunc.c
+++ b/UefiPayloadPkg/UefiPayloadEntry/Ia32/DxeLoadFunc.c
@@ -268,6 +268,9 @@ HandOffToDxeCore (
   UINT32                   Index;   X64_IDT_TABLE            *IdtTableForX64; +  // Initialize floating point operating environment to be compliant with UEFI spec.+  InitializeFloatingPointUnits ();+   //   // Clear page 0 and mark it as allocated if NULL pointer detection is enabled.   //diff --git a/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.c b/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.c
index f8939efe70db..8aff00142971 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.c
+++ b/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.c
@@ -473,9 +473,6 @@ _ModuleEntryPoint (
     PrintHob (mHobList);     ); -  // Initialize floating point operating environment to be compliant with UEFI spec.-  InitializeFloatingPointUnits ();-   // Build HOB based on information from Bootloader   Status = BuildHobs (BootloaderParameter, &DxeFv);   ASSERT_EFI_ERROR (Status);diff --git a/UefiPayloadPkg/UefiPayloadEntry/X64/DxeLoadFunc.c b/UefiPayloadPkg/UefiPayloadEntry/X64/DxeLoadFunc.c
index 346e3feb0459..84a6112ce64a 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/X64/DxeLoadFunc.c
+++ b/UefiPayloadPkg/UefiPayloadEntry/X64/DxeLoadFunc.c
@@ -40,6 +40,9 @@ HandOffToDxeCore (
   VOID   *GhcbBase;   UINTN  GhcbSize; +  // Initialize floating point operating environment to be compliant with UEFI spec.+  InitializeFloatingPointUnits ();+   //   // Clear page 0 and mark it as allocated if NULL pointer detection is enabled.   //-- 
2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#104684): https://edk2.groups.io/g/devel/message/104684
Mute This Topic: https://groups.io/mt/98822676/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list