Do you set clang bin path ? From: ritul guru Sent: Monday, February 6, 2023 11:12 PM To: Guo, Gua Cc: devel@edk2.groups.io; Mike Maslenkin Subject: Re: [edk2-devel] regarding build uefipayload in debug mode in linux getting below error: build -p UefiPayloadPkg/UefiPayloadPkg.dsc -b DEBUG -a IA32 -a X64 -m UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf -t CLANGDWARF -y /home/a/src/opensource/edk2/Build/UefiPayloadPkgX64/UefiUniversalPayloadEntry.txt -D UNIVERSAL_PAYLOAD=TRUE -D CPU_TIMER_LIB_ENABLE=FALSE Build environment: Linux-5.10.102.1-microsoft-standard-WSL2-x86_64-with-glibc2.29 Build start time: 20:37:47, Feb.06 2023 WORKSPACE = /home/a/src/opensource/edk2 EDK_TOOLS_PATH = /home/a/src/opensource/edk2/BaseTools CONF_PATH = /home/a/src/opensource/edk2/Conf PYTHON_COMMAND = /usr/bin/python3.8 Processing meta-data . Architecture(s) = IA32 X64 Build target = DEBUG Toolchain = CLANGDWARF Active Platform = /home/a/src/opensource/edk2/UefiPayloadPkg/UefiPayloadPkg.dsc Active Module = /home/a/src/opensource/edk2/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf .build: : warning: The PCD was not specified by any INF module in the platform for the given architecture. PCD: [gPcAtChipsetPkgTokenSpaceGuid.PcdRtcIndexRegister] Platform: [UefiPayloadPkg.dsc] Arch: ['IA32'] build: : warning: The PCD was not specified by any INF module in the platform for the given architecture. PCD: [gPcAtChipsetPkgTokenSpaceGuid.PcdRtcTargetRegister] Platform: [UefiPayloadPkg.dsc] Arch: ['IA32'] done! Generating code . done! Generating makefile . done! Building ... /home/a/src/opensource/edk2/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf [IA32] "clang" -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common -ffunction-sections -fdata-sections -DSTRING_ARRAY_NAME=BaseUefiCpuLibStrings -Wno-parentheses-equality -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare -Wno-empty-body -Wno-unused-const-variable -Wno-varargs -Wno-unknown-warning-option -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-unaligned-access -fno-stack-protector -mms-bitfields -Wno-address -Wno-shift-negative-value -Wno-unknown-pragmas -Wno-incompatible-library-redeclaration -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -msoft-float -mno-implicit-float -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang -funsigned-char -fno-ms-extensions -Wno-null-dereference -m32 -Oz -flto -march=i586 -target i686-pc-linux-gnu -g -malign-double -D DISABLE_NEW_DEPRECATED_INTERFACES -c -o /home/a/src/opensource/edk2/Build/UefiPayloadPkgX64/DEBUG_CLANGDWARF/IA32/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/./BaseUefiCpuLib.obj -I/home/a/src/opensource/edk2/UefiCpuPkg/Library/BaseUefiCpuLib/Ia32 -I/home/a/src/opensource/edk2/UefiCpuPkg/Library/BaseUefiCpuLib -I/home/a/src/opensource/edk2/Build/UefiPayloadPkgX64/DEBUG_CLANGDWARF/IA32/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/DEBUG -I/home/a/src/opensource/edk2/MdePkg -I/home/a/src/opensource/edk2/MdePkg/Include -I/home/a/src/opensource/edk2/MdePkg/Test/UnitTest/Include -I/home/a/src/opensource/edk2/MdePkg/Include/Ia32 -I/home/a/src/opensource/edk2/UefiCpuPkg -I/home/a/src/opensource/edk2/UefiCpuPkg/Include /home/a/src/opensource/edk2/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.c /bin/sh: 1: clang: not found make: *** [GNUmakefile:344: /home/a/src/opensource/edk2/Build/UefiPayloadPkgX64/DEBUG_CLANGDWARF/IA32/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/BaseUefiCpuLib.obj] Error 127 build.py... : error 7000: Failed to execute command make tbuild [/home/a/src/opensource/edk2/Build/UefiPayloadPkgX64/DEBUG_CLANGDWARF/IA32/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib] build.py... : error F002: Failed to build module /home/a/src/opensource/edk2/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf [IA32, CLANGDWARF, DEBUG] - Failed - Build end time: 20:37:54, Feb.06 2023 Build total time: 00:00:07 - Failed - error happened when run command: build -p UefiPayloadPkg/UefiPayloadPkg.dsc -b DEBUG -a IA32 -a X64 -m UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf -t CLANGDWARF -y /home/a/src/opensource/edk2/Build/UefiPayloadPkgX64/UefiUniversalPayloadEntry.txt -D UNIVERSAL_PAYLOAD=TRUE -D CPU_TIMER_LIB_ENABLE=FALSE Traceback (most recent call last): File "UefiPayloadPkg/UniversalPayloadBuild.py", line 172, in main() File "UefiPayloadPkg/UniversalPayloadBuild.py", line 168, in main BuildUniversalPayload(args, MacroList) File "UefiPayloadPkg/UniversalPayloadBuild.py", line 108, in BuildUniversalPayload RunCommand(BuildModule) File "UefiPayloadPkg/UniversalPayloadBuild.py", line 51, in RunCommand raise Exception("ERROR: when run command: %s"%cmd) Exception: ERROR: when run command: build -p UefiPayloadPkg/UefiPayloadPkg.dsc -b DEBUG -a IA32 -a X64 -m UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf -t CLANGDWARF -y /home/a/src/opensource/edk2/Build/UefiPayloadPkgX64/UefiUniversalPayloadEntry.txt -D UNIVERSAL_PAYLOAD=TRUE -D CPU_TIMER_LIB_ENABLE=FALSE Thanks & Regards Ritul Guru +91-9916513186 On Mon, Feb 6, 2023 at 8:23 PM ritul guru > wrote: thanks, ./cbfstool coreboot.rom remove -r COREBOOT -n fallback/payload ./cbfstool coreboot.rom add-payload -r COREBOOT -n fallback/payload -f ShimLayer.elf ./cbfstool coreboot.rom remove -r COREBOOT -n img/UniversalPayload ./cbfstool coreboot.rom add-flat-binary -r COREBOOT -n img/UniversalPayload -f UniversalPayload.elf -l 0x200000 -e 0x100 -c lzma with above commands, we can inject shim.elf and uefipayload.elf into coreboot image, and should be able to boot from this payload? Thanks & Regards Ritul Guru +91-9916513186 On Mon, Feb 6, 2023 at 7:56 PM Guo, Gua > wrote: I think you can run “. edksetup.sh” in your local and WORKSPACE will be setup automatically. From: ritul guru > Sent: Monday, February 6, 2023 10:22 PM To: Guo, Gua > Cc: devel@edk2.groups.io; Mike Maslenkin > Subject: Re: [edk2-devel] regarding build uefipayload in debug mode in linux workspace needs to be set to any value? 0 $ bash UefiPayloadPkg/UniversalPayloadBuild.sh -t GCC5 -a IA32 -a X64 -D CPU_TIMER_LIB_ENABLE=FALSE python_exe= Traceback (most recent call last): File "UefiPayloadPkg/UniversalPayloadBuild.py", line 172, in main() File "UefiPayloadPkg/UniversalPayloadBuild.py", line 168, in main BuildUniversalPayload(args, MacroList) File "UefiPayloadPkg/UniversalPayloadBuild.py", line 58, in BuildUniversalPayload BuildDir = os.path.join(os.environ['WORKSPACE'], os.path.normpath("Build/UefiPayloadPkgX64")) File "/usr/lib/python3.8/os.py", line 675, in __getitem__ raise KeyError(key) from None KeyError: 'WORKSPACE' Thanks & Regards Ritul Guru +91-9916513186 On Mon, Feb 6, 2023 at 5:17 PM Guo, Gua > wrote: UniversalPayload.sh have Clang tool chain dependency. I assume your machine is ubuntu-20.10, please download it. And set use export PATH=$PATH: to prevent the issue. https://github.com/llvm/llvm-project/releases/download/llvmorg-11.1.0/clang+llvm-11.1.0-x86_64-linux-gnu-ubuntu-20.10.tar.xz Thanks, Gua From: ritul guru > Sent: Monday, February 6, 2023 7:37 PM To: Guo, Gua > Cc: devel@edk2.groups.io; Mike Maslenkin > Subject: Re: [edk2-devel] regarding build uefipayload in debug mode in linux Thanks, 17:05 $ ./UefiPayloadPkg/UniversalPayloadBuild.sh -t GCC5 -a IA32 -a X64 -D CPU_TIMER_LIB_ENABLE=FALSE python_exe=/usr/bin/python3.8 "llvm-objcopy" --version /bin/sh: 1: llvm-objcopy: not found - Failed - error happened when run command: "llvm-objcopy" --version - Failed - Please check if LLVM is installed or if CLANG_BIN is set correctly ✘-1 ~/src/opensource/edk2 [master ↓·22|✚ 1] I am seeing above errors, is clang required for UniversalPayloadBuild.sh compilation? Thanks & Regards Ritul Guru +91-9916513186 On Mon, Feb 6, 2023 at 6:23 AM Guo, Gua > wrote: I just quickly check your command, look like it incorrect UefiPayload For Uefi Payload * build -p "UefiPayloadPkg/UefiPayloadPkg.dsc" -b DEBUG -t GCC5 -a IA32 -a X64 -D BOOTLOADER=COREBOOT For Uefi Universal Payload * Coreboot git clone https://github.com/StarLabsLtd/coreboot.git Coreboot cd Coreboot git submodule update --init make iasl make crossgcc make defconfig KBUILD_DEFCONFIG=config.starlabs_qemu make * Edk2 git clone https://github.com/tianocore/edk2.git Edk2 cd Edk2 git submodule update --init source ./edksetup.sh make -C ./BaseTools bash UefiPayloadPkg/UniversalPayloadBuild.sh -t GCC5 -a IA32 -D CPU_TIMER_LIB_ENABLE=FALSE * ShimLayer git clone https://github.com/UniversalScalableFirmware/upl.coreboot.shimlayer ShimLayer cd ShimLayer bash CorebootShimBuild.sh * Test Procedure 1. Copy "ShimLayer/Build/ShimLayer.elf" and "Edk2/Build/UefiPayloadPkgX64/UniversalPayload.elf" to “Coreboot/build”. 2. cd Coreboot/build 3. Do the following commands. ./cbfstool coreboot.rom remove -r COREBOOT -n fallback/payload ./cbfstool coreboot.rom add-payload -r COREBOOT -n fallback/payload -f ShimLayer.elf ./cbfstool coreboot.rom remove -r COREBOOT -n img/UniversalPayload ./cbfstool coreboot.rom add-flat-binary -r COREBOOT -n img/UniversalPayload -f UniversalPayload.elf -l 0x200000 -e 0x100 -c lzma qemu-system-x86_64 -bios coreboot.rom -serial stdio -M q35 Thanks, Gua From: devel@edk2.groups.io > On Behalf Of ritul guru Sent: Friday, February 3, 2023 11:08 PM To: Mike Maslenkin > Cc: devel@edk2.groups.io Subject: Re: [edk2-devel] regarding build uefipayload in debug mode in linux Thanks, build -p "UefiPayloadPkg/UefiPayloadPkg.dsc" -b DEBUG -t GCC5 -a IA32 -a X64 -D COREBOOT I used above cmd, added DEBUG option by seeing NO debug messages coming from uefipayload. any idea how to enable debug messages coming from uefipayload built with above cmd? Thanks & Regards Ritul Guru +91-9916513186 On Fri, Feb 3, 2023 at 4:46 AM Mike Maslenkin > wrote: Hi Ritul Guru. There is a misprint in path to dsc file. The path should be "UefiPayloadPkg/UefiPayloadPkg.dsc" But there is another issue with your command line exists. The instructions you are referred to [1] contain a sentence: "NOTE: Pure 32bit UEFI payload support could be added if required later.", i.e. it won't build. So, you need to build either pure X64 or X64 build with IA32 entry. The command line for the latter is: "build -p UefiPayloadPkg/UefiPayloadPkg.dsc -t GCC5 -a IA32 -a X64" *[1] https://github.com/tianocore/edk2/blob/master/UefiPayloadPkg/BuildAndIntegrationInstructions.txt#L55 Regards, Mike. On Fri, Feb 3, 2023 at 1:37 AM ritul guru > wrote: > > > Hi, > I was following below link to build UEfiPayload for coreboot to boot from, > > https://github.com/tianocore/edk2/blob/master/UefiPayloadPkg/BuildAndIntegrationInstructions.txt > > but getting below error, > would appreciate help, thanks. > > > ~/src/opensource/edk2 [master| ] > 03:04 $ build -p UefiPayloadPkg\UefiPayloadPkg.dsc -t GCC5 -a IA32 > Build environment: Linux-5.10.102.1-microsoft-standard-WSL2-x86_64-with-glibc2.29 > Build start time: 03:04:57, Feb.03 2023 > > WORKSPACE = /home//src/opensource/edk2 > EDK_TOOLS_PATH = /home//src/opensource/edk2/BaseTools > CONF_PATH = /home//src/opensource/edk2/Conf > PYTHON_COMMAND = /usr/bin/python3.8 > > > build.py... > : error C0DE: Unknown fatal error when processing [/home//src/opensource/edk2/UefiPayloadPkgUefiPayloadPkg.dsc] > > (Please send email to devel@edk2.groups.io for help, attaching following call stack trace!) > > (Python 3.8.10 on linux) Traceback (most recent call last): > File "/home//src/opensource/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 2692, in Main > MyBuild = Build(Target, Workspace, Option,LogQ) > File "/home//src/opensource/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 815, in __init__ > self.InitPreBuild() > File "/home//src/opensource/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 1015, in InitPreBuild > self.LoadConfiguration() > File "/home//src/opensource/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 971, in LoadConfiguration > self.GetToolChainAndFamilyFromDsc (self.PlatformFile) > File "/home//src/opensource/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 905, in GetToolChainAndFamilyFromDsc > dscobj = self.BuildDatabase[File, BuildArch] > File "/home//src/opensource/edk2/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py", line 104, in __getitem__ > BuildObject = self.CreateBuildObject(FilePath, Arch, Target, Toolchain) > File "/home//src/opensource/edk2/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py", line 120, in CreateBuildObject > MetaFileStorage(self.WorkspaceDb, FilePath, FileType) > File "/home//src/opensource/edk2/BaseTools/Source/Python/Workspace/MetaFileTable.py", line 426, in __new__ > reval = Class._FILE_TABLE_[FileType](*Args) > File "/home//src/opensource/edk2/BaseTools/Source/Python/Workspace/MetaFileTable.py", line 303, in __init__ > MetaFileTable.__init__(self, Cursor, MetaFile, MODEL_FILE_DSC, Temporary, FromItem) > File "/home//src/opensource/edk2/BaseTools/Source/Python/Workspace/MetaFileTable.py", line 39, in __init__ > MetaFile.TimeStamp, > File "/home//src/opensource/edk2/BaseTools/Source/Python/Common/Misc.py", line 1539, in TimeStamp > return os.stat(self.Path)[8] > File "/home//src/opensource/edk2/BaseTools/Source/Python/Common/LongFilePathOs.py", line 51, in stat > return os.stat(LongFilePath(path)) > FileNotFoundError: [Errno 2] No such file or directory: '/home//src/opensource/edk2/UefiPayloadPkgUefiPayloadPkg.dsc' > > > > > > Thanks & Regards > Ritul Guru > +91-9916513186