public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH v1 0/3] Add EDKII CI support for DynamicTablesPkg
@ 2020-06-29 13:27 Sami Mujawar
  2020-06-29 13:27 ` [PATCH v1 1/3] DynamicTablesPkg: Fix issues reported by EDKII CI Sami Mujawar
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Sami Mujawar @ 2020-06-29 13:27 UTC (permalink / raw)
  To: devel
  Cc: Sami Mujawar, Alexei.Fedorov, sean.brogan, liming.gao,
	michael.d.kinney, Bret.Barkelew, ard.biesheuvel, Matteo.Carlini,
	Laura.Moretta, nd

The TianoCore EDKII project has introduced a Core CI infrastructure
using TianoCore EDKII Tools PIP modules.

This patch series adds support for building DynamicTablesPkg using
the EKDII Core CI.

The changes can be seen at:
https://github.com/samimujawar/edk2/tree/839_dynamictablespkg_ci_v1


Sami Mujawar (3):
  DynamicTablesPkg: Fix issues reported by EDKII CI
  DynamicTablesPkg: Add EDK2 Core CI support
  .pytool: CI Settings to support DynamicTablesPkg

 .pytool/CISettings.py                                            |   2 +
 .pytool/Readme.md                                                |   2 +-
 DynamicTablesPkg/DynamicTablesPkg.ci.yaml                        | 103 ++++++++++++++++++++
 DynamicTablesPkg/DynamicTablesPkg.dec                            |   7 +-
 DynamicTablesPkg/DynamicTablesPkg.dsc                            |   4 +-
 DynamicTablesPkg/Include/ArmNameSpaceObjects.h                   |   6 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c |   4 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c |   8 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c |  12 +--
 DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c |   6 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiSratLibArm/SratGenerator.c |   4 +-
 DynamicTablesPkg/Readme.md                                       |  73 +++++++++++++-
 12 files changed, 205 insertions(+), 26 deletions(-)
 create mode 100644 DynamicTablesPkg/DynamicTablesPkg.ci.yaml

-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'


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

* [PATCH v1 1/3] DynamicTablesPkg: Fix issues reported by EDKII CI
  2020-06-29 13:27 [PATCH v1 0/3] Add EDKII CI support for DynamicTablesPkg Sami Mujawar
@ 2020-06-29 13:27 ` Sami Mujawar
  2020-06-29 14:23   ` [edk2-devel] " Alexei Fedorov
  2020-06-29 13:27 ` [PATCH v1 2/3] DynamicTablesPkg: Add EDK2 Core CI support Sami Mujawar
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 12+ messages in thread
From: Sami Mujawar @ 2020-06-29 13:27 UTC (permalink / raw)
  To: devel
  Cc: Sami Mujawar, Alexei.Fedorov, sean.brogan, liming.gao,
	michael.d.kinney, Bret.Barkelew, ard.biesheuvel, Matteo.Carlini,
	Laura.Moretta, nd

The TianoCore EDKII project has introduced a Core CI infrastructure
using TianoCore EDKII Tools PIP modules:
* https://pypi.org/project/edk2-pytool-library/
* https://pypi.org/project/edk2-pytool-extensions/

More information on configuring the environment and running the
builds can be found in edk2\.pytool\Readme.md

This patch fixes the issues reported by the CI system mainly around
fixing typo errors and package dec and dsc files. A subsequent patch
enables the CI builds for the DynamicTablesPkg.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
---
 DynamicTablesPkg/DynamicTablesPkg.dec                            |  7 +++++--
 DynamicTablesPkg/DynamicTablesPkg.dsc                            |  4 ++--
 DynamicTablesPkg/Include/ArmNameSpaceObjects.h                   |  6 +++---
 DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c |  4 ++--
 DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c |  8 ++++----
 DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c | 12 ++++++------
 DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c |  6 +++---
 DynamicTablesPkg/Library/Acpi/Arm/AcpiSratLibArm/SratGenerator.c |  4 ++--
 DynamicTablesPkg/Readme.md                                       |  2 +-
 9 files changed, 28 insertions(+), 25 deletions(-)

diff --git a/DynamicTablesPkg/DynamicTablesPkg.dec b/DynamicTablesPkg/DynamicTablesPkg.dec
index cf453faf590368c2e480e65a09cef4b5fbdc70d1..6cb8a0b4f2c91b59e888951fda034bfdc56d95e1 100644
--- a/DynamicTablesPkg/DynamicTablesPkg.dec
+++ b/DynamicTablesPkg/DynamicTablesPkg.dec
@@ -1,7 +1,7 @@
 ## @file
 # dec file for Dynamic Tables Framework.
 #
-# Copyright (c) 2017 - 2018, ARM Limited. All rights reserved.<BR>
+# Copyright (c) 2017 - 2020, ARM Limited. All rights reserved.<BR>
 #
 # SPDX-License-Identifier: BSD-2-Clause-Patent
 #
@@ -16,8 +16,11 @@ [Defines]
 [Includes]
   Include
 
+[LibraryClasses]
+  ##  @libraryclass  Defines a set of helper methods.
+  TableHelperLib|Include/Library/TableHelperLib.h
+
 [Protocols]
-
   # Configuration Manager Protocol GUID
   gEdkiiConfigurationManagerProtocolGuid = { 0xd85a4835, 0x5a82, 0x4894, { 0xac, 0x2, 0x70, 0x6f, 0x43, 0xd5, 0x97, 0x8e } }
 
diff --git a/DynamicTablesPkg/DynamicTablesPkg.dsc b/DynamicTablesPkg/DynamicTablesPkg.dsc
index 02f04447fffa867c602c748279c041bd566a7fd6..5fb30a9315a75750a7d4c3e802c610a7991111c7 100644
--- a/DynamicTablesPkg/DynamicTablesPkg.dsc
+++ b/DynamicTablesPkg/DynamicTablesPkg.dsc
@@ -2,7 +2,7 @@
 #  Dsc file for Dynamic Tables Framework.
 #
 #  Copyright (c) 2019, Linaro Limited. All rights reserved.<BR>
-#  Copyright (c) 2019, ARM Limited. All rights reserved.<BR>
+#  Copyright (c) 2019 - 2020, ARM Limited. All rights reserved.<BR>
 #
 #  SPDX-License-Identifier: BSD-2-Clause-Patent
 #
@@ -39,7 +39,7 @@ [Components.common]
   DynamicTablesPkg/Library/Common/TableHelperLib/TableHelperLib.inf
 
 [BuildOptions]
-  *_*_*_CC_FLAGS = -DDISABLE_NEW_DEPRECATED_INTERFACES
+  *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES
 
 !ifdef STATIC_ANALYSIS
   # Check all rules
diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
index 2f326960313c1d7658029205e5cb09b89b0cdd88..57a282d5cb6883d0dabb74ceac7c8905ed3ef43a 100644
--- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
@@ -1,6 +1,6 @@
 /** @file
 
-  Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.
+  Copyright (c) 2017 - 2020, ARM Limited. All rights reserved.
 
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
@@ -682,7 +682,7 @@ typedef struct CmArmProcHierarchyInfo {
   UINT32            NoOfPrivateResources;
   /// Token of the array which contains references to the resources private to
   /// this CM_ARM_PROC_HIERARCHY_INFO instance. This field is ignored if
-  /// the NoOfPrivateResources is 0, in which case it is recomended to set
+  /// the NoOfPrivateResources is 0, in which case it is recommended to set
   /// this field to CM_NULL_TOKEN.
   CM_OBJECT_TOKEN   PrivateResourcesArrayToken;
 } CM_ARM_PROC_HIERARCHY_INFO;
@@ -795,7 +795,7 @@ typedef struct CmArmDeviceHandlePci {
   /// PCI Bus Number - Max 256 busses (Bits 15:8 of BDF)
   UINT8  BusNumber;
 
-  /// PCI Device Mumber - Max 32 devices (Bits 7:3 of BDF)
+  /// PCI Device Number - Max 32 devices (Bits 7:3 of BDF)
   UINT8   DeviceNumber;
 
   /// PCI Function Number - Max 8 functions (Bits 2:0 of BDF)
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c
index 51c843d25f75388104694855ce133b3d61860196..172d99f61cf36e7e65d62249960fd7527d8dae00 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c
@@ -1,7 +1,7 @@
 /** @file
   DBG2 Table Generator
 
-  Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.
+  Copyright (c) 2017 - 2020, ARM Limited. All rights reserved.
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
   @par Reference(s):
@@ -323,7 +323,7 @@ BuildDbg2Table (
     Status = EFI_INVALID_PARAMETER;
     DEBUG ((
       DEBUG_ERROR,
-      "ERROR: DBG2: Uart port sybtype is invalid. PortSubtype = 0x%x\n",
+      "ERROR: DBG2: Uart port subtype is invalid. PortSubtype = 0x%x\n",
       SerialPortInfo->PortSubtype
       ));
     goto error_handler;
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
index 65d006c89e668c8b2b8a14326cddf1b69979597f..349caa8006bc34ca789cb3e321a0f87c0cd4ff0d 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
@@ -1,7 +1,7 @@
 /** @file
   IORT Table Generator
 
-  Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.
+  Copyright (c) 2017 - 2020, ARM Limited. All rights reserved.
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
   @par Reference(s):
@@ -1053,7 +1053,7 @@ AddRootComplexNodes (
 **/
 STATIC
 EFI_STATUS
