Reviewed-by: Liming Gao <gaolim...@byosoft.com.cn>

> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Igniculus.Fu
> via groups.io
> 发送时间: 2024年1月2日 14:27
> 收件人: devel@edk2.groups.io
> 抄送: Bob Feng <bob.c.f...@intel.com>; Liming Gao
> <gaolim...@byosoft.com.cn>; Yuwei Chen <yuwei.c...@intel.com>; Abner
> Chang <abner.ch...@amd.com>; Eric Xing <eric.x...@amd.com>; Abdul
> Lateef Attar <abdat...@amd.com>
> 主题: [edk2-devel] [PATCH] BaseTools/GenFds: Apply OEM_CAPSULE_FLAGS
> during Capsule generation.
> 
> From: Igniculus Fu <igniculus...@amd.com>
> 
> Bugzilla ticket #4633
> 
> FdfParser.py has defined a key named OEM_CAPSULE_FLAGS to set the
> lower 16 bits of EFI_CAPSULE_HEADER.Flags. However, this key is totally
> "forgotten" in Capsule.py, making it impossible to set lower 16 bits of
> this field, and leading to an always FALSE when comparing to
> gEfiMdeModulePkgTokenSpaceGuid.PcdSystemRebootAfterCapsuleProcessFla
> g
> in MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleProcessLib.c:
> ProcessTheseCapsules().
> 
> This patch ORs the value of OEM_CAPSULE_FLAGS with previously calculated
> CAPSULE_FLAGS value, making the lower 16 bits of value being correctly
set.
> 
> Signed-off-by: Igniculus Fu <igniculus...@amd.com>
> Cc: Bob Feng <bob.c.f...@intel.com>
> Cc: Liming Gao <gaolim...@byosoft.com.cn>
> Cc: Yuwei Chen <yuwei.c...@intel.com>
> Cc: Abner Chang <abner.ch...@amd.com>
> Cc: Eric Xing <eric.x...@amd.com>
> Cc: Abdul Lateef Attar <abdat...@amd.com>
> 
> ---
>  BaseTools/Source/Python/GenFds/Capsule.py | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/BaseTools/Source/Python/GenFds/Capsule.py
> b/BaseTools/Source/Python/GenFds/Capsule.py
> index f4bfc74e55..d274d8f03e 100644
> --- a/BaseTools/Source/Python/GenFds/Capsule.py
> +++ b/BaseTools/Source/Python/GenFds/Capsule.py
> @@ -1,6 +1,7 @@
>  ## @file
>  # generate capsule
>  #
> +#  Copyright (C) 2024 Advanced Micro Devices, Inc. All rights
reserved.<BR>
>  #  Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
>  #
>  #  SPDX-License-Identifier: BSD-2-Clause-Patent
> @@ -78,6 +79,8 @@ class Capsule (CapsuleClassObject):
>                      Flags |= 0x00010000
>                  elif flag == 'InitiateReset':
>                      Flags |= 0x00040000
> +        if 'OEM_CAPSULE_FLAGS' in self.TokensDict:
> +            Flags |= int(self.TokensDict['OEM_CAPSULE_FLAGS'],16)
>          Header.write(pack('=I', Flags))
>          #
>          # typedef struct {
> --
> 2.38.1.windows.1
> 
> 
> 
> 
> 





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113336): https://edk2.groups.io/g/devel/message/113336
Mute This Topic: https://groups.io/mt/103589200/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to