all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH edk2-firmware] add patch to revert addition of EFI memory attributes protocol for x86_64
@ 2025-03-27 11:53 Fiona Ebner
  2025-03-27 16:39 ` [pve-devel] applied: " Thomas Lamprecht
  0 siblings, 1 reply; 3+ messages in thread
From: Fiona Ebner @ 2025-03-27 11:53 UTC (permalink / raw)
  To: pve-devel

Because of a long-standing bug in shim [0], booting will fail for
distibutions that do not include the fix yet, like Rocky Linux 9.5
and other CentOS-based distibutions. This is cased by the addition
of the EFI_MEMORY_ATTRIBUTE_PROTOCOL in edk2 commit efaa102d00
("UefiCpuPkg: Produce EFI memory attributes protocol") for x86_64.

Even with the fix in shim, issues in commonly shipped versions of GRUB
remain [1].

This is relatively recent, i.e. in the edk2-stable202502 tag, and
since current non-minor distributions are still affected, revert the
problematic commit for now.

Once issues are less common in distributions, an option to support
disabling it (via fw_cfg on the QEMU command line) can still be added
[1]. Then, it can also be nicely documented as a known issue while
giving users guidance.

There already is a similar patch for ARM [2] inherited from the Debian
upstream version.

The problematic commit is EFI_MEMORY_ATTRIBUTE_PROTOCOL was added for x86_64 recently in the
edk2-stable202502 tag. Since current non-minor distributions are still
affected, a revert is done for now.

[0]: https://github.com/rhboot/shim/commit/c7b305152802c8db688605654f75e1195def9fd6
[1]: https://github.com/tianocore/edk2/pull/10667
[2]: ./debian/patches/ArmVirtPkg-disable-the-EFI_MEMORY_ATTRIBUTE-protocol.patch

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---
 ...g-Produce-EFI-memory-attributes-prot.patch | 368 ++++++++++++++++++
 debian/patches/series                         |   1 +
 2 files changed, 369 insertions(+)
 create mode 100644 debian/patches/Revert-UefiCpuPkg-Produce-EFI-memory-attributes-prot.patch

diff --git a/debian/patches/Revert-UefiCpuPkg-Produce-EFI-memory-attributes-prot.patch b/debian/patches/Revert-UefiCpuPkg-Produce-EFI-memory-attributes-prot.patch
new file mode 100644
index 0000000..40942f3
--- /dev/null
+++ b/debian/patches/Revert-UefiCpuPkg-Produce-EFI-memory-attributes-prot.patch
@@ -0,0 +1,368 @@
+Description: Revert "UefiCpuPkg: Produce EFI memory attributes protocol"
+ Because of a long-standing bug in shim [0], booting will fail for distributions
+ that do not include the fix yet, like Rocky Linux 9.5. Temporarily disable the
+ EFI_MEMORY_ATTRIBUTE_PROTOCOL again. There already is a similar patch for ARM:
+ ArmVirtPkg-disable-the-EFI_MEMORY_ATTRIBUTE-protocol.patch
+ [0]: https://github.com/rhboot/shim/commit/c7b305152802c8db688605654f75e1195def9fd6
+Author: Fiona Ebner <f.ebner@proxmox.com>
+Last-Update: 2025-03-27
+
+diff --git a/UefiCpuPkg/CpuDxe/CpuDxe.c b/UefiCpuPkg/CpuDxe/CpuDxe.c
+index 472de55180..bf03978710 100644
+--- a/UefiCpuPkg/CpuDxe/CpuDxe.c
++++ b/UefiCpuPkg/CpuDxe/CpuDxe.c
+@@ -1033,11 +1033,6 @@ InitializeCpu (
+                   );
+   ASSERT_EFI_ERROR (Status);
+ 
+-  //
+-  // Install EFI memory attribute Protocol
+-  //
+-  InstallEfiMemoryAttributeProtocol (mCpuHandle);
+-
+   //
+   // Refresh GCD memory space map according to MTRR value.
+   //
+diff --git a/UefiCpuPkg/CpuDxe/CpuDxe.inf b/UefiCpuPkg/CpuDxe/CpuDxe.inf
+index b2954ba234..fca74c44b3 100644
+--- a/UefiCpuPkg/CpuDxe/CpuDxe.inf
++++ b/UefiCpuPkg/CpuDxe/CpuDxe.inf
+@@ -75,7 +75,6 @@
+ 
+ [Protocols]
+   gEfiCpuArchProtocolGuid                       ## PRODUCES
+-  gEfiMemoryAttributeProtocolGuid               ## PRODUCES
+   gEfiMpServiceProtocolGuid                     ## PRODUCES
+   gEfiSmmBase2ProtocolGuid                      ## SOMETIMES_CONSUMES
+ 
+diff --git a/UefiCpuPkg/CpuDxe/CpuPageTable.c b/UefiCpuPkg/CpuDxe/CpuPageTable.c
+index 9a519bcb7e..c5bf2285ac 100644
+--- a/UefiCpuPkg/CpuDxe/CpuPageTable.c
++++ b/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);
+-}
+diff --git a/UefiCpuPkg/CpuDxe/CpuPageTable.h b/UefiCpuPkg/CpuDxe/CpuPageTable.h
+index f2694452f5..607e936b8a 100644
+--- a/UefiCpuPkg/CpuDxe/CpuPageTable.h
++++ b/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
+@@ -154,15 +153,4 @@ GetPagingDetails (
+   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
diff --git a/debian/patches/series b/debian/patches/series
index c18b4e8..45b3050 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,4 @@ brotlicompress-disable.diff
 x64-baseline-abi.patch
 Revert-ArmVirtPkg-make-EFI_LOADER_DATA-non-executabl.patch
 ArmVirtPkg-disable-the-EFI_MEMORY_ATTRIBUTE-protocol.patch
+Revert-UefiCpuPkg-Produce-EFI-memory-attributes-prot.patch
-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [pve-devel] applied: [PATCH edk2-firmware] add patch to revert addition of EFI memory attributes protocol for x86_64
  2025-03-27 11:53 [pve-devel] [PATCH edk2-firmware] add patch to revert addition of EFI memory attributes protocol for x86_64 Fiona Ebner
@ 2025-03-27 16:39 ` Thomas Lamprecht
  2025-03-28  8:55   ` Fiona Ebner
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Lamprecht @ 2025-03-27 16:39 UTC (permalink / raw)
  To: Proxmox VE development discussion, Fiona Ebner

Am 27.03.25 um 12:53 schrieb Fiona Ebner:
> Because of a long-standing bug in shim [0], booting will fail for
> distibutions that do not include the fix yet, like Rocky Linux 9.5
> and other CentOS-based distibutions. This is cased by the addition
> of the EFI_MEMORY_ATTRIBUTE_PROTOCOL in edk2 commit efaa102d00
> ("UefiCpuPkg: Produce EFI memory attributes protocol") for x86_64.
> 
> Even with the fix in shim, issues in commonly shipped versions of GRUB
> remain [1].
> 
> This is relatively recent, i.e. in the edk2-stable202502 tag, and
> since current non-minor distributions are still affected, revert the
> problematic commit for now.
> 
> Once issues are less common in distributions, an option to support
> disabling it (via fw_cfg on the QEMU command line) can still be added
> [1]. Then, it can also be nicely documented as a known issue while
> giving users guidance.
> 
> There already is a similar patch for ARM [2] inherited from the Debian
> upstream version.
> 
> The problematic commit is EFI_MEMORY_ATTRIBUTE_PROTOCOL was added for x86_64 recently in the
> edk2-stable202502 tag. Since current non-minor distributions are still
> affected, a revert is done for now.
> 
> [0]: https://github.com/rhboot/shim/commit/c7b305152802c8db688605654f75e1195def9fd6
> [1]: https://github.com/tianocore/edk2/pull/10667
> [2]: ./debian/patches/ArmVirtPkg-disable-the-EFI_MEMORY_ATTRIBUTE-protocol.patch
> 
> Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
> ---
>  ...g-Produce-EFI-memory-attributes-prot.patch | 368 ++++++++++++++++++
>  debian/patches/series                         |   1 +
>  2 files changed, 369 insertions(+)
>  create mode 100644 debian/patches/Revert-UefiCpuPkg-Produce-EFI-memory-attributes-prot.patch
> 
>

applied, re-exported the revert using git format-patch as the unusual
DOS line-endings that EDK2 source code uses seem to got lost somewhere
along the way, and while I could have used quilt I figured there's no
harm with format-patch, thanks!


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [pve-devel] applied: [PATCH edk2-firmware] add patch to revert addition of EFI memory attributes protocol for x86_64
  2025-03-27 16:39 ` [pve-devel] applied: " Thomas Lamprecht