-AddSmmuInterrruptArray (
+AddSmmuInterruptArray (
   IN      CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL  * CONST CfgMgrProtocol,
   IN OUT        EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT    *       InterruptArray,
   IN            UINT32                                        InterruptCount,
@@ -1199,7 +1199,7 @@ AddSmmuV1V2Nodes (
     SmmuNode->SMMU_NSgCfgIrptFlags = NodeList->SMMU_NSgCfgIrptFlags;
 
     // Add Context Interrupt Array
-    Status = AddSmmuInterrruptArray (
+    Status = AddSmmuInterruptArray (
                CfgMgrProtocol,
                ContextInterruptArray,
                SmmuNode->NumContextInterrupts,
@@ -1217,7 +1217,7 @@ AddSmmuV1V2Nodes (
     // Add PMU Interrupt Array
     if ((SmmuNode->NumPmuInterrupts > 0) &&
         (NodeList->PmuInterruptToken != CM_NULL_TOKEN)) {
-      Status = AddSmmuInterrruptArray (
+      Status = AddSmmuInterruptArray (
                  CfgMgrProtocol,
                  PmuInterruptArray,
                  SmmuNode->NumPmuInterrupts,
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c
index 2651ca15414694c494678bcec655fc882ee2cc0c..7ec800f51cb0dbee0da46a829863647fd1839c23 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c
@@ -1,7 +1,7 @@
 /** @file
   MADT Table Generator
 
-  Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.
+  Copyright (c) 2017 - 2020, ARM Limited. All rights reserved.
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
   @par Reference(s):
@@ -332,24 +332,24 @@ AddGICMsiFrameInfoList (
 /** Update the GIC Redistributor Information.
 
   @param [in]  Gicr                 Pointer to GIC Redistributor structure.
-  @param [in]  GicRedisributorInfo  Pointer to the GIC Redistributor Info.
+  @param [in]  GicRedistributorInfo  Pointer to the GIC Redistributor Info.
 **/
 STATIC
 VOID
 AddGICRedistributor (
   IN  EFI_ACPI_6_3_GICR_STRUCTURE   * CONST Gicr,
-  IN  CONST CM_ARM_GIC_REDIST_INFO  * CONST GicRedisributorInfo
+  IN  CONST CM_ARM_GIC_REDIST_INFO  * CONST GicRedistributorInfo
   )
 {
   ASSERT (Gicr != NULL);
-  ASSERT (GicRedisributorInfo != NULL);
+  ASSERT (GicRedistributorInfo != NULL);
 
   Gicr->Type = EFI_ACPI_6_3_GICR;
   Gicr->Length = sizeof (EFI_ACPI_6_3_GICR_STRUCTURE);
   Gicr->Reserved = EFI_ACPI_RESERVED_WORD;
   Gicr->DiscoveryRangeBaseAddress =
-    GicRedisributorInfo->DiscoveryRangeBaseAddress;
-  Gicr->DiscoveryRangeLength = GicRedisributorInfo->DiscoveryRangeLength;
+    GicRedistributorInfo->DiscoveryRangeBaseAddress;
+  Gicr->DiscoveryRangeLength = GicRedistributorInfo->DiscoveryRangeLength;
 }
 
 /** Add the GIC Redistributor Information to the MADT Table.
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c
index 4b2580da7df9b4472ae9bcc3df2138a9e13004d0..b80e98ee7e143e39c540557d53a4129bf4ac5eb7 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c
@@ -1,7 +1,7 @@
 /** @file
   SPCR Table Generator
 
-  Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.
+  Copyright (c) 2017 - 2020, ARM Limited. All rights reserved.
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
   @par Reference(s):
@@ -189,7 +189,7 @@ BuildSpcrTable (
     Status = EFI_INVALID_PARAMETER;
     DEBUG ((
       DEBUG_ERROR,
-      "ERROR: SPCR: Uart port sybtype is invalid. PortSubtype = 0x%x\n",
+      "ERROR: SPCR: Uart port subtype is invalid. PortSubtype = 0x%x\n",
       SerialPortInfo->PortSubtype
       ));
     goto error_handler;
@@ -224,7 +224,7 @@ BuildSpcrTable (
     Status = EFI_INVALID_PARAMETER;
     DEBUG ((
       DEBUG_ERROR,
-      "ERROR: SPCR: Invalid Port Sybtype (must be < 256). Status = %r\n",
+      "ERROR: SPCR: Invalid Port subtype (must be < 256). Status = %r\n",
       Status
       ));
     goto error_handler;
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSratLibArm/SratGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSratLibArm/SratGenerator.c
index 620e2929ef2460b6bf318fa85f8bca984608b955..6844bb40eb02e994bb6a4edfaf25689685ca01fc 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSratLibArm/SratGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSratLibArm/SratGenerator.c
@@ -1,7 +1,7 @@
 /** @file
   SRAT Table Generator
 
-  Copyright (c) 2019, ARM Limited. All rights reserved.
+  Copyright (c) 2019 - 2020, ARM Limited. All rights reserved.
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
   @par Reference(s):
@@ -101,7 +101,7 @@ GET_OBJECT_LIST (
 /** Return the PCI Device information in BDF format
 
     PCI Bus Number - Max 256 busses (Bits 15:8 of BDF)
-    PCI Device Mumber - Max 32 devices (Bits 7:3 of BDF)
+    PCI Device Number - Max 32 devices (Bits 7:3 of BDF)
     PCI Function Number - Max 8 functions (Bits 2:0 of BDF)
 
     @param [in]  DeviceHandlePci   Pointer to the PCI Device Handle.
diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md
index 93fd1f313aa5227df5c1ccc82dfe17cb4c8f9e0a..bcaae6daa5fff24d9f62639149e9f82c2665c682 100644
--- a/DynamicTablesPkg/Readme.md
+++ b/DynamicTablesPkg/Readme.md
@@ -136,4 +136,4 @@ Documentation
 
 Refer to the following presentation from *UEFI Plugfest Seattle 2018*:
 
-[Dynamic Tables Framework: A Step Towards Automatic Generation of Advanced Configuration and Power Interface (ACPI) & System Management BIOS (SMBIOS) Tables – Sami Mujawar (Arm).](http://www.uefi.org/sites/default/files/resources/Arm_Dynamic%20Tables%20Framework%20A%20Step%20Towards%20Automatic%20Generation%20of%20Advanced%20Configuration%20and%20Power%20Interface%20%28ACPI%29%20%26%20System%20Management%20BIOS%20%28SMBIOS%29%20Tables%20_0.pdf)
+[Dynamic Tables Framework: A Step Towards Automatic Generation of Advanced Configuration and Power Interface (ACPI) & System Management BIOS (SMBIOS) Tables](http://www.uefi.org/sites/default/files/resources/Arm_Dynamic%20Tables%20Framework%20A%20Step%20Towards%20Automatic%20Generation%20of%20Advanced%20Configuration%20and%20Power%20Interface%20%28ACPI%29%20%26%20System%20Management%20BIOS%20%28SMBIOS%29%20Tables%20_0.pdf)
-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'


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

* [PATCH v1 2/3] DynamicTablesPkg: Add EDK2 Core CI support
  2020-06-29 13:27 [PATCH v1 0/3] Add EDKII CI support for DynamicTablesPkg Sami Mujawar
  2020-06-29 13:27 ` [PATCH v1 1/3] DynamicTablesPkg: Fix issues reported by EDKII CI Sami Mujawar
@ 2020-06-29 13:27 ` Sami Mujawar
  2020-06-29 14:24   ` [edk2-devel] " Alexei Fedorov
  2020-06-29 17:29   ` Sean
  2020-06-29 13:27 ` [PATCH v1 3/3] .pytool: CI Settings to support DynamicTablesPkg Sami Mujawar
                   ` (2 subsequent siblings)
  4 siblings, 2 replies; 12+ messages in thread
From: Sami Mujawar @ 2020-06-29 13:27 UTC (permalink / raw)
  To: devel
  Cc: Sami Mujawar, Alexei.Fedorov, sean.brogan, liming.gao,
	michael.d.kinney, Bret.Barkelew, ard.biesheuvel, Matteo.Carlini,
	Laura.Moretta, nd

The TianoCore EDKII project has introduced a Core CI infrastructure
using TianoCore EDKII Tools PIP modules:
  * https://pypi.org/project/edk2-pytool-library/
  * https://pypi.org/project/edk2-pytool-extensions/

The edk2\.pytool\Readme.md provides information to configure the
environment and to run local builds.

This patch defines the necessary settings for enabling the Core CI
builds for DynamicTablesPkg.
 - Add DynamicTablesPkg.ci.yaml for Core CI
 - Update ReadMe.md for details and instructions

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
---
 DynamicTablesPkg/DynamicTablesPkg.ci.yaml | 103 ++++++++++++++++++++
 DynamicTablesPkg/Readme.md                |  71 ++++++++++++++
 2 files changed, 174 insertions(+)

diff --git a/DynamicTablesPkg/DynamicTablesPkg.ci.yaml b/DynamicTablesPkg/DynamicTablesPkg.ci.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..637e5450e3105bb90082924dfa30cf55cdea1e50
--- /dev/null
+++ b/DynamicTablesPkg/DynamicTablesPkg.ci.yaml
@@ -0,0 +1,103 @@
+## @file
+# CI configuration for DynamicTablesPkg
+#
+# Copyright (c) 2020, ARM Limited. All rights reserved.<BR>
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+{
+    ## options defined .pytool/Plugin/CompilerPlugin
+    "CompilerPlugin": {
+        "DscPath": "DynamicTablesPkg.dsc"
+    },
+
+    ## options defined .pytool/Plugin/HostUnitTestCompilerPlugin
+    "HostUnitTestCompilerPlugin": {
+        "DscPath": "" # Don't support this test
+    },
+
+    ## options defined .pytool/Plugin/CharEncodingCheck
+    "CharEncodingCheck": {
+        "IgnoreFiles": []
+    },
+
+    ## options defined .pytool/Plugin/DependencyCheck
+    "DependencyCheck": {
+        "AcceptableDependencies": [
+            "ArmPlatformPkg/ArmPlatformPkg.dec",
+            "EmbeddedPkg/EmbeddedPkg.dec",
+            "DynamicTablesPkg/DynamicTablesPkg.dec",
+            "MdeModulePkg/MdeModulePkg.dec",
+            "MdePkg/MdePkg.dec"
+        ],
+        # For host based unit tests
+        "AcceptableDependencies-HOST_APPLICATION":[
+            "UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec"
+        ],
+        # For UEFI shell based apps
+        "AcceptableDependencies-UEFI_APPLICATION":[],
+        "IgnoreInf": []
+    },
+
+    ## options defined .pytool/Plugin/DscCompleteCheck
+    "DscCompleteCheck": {
+        "IgnoreInf": [
+           "DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/AcpiDbg2LibArm.inf",
+           "DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/AcpiFadtLibArm.inf",
+           "DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/AcpiGtdtLibArm.inf",
+           "DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/AcpiIortLibArm.inf",
+           "DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/AcpiMadtLibArm.inf",
+           "DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/AcpiMcfgLibArm.inf",
+           "DynamicTablesPkg/Library/Acpi/Arm/AcpiPpttLibArm/AcpiPpttLibArm.inf",
+           "DynamicTablesPkg/Library/Acpi/Arm/AcpiRawLibArm/AcpiRawLibArm.inf",
+           "DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/AcpiSpcrLibArm.inf",
+           "DynamicTablesPkg/Library/Acpi/Arm/AcpiSratLibArm/AcpiSratLibArm.inf"
+           ],
+        "DscPath": "DynamicTablesPkg.dsc"
+    },
+
+    ## options defined .pytool/Plugin/HostUnitTestDscCompleteCheck
+    "HostUnitTestDscCompleteCheck": {
+        "IgnoreInf": [""],
+        "DscPath": "" # Don't support this test
+    },
+
+    ## options defined .pytool/Plugin/GuidCheck
+    "GuidCheck": {
+        "IgnoreGuidName": [],
+        "IgnoreGuidValue": [],
+        "IgnoreFoldersAndFiles": [],
+        "IgnoreDuplicates": [],
+    },
+
+    ## options defined .pytool/Plugin/LibraryClassCheck
+    "LibraryClassCheck": {
+        "IgnoreHeaderFile": []
+    },
+
+    ## options defined .pytool/Plugin/SpellCheck
+    "SpellCheck": {
+        "AuditOnly": False,
+        "IgnoreFiles": [],           # use gitignore syntax to ignore errors
+                                     # in matching files
+        "ExtendWords": [
+           "CCIDX",
+           "CCSIDR",
+           "countof",
+           "EOBJECT",
+           "GTBLOCK",
+           "MPIDR",
+           "pytool",
+           "Roadmap",
+           "SMMUV",
+           "standardised",
+           "TABLEEX",
+           "TNSID",
+           "Vatos",
+           "WBINVD"
+           ],           # words to extend to the dictionary for this package
+        "IgnoreStandardPaths": [],   # Standard Plugin defined paths that
+                                     # should be ignore
+        "AdditionalIncludePaths": [] # Additional paths to spell check
+                                     # (wildcards supported)
+    }
+}
diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md
index bcaae6daa5fff24d9f62639149e9f82c2665c682..e17ed3ac6fd2fbcaced7d64393b316d4d6f75283 100644
--- a/DynamicTablesPkg/Readme.md
+++ b/DynamicTablesPkg/Readme.md
@@ -131,9 +131,80 @@ Ensure that the iASL compiler used for building *Dynamic Tables Framework* has t
 This feature was made available in the *ACPICA Compiler update
 [Version 20180508](https://www.acpica.org/node/156)*, dated 8 May 2018 (2018-05-08).
 
+
+Running CI builds locally
+-------------------------
+
+The TianoCore EDKII project has introduced Core CI infrastructure using TianoCore EDKII Tools PIP modules:
+
+   -  *[edk2-pytool-library](https://pypi.org/project/edk2-pytool-library)*
+
+   - *[edk2-pytool-extensions](https://pypi.org/project/edk2-pytool-extensions)*
+
+
+The instructions to setup the CI environment are in *'edk2\\.pytool\\Readme.md'*
+
+## Building DynamicTablesPkg with Pytools
+
+1. [Optional] Create a Python Virtual Environment - generally once per workspace
+
+    ```
+        python -m venv <name of virtual environment>
+
+        e.g. python -m venv edk2-ci
+    ```
+
+2. [Optional] Activate Virtual Environment - each time new shell/command window is opened
+
+    ```
+        <name of virtual environment>/Scripts/activate
+
+        e.g. On a windows host PC run:
+             edk2-ci\Scripts\activate.bat
+    ```
+3. Install Pytools - generally once per virtual env or whenever pip-requirements.txt changes
+
+    ```
+        pip install --upgrade -r pip-requirements.txt
+    ```
+
+4. Initialize & Update Submodules - only when submodules updated
+
+    ```
+        stuart_setup -c .pytool/CISettings.py TOOL_CHAIN_TAG=<TOOL_CHAIN_TAG> -a <TARGET_ARCH>
+
+        e.g. stuart_setup -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5
+    ```
+
+5. Initialize & Update Dependencies - only as needed when ext_deps change
+
+    ```
+        stuart_update -c .pytool/CISettings.py TOOL_CHAIN_TAG=<TOOL_CHAIN_TAG> -a <TARGET_ARCH>
+
+        e.g. stuart_update -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5
+    ```
+
+6. Compile the basetools if necessary - only when basetools C source files change
+
+    ```
+        python BaseTools/Edk2ToolsBuild.py -t <ToolChainTag>
+    ```
+
+7. Compile DynamicTablesPkg
+
+    ```
+        stuart_build-c .pytool/CISettings.py TOOL_CHAIN_TAG=<TOOL_CHAIN_TAG> -a <TARGET_ARCH>
+
+        e.g. stuart_ci_build -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5 -p DynamicTablesPkg -a AARCH64 --verbose
+    ```
+
+    - use `stuart_build -c .pytool/CISettings.py -h` option to see help on additional options.
+
+
 Documentation
 -------------
 
 Refer to the following presentation from *UEFI Plugfest Seattle 2018*:
 
 [Dynamic Tables Framework: A Step Towards Automatic Generation of Advanced Configuration and Power Interface (ACPI) & System Management BIOS (SMBIOS) Tables](http://www.uefi.org/sites/default/files/resources/Arm_Dynamic%20Tables%20Framework%20A%20Step%20Towards%20Automatic%20Generation%20of%20Advanced%20Configuration%20and%20Power%20Interface%20%28ACPI%29%20%26%20System%20Management%20BIOS%20%28SMBIOS%29%20Tables%20_0.pdf)
+
-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'


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

* [PATCH v1 3/3] .pytool: CI Settings to support DynamicTablesPkg
  2020-06-29 13:27 [PATCH v1 0/3] Add EDKII CI support for DynamicTablesPkg Sami Mujawar
  2020-06-29 13:27 ` [PATCH v1 1/3] DynamicTablesPkg: Fix issues reported by EDKII CI Sami Mujawar
  2020-06-29 13:27 ` [PATCH v1 2/3] DynamicTablesPkg: Add EDK2 Core CI support Sami Mujawar
@ 2020-06-29 13:27 ` Sami Mujawar
  2020-06-29 14:25   ` [edk2-devel] " Alexei Fedorov
  2020-06-29 14:22 ` [edk2-devel] [PATCH v1 0/3] Add EDKII CI support for DynamicTablesPkg Alexei Fedorov
  2020-06-29 18:55 ` Sean
  4 siblings, 1 reply; 12+ messages in thread
From: Sami Mujawar @ 2020-06-29 13:27 UTC (permalink / raw)
  To: devel
  Cc: Sami Mujawar, Alexei.Fedorov, sean.brogan, liming.gao,
	michael.d.kinney, Bret.Barkelew, ard.biesheuvel, Matteo.Carlini,
	Laura.Moretta, nd

Update pytools configuration to enable DynamicTablesPkg
and update package status in documentation.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
---
 .pytool/CISettings.py | 2 ++
 .pytool/Readme.md     | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/.pytool/CISettings.py b/.pytool/CISettings.py
index bac60ecbaaf51ef4cf2f3ec7616e8ba2caa645ea..0c2dd0181aa2d3b3650e255da924d028d872513d 100644
--- a/.pytool/CISettings.py
+++ b/.pytool/CISettings.py
@@ -2,6 +2,7 @@
 #
 # Copyright (c) Microsoft Corporation.
 # Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
+# Copyright (c) 2020, ARM Limited. All rights reserved.<BR>
 # SPDX-License-Identifier: BSD-2-Clause-Patent
 ##
 import os
@@ -41,6 +42,7 @@ class Settings(CiBuildSettingsManager, UpdateSettingsManager, SetupSettingsManag
         These should be edk2 workspace relative paths '''
 
         return ("ArmVirtPkg",
+                "DynamicTablesPkg",
                 "EmulatorPkg",
                 "MdePkg",
                 "MdeModulePkg",
diff --git a/.pytool/Readme.md b/.pytool/Readme.md
index c401dba18fbf39a1431c3dbbfa30353de3ecb4b4..2fc905b8674fc217044baa2ff721f3c6afa504c9 100644
--- a/.pytool/Readme.md
+++ b/.pytool/Readme.md
@@ -8,7 +8,7 @@
 | ArmPlatformPkg       |
 | ArmVirtPkg           | SEE PACKAGE README | SEE PACKAGE README |
 | CryptoPkg            | :heavy_check_mark: | :heavy_check_mark: | Spell checking in audit mode
-| DynamicTablesPkg     |
+| DynamicTablesPkg     |                    | :heavy_check_mark: |
 | EmbeddedPkg          |
 | EmulatorPkg          | SEE PACKAGE README | SEE PACKAGE README | Spell checking in audit mode
 | FatPkg               | :heavy_check_mark: | :heavy_check_mark: |
-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'


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

* Re: [edk2-devel] [PATCH v1 0/3] Add EDKII CI support for DynamicTablesPkg
  2020-06-29 13:27 [PATCH v1 0/3] Add EDKII CI support for DynamicTablesPkg Sami Mujawar
                   ` (2 preceding siblings ...)
  2020-06-29 13:27 ` [PATCH v1 3/3] .pytool: CI Settings to support DynamicTablesPkg Sami Mujawar
@ 2020-06-29 14:22 ` Alexei Fedorov
  2020-06-29 18:55 ` Sean
  4 siblings, 0 replies; 12+ messages in thread
From: Alexei Fedorov @ 2020-06-29 14:22 UTC (permalink / raw)
  To: Sami Mujawar, devel

[-- Attachment #1: Type: text/plain, Size: 54 bytes --]

Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>

[-- Attachment #2: Type: text/html, Size: 60 bytes --]

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

* Re: [edk2-devel] [PATCH v1 1/3] DynamicTablesPkg: Fix issues reported by EDKII CI
  2020-06-29 13:27 ` [PATCH v1 1/3] DynamicTablesPkg: Fix issues reported by EDKII CI Sami Mujawar
@ 2020-06-29 14:23   ` Alexei Fedorov
  0 siblings, 0 replies; 12+ messages in thread
From: Alexei Fedorov @ 2020-06-29 14:23 UTC (permalink / raw)
  To: Sami Mujawar, devel

[-- Attachment #1: Type: text/plain, Size: 54 bytes --]

Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>

[-- Attachment #2: Type: text/html, Size: 60 bytes --]

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

* Re: [edk2-devel] [PATCH v1 2/3] DynamicTablesPkg: Add EDK2 Core CI support
  2020-06-29 13:27 ` [PATCH v1 2/3] DynamicTablesPkg: Add EDK2 Core CI support Sami Mujawar
@ 2020-06-29 14:24   ` Alexei Fedorov
  2020-06-29 17:29   ` Sean
  1 sibling, 0 replies; 12+ messages in thread
From: Alexei Fedorov @ 2020-06-29 14:24 UTC (permalink / raw)
  To: Sami Mujawar, devel

[-- Attachment #1: Type: text/plain, Size: 54 bytes --]

Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>

[-- Attachment #2: Type: text/html, Size: 60 bytes --]

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

* Re: [edk2-devel] [PATCH v1 3/3] .pytool: CI Settings to support DynamicTablesPkg
  2020-06-29 13:27 ` [PATCH v1 3/3] .pytool: CI Settings to support DynamicTablesPkg Sami Mujawar
@ 2020-06-29 14:25   ` Alexei Fedorov
  0 siblings, 0 replies; 12+ messages in thread
From: Alexei Fedorov @ 2020-06-29 14:25 UTC (permalink / raw)
  To: Sami Mujawar, devel

[-- Attachment #1: Type: text/plain, Size: 54 bytes --]

Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>

[-- Attachment #2: Type: text/html, Size: 60 bytes --]

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

* Re: [edk2-devel] [PATCH v1 2/3] DynamicTablesPkg: Add EDK2 Core CI support
  2020-06-29 13:27 ` [PATCH v1 2/3] DynamicTablesPkg: Add EDK2 Core CI support Sami Mujawar
  2020-06-29 14:24   ` [edk2-devel] " Alexei Fedorov
@ 2020-06-29 17:29   ` Sean
  2020-06-29 18:16     ` Sami Mujawar
  1 sibling, 1 reply; 12+ messages in thread
From: Sean @ 2020-06-29 17:29 UTC (permalink / raw)
  To: devel, sami.mujawar
  Cc: Alexei.Fedorov, sean.brogan, liming.gao, michael.d.kinney,
	Bret.Barkelew, ard.biesheuvel, Matteo.Carlini, Laura.Moretta, nd

Mostly curious but why are there modules not built during ci (The files 
listed in the DscCompleteCheck[IgnoreInf] list)?

Thanks
Sean




On 6/29/2020 6:27 AM, Sami Mujawar wrote:
> The TianoCore EDKII project has introduced a Core CI infrastructure
> using TianoCore EDKII Tools PIP modules:
>    * https://pypi.org/project/edk2-pytool-library/
>    * https://pypi.org/project/edk2-pytool-extensions/
> 
> The edk2\.pytool\Readme.md provides information to configure the
> environment and to run local builds.
> 
> This patch defines the necessary settings for enabling the Core CI
> builds for DynamicTablesPkg.
>   - Add DynamicTablesPkg.ci.yaml for Core CI
>   - Update ReadMe.md for details and instructions
> 
> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
> ---
>   DynamicTablesPkg/DynamicTablesPkg.ci.yaml | 103 ++++++++++++++++++++
>   DynamicTablesPkg/Readme.md                |  71 ++++++++++++++
>   2 files changed, 174 insertions(+)
> 
> diff --git a/DynamicTablesPkg/DynamicTablesPkg.ci.yaml b/DynamicTablesPkg/DynamicTablesPkg.ci.yaml
> new file mode 100644
> index 0000000000000000000000000000000000000000..637e5450e3105bb90082924dfa30cf55cdea1e50
> --- /dev/null
> +++ b/DynamicTablesPkg/DynamicTablesPkg.ci.yaml
> @@ -0,0 +1,103 @@
> +## @file
> +# CI configuration for DynamicTablesPkg
> +#
> +# Copyright (c) 2020, ARM Limited. All rights reserved.<BR>
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +##
> +{
> +    ## options defined .pytool/Plugin/CompilerPlugin
> +    "CompilerPlugin": {
> +        "DscPath": "DynamicTablesPkg.dsc"
> +    },
> +
> +    ## options defined .pytool/Plugin/HostUnitTestCompilerPlugin
> +    "HostUnitTestCompilerPlugin": {
> +        "DscPath": "" # Don't support this test
> +    },
> +
> +    ## options defined .pytool/Plugin/CharEncodingCheck
> +    "CharEncodingCheck": {
> +        "IgnoreFiles": []
> +    },
> +
> +    ## options defined .pytool/Plugin/DependencyCheck
> +    "DependencyCheck": {
> +        "AcceptableDependencies": [
> +            "ArmPlatformPkg/ArmPlatformPkg.dec",
> +            "EmbeddedPkg/EmbeddedPkg.dec",
> +            "DynamicTablesPkg/DynamicTablesPkg.dec",
> +            "MdeModulePkg/MdeModulePkg.dec",
> +            "MdePkg/MdePkg.dec"
> +        ],
> +        # For host based unit tests
> +        "AcceptableDependencies-HOST_APPLICATION":[
> +            "UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec"
> +        ],
> +        # For UEFI shell based apps
> +        "AcceptableDependencies-UEFI_APPLICATION":[],
> +        "IgnoreInf": []
> +    },
> +
> +    ## options defined .pytool/Plugin/DscCompleteCheck
> +    "DscCompleteCheck": {
> +        "IgnoreInf": [
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/AcpiDbg2LibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/AcpiFadtLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/AcpiGtdtLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/AcpiIortLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/AcpiMadtLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/AcpiMcfgLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiPpttLibArm/AcpiPpttLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiRawLibArm/AcpiRawLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/AcpiSpcrLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiSratLibArm/AcpiSratLibArm.inf"
> +           ],
> +        "DscPath": "DynamicTablesPkg.dsc"
> +    },
> +
> +    ## options defined .pytool/Plugin/HostUnitTestDscCompleteCheck
> +    "HostUnitTestDscCompleteCheck": {
> +        "IgnoreInf": [""],
> +        "DscPath": "" # Don't support this test
> +    },
> +
> +    ## options defined .pytool/Plugin/GuidCheck
> +    "GuidCheck": {
> +        "IgnoreGuidName": [],
> +        "IgnoreGuidValue": [],
> +        "IgnoreFoldersAndFiles": [],
> +        "IgnoreDuplicates": [],
> +    },
> +
> +    ## options defined .pytool/Plugin/LibraryClassCheck
> +    "LibraryClassCheck": {
> +        "IgnoreHeaderFile": []
> +    },
> +
> +    ## options defined .pytool/Plugin/SpellCheck
> +    "SpellCheck": {
> +        "AuditOnly": False,
> +        "IgnoreFiles": [],           # use gitignore syntax to ignore errors
> +                                     # in matching files
> +        "ExtendWords": [
> +           "CCIDX",
> +           "CCSIDR",
> +           "countof",
> +           "EOBJECT",
> +           "GTBLOCK",
> +           "MPIDR",
> +           "pytool",
> +           "Roadmap",
> +           "SMMUV",
> +           "standardised",
> +           "TABLEEX",
> +           "TNSID",
> +           "Vatos",
> +           "WBINVD"
> +           ],           # words to extend to the dictionary for this package
> +        "IgnoreStandardPaths": [],   # Standard Plugin defined paths that
> +                                     # should be ignore
> +        "AdditionalIncludePaths": [] # Additional paths to spell check
> +                                     # (wildcards supported)
> +    }
> +}
> diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md
> index bcaae6daa5fff24d9f62639149e9f82c2665c682..e17ed3ac6fd2fbcaced7d64393b316d4d6f75283 100644
> --- a/DynamicTablesPkg/Readme.md
> +++ b/DynamicTablesPkg/Readme.md
> @@ -131,9 +131,80 @@ Ensure that the iASL compiler used for building *Dynamic Tables Framework* has t
>   This feature was made available in the *ACPICA Compiler update
>   [Version 20180508](https://www.acpica.org/node/156)*, dated 8 May 2018 (2018-05-08).
>   
> +
> +Running CI builds locally
> +-------------------------
> +
> +The TianoCore EDKII project has introduced Core CI infrastructure using TianoCore EDKII Tools PIP modules:
> +
> +   -  *[edk2-pytool-library](https://pypi.org/project/edk2-pytool-library)*
> +
> +   - *[edk2-pytool-extensions](https://pypi.org/project/edk2-pytool-extensions)*
> +
> +
> +The instructions to setup the CI environment are in *'edk2\\.pytool\\Readme.md'*
> +
> +## Building DynamicTablesPkg with Pytools
> +
> +1. [Optional] Create a Python Virtual Environment - generally once per workspace
> +
> +    ```
> +        python -m venv <name of virtual environment>
> +
> +        e.g. python -m venv edk2-ci
> +    ```
> +
> +2. [Optional] Activate Virtual Environment - each time new shell/command window is opened
> +
> +    ```
> +        <name of virtual environment>/Scripts/activate
> +
> +        e.g. On a windows host PC run:
> +             edk2-ci\Scripts\activate.bat
> +    ```
> +3. Install Pytools - generally once per virtual env or whenever pip-requirements.txt changes
> +
> +    ```
> +        pip install --upgrade -r pip-requirements.txt
> +    ```
> +
> +4. Initialize & Update Submodules - only when submodules updated
> +
> +    ```
> +        stuart_setup -c .pytool/CISettings.py TOOL_CHAIN_TAG=<TOOL_CHAIN_TAG> -a <TARGET_ARCH>
> +
> +        e.g. stuart_setup -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5
> +    ```
> +
> +5. Initialize & Update Dependencies - only as needed when ext_deps change
> +
> +    ```
> +        stuart_update -c .pytool/CISettings.py TOOL_CHAIN_TAG=<TOOL_CHAIN_TAG> -a <TARGET_ARCH>
> +
> +        e.g. stuart_update -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5
> +    ```
> +
> +6. Compile the basetools if necessary - only when basetools C source files change
> +
> +    ```
> +        python BaseTools/Edk2ToolsBuild.py -t <ToolChainTag>
> +    ```
> +
> +7. Compile DynamicTablesPkg
> +
> +    ```
> +        stuart_build-c .pytool/CISettings.py TOOL_CHAIN_TAG=<TOOL_CHAIN_TAG> -a <TARGET_ARCH>
> +
> +        e.g. stuart_ci_build -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5 -p DynamicTablesPkg -a AARCH64 --verbose
> +    ```
> +
> +    - use `stuart_build -c .pytool/CISettings.py -h` option to see help on additional options.
> +
> +
>   Documentation
>   -------------
>   
>   Refer to the following presentation from *UEFI Plugfest Seattle 2018*:
>   
>   [Dynamic Tables Framework: A Step Towards Automatic Generation of Advanced Configuration and Power Interface (ACPI) & System Management BIOS (SMBIOS) Tables](http://www.uefi.org/sites/default/files/resources/Arm_Dynamic%20Tables%20Framework%20A%20Step%20Towards%20Automatic%20Generation%20of%20Advanced%20Configuration%20and%20Power%20Interface%20%28ACPI%29%20%26%20System%20Management%20BIOS%20%28SMBIOS%29%20Tables%20_0.pdf)
> +
> 

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

* Re: [edk2-devel] [PATCH v1 2/3] DynamicTablesPkg: Add EDK2 Core CI support
  2020-06-29 17:29   ` Sean
@ 2020-06-29 18:16     ` Sami Mujawar
  0 siblings, 0 replies; 12+ messages in thread
From: Sami Mujawar @ 2020-06-29 18:16 UTC (permalink / raw)
  To: devel@edk2.groups.io, spbrogan@outlook.com
  Cc: Alexei Fedorov, sean.brogan@microsoft.com, liming.gao@intel.com,
	michael.d.kinney@intel.com, Bret.Barkelew@microsoft.com,
	Ard Biesheuvel, Matteo Carlini, Laura Moretta, nd

Hi Sean,

I realised that the INF files were not listed in the components section, and this is causing the 'DscCompleteCheck' to fail.
I will submit an update patch series with this fixed.

Regards,

Sami Mujawar

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Sean via groups.io
Sent: 29 June 2020 06:30 PM
To: devel@edk2.groups.io; Sami Mujawar <Sami.Mujawar@arm.com>
Cc: Alexei Fedorov <Alexei.Fedorov@arm.com>; sean.brogan@microsoft.com; liming.gao@intel.com; michael.d.kinney@intel.com; Bret.Barkelew@microsoft.com; Ard Biesheuvel <Ard.Biesheuvel@arm.com>; Matteo Carlini <Matteo.Carlini@arm.com>; Laura Moretta <Laura.Moretta@arm.com>; nd <nd@arm.com>
Subject: Re: [edk2-devel] [PATCH v1 2/3] DynamicTablesPkg: Add EDK2 Core CI support

Mostly curious but why are there modules not built during ci (The files listed in the DscCompleteCheck[IgnoreInf] list)?

Thanks
Sean




On 6/29/2020 6:27 AM, Sami Mujawar wrote:
> The TianoCore EDKII project has introduced a Core CI infrastructure 
> using TianoCore EDKII Tools PIP modules:
>    * https://pypi.org/project/edk2-pytool-library/
>    * https://pypi.org/project/edk2-pytool-extensions/
> 
> The edk2\.pytool\Readme.md provides information to configure the 
> environment and to run local builds.
> 
> This patch defines the necessary settings for enabling the Core CI 
> builds for DynamicTablesPkg.
>   - Add DynamicTablesPkg.ci.yaml for Core CI
>   - Update ReadMe.md for details and instructions
> 
> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
> ---
>   DynamicTablesPkg/DynamicTablesPkg.ci.yaml | 103 ++++++++++++++++++++
>   DynamicTablesPkg/Readme.md                |  71 ++++++++++++++
>   2 files changed, 174 insertions(+)
> 
> diff --git a/DynamicTablesPkg/DynamicTablesPkg.ci.yaml 
> b/DynamicTablesPkg/DynamicTablesPkg.ci.yaml
> new file mode 100644
> index 
> 0000000000000000000000000000000000000000..637e5450e3105bb90082924dfa30
> cf55cdea1e50
> --- /dev/null
> +++ b/DynamicTablesPkg/DynamicTablesPkg.ci.yaml
> @@ -0,0 +1,103 @@
> +## @file
> +# CI configuration for DynamicTablesPkg # # Copyright (c) 2020, ARM 
> +Limited. All rights reserved.<BR> # SPDX-License-Identifier: 
> +BSD-2-Clause-Patent ## {
> +    ## options defined .pytool/Plugin/CompilerPlugin
> +    "CompilerPlugin": {
> +        "DscPath": "DynamicTablesPkg.dsc"
> +    },
> +
> +    ## options defined .pytool/Plugin/HostUnitTestCompilerPlugin
> +    "HostUnitTestCompilerPlugin": {
> +        "DscPath": "" # Don't support this test
> +    },
> +
> +    ## options defined .pytool/Plugin/CharEncodingCheck
> +    "CharEncodingCheck": {
> +        "IgnoreFiles": []
> +    },
> +
> +    ## options defined .pytool/Plugin/DependencyCheck
> +    "DependencyCheck": {
> +        "AcceptableDependencies": [
> +            "ArmPlatformPkg/ArmPlatformPkg.dec",
> +            "EmbeddedPkg/EmbeddedPkg.dec",
> +            "DynamicTablesPkg/DynamicTablesPkg.dec",
> +            "MdeModulePkg/MdeModulePkg.dec",
> +            "MdePkg/MdePkg.dec"
> +        ],
> +        # For host based unit tests
> +        "AcceptableDependencies-HOST_APPLICATION":[
> +            "UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec"
> +        ],
> +        # For UEFI shell based apps
> +        "AcceptableDependencies-UEFI_APPLICATION":[],
> +        "IgnoreInf": []
> +    },
> +
> +    ## options defined .pytool/Plugin/DscCompleteCheck
> +    "DscCompleteCheck": {
> +        "IgnoreInf": [
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/AcpiDbg2LibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/AcpiFadtLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/AcpiGtdtLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/AcpiIortLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/AcpiMadtLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/AcpiMcfgLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiPpttLibArm/AcpiPpttLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiRawLibArm/AcpiRawLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/AcpiSpcrLibArm.inf",
> +           "DynamicTablesPkg/Library/Acpi/Arm/AcpiSratLibArm/AcpiSratLibArm.inf"
> +           ],
> +        "DscPath": "DynamicTablesPkg.dsc"
> +    },
> +
> +    ## options defined .pytool/Plugin/HostUnitTestDscCompleteCheck
> +    "HostUnitTestDscCompleteCheck": {
> +        "IgnoreInf": [""],
> +        "DscPath": "" # Don't support this test
> +    },
> +
> +    ## options defined .pytool/Plugin/GuidCheck
> +    "GuidCheck": {
> +        "IgnoreGuidName": [],
> +        "IgnoreGuidValue": [],
> +        "IgnoreFoldersAndFiles": [],
> +        "IgnoreDuplicates": [],
> +    },
> +
> +    ## options defined .pytool/Plugin/LibraryClassCheck
> +    "LibraryClassCheck": {
> +        "IgnoreHeaderFile": []
> +    },
> +
> +    ## options defined .pytool/Plugin/SpellCheck
> +    "SpellCheck": {
> +        "AuditOnly": False,
> +        "IgnoreFiles": [],           # use gitignore syntax to ignore errors
> +                                     # in matching files
> +        "ExtendWords": [
> +           "CCIDX",
> +           "CCSIDR",
> +           "countof",
> +           "EOBJECT",
> +           "GTBLOCK",
> +           "MPIDR",
> +           "pytool",
> +           "Roadmap",
> +           "SMMUV",
> +           "standardised",
> +           "TABLEEX",
> +           "TNSID",
> +           "Vatos",
> +           "WBINVD"
> +           ],           # words to extend to the dictionary for this package
> +        "IgnoreStandardPaths": [],   # Standard Plugin defined paths that
> +                                     # should be ignore
> +        "AdditionalIncludePaths": [] # Additional paths to spell check
> +                                     # (wildcards supported)
> +    }
> +}
> diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md 
> index 
> bcaae6daa5fff24d9f62639149e9f82c2665c682..e17ed3ac6fd2fbcaced7d64393b3
> 16d4d6f75283 100644
> --- a/DynamicTablesPkg/Readme.md
> +++ b/DynamicTablesPkg/Readme.md
> @@ -131,9 +131,80 @@ Ensure that the iASL compiler used for building *Dynamic Tables Framework* has t
>   This feature was made available in the *ACPICA Compiler update
>   [Version 20180508](https://www.acpica.org/node/156)*, dated 8 May 2018 (2018-05-08).
>   
> +
> +Running CI builds locally
> +-------------------------
> +
> +The TianoCore EDKII project has introduced Core CI infrastructure using TianoCore EDKII Tools PIP modules:
> +
> +   -  
> + *[edk2-pytool-library](https://pypi.org/project/edk2-pytool-library)
> + *
> +
> +   - 
> + *[edk2-pytool-extensions](https://pypi.org/project/edk2-pytool-exten
> + sions)*
> +
> +
> +The instructions to setup the CI environment are in 
> +*'edk2\\.pytool\\Readme.md'*
> +
> +## Building DynamicTablesPkg with Pytools
> +
> +1. [Optional] Create a Python Virtual Environment - generally once 
> +per workspace
> +
> +    ```
> +        python -m venv <name of virtual environment>
> +
> +        e.g. python -m venv edk2-ci
> +    ```
> +
> +2. [Optional] Activate Virtual Environment - each time new 
> +shell/command window is opened
> +
> +    ```
> +        <name of virtual environment>/Scripts/activate
> +
> +        e.g. On a windows host PC run:
> +             edk2-ci\Scripts\activate.bat
> +    ```
> +3. Install Pytools - generally once per virtual env or whenever 
> +pip-requirements.txt changes
> +
> +    ```
> +        pip install --upgrade -r pip-requirements.txt
> +    ```
> +
> +4. Initialize & Update Submodules - only when submodules updated
> +
> +    ```
> +        stuart_setup -c .pytool/CISettings.py 
> + TOOL_CHAIN_TAG=<TOOL_CHAIN_TAG> -a <TARGET_ARCH>
> +
> +        e.g. stuart_setup -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5
> +    ```
> +
> +5. Initialize & Update Dependencies - only as needed when ext_deps 
> +change
> +
> +    ```
> +        stuart_update -c .pytool/CISettings.py 
> + TOOL_CHAIN_TAG=<TOOL_CHAIN_TAG> -a <TARGET_ARCH>
> +
> +        e.g. stuart_update -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5
> +    ```
> +
> +6. Compile the basetools if necessary - only when basetools C source 
> +files change
> +
> +    ```
> +        python BaseTools/Edk2ToolsBuild.py -t <ToolChainTag>
> +    ```
> +
> +7. Compile DynamicTablesPkg
> +
> +    ```
> +        stuart_build-c .pytool/CISettings.py 
> + TOOL_CHAIN_TAG=<TOOL_CHAIN_TAG> -a <TARGET_ARCH>
> +
> +        e.g. stuart_ci_build -c .pytool/CISettings.py TOOL_CHAIN_TAG=GCC5 -p DynamicTablesPkg -a AARCH64 --verbose
> +    ```
> +
> +    - use `stuart_build -c .pytool/CISettings.py -h` option to see help on additional options.
> +
> +
>   Documentation
>   -------------
>   
>   Refer to the following presentation from *UEFI Plugfest Seattle 2018*:
>   
>   [Dynamic Tables Framework: A Step Towards Automatic Generation of 
> Advanced Configuration and Power Interface (ACPI) & System Management 
> BIOS (SMBIOS) 
> Tables](http://www.uefi.org/sites/default/files/resources/Arm_Dynamic%
> 20Tables%20Framework%20A%20Step%20Towards%20Automatic%20Generation%20o
> f%20Advanced%20Configuration%20and%20Power%20Interface%20%28ACPI%29%20
> %26%20System%20Management%20BIOS%20%28SMBIOS%29%20Tables%20_0.pdf)
> +
> 




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

* Re: [edk2-devel] [PATCH v1 0/3] Add EDKII CI support for DynamicTablesPkg
  2020-06-29 13:27 [PATCH v1 0/3] Add EDKII CI support for DynamicTablesPkg Sami Mujawar
                   ` (3 preceding siblings ...)
  2020-06-29 14:22 ` [edk2-devel] [PATCH v1 0/3] Add EDKII CI support for DynamicTablesPkg Alexei Fedorov
@ 2020-06-29 18:55 ` Sean
  2020-06-30 19:23   ` Sami Mujawar
  4 siblings, 1 reply; 12+ messages in thread
From: Sean @ 2020-06-29 18:55 UTC (permalink / raw)
  To: devel, sami.mujawar
  Cc: Alexei.Fedorov, sean.brogan, liming.gao, michael.d.kinney,
	Bret.Barkelew, ard.biesheuvel, Matteo.Carlini, Laura.Moretta, nd

Two additional questions/comments with this patch set.

1. Is this package not compatible with MSVC toolchain? From the readme 
update it looks like GCC/Ubuntu only. From the DSC it looks like 
ARM|AARCH64 only?  Is there any reason this isn't compatible?

2. You need one more patch to get this run as part of CI.
You need to add the package to the matrix.
https://github.com/tianocore/edk2/blob/master/.azurepipelines/templates/pr-gate-build-job.yml#L38

It can probably be added in with an existing package.  Usually i look 
over the build job summary and find a job with less than the max time 
and has similar packages and then add it there.
For example looking at the CI GCC build here: 
https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=8964&view=results

It looks like adding to FMP_FAT_TEST would work.

Thanks
Sean


On 6/29/2020 6:27 AM, Sami Mujawar wrote:
> The TianoCore EDKII project has introduced a Core CI infrastructure
> using TianoCore EDKII Tools PIP modules.
> 
> This patch series adds support for building DynamicTablesPkg using
> the EKDII Core CI.
> 
> The changes can be seen at:
> https://github.com/samimujawar/edk2/tree/839_dynamictablespkg_ci_v1
> 
> 
> Sami Mujawar (3):
>    DynamicTablesPkg: Fix issues reported by EDKII CI
>    DynamicTablesPkg: Add EDK2 Core CI support
>    .pytool: CI Settings to support DynamicTablesPkg
> 
>   .pytool/CISettings.py                                            |   2 +
>   .pytool/Readme.md                                                |   2 +-
>   DynamicTablesPkg/DynamicTablesPkg.ci.yaml                        | 103 ++++++++++++++++++++
>   DynamicTablesPkg/DynamicTablesPkg.dec                            |   7 +-
>   DynamicTablesPkg/DynamicTablesPkg.dsc                            |   4 +-
>   DynamicTablesPkg/Include/ArmNameSpaceObjects.h                   |   6 +-
>   DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c |   4 +-
>   DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c |   8 +-
>   DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c |  12 +--
>   DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c |   6 +-
>   DynamicTablesPkg/Library/Acpi/Arm/AcpiSratLibArm/SratGenerator.c |   4 +-
>   DynamicTablesPkg/Readme.md                                       |  73 +++++++++++++-
>   12 files changed, 205 insertions(+), 26 deletions(-)
>   create mode 100644 DynamicTablesPkg/DynamicTablesPkg.ci.yaml
> 

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

* Re: [edk2-devel] [PATCH v1 0/3] Add EDKII CI support for DynamicTablesPkg
  2020-06-29 18:55 ` Sean
@ 2020-06-30 19:23   ` Sami Mujawar
  0 siblings, 0 replies; 12+ messages in thread
From: Sami Mujawar @ 2020-06-30 19:23 UTC (permalink / raw)
  To: Sean Brogan, devel@edk2.groups.io
  Cc: Alexei Fedorov, sean.brogan@microsoft.com, liming.gao@intel.com,
	michael.d.kinney@intel.com, Bret.Barkelew@microsoft.com,
	Ard Biesheuvel, Matteo Carlini, Laura Moretta, nd

Hi Sean,

Thank you for the inputs. 
Please find my response inline marked [SAMI].

Regards,

Sami Mujawar

-----Original Message-----
From: Sean Brogan <spbrogan@outlook.com> 
Sent: 29 June 2020 07:56 PM
To: devel@edk2.groups.io; Sami Mujawar <Sami.Mujawar@arm.com>
Cc: Alexei Fedorov <Alexei.Fedorov@arm.com>; sean.brogan@microsoft.com; liming.gao@intel.com; michael.d.kinney@intel.com; Bret.Barkelew@microsoft.com; Ard Biesheuvel <Ard.Biesheuvel@arm.com>; Matteo Carlini <Matteo.Carlini@arm.com>; Laura Moretta <Laura.Moretta@arm.com>; nd <nd@arm.com>
Subject: Re: [edk2-devel] [PATCH v1 0/3] Add EDKII CI support for DynamicTablesPkg

Two additional questions/comments with this patch set.

1. Is this package not compatible with MSVC toolchain? From the readme update it looks like GCC/Ubuntu only. From the DSC it looks like 
ARM|AARCH64 only?  Is there any reason this isn't compatible?

[SAMI] There are a few dependencies that need to be fixed before DynamicTablesPkg can build with MSVC toolchain. I will submit them as a separate patch series.

2. You need one more patch to get this run as part of CI.
You need to add the package to the matrix.
https://github.com/tianocore/edk2/blob/master/.azurepipelines/templates/pr-gate-build-job.yml#L38

It can probably be added in with an existing package.  Usually i look 
over the build job summary and find a job with less than the max time 
and has similar packages and then add it there.
For example looking at the CI GCC build here: 
https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=8964&view=results

It looks like adding to FMP_FAT_TEST would work.

[SAMI] I have included this in the v2 series and will be posting it shortly.

Thanks
Sean


On 6/29/2020 6:27 AM, Sami Mujawar wrote:
> The TianoCore EDKII project has introduced a Core CI infrastructure
> using TianoCore EDKII Tools PIP modules.
> 
> This patch series adds support for building DynamicTablesPkg using
> the EKDII Core CI.
> 
> The changes can be seen at:
> https://github.com/samimujawar/edk2/tree/839_dynamictablespkg_ci_v1
> 
> 
> Sami Mujawar (3):
>    DynamicTablesPkg: Fix issues reported by EDKII CI
>    DynamicTablesPkg: Add EDK2 Core CI support
>    .pytool: CI Settings to support DynamicTablesPkg
> 
>   .pytool/CISettings.py                                            |   2 +
>   .pytool/Readme.md                                                |   2 +-
>   DynamicTablesPkg/DynamicTablesPkg.ci.yaml                        | 103 ++++++++++++++++++++
>   DynamicTablesPkg/DynamicTablesPkg.dec                            |   7 +-
>   DynamicTablesPkg/DynamicTablesPkg.dsc                            |   4 +-
>   DynamicTablesPkg/Include/ArmNameSpaceObjects.h                   |   6 +-
>   DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c |   4 +-
>   DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c |   8 +-
>   DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c |  12 +--
>   DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c |   6 +-
>   DynamicTablesPkg/Library/Acpi/Arm/AcpiSratLibArm/SratGenerator.c |   4 +-
>   DynamicTablesPkg/Readme.md                                       |  73 +++++++++++++-
>   12 files changed, 205 insertions(+), 26 deletions(-)
>   create mode 100644 DynamicTablesPkg/DynamicTablesPkg.ci.yaml
> 

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

end of thread, other threads:[~2020-06-30 19:24 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-29 13:27 [PATCH v1 0/3] Add EDKII CI support for DynamicTablesPkg Sami Mujawar
2020-06-29 13:27 ` [PATCH v1 1/3] DynamicTablesPkg: Fix issues reported by EDKII CI Sami Mujawar
2020-06-29 14:23   ` [edk2-devel] " Alexei Fedorov
2020-06-29 13:27 ` [PATCH v1 2/3] DynamicTablesPkg: Add EDK2 Core CI support Sami Mujawar
2020-06-29 14:24   ` [edk2-devel] " Alexei Fedorov
2020-06-29 17:29   ` Sean
2020-06-29 18:16     ` Sami Mujawar
2020-06-29 13:27 ` [PATCH v1 3/3] .pytool: CI Settings to support DynamicTablesPkg Sami Mujawar
2020-06-29 14:25   ` [edk2-devel] " Alexei Fedorov
2020-06-29 14:22 ` [edk2-devel] [PATCH v1 0/3] Add EDKII CI support for DynamicTablesPkg Alexei Fedorov
2020-06-29 18:55 ` Sean
2020-06-30 19:23   ` Sami Mujawar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox