RPi3/${PLAT_TARGET}_GCC/FV/RPI_EFI.fd PLAT_FILENAME= RPI_EFI.fd .endif @@ -95,7 +104,7 @@ PLAT_ARCH= AARCH64 PLAT_ARGS+= -D X64EMU_ENABLE=FALSE -D CAPSULE_ENABLE=FALSE PLAT_TARGET= RELEASE PLATFILE= Platform/RaspberryPi/RPi4/RPi4.dsc -PLAT_RESULT= RPi4/${PLAT_TARGET}_GCC5/FV/RPI_EFI.fd +PLAT_RESULT= RPi4/${PLAT_TARGET}_GCC/FV/RPI_EFI.fd PLAT_FILENAME= RPI_EFI.fd .endif @@ -106,7 +115,7 @@ PLAT= xen PLAT_ARCH= X64 PLAT_TARGET= RELEASE PLATFILE= OvmfPkg/OvmfXen.dsc -PLAT_RESULT= OvmfXen/${PLAT_TARGET}_GCC5/FV/OVMF.fd +PLAT_RESULT= OvmfXen/${PLAT_TARGET}_GCC/FV/OVMF.fd PLAT_FILENAME= XEN_X64_EFI.fd .endif @@ -118,13 +127,12 @@ PLAT_ARCH= X64 PLAT_ARGS+= -D SECURE_BOOT_ENABLE=TRUE -D TPM2_ENABLE=TRUE PLAT_TARGET= RELEASE PLATFILE= OvmfPkg/Bhyve/BhyveX64.dsc -PLAT_RESULT= BhyveX64/${PLAT_TARGET}_GCC5/FV/BHYVE.fd -PLAT_RESULT_CODE= BhyveX64/${PLAT_TARGET}_GCC5/FV/BHYVE_CODE.fd -PLAT_RESULT_VARS= BhyveX64/${PLAT_TARGET}_GCC5/FV/BHYVE_VARS.fd +PLAT_RESULT= BhyveX64/${PLAT_TARGET}_GCC/FV/BHYVE.fd +PLAT_RESULT_CODE= BhyveX64/${PLAT_TARGET}_GCC/FV/BHYVE_CODE.fd +PLAT_RESULT_VARS= BhyveX64/${PLAT_TARGET}_GCC/FV/BHYVE_VARS.fd PLAT_FILENAME= BHYVE_UEFI.fd PLAT_FILENAME_CODE= BHYVE_UEFI_CODE.fd PLAT_FILENAME_VARS= BHYVE_UEFI_VARS.fd -PATCHFILES= ffce430d2b65d508a1604dc986ba16db3583943d.patch:-p1 .endif .if ${FLAVOR} == qemu_x64 @@ -134,9 +142,9 @@ PLAT= qemu PLAT_ARCH= X64 PLAT_TARGET= RELEASE PLATFILE= OvmfPkg/OvmfPkgX64.dsc -PLAT_RESULT= OvmfX64/${PLAT_TARGET}_GCC5/FV/OVMF.fd -PLAT_RESULT_CODE= OvmfX64/${PLAT_TARGET}_GCC5/FV/OVMF_CODE.fd -PLAT_RESULT_VARS= OvmfX64/${PLAT_TARGET}_GCC5/FV/OVMF_VARS.fd +PLAT_RESULT= OvmfX64/${PLAT_TARGET}_GCC/FV/OVMF.fd +PLAT_RESULT_CODE= OvmfX64/${PLAT_TARGET}_GCC/FV/OVMF_CODE.fd +PLAT_RESULT_VARS= OvmfX64/${PLAT_TARGET}_GCC/FV/OVMF_VARS.fd PLAT_FILENAME= QEMU_UEFI-x86_64.fd PLAT_FILENAME_CODE= QEMU_UEFI_CODE-x86_64.fd PLAT_FILENAME_VARS= QEMU_UEFI_VARS-x86_64.fd @@ -149,9 +157,9 @@ PLAT= qemu PLAT_ARCH= IA32 PLAT_TARGET= RELEASE PLATFILE= OvmfPkg/OvmfPkgIa32.dsc -PLAT_RESULT= OvmfIa32/${PLAT_TARGET}_GCC5/FV/OVMF.fd -PLAT_RESULT_CODE= OvmfIa32/${PLAT_TARGET}_GCC5/FV/OVMF_CODE.fd -PLAT_RESULT_VARS= OvmfIa32/${PLAT_TARGET}_GCC5/FV/OVMF_VARS.fd +PLAT_RESULT= OvmfIa32/${PLAT_TARGET}_GCC/FV/OVMF.fd +PLAT_RESULT_CODE= OvmfIa32/${PLAT_TARGET}_GCC/FV/OVMF_CODE.fd +PLAT_RESULT_VARS= OvmfIa32/${PLAT_TARGET}_GCC/FV/OVMF_VARS.fd PLAT_FILENAME= QEMU_UEFI-i386.fd PLAT_FILENAME_CODE= QEMU_UEFI_CODE-i386.fd PLAT_FILENAME_VARS= QEMU_UEFI_VARS-i386.fd @@ -170,50 +178,58 @@ PLIST_FILES+= ${PREFIX}/share/uefi-firmware/${PLAT_FILENAME_CODE} PLIST_FILES+= ${PREFIX}/share/uefi-firmware/${PLAT_FILENAME_VARS} .endif -# Emulate source edk2/edksetup.sh -MAKE_ENV+= WORKSPACE=${WRKDIR} \ - PACKAGES_PATH=${WRKDIR}/edk2-${GH_TAGNAME}:${WRKDIR}/edk2-platforms-${PLATFORM_TAG}:${WRKDIR}/edk2-non-osi-${NONOSI_TAG} \ - CONF_PATH=${WRKDIR}/edk2-${GH_TAGNAME}/Conf \ - EDK_TOOLS_PATH=${WRKDIR}/edk2-${GH_TAGNAME}/BaseTools \ - PATH=${WRKDIR}/edk2-${GH_TAGNAME}/BaseTools/BinWrappers/PosixLike:${PATH} \ - PYTHON_COMMAND=python3 \ - PYTHONHASHSEED=1 \ - EXTRA_LDFLAGS=${EXTRA_LDFLAGS} - .if ${PLAT_ARCH} == AARCH64 && ${ARCH} != aarch64 BUILD_DEPENDS+= aarch64-none-elf-gcc:devel/aarch64-none-elf-gcc -MAKE_ENV+= GCC5_AARCH64_PREFIX=aarch64-none-elf- +MAKE_ENV+= GCC_AARCH64_PREFIX=aarch64-none-elf- .endif .if ${PLAT_ARCH} == X64 || ${PLAT_ARCH} == IA32 BUILD_DEPENDS+= nasm:devel/nasm .endif -# We can't have two submodule with the same origin in GH_TUPLE +MAKE_ENV+= PYTHON_COMMAND=python3 \ + EXTRA_LDFLAGS=${EXTRA_LDFLAGS} \ + PACKAGES_PATH=${WRKDIR}/edk2-${GH_TAGNAME}:${WRKDIR}/edk2-platforms-${PLATFORM_TAG}:${WRKDIR}/edk2-non-osi-${NONOSI_TAG} + +# custom logo for bhyve's ovmf +.if ${FLAVOR} == bhyve +MASTER_SITES+= LOCAL/dch/bhyve/ +DISTFILES+= BhyveLogo.bmp +EXTRACT_ONLY= ${DISTFILES:M*.gz*:C/.gz:.*/.gz/} +.endif + post-extract: - (cd ${WRKDIR}/edk2-${GH_TAGNAME}/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli && tar cf - * | tar xf - -C ../../../../BaseTools/Source/C/BrotliCompress/brotli) + # We can't have two submodule with the same origin in GH_TUPLE + (cd ${WRKDIR}/edk2-${GH_TAGNAME} && ${CP} -a MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/* BaseTools/Source/C/BrotliCompress/brotli) + +.if ${FLAVOR} == bhyve + (${CP} ${DISTDIR}/BhyveLogo.bmp ${WRKDIR}/edk2-${GH_TAGNAME}/MdeModulePkg/Logo/Logo.bmp) +.endif + do-build: - # This is normaly done during source edksetup.sh - (cp ${WRKDIR}/edk2-${GH_TAGNAME}/BaseTools/Conf/build_rule.template ${WRKDIR}/edk2-${GH_TAGNAME}/Conf/build_rule.txt) - (cp ${WRKDIR}/edk2-${GH_TAGNAME}/BaseTools/Conf/tools_def.template ${WRKDIR}/edk2-${GH_TAGNAME}/Conf/tools_def.txt) - (cp ${WRKDIR}/edk2-${GH_TAGNAME}/BaseTools/Conf/target.template ${WRKDIR}/edk2-${GH_TAGNAME}/Conf/target.txt) - # Build the basetools - (cd ${WRKDIR} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C edk2-${GH_TAGNAME}/BaseTools ${_MAKE_JOBS}) - # Build EDK2 - (cd ${WRKDIR}/edk2-${GH_TAGNAME} && ${SETENV} ${MAKE_ENV} BaseTools/BinWrappers/PosixLike/build -a ${PLAT_ARCH} -p ${PLATFILE} -n ${MAKE_JOBS_NUMBER} -t GCC5 -b ${PLAT_TARGET} ${PLAT_ARGS}) + # Just run a bash subshell for build instead of emulating edksetup.sh + (bash -c ' \ + export ${MAKE_ENV} && \ + cd ${WRKDIR}/edk2-${GH_TAGNAME} && \ + ${MAKE_CMD} -C BaseTools -j ${MAKE_JOBS_NUMBER} && \ + source edksetup.sh && \ + build -a ${PLAT_ARCH} -p ${PLATFILE} -n ${MAKE_JOBS_NUMBER} -t GCC -b ${PLAT_TARGET} ${PLAT_ARGS} \ + ') do-install: ${MKDIR} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/ - ${INSTALL_DATA} ${WRKDIR}/Build/${PLAT_RESULT} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME} + ${INSTALL_DATA} ${WRKDIR}/edk2-${GH_TAGNAME}/Build/${PLAT_RESULT} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME} .if defined(PLAT_FILENAME_CODE) - ${INSTALL_DATA} ${WRKDIR}/Build/${PLAT_RESULT_CODE} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME_CODE} + ${INSTALL_DATA} ${WRKDIR}/edk2-${GH_TAGNAME}/Build/${PLAT_RESULT_CODE} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME_CODE} .endif .if defined(PLAT_FILENAME_VARS) - ${INSTALL_DATA} ${WRKDIR}/Build/${PLAT_RESULT_VARS} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME_VARS} + ${INSTALL_DATA} ${WRKDIR}/edk2-${GH_TAGNAME}/Build/${PLAT_RESULT_VARS} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME_VARS} .endif + .if ${FLAVOR} == bhyve - ${INSTALL_DATA} ${WRKDIR}/Build/${PLAT_RESULT_CODE} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME} + # For now BHYVE cannot load the regular firmware file that contains vars so we just replace it with CODE + ${INSTALL_DATA} ${WRKDIR}/edk2-${GH_TAGNAME}/Build/${PLAT_RESULT_CODE} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME} # For backwards compatibility ${MKDIR} ${STAGEDIR}/${PREFIX}/share/uefi-firmware/ ${RLN} ${STAGEDIR}/${PREFIX}/share/${PORTNAME}-${PLAT}/${PLAT_FILENAME} ${STAGEDIR}/${PREFIX}/share/uefi-firmware/${PLAT_FILENAME} diff --git a/sysutils/edk2/distinfo b/sysutils/edk2/distinfo index 1409fbc82c08..811e7674055a 100644 --- a/sysutils/edk2/distinfo +++ b/sysutils/edk2/distinfo @@ -1,19 +1,31 @@ -TIMESTAMP = 1719565938 -SHA256 (tianocore-edk2-g202308-edk2-stable202308_GH0.tar.gz) = 3f1cde1166ad94f86fc2375ee2c3f7f1c16c646b9518de3ff928efd28702ffe1 -SIZE (tianocore-edk2-g202308-edk2-stable202308_GH0.tar.gz) = 16801285 -SHA256 (tianocore-edk2-platforms-e509ac5a72_GH0.tar.gz) = 3b15b5b5c545023de4885a07b42a3426769323e4377fcf2d600b6094bcf4231c -SIZE (tianocore-edk2-platforms-e509ac5a72_GH0.tar.gz) = 11096819 -SHA256 (tianocore-edk2-non-osi-8c09bd0955_GH0.tar.gz) = efc67f57ebb6f5c31711baa215a12666ba1b8961004548f6278c1020d365fe16 -SIZE (tianocore-edk2-non-osi-8c09bd0955_GH0.tar.gz) = 21515641 -SHA256 (google-brotli-v1.0.9-35-gf4153a0_GH0.tar.gz) = 8deff90317f030d770ab912fbc2a789394ac35c2d68eb5105e1f427aa8f88a3f -SIZE (google-brotli-v1.0.9-35-gf4153a0_GH0.tar.gz) = 512041 -SHA256 (google-googletest-release-1.8.0-2983-g86add134_GH0.tar.gz) = b94dc8bbc62251542f3dc5dc1398527379465dd8fc48e146ddea86403a195071 -SIZE (google-googletest-release-1.8.0-2983-g86add134_GH0.tar.gz) = 855431 -SHA256 (MIPI-Alliance-public-mipi-sys-t-v1.1+edk2_GH0.tar.gz) = 473dcd46ed32b098091a2353f0ed13e69cbe773811c5551e6e766c16ac9ba464 -SIZE (MIPI-Alliance-public-mipi-sys-t-v1.1+edk2_GH0.tar.gz) = 378282 -SHA256 (openssl-openssl-openssl-3.0.9_GH0.tar.gz) = 2eec31f2ac0e126ff68d8107891ef534159c4fcfb095365d4cd4dc57d82616ee -SIZE (openssl-openssl-openssl-3.0.9_GH0.tar.gz) = 15335782 -SHA256 (tianocore-edk2-cmocka-cmocka-1.1.5-23-g1cc9cde_GH0.tar.gz) = c2fb00395a55abd2ebfc2fcfe2705c7096cedd4416704dbb9237e394607fccb4 -SIZE (tianocore-edk2-cmocka-cmocka-1.1.5-23-g1cc9cde_GH0.tar.gz) = 100320 -SHA256 (ffce430d2b65d508a1604dc986ba16db3583943d.patch) = 2651482dc7c38563c8a1bec95eebb8f93bfe5051f95f5f4a05f201117650385e -SIZE (ffce430d2b65d508a1604dc986ba16db3583943d.patch) = 3373 +TIMESTAMP = 1759436651 +SHA256 (BhyveLogo.bmp) = 910ef609df6706c282997dfcac67e809cb43dcee02fbd1ea670404d7afb41fc1 +SIZE (BhyveLogo.bmp) = 67938 +SHA256 (tianocore-edk2-g202508-edk2-stable202508_GH0.tar.gz) = ea373d69f8e2b8c1e63e958e538e4a7b493a71a3680ad709df1733f2780608ec +SIZE (tianocore-edk2-g202508-edk2-stable202508_GH0.tar.gz) = 18454992 +SHA256 (tianocore-edk2-platforms-aa035ed7f469295802d51c7c001477e32da8a65f_GH0.tar.gz) = f8a2f2352eec77ff33a38fcbd2cb325ee20c8f4368d80ae792019f5a6c7fa238 +SIZE (tianocore-edk2-platforms-aa035ed7f469295802d51c7c001477e32da8a65f_GH0.tar.gz) = 11968263 +SHA256 (tianocore-edk2-non-osi-3415f616e08a0d9c7bd264cab674929a7b0f5e33_GH0.tar.gz) = 56ac0b41fe8d30e61aadd44ed41febc4637c5fb1b9a177b5c9dc4a2e8999eee4 +SIZE (tianocore-edk2-non-osi-3415f616e08a0d9c7bd264cab674929a7b0f5e33_GH0.tar.gz) = 37783559 +SHA256 (tianocore-edk2-subhook-83d4e1ebef3588fae48b69a7352cc21801cb70bc_GH0.tar.gz) = f65b2e6dd304e19185d751652bd5ebc72a81d503bf542037acb3450e43abc095 +SIZE (tianocore-edk2-subhook-83d4e1ebef3588fae48b69a7352cc21801cb70bc_GH0.tar.gz) = 14470 +SHA256 (tianocore-edk2-cmocka-1cc9cde3448cdd2e000886a26acf1caac2db7cf1_GH0.tar.gz) = 59cd4b81abafae35d94ac5d91cf4ae5b05122e688713cd6db51e5e4cef471d8f +SIZE (tianocore-edk2-cmocka-1cc9cde3448cdd2e000886a26acf1caac2db7cf1_GH0.tar.gz) = 100343 +SHA256 (openssl-openssl-aea7aaf2abb04789f5868cbabec406ea43aa84bf_GH0.tar.gz) = 0db2c5888e78b3ee10df5991c9bd049a2ca0eb693b3c44a05f3078a90add349a +SIZE (openssl-openssl-aea7aaf2abb04789f5868cbabec406ea43aa84bf_GH0.tar.gz) = 53351642 +SHA256 (kkos-oniguruma-4ef89209a239c1aea328cf13c05a2807e5c146d1_GH0.tar.gz) = 70bfed97ee8390f5ac08fea28e3e930a3b33df871c6fc1888c8d436c6c6b755d +SIZE (kkos-oniguruma-4ef89209a239c1aea328cf13c05a2807e5c146d1_GH0.tar.gz) = 657724 +SHA256 (google-googletest-86add13493e5c881d7e4ba77fb91c1f57752b3a4_GH0.tar.gz) = 3c3095488b936b14538dca64d7e68bcde09a8a18d2a32a47b59877eff0340403 +SIZE (google-googletest-86add13493e5c881d7e4ba77fb91c1f57752b3a4_GH0.tar.gz) = 855874 +SHA256 (google-brotli-f4153a09f87cbb9c826d8fc12c74642bb2d879ea_GH0.tar.gz) = 6d6cacce05086b7debe75127415ff9c3661849f564fe2f5f3b0383d48aa4ed77 +SIZE (google-brotli-f4153a09f87cbb9c826d8fc12c74642bb2d879ea_GH0.tar.gz) = 512229 +SHA256 (devicetree-org-pylibfdt-cfff805481bdea27f900c32698171286542b8d3c_GH0.tar.gz) = 1193910f475fde07f3cd4fe1c1a353d69b8cedb574967134838fcdc8208d224e +SIZE (devicetree-org-pylibfdt-cfff805481bdea27f900c32698171286542b8d3c_GH0.tar.gz) = 49659 +SHA256 (akheron-jansson-e9ebfa7e77a6bee77df44e096b100e7131044059_GH0.tar.gz) = e7935c0d91d6d22f6dee710a26b23e228ecc4fe8ef7e8f756558c3599f68c3b4 +SIZE (akheron-jansson-e9ebfa7e77a6bee77df44e096b100e7131044059_GH0.tar.gz) = 145110 +SHA256 (MIPI-Alliance-public-mipi-sys-t-370b5944c046bab043dd8b133727b2135af7747a_GH0.tar.gz) = 9fda3b9a78343ab2be6f06ce6396536e7e065abac29b47c8eb2e42cbb4c4f00b +SIZE (MIPI-Alliance-public-mipi-sys-t-370b5944c046bab043dd8b133727b2135af7747a_GH0.tar.gz) = 378522 +SHA256 (DMTF-libspdm-98ef964e1e9a0c39c7efb67143d3a13a819432e0_GH0.tar.gz) = 634cbdf10bcaf32f3446b1bf8be7e8a60cecd1e9500e512f01e3c15b74cbcfd3 +SIZE (DMTF-libspdm-98ef964e1e9a0c39c7efb67143d3a13a819432e0_GH0.tar.gz) = 2017163 +SHA256 (ARMmbed-mbedtls-8c89224991adff88d53cd380f42a2baa36f91454_GH0.tar.gz) = b5c7e7c54e013c168f4aae036e59912785f11b4aeebd57f6165a14e879b9a82c +SIZE (ARMmbed-mbedtls-8c89224991adff88d53cd380f42a2baa36f91454_GH0.tar.gz) = 4587796 diff --git a/sysutils/edk2/files/patch-CryptoPkg_Library_OpensslLib_openssl_include_openssl_byteorder.h b/sysutils/edk2/files/patch-CryptoPkg_Library_OpensslLib_openssl_include_openssl_byteorder.h new file mode 100644 index 000000000000..701732d41f0c --- /dev/null +++ b/sysutils/edk2/files/patch-CryptoPkg_Library_OpensslLib_openssl_include_openssl_byteorder.h @@ -0,0 +1,15 @@ +--- CryptoPkg/Library/OpensslLib/openssl/include/openssl/byteorder.h.orig 2025-07-01 11:52:08 UTC ++++ CryptoPkg/Library/OpensslLib/openssl/include/openssl/byteorder.h +@@ -59,6 +59,12 @@ + # if defined(__OpenBSD__) + # include + # else ++# if defined(OPENSSL_SYS_UEFI) ++# define _UINT8_T_DECLARED ++# define _UINT16_T_DECLARED ++# define _UINT32_T_DECLARED ++# define _UINT64_T_DECLARED ++# endif + # include + # endif + # define OSSL_HTOBE16(x) htobe16(x) diff --git a/sysutils/edk2/files/patch-OvmfPkg_Bhyve_AcpiPlatformDxe_AcpiPlatform.c b/sysutils/edk2/files/patch-OvmfPkg_Bhyve_AcpiPlatformDxe_AcpiPlatform.c deleted file mode 100644 index 1096a5e4d30c..000000000000 --- a/sysutils/edk2/files/patch-OvmfPkg_Bhyve_AcpiPlatformDxe_AcpiPlatform.c +++ /dev/null @@ -1,38 +0,0 @@ ---- OvmfPkg/Bhyve/AcpiPlatformDxe/AcpiPlatform.c.orig 2023-09-07 08:35:06 UTC -+++ OvmfPkg/Bhyve/AcpiPlatformDxe/AcpiPlatform.c -@@ -259,19 +259,17 @@ InstallAcpiTables ( - BHYVE_BIOS_PHYSICAL_END, - &Rsdp - ); -- if (EFI_ERROR (Status)) { -- return Status; -- } -- -- Status = InstallAcpiTablesFromRsdp ( -- AcpiTable, -- Rsdp -- ); - if (!EFI_ERROR (Status)) { -- return EFI_SUCCESS; -+ Status = InstallAcpiTablesFromRsdp ( -+ AcpiTable, -+ Rsdp -+ ); -+ if (!EFI_ERROR (Status)) { -+ return EFI_SUCCESS; -+ } - } - -- if (Status != EFI_NOT_FOUND) { -+ if (EFI_ERROR (Status)) { - DEBUG ( - ( - DEBUG_WARN, -@@ -280,7 +278,6 @@ InstallAcpiTables ( - Status - ) - ); -- return Status; - } - - Status = InstallOvmfFvTables (AcpiTable); diff --git a/sysutils/edk2/files/patch-OvmfPkg_Bhyve_PlatformPei_Platform.c b/sysutils/edk2/files/patch-OvmfPkg_Bhyve_PlatformPei_Platform.c deleted file mode 100644 index 38dd3d905ee1..000000000000 --- a/sysutils/edk2/files/patch-OvmfPkg_Bhyve_PlatformPei_Platform.c +++ /dev/null @@ -1,13 +0,0 @@ ---- OvmfPkg/Bhyve/PlatformPei/Platform.c.orig 2023-11-17 12:26:16 UTC -+++ OvmfPkg/Bhyve/PlatformPei/Platform.c -@@ -153,8 +153,8 @@ MemMapInitialization ( - UINT64 PciIoSize; - RETURN_STATUS PcdStatus; - -- PciIoBase = 0xC000; -- PciIoSize = 0x4000; -+ PciIoBase = 0x2000; -+ PciIoSize = 0xE000; - - // - // Create Memory Type Information HOB diff --git a/sysutils/edk2/files/patch-remove-memattr-protocol b/sysutils/edk2/files/patch-remove-memattr-protocol new file mode 100644 index 000000000000..5ca2202289ac --- /dev/null +++ b/sysutils/edk2/files/patch-remove-memattr-protocol @@ -0,0 +1,353 @@ +--- UefiCpuPkg/CpuDxe/CpuDxe.c.orig 2025-05-07 09:03:43 UTC ++++ UefiCpuPkg/CpuDxe/CpuDxe.c +@@ -1034,11 +1034,6 @@ InitializeCpu ( + ASSERT_EFI_ERROR (Status); + + // +- // Install EFI memory attribute Protocol +- // +- InstallEfiMemoryAttributeProtocol (mCpuHandle); +- +- // + // Refresh GCD memory space map according to MTRR value. + // + RefreshGcdMemoryAttributes (); +--- UefiCpuPkg/CpuDxe/CpuDxe.inf.orig 2025-05-07 09:04:04 UTC ++++ UefiCpuPkg/CpuDxe/CpuDxe.inf +@@ -75,7 +75,6 @@ + + [Protocols] + gEfiCpuArchProtocolGuid ## PRODUCES +- gEfiMemoryAttributeProtocolGuid ## PRODUCES + gEfiMpServiceProtocolGuid ## PRODUCES + gEfiSmmBase2ProtocolGuid ## SOMETIMES_CONSUMES + +--- UefiCpuPkg/CpuDxe/CpuPageTable.c.orig 2025-05-07 09:04:40 UTC ++++ UefiCpuPkg/CpuDxe/CpuPageTable.c +@@ -1436,298 +1436,3 @@ InitializePageTableLib ( + + return; + } +- +-/** +- This function set given attributes of the memory region specified by +- BaseAddress and Length. +- The valid Attributes is EFI_MEMORY_RP, EFI_MEMORY_XP, and EFI_MEMORY_RO. +- +- @param This The EFI_MEMORY_ATTRIBUTE_PROTOCOL instance. +- @param BaseAddress The physical address that is the start address of +- a memory region. +- @param Length The size in bytes of the memory region. +- @param Attributes The bit mask of attributes to set for the memory +- region. +- +- @retval EFI_SUCCESS The attributes were set for the memory region. +- @retval EFI_INVALID_PARAMETER Length is zero. +- Attributes specified an illegal combination of +- attributes that cannot be set together. +- @retval EFI_UNSUPPORTED The processor does not support one or more +- bytes of the memory resource range specified +- by BaseAddress and Length. +- The bit mask of attributes is not supported for +- the memory resource range specified by +- BaseAddress and Length. +- @retval EFI_OUT_OF_RESOURCES Requested attributes cannot be applied due to lack of +- system resources. +- @retval EFI_ACCESS_DENIED Attributes for the requested memory region are +- controlled by system firmware and cannot be updated +- via the protocol. +-**/ +-EFI_STATUS +-EFIAPI +-EfiSetMemoryAttributes ( +- IN EFI_MEMORY_ATTRIBUTE_PROTOCOL *This, +- IN EFI_PHYSICAL_ADDRESS BaseAddress, +- IN UINT64 Length, +- IN UINT64 Attributes +- ) +-{ +- RETURN_STATUS Status; +- BOOLEAN IsModified; +- BOOLEAN IsSplitted; +- +- DEBUG ((DEBUG_VERBOSE, "%a: 0x%lx - 0x%lx (0x%lx)\n", __func__, BaseAddress, Length, Attributes)); +- +- if (Attributes == 0) { +- DEBUG ((DEBUG_ERROR, "%a: Error - Attributes == 0\n", __func__)); +- return EFI_INVALID_PARAMETER; +- } +- +- if ((Attributes & ~EFI_MEMORY_ACCESS_MASK) != 0) { +- DEBUG ((DEBUG_ERROR, "%a: Error - Attributes(0x%lx) invalid\n", __func__, Attributes)); +- return EFI_INVALID_PARAMETER; +- } +- +- if (Length == 0) { +- DEBUG ((DEBUG_ERROR, "%a: Length is 0!\n", __func__)); +- return RETURN_INVALID_PARAMETER; +- } +- +- Status = ConvertMemoryPageAttributes (NULL, BaseAddress, Length, Attributes, PageActionSet, NULL, &IsSplitted, &IsModified); +- if (!EFI_ERROR (Status)) { +- if (IsModified) { +- // +- // Flush TLB as last step. +- // +- // Note: Since APs will always init CR3 register in HLT loop mode or do +- // TLB flush in MWAIT loop mode, there's no need to flush TLB for them +- // here. +- // +- CpuFlushTlb (); +- } +- } else { +- DEBUG ((DEBUG_ERROR, "%a: Failed in ConvertMemoryPageAttributes (%r)\n", __func__, Status)); +- } +- +- return Status; +-} +- +-/** +- This function clears given attributes of the memory region specified by +- BaseAddress and Length. +- The valid Attributes is EFI_MEMORY_RP, EFI_MEMORY_XP, and EFI_MEMORY_RO. +- @param This The EFI_MEMORY_ATTRIBUTE_PROTOCOL instance. +- @param BaseAddress The physical address that is the start address of +- a memory region. +- @param Length The size in bytes of the memory region. +- @param Attributes The bit mask of attributes to clear for the memory +- region. +- +- @retval EFI_SUCCESS The attributes were cleared for the memory region. +- @retval EFI_INVALID_PARAMETER Length is zero. +- Attributes specified an illegal combination of +- attributes that cannot be cleared together. +- @retval EFI_UNSUPPORTED The processor does not support one or more +- bytes of the memory resource range specified +- by BaseAddress and Length. +- The bit mask of attributes is not supported for +- the memory resource range specified by +- BaseAddress and Length. +- @retval EFI_OUT_OF_RESOURCES Requested attributes cannot be applied due to lack of +- system resources. +- @retval EFI_ACCESS_DENIED Attributes for the requested memory region are +- controlled by system firmware and cannot be updated +- via the protocol. +-**/ +-EFI_STATUS +-EFIAPI +-EfiClearMemoryAttributes ( +- IN EFI_MEMORY_ATTRIBUTE_PROTOCOL *This, +- IN EFI_PHYSICAL_ADDRESS BaseAddress, +- IN UINT64 Length, +- IN UINT64 Attributes +- ) +-{ +- RETURN_STATUS Status; +- BOOLEAN IsModified; +- BOOLEAN IsSplitted; +- +- DEBUG ((DEBUG_VERBOSE, "%a: 0x%lx - 0x%lx (0x%lx)\n", __func__, BaseAddress, Length, Attributes)); +- +- if (Attributes == 0) { +- DEBUG ((DEBUG_ERROR, "%a: Error - Attributes == 0\n", __func__)); +- return EFI_INVALID_PARAMETER; +- } +- +- if ((Attributes & ~EFI_MEMORY_ACCESS_MASK) != 0) { +- DEBUG ((DEBUG_ERROR, "%a: Error - Attributes(0x%lx) invalid\n", __func__, Attributes)); +- return EFI_INVALID_PARAMETER; +- } +- +- if (Length == 0) { +- DEBUG ((DEBUG_ERROR, "%a: Length is 0!\n", __func__)); +- return RETURN_INVALID_PARAMETER; +- } +- +- Status = ConvertMemoryPageAttributes (NULL, BaseAddress, Length, Attributes, PageActionClear, NULL, &IsSplitted, &IsModified); +- if (!EFI_ERROR (Status)) { +- if (IsModified) { +- // +- // Flush TLB as last step. +- // +- // Note: Since APs will always init CR3 register in HLT loop mode or do +- // TLB flush in MWAIT loop mode, there's no need to flush TLB for them +- // here. +- // +- CpuFlushTlb (); +- } +- } else { +- DEBUG ((DEBUG_ERROR, "%a: Failed in ConvertMemoryPageAttributes (%r)\n", __func__, Status)); +- } +- +- return Status; +-} +- +-/** +- This function retrieves the attributes of the memory region specified by +- BaseAddress and Length. If different attributes are got from different part +- of the memory region, EFI_NO_MAPPING will be returned. +- +- @param This The EFI_MEMORY_ATTRIBUTE_PROTOCOL instance. +- @param BaseAddress The physical address that is the start address of +- a memory region. +- @param Length The size in bytes of the memory region. +- @param Attributes Pointer to attributes returned. +- +- @retval EFI_SUCCESS The attributes got for the memory region. +- @retval EFI_INVALID_PARAMETER Length is zero. +- Attributes is NULL. +- @retval EFI_NO_MAPPING Attributes are not consistent cross the memory +- region. +- @retval EFI_UNSUPPORTED The processor does not support one or more +- bytes of the memory resource range specified +- by BaseAddress and Length. +-**/ +-EFI_STATUS +-EFIAPI +-EfiGetMemoryAttributes ( +- IN EFI_MEMORY_ATTRIBUTE_PROTOCOL *This, +- IN EFI_PHYSICAL_ADDRESS BaseAddress, +- IN UINT64 Length, +- OUT UINT64 *Attributes +- ) +-{ +- PAGE_TABLE_LIB_PAGING_CONTEXT CurrentPagingContext; +- EFI_PHYSICAL_ADDRESS Address; +- UINT64 *PageEntry; +- UINT64 MemAttr; +- PAGE_ATTRIBUTE PageAttr; +- INT64 Size; +- UINT64 AddressEncMask; +- +- DEBUG ((DEBUG_VERBOSE, "%a: 0x%lx - 0x%lx\n", __func__, BaseAddress, Length)); +- +- if (!IS_ALIGNED (BaseAddress, EFI_PAGE_SIZE)) { +- DEBUG ((DEBUG_ERROR, "%a: BaseAddress(0x%lx) is not aligned!\n", __func__, BaseAddress)); +- return EFI_UNSUPPORTED; +- } +- +- if (!IS_ALIGNED (Length, EFI_PAGE_SIZE)) { +- DEBUG ((DEBUG_ERROR, "%a: Length(0x%lx) is not aligned!\n", __func__, Length)); +- return EFI_UNSUPPORTED; +- } +- +- if (Length == 0) { +- DEBUG ((DEBUG_ERROR, "%a: Length is 0!\n", __func__)); +- return RETURN_INVALID_PARAMETER; +- } +- +- if (Attributes == NULL) { +- DEBUG ((DEBUG_ERROR, "%a: Attributes is NULL\n", __func__)); +- return EFI_INVALID_PARAMETER; +- } +- +- Size = (INT64)Length; +- MemAttr = (UINT64)-1; +- +- // Make sure AddressEncMask is contained to smallest supported address field. +- // +- AddressEncMask = PcdGet64 (PcdPteMemoryEncryptionAddressOrMask) & PAGING_1G_ADDRESS_MASK_64; +- +- GetCurrentPagingContext (&CurrentPagingContext); +- +- do { +- PageEntry = GetPageTableEntry (&CurrentPagingContext, BaseAddress, &PageAttr); +- if ((PageEntry == NULL) || (PageAttr == PageNone)) { +- return EFI_UNSUPPORTED; +- } +- +- // +- // If the memory range is cross page table boundary, make sure they +- // share the same attribute. Return EFI_NO_MAPPING if not. +- // +- *Attributes = GetAttributesFromPageEntry (PageEntry); +- if ((MemAttr != (UINT64)-1) && (*Attributes != MemAttr)) { +- return EFI_NO_MAPPING; +- } +- +- switch (PageAttr) { +- case Page4K: +- Address = *PageEntry & ~AddressEncMask & PAGING_4K_ADDRESS_MASK_64; +- Size -= (EFI_PAGE_SIZE - (BaseAddress - Address)); +- BaseAddress += (EFI_PAGE_SIZE - (BaseAddress - Address)); +- break; +- +- case Page2M: +- Address = *PageEntry & ~AddressEncMask & PAGING_2M_ADDRESS_MASK_64; +- Size -= SIZE_2MB - (BaseAddress - Address); +- BaseAddress += SIZE_2MB - (BaseAddress - Address); +- break; +- +- case Page1G: +- Address = *PageEntry & ~AddressEncMask & PAGING_1G_ADDRESS_MASK_64; +- Size -= SIZE_1GB - (BaseAddress - Address); +- BaseAddress += SIZE_1GB - (BaseAddress - Address); +- break; +- +- default: +- return EFI_UNSUPPORTED; +- } +- +- MemAttr = *Attributes; +- } while (Size > 0); +- +- DEBUG ((DEBUG_VERBOSE, "%a: Attributes is 0x%lx\n", __func__, *Attributes)); +- +- return EFI_SUCCESS; +-} +- +-EFI_MEMORY_ATTRIBUTE_PROTOCOL mMemoryAttributeProtocol = { +- EfiGetMemoryAttributes, +- EfiSetMemoryAttributes, +- EfiClearMemoryAttributes, +-}; +- +-/** +- Install Efi Memory Attribute Protocol. +- +- @param Handle A pointer to the EFI_HANDLE on which the interface is to be installed +- +-**/ +-VOID +-InstallEfiMemoryAttributeProtocol ( +- IN EFI_HANDLE Handle +- ) +-{ +- EFI_STATUS Status; +- +- Status = gBS->InstallMultipleProtocolInterfaces ( +- &Handle, +- &gEfiMemoryAttributeProtocolGuid, +- &mMemoryAttributeProtocol, +- NULL +- ); +- ASSERT_EFI_ERROR (Status); +-} +--- UefiCpuPkg/CpuDxe/CpuPageTable.h.orig 2025-05-07 09:06:57 UTC ++++ UefiCpuPkg/CpuDxe/CpuPageTable.h +@@ -10,7 +10,6 @@ + #define _PAGE_TABLE_LIB_H_ + + #include +-#include + + #define PAGE_TABLE_LIB_PAGING_CONTEXT_IA32_X64_ATTRIBUTES_PSE BIT0 + #define PAGE_TABLE_LIB_PAGING_CONTEXT_IA32_X64_ATTRIBUTES_PAE BIT1 +@@ -152,17 +151,6 @@ GetPagingDetails ( + IN PAGE_TABLE_LIB_PAGING_CONTEXT_DATA *PagingContextData, + OUT UINTN **PageTableBase OPTIONAL, + OUT UINT32 **Attributes OPTIONAL +- ); +- +-/** +- Install Efi Memory Attribute Protocol. +- +- @param Handle A pointer to the EFI_HANDLE on which the interface is to be installed +- +-**/ +-VOID +-InstallEfiMemoryAttributeProtocol ( +- IN EFI_HANDLE Handle + ); + + #endif