[edk2-devel] [PATCH v1 06/10] Silicon/Phytium: Added Logo support to Phytium Silicon

Ling Jia jialing at phytium.com.cn
Fri Jan 15 08:47:58 UTC 2021


From: Ling <jialing at phytium.com.cn>

The LogoLib and PhytiumLogo.bmp is used to supported
the function of image display in the setup interface.

Cc: Leif Lindholm <leif at nuviainc.com>
Signed-off-by: Ling Jia <jialing at phytium.com.cn>
Signed-off-by: Peng Xie <xiepeng at phytium.com.cn>
Reviewed-by: Yiqi Shu <shuyiqi at phytium.com.cn>
---
 Platform/Phytium/Durian/DurianPkg.dsc       |   1 +
 Platform/Phytium/Durian/DurianPkg.fdf       |   8 ++
 Silicon/Phytium/Library/LogoLib/LogoLib.inf |  58 +++++++++
 Silicon/Phytium/Library/LogoLib/Logo.c      | 133 ++++++++++++++++++++
 Silicon/Phytium/Logo/PhytiumLogo.bmp        | Bin 0 -> 32454 bytes
 5 files changed, 200 insertions(+)

diff --git a/Platform/Phytium/Durian/DurianPkg.dsc b/Platform/Phytium/Durian/DurianPkg.dsc
index 09c90d590347..5c40d9fb5dce 100644
--- a/Platform/Phytium/Durian/DurianPkg.dsc
+++ b/Platform/Phytium/Durian/DurianPkg.dsc
@@ -28,6 +28,7 @@ [Defines]
 [LibraryClasses.common]
   # Phytium Platform library
   ArmPlatformLib|Silicon/Phytium/Phytium2000-4/Library/PhytiumPlatformLib/PhytiumPlatformLib.inf
+  LogoLib|Silicon/Phytium/Library/LogoLib/LogoLib.inf
 
   TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf
 
diff --git a/Platform/Phytium/Durian/DurianPkg.fdf b/Platform/Phytium/Durian/DurianPkg.fdf
index d50b2116b99a..d39d1a660102 100644
--- a/Platform/Phytium/Durian/DurianPkg.fdf
+++ b/Platform/Phytium/Durian/DurianPkg.fdf
@@ -192,6 +192,14 @@ [FV.FvMain]
   INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
   INF MdeModulePkg/Application/UiApp/UiApp.inf
 
+  #
+  # Logo
+  #
+  INF MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf
+  FILE FREEFORM = PCD(gPhytiumPlatformTokenSpaceGuid.PcdLogoFile) {
+    SECTION RAW = Silicon/Phytium/Logo/PhytiumLogo.bmp
+  }
+
 [FV.FVMAIN_COMPACT]
 FvAlignment        = 16
 ERASE_POLARITY     = 1
diff --git a/Silicon/Phytium/Library/LogoLib/LogoLib.inf b/Silicon/Phytium/Library/LogoLib/LogoLib.inf
new file mode 100644
index 000000000000..48311ff4e320
--- /dev/null
+++ b/Silicon/Phytium/Library/LogoLib/LogoLib.inf
@@ -0,0 +1,58 @@
+#/** @file
+#  General BDS defines and produce general interfaces for platform BDS driver including:
+#  1) BDS boot policy interface;
+#  2) BDS boot device connect interface;
+#  3) BDS Misc interfaces for mainting boot variable, ouput string, etc.
+#
+#  Copyright (C) 2020, Phytium Technology Co, Ltd. All rights reserved.<BR>
+#
+#  SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+#**/
+
+[Defines]
+  INF_VERSION                    = 0x00010019
+  BASE_NAME                      = LogoLib
+  FILE_GUID                      = e2a614da-40dc-11eb-a964-cfa221f53ad8
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = LogoLib|DXE_DRIVER UEFI_APPLICATION
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+#  VALID_ARCHITECTURES         = IA32 X64 IPF EBC
+#
+
+[Sources]
+  Logo.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+
+[LibraryClasses]
+  BaseLib
+  UefiBootServicesTableLib
+  MemoryAllocationLib
+  UefiLib
+  BaseMemoryLib
+  DebugLib
+  PrintLib
+  PcdLib
+  DxeServicesLib
+  BmpSupportLib
+
+[Guids]
+  gEfiConsoleOutDeviceGuid
+
+[Protocols]
+  gEfiGraphicsOutputProtocolGuid                # PROTOCOL SOMETIMES_CONSUMES
+  gEfiUgaDrawProtocolGuid |PcdUgaConsumeSupport # PROTOCOL SOMETIMES_CONSUMES
+  gEfiBootLogoProtocolGuid                      # PROTOCOL SOMETIMES_CONSUMES
+  gEfiUserManagerProtocolGuid                   # PROTOCOL CONSUMES
+
+[FeaturePcd]
+  gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport
+
+[Pcd]
diff --git a/Silicon/Phytium/Library/LogoLib/Logo.c b/Silicon/Phytium/Library/LogoLib/Logo.c
new file mode 100644
index 000000000000..c56c9c2671bf
--- /dev/null
+++ b/Silicon/Phytium/Library/LogoLib/Logo.c
@@ -0,0 +1,133 @@
+/** @file
+  Phytium Logo Library.
+
+  Copyright (C) 2020, Phytium Technology Co Ltd. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <PiDxe.h>
+#include <Protocol/SimpleTextOut.h>
+#include <Protocol/GraphicsOutput.h>
+#include <Protocol/UgaDraw.h>
+#include <Library/BaseLib.h>
+#include <Library/UefiLib.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/DxeServicesLib.h>
+#include <Library/PcdLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Library/DebugLib.h>
+#include <Library/BmpSupportLib.h>
+#include <IndustryStandard/Bmp.h>
+#include <Protocol/BootLogo.h>
+
+
+/**
+   Enabled the quiet boot.
+
+   @param[in] LogoFile       The guid of logofile.
+
+   @retval EFI_SUCCESS       Fuction executed successfully.
+   @retval EFI_UNSUPPORTED   Protocol or logofile not found.
+
+**/
+EFI_STATUS
+EFIAPI
+EnableQuietBoot (
+  IN  EFI_GUID  *LogoFile
+  )
+{
+  EFI_STATUS                    Status;
+  UINT32                        SizeOfX;
+  UINT32                        SizeOfY;
+  UINTN                         ImageSize;
+  UINTN                         BltSize;
+  UINTN                         Height;
+  UINTN                         Width;
+  EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Blt = NULL;
+  UINT8                         *ImageData = NULL;
+  EFI_GRAPHICS_OUTPUT_PROTOCOL  *GraphicsOutput;
+
+  DEBUG((DEBUG_INFO, "EnableQuietBoot()\n"));
+
+  Status = gBS->HandleProtocol (gST->ConsoleOutHandle, &gEfiGraphicsOutputProtocolGuid, (VOID **) &GraphicsOutput);
+  if (EFI_ERROR (Status)) {
+      return EFI_UNSUPPORTED;
+  }
+
+  gST->ConOut->EnableCursor (gST->ConOut, FALSE);
+  SizeOfX = GraphicsOutput->Mode->Info->HorizontalResolution;
+  SizeOfY = GraphicsOutput->Mode->Info->VerticalResolution;
+  DEBUG((DEBUG_INFO, "Gop:%lX %d x %d\n", (UINT64)(UINTN)GraphicsOutput, SizeOfX, SizeOfY));
+
+  Status = GetSectionFromAnyFv (LogoFile, EFI_SECTION_RAW, 0, (VOID **) &ImageData, &ImageSize);
+  if (EFI_ERROR (Status)) {
+    DEBUG((DEBUG_INFO, "Logo File Not Found!\n"));
+    Status = EFI_UNSUPPORTED;
+    goto ProcExit;
+  }
+
+  Status = TranslateBmpToGopBlt (
+             ImageData,
+             ImageSize,
+             &Blt,
+             &BltSize,
+             &Height,
+             &Width
+             );
+  if (EFI_ERROR (Status)) {
+      Status = EFI_UNSUPPORTED;
+      goto ProcExit;
+  }
+
+  Status = GraphicsOutput->Blt (
+                      GraphicsOutput,
+                      Blt,
+                      EfiBltBufferToVideo,
+                      0,
+                      0,
+                      (UINTN) (SizeOfX - Width) / 2,
+                      (UINTN) (SizeOfY - Height) / 2,
+                      Width,
+                      Height,
+                      Width * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
+                      );
+
+  DEBUG((DEBUG_INFO, "Draw %d x %d: %r\n", Width, Height, Status));
+
+ProcExit:
+  if(ImageData != NULL){
+    FreePool(ImageData);
+  }
+
+  if(Blt!=NULL){
+    FreePool(Blt);
+  }
+
+  return Status;
+}
+
+
+/**
+  Use SystemTable Conout to turn on video based Simple Text Out consoles. The
+  Simple Text Out screens will now be synced up with all non video output devices
+
+  @param[in]              None.
+
+  @retval EFI_SUCCESS     UGA devices are back in text mode and synced up.
+
+**/
+EFI_STATUS
+EFIAPI
+DisableQuietBoot (
+  VOID
+  )
+{
+  //
+  // Enable Cursor on Screen
+  //
+  gST->ConOut->EnableCursor (gST->ConOut, TRUE);
+  return EFI_SUCCESS;
+}
diff --git a/Silicon/Phytium/Logo/PhytiumLogo.bmp b/Silicon/Phytium/Logo/PhytiumLogo.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..7c920dbe3bbba395cd2e6aa9b40e849e6a8aa7b6
GIT binary patch
literal 32454
zcmeHv2UJv9wl+o#AUU=H1Bf6w7DZ7|AV|(RN69$~5{oF6tH>EeF at YiqMOH-2+HJSp
zJ>8?NcKGLYzc=g6dv9i~fBnDzzIBUA(5S=wjcrrwQ0vsa=bU@)zTe$v?{Dt|!F8@!
zjPo&tZ%z1{hd-pgPD~lT#l)y^es%}?$2qW)FC!E4AWz4XKtfH5>i{XPqriogY)?Oi
zAxG+-4A-K?nm44{_m+AOH)e!6=mt9D at RpbjTO?O<#kIa4u>>;W!?S#i$YHv*p4-bD
zH<r6>D|OyhbacxJr)|Z~+e=&|N?asMTz5bPex7jLTI3*3beAl55hprtZi!ZlG?lDQ
z^$PLz*sw+7BbL(It-YfJ?Cc#a_iq^}Ar#q(Rk%x*x$P)(mo9Ucd9PCHCROPv4Nxqx
z-*6 at u6Yr?$=i#(od<|gl_z*s-W;@k1D&mhcNAIcgkt}tU063MnN|n03AEFk+57Zjb
zV at HMKrp`=!a<G%whAkhJ)YfihSqZe%WDMpTG=xYoL**DD^7J4%YM?aPPpaH$11y4N
zj+ at FIH<dYUUMS*aPFu>Iwu+Prmu*lg-6e=_5>@V!Nbx{QwWn0ImsE|XWS#rwj)cQO
zj>gN*W$olgA^~x6aYd<3JGO0-+`4hc){XEDWxM#gtsBMiGZWJiA`_#6VnThQgS}!x
ze8T+P{M_t)ooxc$>;jw#zDM!Fu698#gg|F&A3GCYI};boK35BMN8?YR*y}6U8z>UA
zB?;ORxc!^4YMU^-Hkd1l9Z!n<-N`QVcq%2^>P(r*sZ!H{O3N_&y@;c<_F0(()U^yg
z*>gZnUSZcx)q<SV&>%kv3CT}(@6*)%qbQ$&D-BZ=<54P(Q!H;bS&x=mdfDl$Os;>d
z-r|x9ng=xkU9iEn2QJlz(c|=bvy2;K_EG{=YQ3b(j&7`Q*;?<XL=WB7m2O0hH6*3F
z#CYRX6{Pm4f3$Kwdx1VyZ!}J`8YNp?BUwTjp<3Q;v~e~)^v43nKXbQR1Ds4cN<7=s
z4mC#Xqz21Vf)%TMq^o^oh+fi_UNRM4(&e7u9!dejQ0gWPejk|SrLK}?U|G3ttMimT
z>A$<T*gHA!2o7iU&s_fl?lUshI!&{wi9d9a?lsFWMWJ<_g1tkx-Md@$1D^P*PHlrk
zbbv#DfnH0TG(AF^8X-psS0sfgpA1$#8Khbls8SQ4Smh^Q=_6O^EnDFwQ|=*M2A~pk
z7&!->0b^UM-M7(VO>?81usEAly|I7U#kCJ>^TrCzEV<1vK%q58x1>fJh>30Fon5P-
z5>Qax+f#P5D at m#;UXgW7nH8%@k5-~ZDbgYo$PtR9Py}6d!K$?ZDmDI!)xPpo2)g7d
z5XA*5YsVsVq0|Im3~16VBtMy|NQ at 26?BkO5mRf4XI2qAeBNW`#5|e$O$bDQlxYD~(
zKX71*hHFoeZB0>aNm6M_RBnt{X2mHnW0mO9inK at tYPbS9Oo<f2L06DUZGdu(ze2UI
zT$QgJ(OVXl#d3t{LYBqF<P{u&<K=FWM8}Q2`S!L}*p*KAgX!-WS2{~KLRHoT%c?Q?
z<GHn!%UJz at +DNr-cjm6HtUVnWyV}xJTT at h;69HW+4abyN$CQ{c9NiVENC}rChsrV|
zlqn&K<Un~!kUTj^p~_2==p_ZqVudH at D0Ep|8eIs$TqG);H?`z at OGwMFeCDe^!gjST
zYUC)%993D@%8b`<-25)HQa8fe8OhohDjYFYQk8}-??+bb*lBpgNRD8nctr054Z<GQ
z)&fo5SD?|Gr{0sZuPaNfGjmT{`X_Cvsx8SX&7ivylpBtzu;LV%QBr-`8ogyMUS={0
zKIWN`?#H~%T at 9uCtNi=&OzONOtGxkTVA6wj0*W30_N(YBbJ<$%Cg<(p at -C0y*V;rD
zq(AGy-)pyp@~F#Zpf2LqS}s1GP}cNCHx}*tX}3*Pgri6suT<KXy_RT$C%uHWRCkdE
z=+Avtz8w|rqht)=>N?qSsN6X0sP2+2c?TVWBD<>t?zLcVHd>?QVfT@?6t3A8lAZUg
z#|pjf=Vy+l*lpu=L at Vkzhx+4T_ggJzn~?6a%{GtQZB7IohO;r0p)WcyXx|5&w(|@p
zUSB=$__|}(pY|fMdeCh<U4X?{gEh$iXnPjkWLQBjq<e?;H{G%PbDUa8LGQC33v}=&
zJ%rwDFOdd<KXvp??{)k17ipa>((XHc=ybtB0d(zdPyeJfRi!mqwK-AoRJsB+`-qV#
zMzA}tZeVH|8sJkIZPpmB#6g!#na46l7h-yqyGt>HRW at yUr?;DTA;F4&O56+$Q4~<v
zREv%xf5EfM*TZt^W at yG}-wB#UfgeGny<;@-Cfx*WFiyvkqK}F+K!5sWRNZ25*Fk7J
zO0yiR^H{PadJq$oH%29lQ at PXTj?b{J3E~=NUh&B{=w|5g=?0r9oKV0^>aZ)j*>j4<
zZGbj|@975oNa^9|>hqIit{*W%u^g_n<;_IPIlL$YGePGNBQ(p4DJF&(1d6<m#?kaa
zqS*);X>g5<xlIq at okA;KDa;!*?wyX&v5a_Ukp_Z4+fE$0Of<MqW^}GZ|Lh5!Gez2`
zQFP_*@6O%}%VKBd?)Fr<{z4ss)jKhtSd3|LfELMb2hkf at 7QtaevK>SnMsBpR)Ma}|
z7XRMSiAhUI;*8(&%A+k;9arll6>6%p$0-6&nQS>zYo at P#Kv2m1`sQtQw3<l at 7tinn
zN2!+ct%L`i1X74B+H4tIZIhC&Zy-%k_%Oas2Bn9G5pFf&CMaeliP$j;76scX;_7&c
z-z3>&unIFkG`(11a=y&)T!~&kpsP@;uR!xuzD7^(fm4}^*O>k)yEXX2d52m?j5j?*
zxzbCDW6}ePP;`L?<06V at +Y?>3I9nr0W4w>revSSN^AlN#yd%F>S#?}l#neud;3*@I
za*T?Brwo;;27IRT{w3!uqlIfO^<YzwMH9-E8uP&l2k{MJ`*lq7LM_lP%iv1QI`UkV
ztpFd3y+L=!>ZxtsAf|6-)XxmNLFe*mF!*ZWN_?x-qaNqslbE4e%;g%)V3qkLKv%gj
zpsT-F57AwP+UJk&?5YY}N<<s<3``YdB~Rog$43RJDl6<%J1EjjS68<$$E4Cz61WJW
zmn=d at 0E3D+j6%=?mDQfhHv`Z?x=#2Ioy7Gtmwr0D3#~e?(oU32(~w6wPQ?@?hny=l
zN1#Q<-eJ1(CMj6ac1s#4H(gk3EN at eA;+sVIu4Qm#=pH at G;OfTf6w8ScbERFM at W$V~
z&-y&o6SeeK5m&SVr)j1Ipc-Dc;gc2!x~ee)m1dVJOfQrhoi8=GT&CGo6U>`7T8Rh`
z33pWM$TPS~)a}pR*`6TNo*;WVYv=jG!>KNN?Fl%+_WDL99Vv&ad}KLHmn;!@R0Lf@
z4kI9q5w51AFSN)e1`sM-#9Lz2H8qzDj;t=O_E-mWmfEu^NHm9CXPTWF$}0C_g8@&r
z9IG;QvD_yp3bd}}d~CjvYgrAGEbcPBB;^%Fnk|DXw~VSAG_J`vLctDIi at uNksd*^Q
zR|{7Lh9+O0a~fw at jnR<!>2*-c_1LR*7DF|d%T?wBmF8C}bQ=ne2;Q=qn%ZPX%%!3|
zXYzJ+W$xr~5z2_en5fbiuf&Q|Xo*)iovN4=AVlE!xI4DS?m~D}Ka at umWa&||OS;l+
zdt7vc;I$+-iGg=n=CYj at w;YeUy10ruLFY18WXs7KGc^_I<P+tS6y&*&F>tNvLa!Kl
zcUn%z=2(1O-EZ{V at jkdpt2;eKF@*7<OfYc8fkO5JT*Ci&=M0r=eXYtmSP-dqr;{+%
zU^BtOPcW?5bR0|r(1j?jI?R<S<45P>BxHB;o^^R{^d!lsFMl5xUA?*L9FtzH15A2w
z7=h_R(1q}*Kz4N{NC&xD@;X8#!Q~)1SP^1CwE at 7=%T at Zw6M?1Y#DKUg{n1Tz72H&P
zwBxQ%lu5oyV3iSF#bexm6<Q*=YA#rE$rhXozrI3$P+VT6v?v8kWkfSjEr&|1VQ6en
z&KwiL)iBxe0U0AHBgMZSr?x^|#hz%HUVzOM3zxVkfi0ry^z;JoetTRQnc`lLhTLqm
zooOM=G}%lwSWhzX;|x5TYK1I|^%ma_25ynyx+fry9!ko!3eEGV(N&~%8Zqe)f=Q2{
zD{~K^3(;Mv9HuK#sWDD&oGHX?NXy7}C8?bZQmG44tqla0UJ)pISQ$~19$5O)qZ at 0>
zPY6DOL)yAz|GmI~0koJwDjUVO37+NE1#tzdIV?%@tv28sLAl#zGf-(;9A+dV&TB4I
zSs|_rf~xPaz at tYD^>GG{l89)hZHF9&>8>LrWM!OW;_?GUW9}=&Ra|kaAg+>~gp3E6
zKt$zg;)+sn>`^aauJh=v4*S_QyO|c7X%4z35Oi7HZN=K-4SCO?zBFO1R&Ri41}6Q5
zGK2mS#H8;#t_5V*sXUFoyuGI~mAcbpd$Uy9)0BbfYDrS=$<gF>M=I;LcH~-+!{kUI
zDroQ;iC_CG0JN$=ae2#Bdv1 at 9i4g3fuC77y+r`0^4CF{OWGzjf3gZef6ybsL$|waM
zuGO7Z>ycUqSt%L8 at u4n)t9(CEy2C!QQjou at 7v`_>tI8%RT<2?!W@)6s*#WhFeST>H
z_c$4QSAdp8ul at nyD#^qMD at 5j~JERX(2=G_5P!WlFq_BkfD^cr?-R$=Gtn1w#=i6P5
zw*g)4M{c$fW}0oL8f|Vin%}y}R~_2ghk+L6nDk(DAtpWIFqRsgLv)w+P`M^8hfr6R
z(Lk$73&9Rm8Fr at 01G@V1wM3?LwI!1hA_=Jx<WMD2C<k4T9TA{ZgQP~tvcgpl9u#sX
z<#ueT_eIzV4jmy~=OL+~u>{ev7+2tGp#{uE9>CZ%?42eDQw=4-Sqb5aflF}`br2GZ
zil?Yt<Nz;9J;tX2ciV<{9>=jcOwkAxceOxIOl%W6xL*#9D|`x$U7~Al0NJGc&j*4l
z at Fj<eEwnU*vU>DA(yrH<LC65)20q2ZMxjLq?!hm$bY{V80A92q*^Pf=Vq%AN41XL8
ze0bLLL7&^bQ!aOUoaeh7=Q<n!U9)Y3`EKWpTez>bw1V1`3sDGL0wz7`Fd`;Bpv&Y!
zxiR~sv4f3>-MH>DE21w$md$Vwydu<HFgu&$<RCSI3aJs0coV8zkLs=<6|m<!k~A%Z
zvuI4T_f@;YmJKc=0ULq}gN1B1bbMi4VXu>MLnkeU>#;+17PD<fr>J23aM1<y<7B1v
z4oN<@FNiBJkgk^qxf|=Z?#M04=V_!VmQ`V(5$~qr%A0tx=20rPA&sx=c3DMSs<j>A
zr2Ih`x;k7)L>~yQ067yBOsu0&?xl5T&McEhV&F!KbqsZcT-xM<T;7WYt9(f)Umzfv
z^8C<mu6RE=@AJ6d`{7xS2d4pDu6KHzZg(AhcFrL=j&J&gd0EUiVaDjVQObhDSc|y=
z4r4XuYLy|SNR)y=#hw>o+FU9M^$U%e4KY%zSS1E0 at rI8sNb3qzYELs1TPGB)i1Wrm
z?iP=whXt`QQcYUn6W)_WD}uO!I8KXz-M(E~F0U+iTmV{ZI(DqylQ)7Ou7DXBsWvYP
zGvS at ZhL;Z2;Zb<ND}1TMB-oCtQMak=Ar{7tQ at C#34AsKblAn<Uyg^}U-UMff942GG
zXcF?NciANh`hyP|yv4T4 at -B*2mf;!xRrVF4$;sG<ZO-d?!EPz_o`z&LiHj>}z-Hjj
z=JErGiWULana-%`h`^F=6 at pU{ocY-4tgo;5KOG48?1Jx;b3TvGdObYjasRa2qdw<r
zEkS}UpPcufZp2Tr at Z)qVHf_OSMCb_2O_r5{{I4b&DXa1wNp!%z3j5{+`3A&cRA$C1
z^3fHhNDWgYM)4mg+WuT!bh+zReuU9orr3UcO>vsw^q?++tHtrb0$LL<2ngVrsmII9
zY)1zX!WA$BG|YHCW}w#D)j}aG*m|nTiAOMkbN7Uam)s$Nc0A}&e7}+F>|dwgriiB7
zb_it at IK>suGB_*~grRH96J2$U9K5pPT~43SKV3-}<#6)wXoe9-1K(Y2)>UNOS8kr~
z!3EfFgR4;*Zh~rdgMp8B-s^o-tM{ZEPdRhuW;sDN0ixh4(byHM6dr)PN+lrF9LIb`
zDA`Igj4}Uh0?GXRS>v<IeqUY=`eHEf=_UV95p;p#^7`(Yw~--VG3I6_JnF^YKpaME
za2O|;R%0A=fh56Ue00WFURg*<qB39d`=I9GD;0-Yl9hpu5KZffQe;KR1RW8w$HXOM
zn6WyL?F<fM1>~c0k_Ic>B$B;_mMXZ`TXCgkA9uFUe3WAd!OSlg8wMXWL?<bTt5K2}
zwK#gX2C~+%GY$A at 22d`DPluLCmQ`B{;_jiJ!rCg7q=K`+Q#B at vI%Nu`ffEcHbOd-G
z&*d2DItEwf2TU_8c%VW at 255nE!KUJ78VU8G3h4O10j>a4tnkCc+C;$r6cazgv|=yh
z>chm~J-S0N&aPq3(e>F>OH?2u3$Ft-fc3pAMbsSq;V$t{!+~E9hkQ8{{0u=?z-Jfz
zo?h^JeVYiL+k)`K8fuO`>^;IU>1_dBQ%yFYxKMO~C?1`1-7YDrz<GT|Dh(&xyVI3A
zGIqA2X<caI4JT=k5u at 0VpkQdg*SFBu^zeRKkZiS|0?-kV at QlQOJY*_8Bof`Zkl>B~
zR$MuTCsyV9j4j0DAn2dv$rXqot{}T0%lBwdX5kE&VKgkfIOuZ+7htB*da~Ah-TDpa
zMWxN7Za3k^X*l4ML5<&_VPjl{EGTHUNlLz&n0|wSfi~b`59Vl++M9|qeQq!<P*Wcr
z9C?DEvZ%;VH<}2f1zh<grQL2o`a+p&wT;DZ<=t;WS?4XL33}>QGd^w6rK4*5=NQIl
zgGmOCUCUpEwOu1i!XZeF3=40{K%%~LLP~a0;N2#(aT?c^9<H}!)2tr0<HM|w#VD(s
zILWY{qFV^OWmw?NMoI~q>OwX at G=4Q#^qd{`d^GHvYoUOyuQ=#>IpQDWB}BGVr(r%j
z=X$%_ajp|F=@GK4nE(#sWCMO2oc9(>!^69I_q$BR)z0v0#leNNF5ppjB8fLZr6wsi
zC8#vS%3NoLh;(nswyF<O;_#?S9F`vO8Ef1&rKco_w0tYBaDnl}grj3rE>30|@!4Kn
z?JbBa$dk$Q#>3#dH1)}aj`vP^-D|gjOe8iLUlc6FnfN8;wB=|qGWDUbvJL7Zv@|r-
zL}mp)BXg^pvksxn80m-3G!}>X+cacqx0D{?K?^`NMzLn)7}GQKn(~ZO9l7oj!N<QX
zR|oCeT43UCAkG`#E4HXLn|t+^d;@<=Aw3VxT$6~c+1%^0vh`_6e9Z5&bcu1+ZO-M)
zJjb9uK>NT!z{V!ez=-M$+<d3wy>`N9-F96ChPHZ&yesb4GdYpwGSM1%zug)d-0N_m
zr<(K53RYgt<~<(^e=#2QVm$KCBVm8K7W&n2 at PFS=la%J_VYG3 at G0kTK-uHSDhY?JA
za2RLXj@&@#2n1aK+DGRj1czO+UXt!RQlryXa1crB0+ybeG`Jg*1_4^F$;v~e2gTNL
zJ#=&gdjhsKPJtAvR3FSGyMRZn at slAX@K++<wcd)Wtw!PV4P09k^3TuY=*9bRUmp=%
z3FlwEU+N}rK5wn;eh0h#t%Iya1FpJW=F%@`(w>h+aBv0Cih9A0c)<?)nw`R9V9>r*
z30hxW4tQ`DG3oF1y3Y4F0gpP at X+PU)3uM=H6JfU5@*>&EzzDPWTKXn<e>dyNmcXmT
z!{<3^U7VyrB=M#fVd?jEa?-l`GNt|9gp{P1*yf7xL#${yYJ?&=jJH!mr6p2X{cZde
z_=9bQ0fLiRuVm2EmNUllabQs+VdW&aB3c$#g2VhP>+ixd{41~b8;<pICS3?u<590C
zBOedvh)m&RHtyTuz{mYQkNUkHoN>Q at +VyU)%Y2XH?JkG8c3|ldqieR+`f;!A)8U+x
zd2a30oW`nHVv5x-59xEQ4x at DjSE@{bzr9q!;Zf1FE+lDC^HiQXpsP1iv7Z_(a#1^L
zvr}nEE<HGm)JP851rB4dY)Le-NG<*d>Z?(T#pyCPt-ae#wPf`VNaQ3rPIUN=lep1;
zFlHc=bG*tyY#n!5SruFzc1yb7gtBT_;2xKZJ0rI#t+roP8dBfa3s}61Z~ucj@@lT|
zIU8LEIr?fm>eXcU=TkKzlk8<=Jiq1#4&!GRe1ML4*zfre&~=J~E{@SPi^PBcT{hE=
zxLYmw8x5El7IvD2yH*DrwFU5~S2$$XV5K>dG>D{i89>tD*`mW|3$@M^9Jo}C6Wc6m
z`JW@=fsPQ^2c!fW7zc|Dx624oCA_H$;tD|y#R5{k(K1QLUMF$=VmJjH)L1pfgTQxq
zR|Qupy4I{RHzd8Y2|r24JZ|<_oX;Sy?=jvQaHrMkR<q6Loi-YZLUsc0-aoX;>)VLk
z&R+*neRVBYWS+(*W`BQ_{?%oFa2QcK;_*4}NBta at 9&}fa(>#i<c6*LVkHmm at 4kP$D
zNI0OLm)2zt=vqh`H0UqZx!pwAwMR5lH^v{|n=Z3p(klbm1^a+Hj!F4AEn!)qvlYP=
z;Ae4xnLu3l(;kO3Pa(c#Rd9t)d!5wo-FwxFGws>rSXm_ at vlbdKds?S>IqKl%*V(QA
zJ^V|$pB|E)kA at 23>g7b_^U37J`-~1A)cBvz%3hB6eLWQPIq;|#{XP|C>A5DofWv5w
z at Tg4u82tMJDv-KpS{DXM>#F9)fMyvOZ4FW8TvJ<bmSxoen}Cp=8puANrX-b?cv(v7
zuO`XBBM8Y#y59my68|g38Z^TV7QQON&`4VieWtwcRm2r<4og;;&ADSFZd?)sc%No_
zP=~K(m+bN(9Q at lir~f<}EQl+p|MhlMQryyUnTs7oFW8~4MgyM>`T at E=<)X`L!K4R=
z5n at 0NT!#@&ylJ$Cv at SGh5W=z`93*B}3+S>KuQw{s^b?iCx^2DXM^5GJ?#V`WnQ=BS
zg2SkMxlBu2SCq37?5k&Kp6I?O+Es0FiE-O|%u!ihT3l)y-%l6p8<9tvWtu{W3ep;<
znU;kCwt{C at v0mEHGS4&wmI)?yyVa&5P*kz6;@p<GbVq%}57Ut%xOzDe@$>znWqS2B
z=l}Op;$NnNzqtyE%NKMP7+sJ1AqIq)^gu_zvWTQca1w98q=&?tNnq(Y=mO3es8k36
zkC6;7HY6>+N_m>gK=J-QFzFG85#0x*c0Nzh-GNWPEbg_!BYue|28jB7Wu|>)W*3Mi
zslvI4D;#`<-BYuondwG@)tGEgwG|Han{}@%iTi0r$i6}`_Va9H6OkX5T|A#H5(<X8
z`){1j{@<UMyd3fU(~#fi7m*0#Lq58kIdp^r2VIE6IE}=B5SAXO=}D^5&HgMgF`@V}
zT%|lOhFzz>uu}ulx-@(9HTrT?yK96<gT?b%JMuwEz?Ojj&pXi~`U?H|U-#m=Y4LBJ
zt+J|GLbUHtd*YW at BYzkV`Fhav*?{lEGj0$1ICKQ?s6s3~V$$DgHlOX!6cZDr*P;U*
zZ!)o$%1thEc53t&>z*yrIa_$}8rfciPkZaE)*7t31b)03_i}<uGKc`|Z+BxmYP`h6
zB;Rq8Awm9)wMpkF-hY2m{QZdUR|9UJ^*i71b(rsRK#i_jZ8o2tvcBA&u^1=BY at gdr
z$R0Xm9}tnV52y^tF8$FuLmeHVt+?+vnYCuCD}gJm(Lc at zQ0_=fhhKi4je0ekZEf?u
zcI<k{V=qVxI^Uf3{XNp(9+&?#75(y>*UxuP<YvT*+^?+Co|)dbn~+5YCOrvByg|~s
zAZd_jc8h`abQH~75b3`5^TU*Yq_pCj*Od!VLO!B+=z297`Cs>9A51X*Km3=lEoo8q
zUtRK?Zoneh5j5DT!ATlCX#u;;CdtOf{7gPfp{>p8T_oV{V)y2Y3<y2*u(Y`H{bb0S
z=cUD|_Uf9DzrE7Wo_&YX!m&S0#XsoALoPkyFhb%D3o+ at zVFdPaf@(Z|8t7S38*HT)
zUhDtcO2Ea==>I%TeIXcw7FZ3rFdK{bx7nzFJWlz`6KWKsW#|~a{~R|*1-lNn$Ne-J
z{<Pl-?5?>k*r{QEqm|<@LUt2}j=0r`9c22y|KMvqK12z)Ia$B?rs&ng610P$`g%SV
z`Enxsms?SPyA%0;zo~ljbMIJp%+-#B(f-njLF)WOub-QFke4+SZzt3F at t(1Zq^n&S
zgN?y&Ua<b{X3V#j-9EpFWIMx74Tvyu5^n_4x at _*WSq;*cqc}c9*{#iKSqbb`JMeP8
z2CS*qQ;~olK{zd02dnHkJM{bMs2`wAg~3|+{Y3D;&qe>oZEpE~BIwmv;CJlc7o(xi
z1|hr{`1wE}!lR-wpfjHLk$phiof^Q>KkOk4u@*7#%g%Z2<nKiSuJ-27*ct!xAnC{H
zFfiKR1z<~}j&~4JanPheB;ol=Fp^7;#DIJ`=;H3wxZCUcwBP=ETg2~0N^A4{=Op0f
zVn5K8|Mhs<Kc1xj<wp4HsfcBKMjnKgsXS*#d^-|`WIJCC;pEaIJ2g1_fV>}_ at q97t
zaj_ZV-D{seiUc$dX;CUu?hYM)^St&y??nCOX4I>RZ~=_HeYq3_+w;-zZ>~cwedt$L
zgTK7O*#~sd`|l5u<3fN`U;F$KC9qXOe*fOxwa5Mce5>-!pUQuk4g2 at G7%;Ao46b)D
z#stt6$w3$BuHe^fzkhs5-o0nfA5oxd_q<2~>o;vrh>r<%*S&Q<<;`pAU*}`~*L3iY
zGg049M~fsj3&4p_x_&ni_0x3dn?ILU3hYW=bdj|Ke{>1By1J38GOu)`k9GRK`L+a9
z+4qx(tB5#^V_=wZ3OgKf2q7)!m)X$&xR=^NJ_a%CKf2)7?*Dxx5FQqCwI}zNr}URM
kbH1BO{%$4>HvYVt&Hw8ctS)k7c3RB)47S$x_a}k>2YH&B_W%F@

literal 0
HcmV?d00001

-- 
2.25.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#70403): https://edk2.groups.io/g/devel/message/70403
Mute This Topic: https://groups.io/mt/79697760/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list