@ 2025-03-28  8:55   ` Fiona Ebner
  0 siblings, 0 replies; 3+ messages in thread
From: Fiona Ebner @ 2025-03-28  8:55 UTC (permalink / raw)
  To: Thomas Lamprecht, Proxmox VE development discussion

Am 27.03.25 um 17:39 schrieb Thomas Lamprecht:
> Am 27.03.25 um 12:53 schrieb Fiona Ebner:
>> Because of a long-standing bug in shim [0], booting will fail for
>> distibutions that do not include the fix yet, like Rocky Linux 9.5
>> and other CentOS-based distibutions. This is cased by the addition
>> of the EFI_MEMORY_ATTRIBUTE_PROTOCOL in edk2 commit efaa102d00
>> ("UefiCpuPkg: Produce EFI memory attributes protocol") for x86_64.
>>
>> Even with the fix in shim, issues in commonly shipped versions of GRUB
>> remain [1].
>>
>> This is relatively recent, i.e. in the edk2-stable202502 tag, and
>> since current non-minor distributions are still affected, revert the
>> problematic commit for now.
>>
>> Once issues are less common in distributions, an option to support
>> disabling it (via fw_cfg on the QEMU command line) can still be added
>> [1]. Then, it can also be nicely documented as a known issue while
>> giving users guidance.
>>
>> There already is a similar patch for ARM [2] inherited from the Debian
>> upstream version.
>>
>> The problematic commit is EFI_MEMORY_ATTRIBUTE_PROTOCOL was added for x86_64 recently in the
>> edk2-stable202502 tag. Since current non-minor distributions are still
>> affected, a revert is done for now.
>>
>> [0]: https://github.com/rhboot/shim/commit/c7b305152802c8db688605654f75e1195def9fd6
>> [1]: https://github.com/tianocore/edk2/pull/10667
>> [2]: ./debian/patches/ArmVirtPkg-disable-the-EFI_MEMORY_ATTRIBUTE-protocol.patch
>>
>> Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
>> ---
>>  ...g-Produce-EFI-memory-attributes-prot.patch | 368 ++++++++++++++++++
>>  debian/patches/series                         |   1 +
>>  2 files changed, 369 insertions(+)
>>  create mode 100644 debian/patches/Revert-UefiCpuPkg-Produce-EFI-memory-attributes-prot.patch
>>
>>
> 
> applied, re-exported the revert using git format-patch as the unusual
> DOS line-endings that EDK2 source code uses seem to got lost somewhere
> along the way, and while I could have used quilt I figured there's no
> harm with format-patch, thanks!

Right, there's that issue with mailman (which I forgot about since the
last time this came up was nearly 2 years ago):
https://lore.proxmox.com/pve-devel/c72e637b-2e92-2ff5-0bc5-0c99d55b2ec8@proxmox.com/

CC-ing Stoiko


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-03-28  8:56 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-27 11:53 [pve-devel] [PATCH edk2-firmware] add patch to revert addition of EFI memory attributes protocol for x86_64 Fiona Ebner
2025-03-27 16:39 ` [pve-devel] applied: " Thomas Lamprecht
2025-03-28  8:55   ` Fiona Ebner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal