summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey <9vlc@proton.me>2026-01-10 22:34:46 +0100
committerRobert Clausecker <fuz@FreeBSD.org>2026-01-11 16:30:13 +0100
commit5348ddeb81561a909ffe20323bf68225341d82ed (patch)
tree5b9209110e3c442553ff210d168c36dbe1cb35d2
parentf758ead10bc27066b50664d9af6a7f42513da2b7 (diff)
sysutils/edk2: update to 2025008
Patch to update EDK2 OVMF firmware package used in bhyve and some ARM platforms from 2023 to 2025 stable release. New submodules added in GH_TUPLE, some script for build has been moved to a bash subshell. BHYVE notices: tiny boot speedup, a bug with crashing on CPU sensor wmsr from HWiNFO has stopped occurring, a bug with glibc apps crashing in Linux VMs has stopped occurring, a crash on memtest86+ with more than 1 vCPU has stopped occurring. No new bugs seem to have surfaced. PR: 285554 Tested by: novel MFH: 2025Q4 (cherry picked from commit bafbff663ba59c9c6f10acecc3c4b86dee155f43)
-rw-r--r--sysutils/edk2/Makefile130
-rw-r--r--sysutils/edk2/distinfo50
-rw-r--r--sysutils/edk2/files/patch-CryptoPkg_Library_OpensslLib_openssl_include_openssl_byteorder.h15
-rw-r--r--sysutils/edk2/files/patch-OvmfPkg_Bhyve_AcpiPlatformDxe_AcpiPlatform.c38
-rw-r--r--sysutils/edk2/files/patch-OvmfPkg_Bhyve_PlatformPei_Platform.c13
-rw-r--r--sysutils/edk2/files/patch-remove-memattr-protocol353
6 files changed, 472 insertions, 127 deletions
diff --git a/sysutils/edk2/Makefile b/sysutils/edk2/Makefile
index 5b1947c88b2d..838625b6f90e 100644
--- a/sysutils/edk2/Makefile
+++ b/sysutils/edk2/Makefile
@@ -1,13 +1,12 @@
PORTNAME= edk2
-PORTVERSION= g202308
-PORTREVISION= 5
+PORTVERSION= g202508
CATEGORIES= sysutils
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
MAINTAINER= uboot@FreeBSD.org
COMMENT= EDK2 Firmware for ${FLAVOR}
-WWW= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/
+WWW= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/
LICENSE= BSD3CLAUSE
@@ -15,39 +14,49 @@ ONLY_FOR_ARCHS= aarch64 amd64
ONLY_FOR_ARCHS_REASON= only provides firmware for aarch64 and amd64
PKGNAMESUFFIX= -${FLAVOR:C/_/-/g}
-FLAVORS= macchiatobin fvp rpi3 rpi4 xen_x64 bhyve qemu_x64 qemu_i386
+FLAVORS= bhyve macchiatobin fvp rpi3 rpi4 xen_x64 qemu_x64 qemu_i386
-USES= cpe gmake python:build
+USES= dos2unix cpe gmake python:build
CPE_VENDOR= tianocore
-USE_GCC= yes:build
+USE_GCC= yes
+DOS2UNIX_FILES= UefiCpuPkg/CpuDxe/CpuDxe.inf \
+ UefiCpuPkg/CpuDxe/CpuDxe.c \
+ UefiCpuPkg/CpuDxe/CpuPageTable.c \
+ UefiCpuPkg/CpuDxe/CpuPageTable.h
BUILD_DEPENDS+= dtc>=1.4.1:sysutils/dtc \
bash:shells/bash
# Both platform and non-osi repository don't have release, use latest known to work tag
-PLATFORM_TAG= e509ac5a72
-NONOSI_TAG= 8c09bd0955
+PLATFORM_TAG= aa035ed7f469295802d51c7c001477e32da8a65f
+NONOSI_TAG= 3415f616e08a0d9c7bd264cab674929a7b0f5e33
USE_GITHUB= yes
GH_ACCOUNT= tianocore
-GH_TAGNAME= edk2-stable202308
+GH_TAGNAME= edk2-stable202508
GH_TUPLE= tianocore:edk2-platforms:${PLATFORM_TAG}:platforms \
tianocore:edk2-non-osi:${NONOSI_TAG}:nonosi \
- google:brotli:v1.0.9-35-gf4153a0:brotli/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli \
- google:googletest:release-1.8.0-2983-g86add134:googletest/UnitTestFrameworkPkg/Library/GoogleTestLib/googletest \
- MIPI-Alliance:public-mipi-sys-t:v1.1+edk2:mipisyst/MdePkg/Library/MipiSysTLib/mipisyst \
- openssl:openssl:openssl-3.0.9:openssl/CryptoPkg/Library/OpensslLib/openssl \
- tianocore:edk2-cmocka:cmocka-1.1.5-23-g1cc9cde:cmocka/UnitTestFrameworkPkg/Library/CmockaLib/cmocka
+ tianocore:edk2-subhook:83d4e1ebef3588fae48b69a7352cc21801cb70bc:edk2_subhook/UnitTestFrameworkPkg/Library/SubhookLib/subhook \
+ tianocore:edk2-cmocka:1cc9cde3448cdd2e000886a26acf1caac2db7cf1:edk2_cmocka/UnitTestFrameworkPkg/Library/CmockaLib/cmocka \
+ openssl:openssl:aea7aaf2abb04789f5868cbabec406ea43aa84bf:openssl/CryptoPkg/Library/OpensslLib/openssl \
+ kkos:oniguruma:4ef89209a239c1aea328cf13c05a2807e5c146d1:oniguruma/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma \
+ google:googletest:86add13493e5c881d7e4ba77fb91c1f57752b3a4:googletest/UnitTestFrameworkPkg/Library/GoogleTestLib/googletest \
+ google:brotli:f4153a09f87cbb9c826d8fc12c74642bb2d879ea:brotli/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli \
+ devicetree-org:pylibfdt:cfff805481bdea27f900c32698171286542b8d3c:pylibfdt/MdePkg/Library/BaseFdtLib/libfdt \
+ akheron:jansson:e9ebfa7e77a6bee77df44e096b100e7131044059:jansson/RedfishPkg/Library/JsonLib/jansson \
+ MIPI-Alliance:public-mipi-sys-t:370b5944c046bab043dd8b133727b2135af7747a:public_mipi_sys_t/MdePkg/Library/MipiSysTLib/mipisyst \
+ DMTF:libspdm:98ef964e1e9a0c39c7efb67143d3a13a819432e0:libspdm/SecurityPkg/DeviceSecurity/SpdmLib/libspdm \
+ ARMmbed:mbedtls:8c89224991adff88d53cd380f42a2baa36f91454:mbedtls/CryptoPkg/Library/MbedTlsLib/mbedtls
.include <bsd.port.pre.mk>
# Heavily dependent on bsd.port.pre.mk definitions for lang/gcc* details:
BINARY_ALIAS= make=${GMAKE} \
- dtc=${LOCALBASE}/bin/dtc \
- ar=${AR} \
gcc=${LOCALBASE}/bin/${CC} \
- gcc-ar=${LOCALBASE}/bin/${CC:S/gcc/&-ar/} \
g++=${LOCALBASE}/bin/${CXX} \
+ gcc-nm=${LOCALBASE}/bin/${CC:S/gcc/&-nm/} \
+ gcc-ar=${LOCALBASE}/bin/${CC:S/gcc/&-ar/} \
+ gcc-ranlib=${LOCALBASE}/bin/${CC:S/gcc/&-ranlib/} \
python3=${PYTHON_CMD} python=${PYTHON_CMD}
# Avoid: "ld-elf.so.1: /lib/libgcc_s.so.1: version GCC_4.5.0
@@ -65,7 +74,7 @@ PLAT_ARCH= AARCH64
PLAT_ARGS+= -D X64EMU_ENABLE=FALSE -D CAPSULE_ENABLE=FALSE
PLAT_TARGET= RELEASE
PLATFILE= Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
-PLAT_RESULT= ArmVExpress-FVP-AArch64/${PLAT_TARGET}_GCC5/FV/FVP_AARCH64_EFI.fd
+PLAT_RESULT= ArmVExpress-FVP-AArch64/${PLAT_TARGET}_GCC/FV/FVP_AARCH64_EFI.fd
PLAT_FILENAME= FVP_AARCH64_EFI.fd
.endif
@@ -75,7 +84,7 @@ PLAT_ARCH= AARCH64
PLAT_ARGS+= -D X64EMU_ENABLE=TRUE -D CAPSULE_ENABLE=FALSE
PLAT_TARGET= RELEASE
PLATFILE= Platform/SolidRun/Armada80x0McBin/Armada80x0McBin.dsc
-PLAT_RESULT= Armada80x0McBin-AARCH64/${PLAT_TARGET}_GCC5/FV/ARMADA_EFI.fd
+PLAT_RESULT= Armada80x0McBin-AARCH64/${PLAT_TARGET}_GCC/FV/ARMADA_EFI.fd
PLAT_FILENAME= ARMADA_EFI.fd
.endif
@@ -85,7 +94,7 @@ PLAT_ARCH= AARCH64
PLAT_ARGS+= -D X64EMU_ENABLE=FALSE -D CAPSULE_ENABLE=FALSE
PLAT_TARGET= RELEASE
PLATFILE= Platform/RaspberryPi/RPi3/RPi3.dsc
-PLAT_RESULT= RPi3/${PLAT_TARGET}_GCC5/FV/RPI_EFI.fd
+PLAT_RESULT= 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 <sys/types.h>
+ # else
++# if defined(OPENSSL_SYS_UEFI)
++# define _UINT8_T_DECLARED
++# define _UINT16_T_DECLARED
++# define _UINT32_T_DECLARED
++# define _UINT64_T_DECLARED
++# endif
+ # include <sys/endian.h>
+ # 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 <IndustryStandard/PeImage.h>
+-#include <Protocol/MemoryAttribute.h>
+
+ #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