I didn't see the reason to build IA32 for UEFI payload. So all the DXE and SMM modules in the UEFI payload are built with X64 by default.
IA32 support is only for the payload entry driver (in folder UefiPayloadEntry) only. The UEFI payload could support 32bit and 64bit bootloader.
So pure 32bit UEFI payload was not tested/supported.

Thanks,
Guo

From: devel@edk2.groups.io <devel@edk2.groups.io> on behalf of Chiu, Chasel via groups.io <chasel.chiu=intel.com@groups.io>
Sent: Monday, March 17, 2025 10:00 PM
To: devel@edk2.groups.io <devel@edk2.groups.io>; radio-fan@mail.ru <radio-fan@mail.ru>
Subject: Re: [edk2-devel] UefiPayloadPkg debugging
 

 

For IA32 build failure, it should be relating to the driver component section is X64 only. We have not verified/supported IA32 build for UefiPayloadPkg DXE phase drivers, but I think X64 build should work as we have platforms using X64 build.

 

[Components.X64, Components.AARCH64]

  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf

 

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Stepan via groups.io
Sent: Monday, March 17, 2025 9:21 PM
To: Stepan <radio-fan@mail.ru>; devel@edk2.groups.io
Subject: [edk2-devel] UefiPayloadPkg debugging

 

Hello EDK2 community,

 

I found out that it depends on the platform. I work with next changes:

 

Index: UefiPayloadPkg/UefiPayloadPkg.dsc
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayloadPkg.dsc
--- a/UefiPayloadPkg/UefiPayloadPkg.dsc      (revision a5ab82f61077e869abfeb1849f7b6e820c7fefd8)
+++ b/UefiPayloadPkg/UefiPayloadPkg.dsc      (revision 28da9ed468c5025c8bc882109a44d6b64444ebf1)
@@ -26,7 +26,7 @@
   FLASH_DEFINITION                    = UefiPayloadPkg/UefiPayloadPkg.fdf
   PCD_DYNAMIC_AS_DYNAMICEX            = TRUE
-  DEFINE SOURCE_DEBUG_ENABLE          = FALSE
+  DEFINE SOURCE_DEBUG_ENABLE          = TRUE
   DEFINE PS2_KEYBOARD_ENABLE          = TRUE
   DEFINE RAM_DISK_ENABLE              = FALSE
   DEFINE SIO_BUS_ENABLE               = TRUE
@@ -57,8 +57,8 @@
   # ELF: Build UniversalPayload file as UniversalPayload.elf
   # FIT: Build UniversalPayload file as UniversalPayload.fit
   #
-  DEFINE UNIVERSAL_PAYLOAD            = TRUE
-  #DEFINE UNIVERSAL_PAYLOAD            = FALSE
+  #DEFINE UNIVERSAL_PAYLOAD            = TRUE
+  DEFINE UNIVERSAL_PAYLOAD            = FALSE
   DEFINE UNIVERSAL_PAYLOAD_FORMAT     = ELF
   #
@@ -163,6 +163,8 @@
   DEFINE SECURE_BOOT_ENABLE       = FALSE
 [BuildOptions]
+#  GCC:DEBUG_*_*_CC_FLAGS         = -g -Od
+#  MSFT:DEBUG_*_*_CC_FLAGS        = /Od /Oy-
   *_*_*_CC_FLAGS                 = -D DISABLE_NEW_DEPRECATED_INTERFACES
!if $(USE_CBMEM_FOR_CONSOLE) == FALSE
   GCC:RELEASE_*_*_CC_FLAGS       = -DMDEPKG_NDEBUG
@@ -293,6 +295,7 @@
!if $(SOURCE_DEBUG_ENABLE) == TRUE
   PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf
   DebugCommunicationLib|SourceLevelDebugPkg/Library/DebugCommunicationLibSerialPort/DebugCommunicationLibSerialPort.inf
+  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf
!else
   PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
   DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
@@ -306,7 +309,7 @@
   !endif
!endif
-  DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
+  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
!if $(LOCKBOX_SUPPORT) == TRUE
   LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxDxeLib.inf
!else
@@ -370,7 +373,10 @@
   HobLib|UefiPayloadPkg/Library/PayloadEntryHobLib/HobLib.inf
   PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
   DxeHobListLib|UefiPayloadPkg/Library/DxeHobListLibNull/DxeHobListLibNull.inf
-  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
+  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
+  !if $(SOURCE_DEBUG_ENABLE) == TRUE
+    DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf
+  !endif
!if $(MULTIPLE_DEBUG_PORT_SUPPORT) == TRUE
   SerialPortLib|UefiPayloadPkg/Library/BaseSerialPortLibHob/BaseSerialPortLibHob.inf
!endif
@@ -453,7 +459,8 @@
   SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf
   SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf
   MmServicesTableLib|MdePkg/Library/MmServicesTableLib/MmServicesTableLib.inf
-  DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
+  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
+  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgentLib.inf
   SmmCpuPlatformHookLib|UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf
   SmmCpuFeaturesLib|UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
   CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf
 

 

I used the command build -a IA32 -a X64 -p UefiPayloadPkg/UefiPayloadPkg.dsc -b DEBUG -t GCC5 -Y COMPILE_INFO -y BuildReport.log for building edk2 for x86_64. Debuuging for this plarform WORKING!!! I attach log below.

I used the command build -a X64 -p UefiPayloadPkg/UefiPayloadPkg.dsc -b DEBUG -t GCC5 -Y COMPILE_INFO -y BuildReport.log for building edk2 for x64. Debuuging for this plarform NOT WORKING!!! I attach log below.

The build for the x86 platform failed. I use command build -a IA32 -p UefiPayloadPkg/UefiPayloadPkg.dsc -b DEBUG -t GCC5 -Y COMPILE_INFO -y BuildReport.log . Result is:

 

Build environment: Linux-6.8.0-52-generic-x86_64-with-glibc2.35
Build start time: 11:15:52, Mar.18 2025
 
WORKSPACE        = /edk
EDK_TOOLS_PATH   = /edk/BaseTools
CONF_PATH        = /edk/Conf
PYTHON_COMMAND   = python3
 
 
 
Processing meta-data Architecture(s)  = IA32
.Build target     = DEBUG
Toolchain        = GCC5
 
Active Platform          = /edk/UefiPayloadPkg/UefiPayloadPkg.dsc
 
 
build.py...
: error F001: Module /edk/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf NOT found in DSC file; Is it really a binary module?
      
 
- Failed -
Build end time: 11:15:53, Mar.18 2025
Build total time: 00:00:00
 

 

I can't figure out why this is happening.

_._,_._,_

Groups.io Links:

You receive all messages sent to this group.

View/Reply Online (#121206) | | Mute This Topic | New Topic
Your Subscription | Contact Group Owner | Unsubscribe [rebecca@openfw.io]

_._,_._,_