[edk2-devel] [PATCH] MdeModulePkg/PciBusDxe: Add feedback status for PciIoMap

2024-01-21 Thread Sheng Wei
PciIoMap () need to feedback the status of
mIoMmuProtocol->SetAttribute () return value.

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4652

Cc: Ray Ni 
Cc: Huang Jenny 
Cc: Chiang Chris 
Signed-off-by: Sheng Wei 
---
 MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c 
b/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c
index 14bed54729..e85544d08d 100644
--- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c
+++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c
@@ -1024,12 +1024,12 @@ PciIoMap (
   return EFI_INVALID_PARAMETER;
   }
 
-  mIoMmuProtocol->SetAttribute (
-mIoMmuProtocol,
-PciIoDevice->Handle,
-*Mapping,
-IoMmuAttribute
-);
+  Status = mIoMmuProtocol->SetAttribute (
+ mIoMmuProtocol,
+ PciIoDevice->Handle,
+ *Mapping,
+ IoMmuAttribute
+ );
 }
   }
 
-- 
2.26.2.windows.1



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




[edk2-devel] [PATCH] MdeModulePkg/PciBusDxe: Add feedback status for PciIoMap

2024-01-21 Thread Sheng Wei
PciIoMap () need to feedback the status of
mIoMmuProtocol->SetAttribute () return value.

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4652

Cc: Ray Ni 
Cc: Huang, Jenny 
Cc: Chiang, Chris 
Signed-off-by: Sheng Wei 
---
 MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c 
b/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c
index 14bed54729..e85544d08d 100644
--- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c
+++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c
@@ -1024,12 +1024,12 @@ PciIoMap (
   return EFI_INVALID_PARAMETER;
   }
 
-  mIoMmuProtocol->SetAttribute (
-mIoMmuProtocol,
-PciIoDevice->Handle,
-*Mapping,
-IoMmuAttribute
-);
+  Status = mIoMmuProtocol->SetAttribute (
+ mIoMmuProtocol,
+ PciIoDevice->Handle,
+ *Mapping,
+ IoMmuAttribute
+ );
 }
   }
 
-- 
2.26.2.windows.1



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




Re: [edk2-devel] [PATCH 00/33] Introduce AMD Vangogh platform reference code

2024-01-21 Thread Xing, Eric via groups.io
[AMD Official Use Only - General]

Hi Duke,

Looks fine to me all 33 patch sets, I'd like to invite Abner help reviewing 
initial Vangogh platform reference code up-stream this time.

Reviewed-by: Eric Xing 

Thanks,
Eric


> -Original Message-
> From: duke.z...@amd.com 
> Sent: Thursday, January 18, 2024 3:13 PM
> To: devel@edk2.groups.io
> Cc: Xing, Eric ; Yao, Ken ; Fu,
> Igniculus ; Chang, Abner 
> Subject: [PATCH 00/33] Introduce AMD Vangogh platform reference code
>
> From: Duke Zhai 
>
>
> This AMD reference platform BIOS supports AMD Vangogh B0 SOC and
> Chachani board.
>
>
>
> Signed-off-by: Duke Zhai 
>
> Cc: Eric Xing 
>
> Cc: Ken Yao 
>
> Cc: Igniculus Fu 
>
> Cc: Abner Chang 
>
>
>
> Duke Zhai (33):
>
>   AMD/AmdPlatformPkg: Check in AMD S3 logo
>
>   AMD/VanGoghBoard: Check in ACPI tables
>
>   AMD/VanGoghBoard: Check in Capsule update
>
>   AMD/VanGoghBoard: Check in AgesaPublic pkg
>
>   AMD/VanGoghBoard: Check in PlatformSecLib
>
>   AMD/VanGoghBoard: Check in AmdIdsExtLib
>
>   AMD/VanGoghBoard: Check in PciPlatform
>
>   AMD/VanGoghBoard: Check in UDKFlashUpdate
>
>   AMD/VanGoghBoard: Check in Flash_AB
>
>   AMD/VanGoghBoard: Check in FlashUpdate
>
>   AMD/VanGoghBoard: Check in FvbServices
>
>   AMD/VanGoghBoard: Check in AMD BaseSerialPortLib
>
>   AMD/VanGoghBoard: Check in PlatformFlashAccessLib
>
>   AMD/VanGoghBoard: Check in SmbiosLib
>
>   AMD/VanGoghBoard: Check in SpiFlashDeviceLib
>
>   AMD/VanGoghBoard: Check in BaseTscTimerLib
>
>   AMD/VanGoghBoard: Check in Smm access module.
>
>   AMD/VanGoghBoard: Check in PciHostBridge module.
>
>   AMD/VanGoghBoard: Check in PcatRealTimeClockRuntimeDxe module.
>
>   AMD/VanGoghBoard: Check in FTPM module.
>
>   AMD/VanGoghBoard: Check in SignedCapsule.
>
>   AMD/VanGoghBoard: Check in Vtf0.
>
>   AMD/VanGoghBoard: Check in AcpiPlatform.
>
>   AMD/VanGoghBoard: Check in FchSpi module.
>
>   AMD/VanGoghBoard: Check in PlatformInitPei module.
>
>   AMD/VanGoghBoard: Check in Smbios platform dxe drivers.
>
>   AMD/VanGoghBoard: Check in Fsp2WrapperPkg.
>
>   AMD/VanGoghBoard: Check in SmmCpuFeaturesLibCommon module.
>
>   AMD/VanGoghBoard: Check in SmramSaveState module.
>
>   AMD/VanGoghBoard: Check in EDK2 override files.
>
>   AMD/VanGoghBoard: Check in AMD SmmControlPei module
>
>   AMD/VanGoghBoard: Check in Chachani board project files and build
>
> script.
>
>   AMD/VanGoghBoard: Improvement coding style.
>
>
>
>  .../AmdPlatformPkg/Universal/LogoDxe/Logo.c   |  198 +
>
>  .../Universal/LogoDxe/S3Logo.bmp  |  Bin 0 -> 964114 bytes
>
>  .../Universal/LogoDxe/S3Logo.idf  |9 +
>
>  .../Universal/LogoDxe/S3LogoDxe.inf   |   55 +
>
>  .../VanGoghBoard/AgesaPublic/AgesaPublic.dec  |   61 +
>
>  .../VanGoghBoard/AgesaPublic/Include/AGESA.h  |   35 +
>
>  .../VanGoghBoard/AgesaPublic/Include/AMD.h|  189 +
>
>  .../AgesaPublic/Include/AmdPspDirectory.h |   55 +
>
>  .../AgesaPublic/Include/FchRegistersCommon.h  |   23 +
>
>  .../Include/Guid/AmdMemoryInfoHob.h   |   51 +
>
>  .../Include/Library/AmdPspBaseLibV2.h |  248 +
>
>  .../Include/Library/AmdPspCommonLib.h |   29 +
>
>  .../Include/Library/AmdPspFtpmLib.h   |   94 +
>
>  .../AgesaPublic/Include/Ppi/AmdPspFtpmPpi.h   |   80 +
>
>  .../Include/Protocol/AmdPspFtpmProtocol.h |  112 +
>
>  .../Acpi/AcpiTables/AcpiTables.inf|   33 +
>
>  .../Acpi/AcpiTables/Dsdt/CPU.asl  |   22 +
>
>  .../Acpi/AcpiTables/Dsdt/Dsdt.asl |   36 +
>
>  .../Acpi/AcpiTables/Dsdt/FchShang.asi |  927 ++
>
>  .../Acpi/AcpiTables/Dsdt/GloblNvs.asl |   17 +
>
>  .../Acpi/AcpiTables/Dsdt/HOST_BUS.ASL |  209 +
>
>  .../Acpi/AcpiTables/Dsdt/LINK.ASL |  481 ++
>
>  .../Acpi/AcpiTables/Dsdt/Lpc0.asl |  168 +
>
>  .../Acpi/AcpiTables/Dsdt/PciTree.asl  |  776 ++
>
>  .../Acpi/AcpiTables/Dsdt/Platform.asl |  135 +
>
>  .../Acpi/AcpiTables/Dsdt/_PR.asl  |   36 +
>
>  .../Acpi/AcpiTables/Facs/Facs.h   |   45 +
>
>  .../Acpi/AcpiTables/Facs/Facs50.aslc  |   68 +
>
>  .../Acpi/AcpiTables/Fadt/Fadt.h   |   64 +
>
>  .../Acpi/AcpiTables/Fadt/Fadt50.aslc  |  159 +
>
>  .../Acpi/AcpiTables/Hpet/Hpet.h   |   70 +
>
>  .../Acpi/AcpiTables/Hpet/Hpet50.aslc  |   58 +
>
>  .../Acpi/AcpiTables/Madt/Madt.h   |  136 +
>
>  .../Acpi/AcpiTables/Madt/Madt50.aslc  |  327 +
>
>  .../Acpi/AcpiTables/Mcfg/Mcfg.h   |   75 +
>
>  .../Acpi/AcpiTables/Mcfg/Mcfg50.aslc  |   61 +
>
>  .../BIOSImageDirectory32M.xml |   63 +
>
>  .../VanGoghBoard/ChachaniBoardPkg/Board.env   |   23 +
>
>  .../ChachaniBoardPkg/BuildPspImage.bat|  126 +
>
>  .../SystemFirmwareDescriptor.aslc |   99 +
>
>  .../SystemFirmwareDescriptor.inf  |   53 +
>
>  .../SystemFirmwareDescriptorPei.c |   78 +
>
>  

Re: [edk2-devel] [PATCH 1/1] StandaloneMmPkg/Core: Remove optimization for depex evaluation

2024-01-21 Thread Ni, Ray
Reviewed-by: Ray Ni 

PI spec does not define the REPLACE_TRUE op-code.
Existing dispatchers (DXE, SMM and Standalone MM) use REPLACE_TRUE to optimize 
the protocol evaluation. PEI dispatcher does not use this optimization as the 
Depex binary might be in flash.

Now this patch only modifies standalone MM version to not use the optimization. 
I think it's a right way.



Because the optimization cannot handle a case:
1. driver A installs protocol #a.
2. driver B depends on protocol #a.
3. driver A uninstalls the protocol #a in a callback (protocol callback, timer 
callback, or a service provided by A that driver B invokes)
4. driver B gets dispatched after the callback. <--- problem here. The protocol 
#a does not exist!!

@Kinney, Michael D, do you have history data of which optimization result it 
achieved? Do you think that the optimization can be in CoreLocateProtocol() 
instead of in the callers?

Thanks,
Ray
> -Original Message-
> From: Nhi Pham 
> Sent: Friday, January 19, 2024 12:57 PM
> To: devel@edk2.groups.io
> Cc: ardb+tianoc...@kernel.org; Ni, Ray ;
> sami.muja...@arm.com; ler...@redhat.com; Nhi Pham
> 
> Subject: [PATCH 1/1] StandaloneMmPkg/Core: Remove optimization for
> depex evaluation
> 
> From: Laszlo Ersek 
> 
> The current dependency evaluator violates the memory access permission
> when patching depex grammar directly in the read-only depex memory area.
> 
> Laszlo pointed out the optimization issue in the thread (1) "Memory
> Attribute for depex section" and provided suggested patch to remove the
> perf optimization.
> 
> In my testing, removing the optimization does not make significant perf
> reduction. That makes sense that StandaloneMM dispatcher only searches
> in MM protocol database and does not depend on UEFI/DXE protocol
> database. Also, we don't have many protocols in StandaloneMM like
> UEFI/DXE.
> 
> From Laszlo,
> 
> "The patch removes the EFI_DEP_REPLACE_TRUE handling altogether, plus it
> CONST-ifies the Iterator pointer (which points into the DEPEX section),
> so that the compiler catch any possible accesses at *build time* that
> would write to the write-protected DEPEX memory area."
> 
> (1) https://edk2.groups.io/g/devel/message/113531
> 
> Signed-off-by: Nhi Pham 
> ---
>  StandaloneMmPkg/Core/Dependency.c | 37 
>  1 file changed, 7 insertions(+), 30 deletions(-)
> 
> diff --git a/StandaloneMmPkg/Core/Dependency.c
> b/StandaloneMmPkg/Core/Dependency.c
> index 440fe3e45238..2bcb07d34666 100644
> --- a/StandaloneMmPkg/Core/Dependency.c
> +++ b/StandaloneMmPkg/Core/Dependency.c
> @@ -13,16 +13,6 @@
> 
> 
>  #include "StandaloneMmCore.h"
> 
> 
> 
> -///
> 
> -/// EFI_DEP_REPLACE_TRUE - Used to dynamically patch the dependency
> expression
> 
> -///to save time.  A EFI_DEP_PUSH is
> evaluated one an
> 
> -///replaced with EFI_DEP_REPLACE_TRUE. If
> PI spec's Vol 2
> 
> -///Driver Execution Environment Core
> Interface use 0xff
> 
> -///as new DEPEX opcode.
> EFI_DEP_REPLACE_TRUE should be
> 
> -///defined to a new value that is not
> conflicting with PI spec.
> 
> -///
> 
> -#define EFI_DEP_REPLACE_TRUE  0xff
> 
> -
> 
>  ///
> 
>  /// Define the initial size of the dependency expression evaluation stack
> 
>  ///
> 
> @@ -170,12 +160,12 @@ MmIsSchedulable (
>IN  EFI_MM_DRIVER_ENTRY  *DriverEntry
> 
>)
> 
>  {
> 
> -  EFI_STATUS  Status;
> 
> -  UINT8   *Iterator;
> 
> -  BOOLEAN Operator;
> 
> -  BOOLEAN Operator2;
> 
> -  EFI_GUIDDriverGuid;
> 
> -  VOID*Interface;
> 
> +  EFI_STATUS   Status;
> 
> +  CONST UINT8  *Iterator;
> 
> +  BOOLEAN  Operator;
> 
> +  BOOLEAN  Operator2;
> 
> +  EFI_GUID DriverGuid;
> 
> +  VOID *Interface;
> 
> 
> 
>Operator  = FALSE;
> 
>Operator2 = FALSE;
> 
> @@ -253,8 +243,7 @@ MmIsSchedulable (
>Status = PushBool (FALSE);
> 
>  } else {
> 
>DEBUG ((DEBUG_DISPATCH, "  PUSH GUID(%g) = TRUE\n",
> ));
> 
> -  *Iterator = EFI_DEP_REPLACE_TRUE;
> 
> -  Status= PushBool (TRUE);
> 
> +  Status = PushBool (TRUE);
> 
>  }
> 
> 
> 
>  if (EFI_ERROR (Status)) {
> 
> @@ -356,18 +345,6 @@ MmIsSchedulable (
>  DEBUG ((DEBUG_DISPATCH, "  RESULT = %a\n", Operator ?
> "TRUE" : "FALSE"));
> 
>  return Operator;
> 
> 
> 
> -  case EFI_DEP_REPLACE_TRUE:
> 
> -CopyMem (, Iterator + 1, sizeof (EFI_GUID));
> 
> -DEBUG ((DEBUG_DISPATCH, "  PUSH GUID(%g) = TRUE\n",
> ));
> 
> -Status = PushBool (TRUE);
> 
> -if (EFI_ERROR (Status)) {
> 
> -  DEBUG ((DEBUG_DISPATCH, "  RESULT = FALSE (Unexpected
> error)\n"));
> 
> -  return FALSE;
> 
> -}
> 
> -
> 
> -Iterator += sizeof (EFI_GUID);
> 
> -break;
> 
> -
> 
>default:
> 
>  DEBUG ((DEBUG_DISPATCH, "  RESULT = FALSE (Unknown
> 

Re: [edk2-devel] [PATCH] MdeModulePkg/ResetSystemRuntimeDxe: Print Reset Data

2024-01-21 Thread Ashish Singhal via groups.io
Thanks for the information Leif.

Zhichao,

I have created the PR https://github.com/tianocore/edk2/pull/5151 for this 
change and it has passed all tests. Please provide the push label.

Thanks
Ashish

From: Gao, Zhichao 
Sent: Monday, January 22, 2024 7:01 AM
To: Leif Lindholm ; devel@edk2.groups.io 
; Ashish Singhal ; 
gaolim...@byosoft.com.cn ; Jeff Brasen 
; Kinney, Michael D ; 
af...@apple.com 
Subject: RE: [edk2-devel] [PATCH] MdeModulePkg/ResetSystemRuntimeDxe: Print 
Reset Data

External email: Use caution opening links or attachments


Reviewed-by: Zhichao Gao 

Thanks,
Zhichao

> -Original Message-
> From: Leif Lindholm 
> Sent: Saturday, January 20, 2024 2:38 AM
> To: devel@edk2.groups.io; ashishsin...@nvidia.com;
> gaolim...@byosoft.com.cn; Jeff Brasen ; Kinney,
> Michael D ; af...@apple.com; Gao, Zhichao
> 
> Subject: Re: [edk2-devel] [PATCH]
> MdeModulePkg/ResetSystemRuntimeDxe: Print Reset Data
>
> Hi Ashish,
>
> On 2024-01-19 18:09, Ashish Singhal via groups.io wrote:
> > Adding tianocore stewards to see if we can get some traction on this.
>
> You've not cc:d Zhichao - who maintains that component - on this patch, I've
> added them.
>
> Please use BaseTools/Scripts/GetMaintainer.py to see who to cc -
> maintainership of some of the modules are split in multiple dimensions and
> it's basically impossible to work out manually.
>
> /
>  Leif
>
> > 
> > *From:* Ashish Singhal 
> > *Sent:* Wednesday, December 6, 2023 5:21 PM
> > *To:* devel@edk2.groups.io ;
> > gaolim...@byosoft.com.cn ; Jeff Brasen
> > 
> > *Cc:* Ashish Singhal 
> > *Subject:* [PATCH] MdeModulePkg/ResetSystemRuntimeDxe: Print Reset
> Data
> > ResetSystem runtime call allows for sending reset data that
> > starts with a NULL terminated string. Add support to print
> > that string on console.
> >
> > Signed-off-by: Ashish Singhal 
> > ---
> >   .../Universal/ResetSystemRuntimeDxe/ResetSystem.c | 8 
> >   1 file changed, 8 insertions(+)
> >
> > diff --git
> a/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.c
> > b/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.c
> > index 42f1b1d015..72bb1d2be6 100644
> > --- a/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.c
> > +++
> b/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.c
> > @@ -252,6 +252,14 @@ RuntimeServiceResetSystem (
> >   mResetNotifyDepth
> >   ));
> >
> > +  if ((ResetData != NULL) && (DataSize != 0)) {
> > +DEBUG ((
> > +  DEBUG_INFO,
> > +  "DXE ResetSystem2: ResetData: %s\n",
> > +  ResetData
> > +  ));
> > +  }
> > +
> > if (mResetNotifyDepth <= MAX_RESET_NOTIFY_DEPTH) {
> >   if (!EfiAtRuntime ()) {
> > //
> > --
> > 2.17.1
> >
> > 



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




Re: [edk2-devel] [PATCH 1/1] StandaloneMmPkg/Core: Remove optimization for depex evaluation

2024-01-21 Thread Nhi Pham via groups.io

On 1/19/2024 6:51 PM, levi.yun wrote:

Except, 8bit transfer encoding.

Tested-by: levi.yun 
Reviewed-by: levi.yun 


Thanks Levi Yun for testing.

-Nhi


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




[edk2-devel] [PATCH RESEND 1/1] StandaloneMmPkg/Core: Remove optimization for depex evaluation

2024-01-21 Thread Nhi Pham via groups.io
From: Laszlo Ersek 

The current dependency evaluator violates the memory access permission
when patching depex grammar directly in the read-only depex memory area.

Laszlo pointed out the optimization issue in the thread (1) "Memory
Attribute for depex section" and provided suggested patch to remove the
perf optimization.

In my testing, removing the optimization does not make significant perf
reduction. That makes sense that StandaloneMM dispatcher only searches
in MM protocol database and does not depend on UEFI/DXE protocol
database. Also, we don't have many protocols in StandaloneMM like
UEFI/DXE.

>From Laszlo,

"The patch removes the EFI_DEP_REPLACE_TRUE handling altogether, plus it
CONST-ifies the Iterator pointer (which points into the DEPEX section),
so that the compiler catch any possible accesses at *build time* that
would write to the write-protected DEPEX memory area."

(1) https://edk2.groups.io/g/devel/message/113531

Signed-off-by: Nhi Pham 
Tested-by: levi.yun 
Reviewed-by: levi.yun 
---
 StandaloneMmPkg/Core/Dependency.c | 37 
 1 file changed, 7 insertions(+), 30 deletions(-)

diff --git a/StandaloneMmPkg/Core/Dependency.c 
b/StandaloneMmPkg/Core/Dependency.c
index 440fe3e45238..2bcb07d34666 100644
--- a/StandaloneMmPkg/Core/Dependency.c
+++ b/StandaloneMmPkg/Core/Dependency.c
@@ -13,16 +13,6 @@
 
 #include "StandaloneMmCore.h"
 
-///
-/// EFI_DEP_REPLACE_TRUE - Used to dynamically patch the dependency expression
-///to save time.  A EFI_DEP_PUSH is evaluated one an
-///replaced with EFI_DEP_REPLACE_TRUE. If PI spec's 
Vol 2
-///Driver Execution Environment Core Interface use 0xff
-///as new DEPEX opcode. EFI_DEP_REPLACE_TRUE should be
-///defined to a new value that is not conflicting with 
PI spec.
-///
-#define EFI_DEP_REPLACE_TRUE  0xff
-
 ///
 /// Define the initial size of the dependency expression evaluation stack
 ///
@@ -170,12 +160,12 @@ MmIsSchedulable (
   IN  EFI_MM_DRIVER_ENTRY  *DriverEntry
   )
 {
-  EFI_STATUS  Status;
-  UINT8   *Iterator;
-  BOOLEAN Operator;
-  BOOLEAN Operator2;
-  EFI_GUIDDriverGuid;
-  VOID*Interface;
+  EFI_STATUS   Status;
+  CONST UINT8  *Iterator;
+  BOOLEAN  Operator;
+  BOOLEAN  Operator2;
+  EFI_GUID DriverGuid;
+  VOID *Interface;
 
   Operator  = FALSE;
   Operator2 = FALSE;
@@ -253,8 +243,7 @@ MmIsSchedulable (
   Status = PushBool (FALSE);
 } else {
   DEBUG ((DEBUG_DISPATCH, "  PUSH GUID(%g) = TRUE\n", ));
-  *Iterator = EFI_DEP_REPLACE_TRUE;
-  Status= PushBool (TRUE);
+  Status = PushBool (TRUE);
 }
 
 if (EFI_ERROR (Status)) {
@@ -356,18 +345,6 @@ MmIsSchedulable (
 DEBUG ((DEBUG_DISPATCH, "  RESULT = %a\n", Operator ? "TRUE" : 
"FALSE"));
 return Operator;
 
-  case EFI_DEP_REPLACE_TRUE:
-CopyMem (, Iterator + 1, sizeof (EFI_GUID));
-DEBUG ((DEBUG_DISPATCH, "  PUSH GUID(%g) = TRUE\n", ));
-Status = PushBool (TRUE);
-if (EFI_ERROR (Status)) {
-  DEBUG ((DEBUG_DISPATCH, "  RESULT = FALSE (Unexpected error)\n"));
-  return FALSE;
-}
-
-Iterator += sizeof (EFI_GUID);
-break;
-
   default:
 DEBUG ((DEBUG_DISPATCH, "  RESULT = FALSE (Unknown opcode)\n"));
 goto Done;
-- 
2.25.1



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




Re: [edk2-devel] [PATCH 1/1] StandaloneMmPkg/Core: Remove optimization for depex evaluation

2024-01-21 Thread Nhi Pham via groups.io

On 1/19/2024 5:39 PM, Ard Biesheuvel wrote:


Thanks for the patch. This looks good to me in principle, only the
patch got mangled by your MTA

Please resend using 8bit transfer encoding. (You can use
BaseTools/Scripts/SetupGit.py to configure Git for you)



Thanks Ard, I will resend the patch with 8bit transfer encoding.


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




Re: [edk2-devel] [PATCH 1/1] MdePkg: Update the comments of HiiConfigAccess ExtractConfig

2024-01-21 Thread Tan, Ming
Mike:
  For the change of https://github.com/tianocore/edk2/pull/5170.
  We checked all the files for function XxxExtractConfig, find there is not 
function will return EFI_DEVICE_ERROR in the function code directly.
  One possible place is just call xxx ->BlockToConfig(), and the 
XxxExtractConfig will return the Status of call BlockToConfig().
  For example in 
https://github.com/tianocore/edk2/blob/c251015292cc5f4ca003894e5922a40b08cd14b0/MdeModulePkg/Universal/DriverSampleDxe/DriverSample.c#L808
Status = HiiConfigRouting->BlockToConfig (
 HiiConfigRouting,
 ConfigRequest,
 (UINT8 *)>Configuration,
 BufferSize,
 Results,
 Progress
 );
..
return Status;

  So need we change the code, if such BlockToConfig return failed, then ignore 
the detail reason, but return EFI_DEVICE_ERROR in function XxxExtractConfig?

  BR/Tan Ming.

-Original Message-
From: devel@edk2.groups.io  On Behalf Of Michael D Kinney
Sent: Saturday, January 20, 2024 10:32 AM
To: Ren, SuqiangX ; gaoliming 
; devel@edk2.groups.io
Cc: Liu, Zhiguang ; Li, Yi1 ; Kinney, 
Michael D 
Subject: Re: [edk2-devel] [PATCH 1/1] MdePkg: Update the comments of 
HiiConfigAccess ExtractConfig

Hi Suqiang,

For the Browser/HII related changes to the MdePkg can you also prepare a patch 
to update the function headers in the implementation of these APIs and make 
sure the implementation conforms to the update header file changes?

Thanks,

Mike

> -Original Message-
> From: Ren, SuqiangX 
> Sent: Sunday, January 14, 2024 6:09 PM
> To: gaoliming ; devel@edk2.groups.io
> Cc: Kinney, Michael D ; Liu, Zhiguang 
> ; Li, Yi1 
> Subject: RE: [edk2-devel] [PATCH 1/1] MdePkg: Update the comments of 
> HiiConfigAccess ExtractConfig
> 
> Hi Liming,
> 
>   Could you help to merge below patches which all your reviewed-by?
> Thanks!
>   https://github.com/tianocore/edk2/pull/5170
>   https://github.com/tianocore/edk2/pull/5186
>   https://github.com/tianocore/edk2/pull/5190
> 
> 
> Thanks
> Ren, Suqiang
> 
> -Original Message-
> From: Ren, SuqiangX
> Sent: Monday, January 8, 2024 9:31 PM
> To: gaoliming ; devel@edk2.groups.io
> Cc: Kinney, Michael D ; Liu, Zhiguang 
> ; Li, Yi1 
> Subject: RE: [edk2-devel] [PATCH 1/1] MdePkg: Update the comments of 
> HiiConfigAccess ExtractConfig
> 
> Hi Liming,
> 
>   Could you please help to check and merge this patch?
>   https://github.com/tianocore/edk2/pull/5170
> 
> 
> Thanks
> Ren, Suqiang
> 
> -Original Message-
> From: gaoliming 
> Sent: Saturday, December 23, 2023 10:10 AM
> To: devel@edk2.groups.io; Ren, SuqiangX 
> Cc: Kinney, Michael D ; Liu, Zhiguang 
> ; Li, Yi1 
> Subject: 回复: [edk2-devel] [PATCH 1/1] MdePkg: Update the comments of 
> HiiConfigAccess ExtractConfig
> 
> Reviewed-by: Liming Gao 
> 
> > -邮件原件-
> > 发件人: devel@edk2.groups.io  代表 SuqiangX Ren
> > 发送时间: 2023年12月21日 10:41
> > 收件人: devel@edk2.groups.io
> > 抄送: Ren,Suqiang ; Michael D Kinney 
> > ; Liming Gao ; 
> > Zhiguang Liu ; Yi Li 
> > 主题: [edk2-devel] [PATCH 1/1] MdePkg: Update the comments of 
> > HiiConfigAccess ExtractConfig
> >
> > From: "Ren,Suqiang" 
> >
> > Add status code returned for HiiConfigAccess ExtractConfig to align 
> > with UEFI spec 2.10.
> >
> > REF: UEFI spec 2.10 Table 35.5.2
> >
> > Signed-off-by: SuqiangX Ren 
> > Cc: Michael D Kinney 
> > Cc: Liming Gao 
> > Cc: Zhiguang Liu 
> > Cc: Yi Li 
> > ---
> >  MdePkg/Include/Protocol/HiiConfigAccess.h | 9 -
> >  1 file changed, 8 insertions(+), 1 deletion(-)
> >
> > diff --git a/MdePkg/Include/Protocol/HiiConfigAccess.h
> > b/MdePkg/Include/Protocol/HiiConfigAccess.h
> > index 3baf91e07b2e..fbee7c52b021 100644
> > --- a/MdePkg/Include/Protocol/HiiConfigAccess.h
> > +++ b/MdePkg/Include/Protocol/HiiConfigAccess.h
> > @@ -102,9 +102,16 @@ typedef UINTN EFI_BROWSER_ACTION;
> >string.
> >
> >@retval EFI_INVALID_PARAMETER   Unknown name. Progress points
> > -  to the & before the name in
> > +  to the "&" before the name in
> >question.
> >
> > +  @retval EFI_INVALID_PARAMETER   If Results or Progress is NULL.
> > +
> > +  @retval EFI_ACCESS_DENIED   The action violated a system
> policy.
> > +
> > +  @retval EFI_DEVICE_ERRORFailed to extract the current
> > configuration
> > +  for one or more named elements.
> > +
> >  **/
> >  typedef
> >  EFI_STATUS
> > --
> > 2.26.2.windows.1
> >
> >
> >
> > 
> >
> 
> 








-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#114128): https://edk2.groups.io/g/devel/message/114128
Mute This Topic: 

Re: [edk2-devel] [PATCH 2/2] ShellPkg: Update smbiosview for LoongArch

2024-01-21 Thread Gao, Zhichao
Reviewed-by: Zhichao Gao zhichao@intel.com

Thanks,
Zhichao

From: devel@edk2.groups.io  On Behalf Of Chao Li
Sent: Tuesday, January 16, 2024 8:13 PM
To: devel@edk2.groups.io; qiandong...@loongson.cn
Cc: Gao, Zhichao 
Subject: Re: [edk2-devel] [PATCH 2/2] ShellPkg: Update smbiosview for LoongArch


Looks good to me.

Reviewed-by: Chao Li 

Hi Zhichao,

Please help review this patch.

Thanks,
Chao
On 2024/1/16 15:11, Dongyan Qian wrote:

According to SMBIOS spec3.6, LoongArch information support has been added,

so this patch is submitted for display as information in smbiosview.



Cc: Zhichao Gao 

Cc: Chao Li 

Signed-off-by: Dongyan Qian 


---

 .../SmbiosView/PrintInfo.c| 68 +++

 .../SmbiosView/QueryTable.c   |  8 +++

 2 files changed, 76 insertions(+)



diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c 
b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c

index b6968cb36a..ba6e7b15fc 100644

--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c

+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c

@@ -2610,6 +2610,74 @@ DisplayProcessorFamily2 (

   Print (L"RISC-V RV128\n");

   break;



+case 0x258:

+  Print (L"LoongArch\n");

+  break;

+

+case 0x259:

+  Print (L"Loongson1\n");

+  break;

+

+case 0x25a:

+  Print (L"Loongson2\n");

+  break;

+

+case 0x25b:

+  Print (L"Loongson3\n");

+  break;

+

+case 0x25c:

+  Print (L"Loongson2K\n");

+  break;

+

+case 0x25d:

+  Print (L"Loongson3A\n");

+  break;

+

+case 0x25e:

+  Print (L"Loongson3B\n");

+  break;

+

+case 0x25f:

+  Print (L"Loongson3C\n");

+  break;

+

+case 0x260:

+  Print (L"Loongson3D\n");

+  break;

+

+case 0x261:

+  Print (L"Loongson3E\n");

+  break;

+

+case 0x262:

+  Print (L"DualCoreLoongson2K\n");

+  break;

+

+case 0x26C:

+  Print (L"QuadCoreLoongson3A\n");

+  break;

+

+case 0x26D:

+  Print (L"MultiCoreLoongson3A\n");

+  break;

+

+case 0x26E:

+  Print (L"QuadCoreLoongson3B\n");

+  break;

+

+case 0x26F:

+  Print (L"MultiCoreLoongson3B\n");

+  break;

+

+case 0x270:

+  Print (L"MultiCoreLoongson3C\n");

+  break;

+

+case 0x271:

+  Print (L"MultiCoreLoongson3D\n");

+  break;

+

 default:

   ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN 
(STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY), gShellDebug1HiiHandle);

   }

diff --git 
a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c 
b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c

index 82bb7a41f0..f57093c91c 100644

--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c

+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c

@@ -3652,6 +3652,14 @@ TABLE_ITEM  ProcessorArchitectureTypesTable[] = {

   {

 8,

 L" 128-bit RISC-V (RV128) "

+  },

+  {

+9,

+L" 32-bit LoongArch (LoongArch32) "

+  },

+  {

+10,

+L" 64-bit LoongArch (LoongArch64) "

   }

 };





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




Re: [edk2-devel] [PATCH] MdeModulePkg/ResetSystemRuntimeDxe: Print Reset Data

2024-01-21 Thread Gao, Zhichao
Reviewed-by: Zhichao Gao 

Thanks,
Zhichao

> -Original Message-
> From: Leif Lindholm 
> Sent: Saturday, January 20, 2024 2:38 AM
> To: devel@edk2.groups.io; ashishsin...@nvidia.com;
> gaolim...@byosoft.com.cn; Jeff Brasen ; Kinney,
> Michael D ; af...@apple.com; Gao, Zhichao
> 
> Subject: Re: [edk2-devel] [PATCH]
> MdeModulePkg/ResetSystemRuntimeDxe: Print Reset Data
> 
> Hi Ashish,
> 
> On 2024-01-19 18:09, Ashish Singhal via groups.io wrote:
> > Adding tianocore stewards to see if we can get some traction on this.
> 
> You've not cc:d Zhichao - who maintains that component - on this patch, I've
> added them.
> 
> Please use BaseTools/Scripts/GetMaintainer.py to see who to cc -
> maintainership of some of the modules are split in multiple dimensions and
> it's basically impossible to work out manually.
> 
> /
>  Leif
> 
> > 
> > *From:* Ashish Singhal 
> > *Sent:* Wednesday, December 6, 2023 5:21 PM
> > *To:* devel@edk2.groups.io ;
> > gaolim...@byosoft.com.cn ; Jeff Brasen
> > 
> > *Cc:* Ashish Singhal 
> > *Subject:* [PATCH] MdeModulePkg/ResetSystemRuntimeDxe: Print Reset
> Data
> > ResetSystem runtime call allows for sending reset data that
> > starts with a NULL terminated string. Add support to print
> > that string on console.
> >
> > Signed-off-by: Ashish Singhal 
> > ---
> >   .../Universal/ResetSystemRuntimeDxe/ResetSystem.c | 8 
> >   1 file changed, 8 insertions(+)
> >
> > diff --git
> a/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.c
> > b/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.c
> > index 42f1b1d015..72bb1d2be6 100644
> > --- a/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.c
> > +++
> b/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.c
> > @@ -252,6 +252,14 @@ RuntimeServiceResetSystem (
> >   mResetNotifyDepth
> >   ));
> >
> > +  if ((ResetData != NULL) && (DataSize != 0)) {
> > +    DEBUG ((
> > +  DEBUG_INFO,
> > +  "DXE ResetSystem2: ResetData: %s\n",
> > +  ResetData
> > +  ));
> > +  }
> > +
> >     if (mResetNotifyDepth <= MAX_RESET_NOTIFY_DEPTH) {
> >   if (!EfiAtRuntime ()) {
> >     //
> > --
> > 2.17.1
> >
> > 



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




[edk2-devel] Event: Tools, CI, Code base construction meeting series - Monday, January 22, 2024 #cal-reminder

2024-01-21 Thread Group Notification
*Reminder: Tools, CI, Code base construction meeting series*

*When:*
Monday, January 22, 2024
4:30pm to 5:30pm
(UTC-08:00) America/Los Angeles

*Where:*
https://teams.microsoft.com/l/meetup-join/19%3ameeting_ZDI2ZDg4NmMtMjI1My00MzI5LWFmYjAtMGQyNjUzNTBjZGYw%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%2223af6561-6e1c-450d-b917-d9d674eb3cb6%22%7d

View Event ( https://edk2.groups.io/g/devel/viewevent?eventid=2159618 )

*Description:*

TianoCore community,

Microsoft and Intel will be hosting a series of open meetings to discuss build, 
CI, tools, and other related topics. If you are interested, have ideas/opinions 
please join us. These meetings will be Monday 4:30pm Pacific Time on Microsoft 
Teams.

MS Teams Link in following discussion: * 
https://github.com/tianocore/edk2/discussions/2614

Anyone is welcome to join.

* tianocore/edk2: EDK II (github.com)
* tianocore/edk2-basetools: EDK II BaseTools Python tools as a PIP module 
(github.com) https://github.com/tianocore/edk2-basetools
* tianocore/edk2-pytool-extensions: Extensions to the edk2 build system 
allowing for a more robust and plugin based build system and tool execution 
environment (github.com) https://github.com/tianocore/edk2-pytool-extensions
* tianocore/edk2-pytool-library: Python library package that supports UEFI 
development (github.com) https://github.com/tianocore/edk2-pytool-library

MS Teams Browser Clients * 
https://docs.microsoft.com/en-us/microsoftteams/get-clients?tabs=Windows#browser-client


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




Re: [edk2-devel] [PATCH] BaseTools: Optimize GenerateByteArrayValue and CollectPlatformGuids APIs

2024-01-21 Thread Ashraf Ali S
Hi., @Kinney, Michael D

The main API which is modified in this Patch is GenerateByteArrayValue.

This API is used to return the list of SKUID.TokenSpaceGuid.VpdName|VPD 
STRUCT|Binary Data which will be stored in Output.txt
Example: 
SAMPLESKUID.STANDARD.gEfiMdePkgTokenSpaceGuid.SampleVpd|SAMPLE_STRUCT[]|{0x01,0x01,0x05,0x09,0x02}

This VPD/PCD is coming from either the DEC file or the DSC file.

GenerateByteArrayValue API is used to create the PcdValueInit.exe and it's 
equivalent C and Make File.

When there is no change in DEC or DSC VPD/PCD still it used to do the same 
process again in the incremental build which is time consuming.
In my project this API is used to take 3min of time with High end server 
(64Threads) and 3.5Min in Laptop (16 threads with performance mode enabled) 
only for GenerateByteArrayValue API.

This  patch will check if there are any change in the DEC/DSC VPDs/PCDs2, if 
there is any change in VPD the current flow is not affect. (it will create the 
PcdRecordList.json and copy Output.txt for Arch folder with the project. Ex: 
Build\{Project}Pkg\DEBUG_VS2019\PcdValueInit\{IA32/X64/Any}\PcdRecordList.json 
and Build\{Project}Pkg\DEBUG_VS2019\PcdValueInit\{IA32/X64/Any}\Output.txt)
If there is no change the DSC/DEC VPDs it will read the data from Output.txt 
and return the same data. (we will compare the Input structure and 
PcdRecordList.json) if there is any mismatch then it there change in VPDs if 
not then no change in VPDs).

Unit testing from my side as follows:
* Build the Firmware.
* PcdRecordList.json and Output.txt will be created based on the Arch.
* Build the Firmware again without any change.
* It will read the Output.txt and return the data. (it will match Input 
PCD/VPD list and compare with existing PcdRecordList.json)
* I verified the return length and content GenerateByteArrayValue (it's 
same with and without my changes)
* Build the Firmware again my modifying the VPDs in DSC file
* Change in VPDs, it will regenerate PcdRecordList.json file
*  it will create the Exe file and Output.txt
* New Output.txt will be copied to above path.
* Build the Firmware again by modifying the VPDs in DEC file.
* Change in VPDs, it will regenerate PcdRecordList.json file
*  it will create the Exe file and Output.txt
* New Output.txt will be copied to above path.
* Build the Firmware again without modifying the code.
* It will read the Output.txt and return the data.
* I verified the return length and content GenerateByteArrayValue (it's 
same with and without my changes)


There is no impact on the Boot/cache.
This patch is used to reduce the incremental build time by checking if the 
VPDs/PCDs are changed or not, if not changed then it will return the previous 
stored data.

Thanks.,
S, Ashraf Ali

-Original Message-
From: Kinney, Michael D  
Sent: Saturday, January 20, 2024 7:36 AM
To: devel@edk2.groups.io; S, Ashraf Ali 
Cc: Chen, Christine ; Rebecca Cran ; 
Liming Gao ; Feng, Bob C ; 
Chan, Amy ; Chaganty, Rangasai V 
; Solanki, Digant H 
; Kinney, Michael D 
Subject: RE: [edk2-devel] [PATCH] BaseTools: Optimize GenerateByteArrayValue 
and CollectPlatformGuids APIs

Hi Ashraf,

What is captured in the file?

What PCD/VPD changes will invalidate the cache?  Just the number and type of 
PCD/VPD elements or their default values/sizes?

How was this tested?  Were all conditions that invalidate the cache tested?  I 
ask because incremental build is a very important feature and if there is any 
logic error in the cache management of a file like this, it will cause 
unexpected behavior and developers will not trust incremental builds.

Mike

> -Original Message-
> From: devel@edk2.groups.io  On Behalf Of Ashraf 
> Ali S
> Sent: Tuesday, January 16, 2024 11:55 PM
> To: devel@edk2.groups.io
> Cc: S, Ashraf Ali ; Chen, Christine 
> ; Rebecca Cran ; Liming Gao 
> ; Feng, Bob C ; Chan, 
> Amy ; Chaganty, Rangasai V 
> ; Solanki, Digant H 
> 
> Subject: [edk2-devel] [PATCH] BaseTools: Optimize 
> GenerateByteArrayValue and CollectPlatformGuids APIs
> 
> During the Incremental build GenerateByteArrayValue used to generate 
> the ByteArrayValue even when there is no change in the PCD/VPDs. which 
> is time consuming API based on the number of PCD/VPDs and SKU IDs.
> 
> The optimization is that GenerateByteArrayValue is used to store the 
> PcdRecordList in a JSON file for each of the arch. and during the 
> Incremental build this API will check if there is any change in the 
> PCD /VPDs then rest of the flow remains the same. if there is no 
> change then it will return the provious build data.
> 
> Flow:
> during the 1st build PcdRecordList.json is not exists, PcdRecordList 
> will be dumped to json file. and it will copy the output.txt as well.
> Note: as the output.txt are different for different Arch, so it will 
> be stored in the Arch folder.
> During the Incremental build check if