public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes
@ 2019-02-21 18:14 Sami Mujawar
  2019-02-21 18:14 ` [PATCH v1 1/6] DynamicTablesPkg: Fix depex and protocol section Sami Mujawar
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Sami Mujawar @ 2019-02-21 18:14 UTC (permalink / raw)
  To: edk2-devel
  Cc: alexei.fedorov, leif.lindholm, Matteo.Carlini,
	Stephanie.Hughes-Fitt, nd

This patch series updates the Dynamic Tables Framework to
incorporate the following changes:
  * Fix DEPEX to load modules in correct order.
  * Add options for OEMs to provide OEM Table ID and revision.
  * Update DBG2_DEBUG_PORT_DDI macro to remove unused parameter.
  * Remove GIC Distributor ID field.
  * Minor updates to comments and typo fixes.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>

The changes can be seen at:
https://github.com/samimujawar/edk2/tree/473_dynamic_tables_framework_v1

The corresponding edk2-platform code changes can be seen at:
https://github.com/samimujawar/edk2-platforms/tree/473_dynamic_tables_framework_v1

Sami Mujawar (6):
  DynamicTablesPkg: Fix depex and protocol section
  DynamicTablesPkg: Rename enum used for ID Mapping
  DynamicTablesPkg: Add OEM Info
  DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDI
  DynamicTablesPkg: Remove GIC Distributor Id field
  DynamicTablesPkg: Minor updates and fix typos

 DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactoryDxe.inf |  7 +-
 DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf | 11 +--
 DynamicTablesPkg/Include/ArmNameSpaceObjects.h                             | 73 +++++++++++++++-----
 DynamicTablesPkg/Include/Library/TableHelperLib.h                          |  4 +-
 DynamicTablesPkg/Include/StandardNameSpaceObjects.h                        | 18 +++++
 DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c           |  7 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c           |  2 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c           |  2 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c           |  8 +--
 DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c           |  6 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c           |  2 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c           |  2 +-
 DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c               | 26 +++++--
 13 files changed, 119 insertions(+), 49 deletions(-)

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




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

* [PATCH v1 1/6] DynamicTablesPkg: Fix depex and protocol section
  2019-02-21 18:14 [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes Sami Mujawar
@ 2019-02-21 18:14 ` Sami Mujawar
  2019-02-21 18:14 ` [PATCH v1 2/6] DynamicTablesPkg: Rename enum used for ID Mapping Sami Mujawar
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Sami Mujawar @ 2019-02-21 18:14 UTC (permalink / raw)
  To: edk2-devel
  Cc: alexei.fedorov, leif.lindholm, Matteo.Carlini,
	Stephanie.Hughes-Fitt, nd

Updated the DynamicTableFactoryDxe and DynamicTableManagerDxe
to setup the correct dependency order. Also updated the
Protocols section to reflect the protocols that are produced
or consumed.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
---
 DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactoryDxe.inf |  7 ++-----
 DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf | 11 +++++++----
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactoryDxe.inf b/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactoryDxe.inf
index 740811d0fc0590543a62360e6753eb04fb675d70..02c907c38023e8b44829a38ed93436904d8cf3d3 100644
--- a/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactoryDxe.inf
+++ b/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactoryDxe.inf
@@ -1,7 +1,7 @@
 ## @file
 #  Module to manage the list of available table factories.
 #
-#  Copyright (c) 2017 - 2018, ARM Limited. All rights reserved.
+#  Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
@@ -51,10 +51,7 @@ [FixedPcd]
   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxCustomDTGenerators
 
 [Protocols]
-  gEfiAcpiTableProtocolGuid                     # PROTOCOL ALWAYS_CONSUMED
-  gEfiSmbiosProtocolGuid                        # PROTOCOL ALWAYS_CONSUMED
-  gEdkiiConfigurationManagerProtocolGuid
-  gEdkiiDynamicTableFactoryProtocolGuid
+  gEdkiiDynamicTableFactoryProtocolGuid         # PRODUCES
 
 [Depex]
   TRUE
diff --git a/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf b/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf
index 2aeaf15b157c0172c9cb073e55d789944a73e2ec..39b10b5536bc341dc253801b8ed7640a8b5d4217 100644
--- a/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf
+++ b/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf
@@ -1,7 +1,7 @@
 ## @file
 # Module that drives the table generation and installation process.
 #
-#  Copyright (c) 2017 - 2018, ARM Limited. All rights reserved.
+#  Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
@@ -42,9 +42,12 @@ [LibraryClasses]
 
 [Protocols]
   gEfiAcpiTableProtocolGuid                     # PROTOCOL ALWAYS_CONSUMED
-  gEdkiiConfigurationManagerProtocolGuid
-  gEdkiiDynamicTableFactoryProtocolGuid
+
+  gEdkiiConfigurationManagerProtocolGuid        # PROTOCOL ALWAYS_CONSUMED
+  gEdkiiDynamicTableFactoryProtocolGuid         # PROTOCOL ALWAYS_CONSUMED
 
 [Depex]
-  gEdkiiConfigurationManagerProtocolGuid
+  gEfiAcpiTableProtocolGuid
+  AND gEdkiiConfigurationManagerProtocolGuid
+  AND gEdkiiDynamicTableFactoryProtocolGuid
 
-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'




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

* [PATCH v1 2/6] DynamicTablesPkg: Rename enum used for ID Mapping
  2019-02-21 18:14 [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes Sami Mujawar
  2019-02-21 18:14 ` [PATCH v1 1/6] DynamicTablesPkg: Fix depex and protocol section Sami Mujawar
@ 2019-02-21 18:14 ` Sami Mujawar
  2019-02-21 18:14 ` [PATCH v1 3/6] DynamicTablesPkg: Add OEM Info Sami Mujawar
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Sami Mujawar @ 2019-02-21 18:14 UTC (permalink / raw)
  To: edk2-devel
  Cc: alexei.fedorov, leif.lindholm, Matteo.Carlini,
	Stephanie.Hughes-Fitt, nd

Renamed the enum EArmObjIdMapping to EArmObjIdMappingArray
and updated the IORT generator accordingly.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
---
 DynamicTablesPkg/Include/ArmNameSpaceObjects.h                   | 2 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
index 93cb6949f0eb2ac2ad3524494e4a14c7a6fab4b8..2adaa788083e4e15d049f5f6b6312f77f3c02488 100644
--- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
@@ -52,7 +52,7 @@ typedef enum ArmObjectID {
   EArmObjSmmuV3,                      ///< 22 - SMMUv3
   EArmObjPmcg,                        ///< 23 - PMCG
   EArmObjGicItsIdentifierArray,       ///< 24 - GIC ITS Identifier Array
-  EArmObjIdMapping,                   ///< 25 - ID Mapping
+  EArmObjIdMappingArray,              ///< 25 - ID Mapping Array
   EArmObjSmmuInterruptArray,          ///< 26 - SMMU Interrupt Array
   EArmObjMax
 } EARM_OBJECT_ID;
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
index a3ee60664ecbeb1b12b01683f838e11804884daf..b53c4bb47798d4ad441db1fe1b1e5b180e313403 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
@@ -44,7 +44,7 @@ Requirements:
   - EArmObjSmmuV3
   - EArmObjPmcg
   - EArmObjGicItsIdentifierArray
-  - EArmObjIdMapping
+  - EArmObjIdMappingArray
   - EArmObjGicItsIdentifierArray
 */
 
@@ -116,7 +116,7 @@ GET_OBJECT_LIST (
 */
 GET_OBJECT_LIST (
   EObjNameSpaceArm,
-  EArmObjIdMapping,
+  EArmObjIdMappingArray,
   CM_ARM_ID_MAPPING
   );
 
@@ -653,7 +653,7 @@ AddIdMappingArray (
   Generator = (ACPI_IORT_GENERATOR*)This;
 
   // Get the Id Mapping Array
-  Status = GetEArmObjIdMapping (
+  Status = GetEArmObjIdMappingArray (
              CfgMgrProtocol,
              IdMappingToken,
              &IdMappings,
-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'




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

* [PATCH v1 3/6] DynamicTablesPkg: Add OEM Info
  2019-02-21 18:14 [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes Sami Mujawar
  2019-02-21 18:14 ` [PATCH v1 1/6] DynamicTablesPkg: Fix depex and protocol section Sami Mujawar
  2019-02-21 18:14 ` [PATCH v1 2/6] DynamicTablesPkg: Rename enum used for ID Mapping Sami Mujawar
@ 2019-02-21 18:14 ` Sami Mujawar
  2019-02-21 18:14 ` [PATCH v1 4/6] DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDI Sami Mujawar
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Sami Mujawar @ 2019-02-21 18:14 UTC (permalink / raw)
  To: edk2-devel
  Cc: alexei.fedorov, leif.lindholm, Matteo.Carlini,
	Stephanie.Hughes-Fitt, nd

Added option for OEMs to provide OEM Table ID and
OEM Revision for ACPI tables.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
---
 DynamicTablesPkg/Include/Library/TableHelperLib.h                |  4 +--
 DynamicTablesPkg/Include/StandardNameSpaceObjects.h              | 18 ++++++++++++++
 DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c |  2 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c |  2 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c |  2 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c |  2 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c |  2 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c |  2 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c |  2 +-
 DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c     | 26 ++++++++++++++------
 10 files changed, 46 insertions(+), 16 deletions(-)

diff --git a/DynamicTablesPkg/Include/Library/TableHelperLib.h b/DynamicTablesPkg/Include/Library/TableHelperLib.h
index 3c4e1d23d2e6955388ab0b51fb57779f2225beb2..0f872bc3d08bf78e33bd8dab866e7bf57e00cb8c 100644
--- a/DynamicTablesPkg/Include/Library/TableHelperLib.h
+++ b/DynamicTablesPkg/Include/Library/TableHelperLib.h
@@ -45,7 +45,7 @@ GetCgfMgrInfo (
   @param [in]     Generator      Pointer to the ACPI table Generator.
   @param [in,out] AcpiHeader     Pointer to the ACPI table header to be
                                  updated.
-  @param [in]     Revision       Revision of the ACPI table.
+  @param [in]     AcpiTableInfo  Pointer to the ACPI table info structure.
   @param [in]     Length         Length of the ACPI table.
 
   @retval EFI_SUCCESS           The ACPI table is updated successfully.
@@ -61,7 +61,7 @@ AddAcpiHeader (
   IN      CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL  * CONST CfgMgrProtocol,
   IN      CONST ACPI_TABLE_GENERATOR                  * CONST Generator,
   IN OUT  EFI_ACPI_DESCRIPTION_HEADER                 * CONST AcpiHeader,
-  IN      CONST UINT32                                        Revision,
+  IN      CONST CM_STD_OBJ_ACPI_TABLE_INFO            * CONST AcpiTableInfo,
   IN      CONST UINT32                                        Length
   );
 
diff --git a/DynamicTablesPkg/Include/StandardNameSpaceObjects.h b/DynamicTablesPkg/Include/StandardNameSpaceObjects.h
index 4377ee8f785399b02fec824f3a34d2f4ed3b1c01..58503858b27141cf7647a410c4b0b3fa574033de 100644
--- a/DynamicTablesPkg/Include/StandardNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/StandardNameSpaceObjects.h
@@ -93,6 +93,24 @@ typedef struct CmAStdObjAcpiTableInfo {
   /// Optional pointer to the ACPI table data
   EFI_ACPI_DESCRIPTION_HEADER  * AcpiTableData;
 
+  /// An OEM-supplied string that the OEM uses to identify the particular
+  /// data table. This field is particularly useful when defining a definition
+  /// block to distinguish definition block functions. The OEM assigns each
+  /// dissimilar table a new OEM Table ID.
+  /// This field could be constructed using the SIGNATURE_64() macro.
+  ///   e.g. SIGNATURE_64 ('A','R','M','H','G','T','D','T')
+  /// Note: If this field is not populated (has value of Zero), then the
+  /// Generators shall populate this information using part of the
+  /// CM_STD_OBJ_CONFIGURATION_MANAGER_INFO.OemId field and the
+  /// ACPI table signature.
+  UINT64                         OemTableId;
+
+  /// An OEM-supplied revision number. Larger numbers are assumed to be
+  /// newer revisions.
+  /// Note: If this field is not populated (has value of Zero), then the
+  /// Generators shall populate this information using the revision of the
+  /// Configuration Manager (CM_STD_OBJ_CONFIGURATION_MANAGER_INFO.Revision).
+  UINT32                         OemRevision;
 } CM_STD_OBJ_ACPI_TABLE_INFO;
 
 /** A structure used to describe the SMBIOS table generators to be invoked.
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c
index e21e2b660634b1aedce8167b74573694d6df2a3b..697cfc46abaedf34d30abf26e7ebb2b4d271822a 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c
@@ -342,7 +342,7 @@ BuildDbg2Table (
              CfgMgrProtocol,
              This,
              (EFI_ACPI_DESCRIPTION_HEADER*)&AcpiDbg2,
-             AcpiTableInfo->AcpiTableRevision,
+             AcpiTableInfo,
              sizeof (DBG2_TABLE)
              );
   if (EFI_ERROR (Status)) {
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
index 62927b51d6d7c1585da1cb0d59785e2382639002..6699901b42a63a152027de59887ed097748ece91 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
@@ -537,7 +537,7 @@ BuildFadtTable (
              CfgMgrProtocol,
              This,
              (EFI_ACPI_DESCRIPTION_HEADER*)&AcpiFadt,
-             AcpiTableInfo->AcpiTableRevision,
+             AcpiTableInfo,
              sizeof (EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE)
              );
   if (EFI_ERROR (Status)) {
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c
index 70f52507bc7f12a776f76271b3f378bc62e717ba..d58794ee3ef5b72a8b2e3eb930ad5ab5bbb57c38 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c
@@ -518,7 +518,7 @@ BuildGtdtTable (
              CfgMgrProtocol,
              This,
              &Gtdt->Header,
-             AcpiTableInfo->AcpiTableRevision,
+             AcpiTableInfo,
              TableSize
              );
   if (EFI_ERROR (Status)) {
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
index b53c4bb47798d4ad441db1fe1b1e5b180e313403..2bac7a59ea40d6a3cae675b39d5df26ab7783a29 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
@@ -1798,7 +1798,7 @@ BuildIortTable (
              CfgMgrProtocol,
              This,
              &Iort->Header,
-             AcpiTableInfo->AcpiTableRevision,
+             AcpiTableInfo,
              TableSize
              );
   if (EFI_ERROR (Status)) {
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c
index 06794758308e028b7d8da06670b1793cbdb3ae81..1ee0b9e006bfa00ea5bbf6aa64209dac244c90a0 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c
@@ -569,7 +569,7 @@ BuildMadtTable (
              CfgMgrProtocol,
              This,
              &Madt->Header,
-             AcpiTableInfo->AcpiTableRevision,
+             AcpiTableInfo,
              TableSize
              );
   if (EFI_ERROR (Status)) {
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c
index 29eb72bd917227e87b8f126aa098a6e0ff3918cc..2131683a35158f40304892da9ab12e547483a4bc 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c
@@ -220,7 +220,7 @@ BuildMcfgTable (
              CfgMgrProtocol,
              This,
              &Mcfg->Header,
-             AcpiTableInfo->AcpiTableRevision,
+             AcpiTableInfo,
              TableSize
              );
   if (EFI_ERROR (Status)) {
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c
index 23d3a50713d200321e3d93850c1b42e48da2faeb..5018eb8ebfb4053fe845e5403b0ad1df373255a0 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c
@@ -209,7 +209,7 @@ BuildSpcrTable (
              CfgMgrProtocol,
              This,
              (EFI_ACPI_DESCRIPTION_HEADER*)&AcpiSpcr,
-             AcpiTableInfo->AcpiTableRevision,
+             AcpiTableInfo,
              sizeof (EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE)
              );
   if (EFI_ERROR (Status)) {
diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c b/DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c
index 02860ddf233b4a44c30450c8c090b416f1e07d81..203207bac2b202f568072b68e8cb25c5c258045f 100644
--- a/DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c
+++ b/DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c
@@ -100,7 +100,7 @@ GetCgfMgrInfo (
   @param [in]     Generator      Pointer to the ACPI table Generator.
   @param [in,out] AcpiHeader     Pointer to the ACPI table header to be
                                  updated.
-  @param [in]     Revision       Revision of the ACPI table.
+  @param [in]     AcpiTableInfo  Pointer to the ACPI table info structure.
   @param [in]     Length         Length of the ACPI table.
 
   @retval EFI_SUCCESS           The ACPI table is updated successfully.
@@ -116,7 +116,7 @@ AddAcpiHeader (
   IN      CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL  * CONST CfgMgrProtocol,
   IN      CONST ACPI_TABLE_GENERATOR                  * CONST Generator,
   IN OUT  EFI_ACPI_DESCRIPTION_HEADER                 * CONST AcpiHeader,
-  IN      CONST UINT32                                        Revision,
+  IN      CONST CM_STD_OBJ_ACPI_TABLE_INFO            * CONST AcpiTableInfo,
   IN      CONST UINT32                                        Length
   )
 {
@@ -151,7 +151,7 @@ AddAcpiHeader (
   // UINT32  Length
   AcpiHeader->Length = Length;
   // UINT8   Revision
-  AcpiHeader->Revision = Revision;
+  AcpiHeader->Revision = AcpiTableInfo->AcpiTableRevision;
   // UINT8   Checksum
   AcpiHeader->Checksum = 0;
 
@@ -159,12 +159,24 @@ AddAcpiHeader (
   CopyMem (AcpiHeader->OemId, CfgMfrInfo->OemId, sizeof (AcpiHeader->OemId));
 
   // UINT64  OemTableId
-  AcpiHeader->OemTableId = Generator->CreatorId;
-  AcpiHeader->OemTableId <<= 32;
-  AcpiHeader->OemTableId |= Generator->AcpiTableSignature;
+  if (AcpiTableInfo->OemTableId != 0) {
+    AcpiHeader->OemTableId = AcpiTableInfo->OemTableId;
+  } else {
+    AcpiHeader->OemTableId = SIGNATURE_32 (
+                               CfgMfrInfo->OemId[0],
+                               CfgMfrInfo->OemId[1],
+                               CfgMfrInfo->OemId[2],
+                               CfgMfrInfo->OemId[3]
+                               ) |
+                             ((UINT64)Generator->AcpiTableSignature << 32);
+  }
 
   // UINT32  OemRevision
-  AcpiHeader->OemRevision = CfgMfrInfo->Revision;
+  if (AcpiTableInfo->OemRevision != 0) {
+    AcpiHeader->OemRevision = AcpiTableInfo->OemRevision;
+  } else {
+    AcpiHeader->OemRevision = CfgMfrInfo->Revision;
+  }
 
   // UINT32  CreatorId
   AcpiHeader->CreatorId = Generator->CreatorId;
-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'




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

* [PATCH v1 4/6] DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDI
  2019-02-21 18:14 [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes Sami Mujawar
                   ` (2 preceding siblings ...)
  2019-02-21 18:14 ` [PATCH v1 3/6] DynamicTablesPkg: Add OEM Info Sami Mujawar
@ 2019-02-21 18:14 ` Sami Mujawar
  2019-02-21 18:14 ` [PATCH v1 5/6] DynamicTablesPkg: Remove GIC Distributor Id field Sami Mujawar
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Sami Mujawar @ 2019-02-21 18:14 UTC (permalink / raw)
  To: edk2-devel
  Cc: alexei.fedorov, leif.lindholm, Matteo.Carlini,
	Stephanie.Hughes-Fitt, nd

The DBG2_DEBUG_PORT_DDI() macro supports adding only one
Generic Base Address Register. Therefore, removed the
superfluous parameter NumReg and updated the macro to
use DBG2_NUMBER_OF_GENERIC_ADDRESS_REGISTERS which has
a value 1.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
---
 DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c
index 697cfc46abaedf34d30abf26e7ebb2b4d271822a..90380f48da017b257476ee63bcc1beae5efe1d65 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c
@@ -97,14 +97,12 @@ typedef struct {
 /** A helper macro used for initializing the debug port device
     information structure.
 
-  @param [in]  NumReg       The number of generic address registers.
   @param [in]  SubType      The DBG Port SubType.
   @param [in]  UartBase     The UART port base address.
   @param [in]  UartAddrLen  The UART port address range length.
   @param [in]  UartNameStr  The UART port name string.
 **/
 #define DBG2_DEBUG_PORT_DDI(                                          \
-          NumReg,                                                     \
           SubType,                                                    \
           UartBase,                                                   \
           UartAddrLen,                                                \
@@ -116,7 +114,7 @@ typedef struct {
       /* UINT16    Length */                                          \
       sizeof (DBG2_DEBUG_DEVICE_INFORMATION),                         \
       /* UINT8     NumberofGenericAddressRegisters */                 \
-      NumReg,                                                         \
+      DBG2_NUMBER_OF_GENERIC_ADDRESS_REGISTERS,                       \
       /* UINT16    NameSpaceStringLength */                           \
       DBG2_NAMESPACESTRING_FIELD_SIZE,                                \
       /* UINT16    NameSpaceStringOffset */                           \
@@ -164,7 +162,6 @@ DBG2_TABLE AcpiDbg2 = {
      * Debug port 1
      */
     DBG2_DEBUG_PORT_DDI (
-      DBG2_NUMBER_OF_GENERIC_ADDRESS_REGISTERS,
       0,                    // {Template}: Serial Port Subtype
       0,                    // {Template}: Serial Port Base Address
       PL011_UART_LENGTH,
-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'




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

* [PATCH v1 5/6] DynamicTablesPkg: Remove GIC Distributor Id field
  2019-02-21 18:14 [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes Sami Mujawar
                   ` (3 preceding siblings ...)
  2019-02-21 18:14 ` [PATCH v1 4/6] DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDI Sami Mujawar
@ 2019-02-21 18:14 ` Sami Mujawar
  2019-02-21 18:14 ` [PATCH v1 6/6] DynamicTablesPkg: Minor updates and fix typos Sami Mujawar
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Sami Mujawar @ 2019-02-21 18:14 UTC (permalink / raw)
  To: edk2-devel
  Cc: alexei.fedorov, leif.lindholm, Matteo.Carlini,
	Stephanie.Hughes-Fitt, nd

According to ACPI 6.2 Specification - Errata A, 'One,
and only one, GIC distributor structure must be present
in the MADT for an ARM based system'. Therefore,
the GIC Distributor ID field in the ACPI MADT GICD
substructure can be set to zero and there is no need
for the Configuration Manager to provide this information.

Update the CM_ARM_GICD_INFO structure to remove the GicId
field. Similarly update the MADT Generator to set the GicId
field in the GICD substructure to zero.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
---
 DynamicTablesPkg/Include/ArmNameSpaceObjects.h                   | 5 +----
 DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c | 4 +++-
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
index 2adaa788083e4e15d049f5f6b6312f77f3c02488..73139eb3273e89205ef9e6bee67b1b842f7f516b 100644
--- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
@@ -1,6 +1,6 @@
 /** @file
 
-  Copyright (c) 2017 - 2018, ARM Limited. All rights reserved.
+  Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -166,9 +166,6 @@ typedef struct CmArmGicCInfo {
     GIC Distributor information for the Platform.
 */
 typedef struct CmArmGicDInfo {
-  /// The GIC Distributor ID.
-  UINT32  GicId;
-
   /// The Physical Base address for the GIC Distributor.
   UINT64  PhysicalBaseAddress;
 
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c
index 1ee0b9e006bfa00ea5bbf6aa64209dac244c90a0..6b89c3f65d36ff35fcfc81cdffdeae8e4306c976 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c
@@ -192,7 +192,9 @@ AddGICD (
   // UINT16 Reserved
   Gicd->Reserved1 = EFI_ACPI_RESERVED_WORD;
   // UINT32 Identifier
-  Gicd->GicId = GicDInfo->GicId;
+  // One, and only one, GIC distributor structure must be present
+  // in the MADT for an ARM based system
+  Gicd->GicId = 0;
   // UINT64 PhysicalBaseAddress
   Gicd->PhysicalBaseAddress = GicDInfo->PhysicalBaseAddress;
   // UINT32 VectorBase
-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'




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

* [PATCH v1 6/6] DynamicTablesPkg: Minor updates and fix typos
  2019-02-21 18:14 [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes Sami Mujawar
                   ` (4 preceding siblings ...)
  2019-02-21 18:14 ` [PATCH v1 5/6] DynamicTablesPkg: Remove GIC Distributor Id field Sami Mujawar
@ 2019-02-21 18:14 ` Sami Mujawar
  2019-02-25 13:48 ` [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes Alexei Fedorov
  2019-02-25 19:27 ` Laszlo Ersek
  7 siblings, 0 replies; 9+ messages in thread
From: Sami Mujawar @ 2019-02-21 18:14 UTC (permalink / raw)
  To: edk2-devel
  Cc: alexei.fedorov, leif.lindholm, Matteo.Carlini,
	Stephanie.Hughes-Fitt, nd

Minor updates to comments and typo fixes. Also removed
unused structure CM_ARM_CPU_INFO_LIST.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
---
 DynamicTablesPkg/Include/ArmNameSpaceObjects.h | 66 ++++++++++++++++----
 1 file changed, 55 insertions(+), 11 deletions(-)

diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
index 73139eb3273e89205ef9e6bee67b1b842f7f516b..ec31c40449d0658f98a89ce0bb6f604b491f1f34 100644
--- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
@@ -59,6 +59,8 @@ typedef enum ArmObjectID {
 
 /** A structure that describes the
     ARM Boot Architecture flags.
+
+    ID: EArmObjBootArchInfo
 */
 typedef struct CmArmBootArchInfo {
   /** This is the ARM_BOOT_ARCH flags field of the FADT Table
@@ -71,13 +73,10 @@ typedef struct CmArmCpuInfo {
   // Reserved for use when SMBIOS tables are implemented
 } CM_ARM_CPU_INFO;
 
-typedef struct CmArmCpuInfoList {
-  UINT32             CpuCount;
-  CM_ARM_CPU_INFO  * CpuInfo;
-} CM_ARM_CPU_INFO_LIST;
-
 /** A structure that describes the
     Power Management Profile Information for the Platform.
+
+    ID: EArmObjPowerManagementProfileInfo
 */
 typedef struct CmArmPowerManagementProfileInfo {
   /** This is the Preferred_PM_Profile field of the FADT Table
@@ -88,6 +87,8 @@ typedef struct CmArmPowerManagementProfileInfo {
 
 /** A structure that describes the
     GIC CPU Interface for the Platform.
+
+    ID: EArmObjGicCInfo
 */
 typedef struct CmArmGicCInfo {
   /// The GIC CPU Interface number.
@@ -164,6 +165,8 @@ typedef struct CmArmGicCInfo {
 
 /** A structure that describes the
     GIC Distributor information for the Platform.
+
+    ID: EArmObjGicDInfo
 */
 typedef struct CmArmGicDInfo {
   /// The Physical Base address for the GIC Distributor.
@@ -184,6 +187,8 @@ typedef struct CmArmGicDInfo {
 
 /** A structure that describes the
     GIC MSI Frame information for the Platform.
+
+    ID: EArmObjGicMsiFrameInfo
 */
 typedef struct CmArmGicMsiFrameInfo {
   /// The GIC MSI Frame ID
@@ -207,6 +212,8 @@ typedef struct CmArmGicMsiFrameInfo {
 
 /** A structure that describes the
     GIC Redistributor information for the Platform.
+
+    ID: EArmObjGicRedistributorInfo
 */
 typedef struct CmArmGicRedistInfo {
   /** The physical address of a page range
@@ -220,6 +227,8 @@ typedef struct CmArmGicRedistInfo {
 
 /** A structure that describes the
     GIC Interrupt Translation Service information for the Platform.
+
+    ID: EArmObjGicItsInfo
 */
 typedef struct CmArmGicItsInfo {
   /// The GIC ITS ID
@@ -231,6 +240,9 @@ typedef struct CmArmGicItsInfo {
 
 /** A structure that describes the
     Serial Port information for the Platform.
+
+    ID: EArmObjSerialConsolePortInfo or
+        EArmObjSerialDebugPortInfo
 */
 typedef struct CmArmSerialPortInfo {
   /// The physical base address for the serial port
@@ -251,6 +263,8 @@ typedef struct CmArmSerialPortInfo {
 
 /** A structure that describes the
     Generic Timer information for the Platform.
+
+    ID: EArmObjGenericTimerInfo
 */
 typedef struct CmArmGenericTimerInfo {
   /// The physical base address for the counter control frame
@@ -286,6 +300,8 @@ typedef struct CmArmGenericTimerInfo {
 
 /** A structure that describes the
     Platform Generic Block Timer Frame information for the Platform.
+
+    ID: EArmObjGTBlockTimerFrameInfo
 */
 typedef struct CmArmGTBlockTimerFrameInfo {
   /// The Generic Timer frame number
@@ -321,6 +337,8 @@ typedef struct CmArmGTBlockTimerFrameInfo {
 
 /** A structure that describes the
     Platform Generic Block Timer information for the Platform.
+
+    ID: EArmObjPlatformGTBlockInfo
 */
 typedef struct CmArmGTBlockInfo {
   /// The physical base address for the GT Block Timer structure
@@ -335,6 +353,8 @@ typedef struct CmArmGTBlockInfo {
 
 /** A structure that describes the
     SBSA Generic Watchdog information for the Platform.
+
+    ID: EArmObjPlatformGenericWatchdogInfo
 */
 typedef struct CmArmGenericWatchdogInfo {
   /// The physical base address of the SBSA Watchdog control frame
@@ -354,6 +374,8 @@ typedef struct CmArmGenericWatchdogInfo {
 
 /** A structure that describes the
     PCI Configuration Space information for the Platform.
+
+    ID: EArmObjPciConfigSpaceInfo
 */
 typedef struct CmArmPciConfigSpaceInfo {
   /// The physical base address for the PCI segment
@@ -371,6 +393,8 @@ typedef struct CmArmPciConfigSpaceInfo {
 
 /** A structure that describes the
     Hypervisor Vendor ID information for the Platform.
+
+    ID: EArmObjHypervisorVendorIdentity
 */
 typedef struct CmArmHypervisorVendorId {
   /// The hypervisor Vendor ID
@@ -379,6 +403,8 @@ typedef struct CmArmHypervisorVendorId {
 
 /** A structure that describes the
     Fixed feature flags for the Platform.
+
+    ID: EArmObjFixedFeatureFlags
 */
 typedef struct CmArmFixedFeatureFlags {
   /// The Fixed feature flags
@@ -387,9 +413,11 @@ typedef struct CmArmFixedFeatureFlags {
 
 /** A structure that describes the
     ITS Group node for the Platform.
+
+    ID: EArmObjItsGroup
 */
 typedef struct CmArmItsGroupNode {
-  /// An unique token used to ideintify this object
+  /// An unique token used to identify this object
   CM_OBJECT_TOKEN   Token;
   /// The number of ITS identifiers in the ITS node
   UINT32            ItsIdCount;
@@ -399,6 +427,8 @@ typedef struct CmArmItsGroupNode {
 
 /** A structure that describes the
     GIC ITS Identifiers for an ITS Group node.
+
+    ID: EArmObjGicItsIdentifierArray
 */
 typedef struct CmArmGicItsIdentifier {
   /// The ITS Identifier
@@ -407,9 +437,11 @@ typedef struct CmArmGicItsIdentifier {
 
 /** A structure that describes the
     Named component node for the Platform.
+
+    ID: EArmObjNamedComponent
 */
 typedef struct CmArmNamedComponentNode {
-  /// An unique token used to ideintify this object
+  /// An unique token used to identify this object
   CM_OBJECT_TOKEN   Token;
   /// Number of ID mappings
   UINT32            IdMappingCount;
@@ -436,9 +468,11 @@ typedef struct CmArmNamedComponentNode {
 
 /** A structure that describes the
     Root complex node for the Platform.
+
+    ID: EArmObjRootComplex
 */
 typedef struct CmArmRootComplexNode {
-  /// An unique token used to ideintify this object
+  /// An unique token used to identify this object
   CM_OBJECT_TOKEN   Token;
   /// Number of ID mappings
   UINT32            IdMappingCount;
@@ -462,9 +496,11 @@ typedef struct CmArmRootComplexNode {
 
 /** A structure that describes the
     SMMUv1 or SMMUv2 node for the Platform.
+
+    ID: EArmObjSmmuV1SmmuV2
 */
 typedef struct CmArmSmmuV1SmmuV2Node {
-  /// An unique token used to ideintify this object
+  /// An unique token used to identify this object
   CM_OBJECT_TOKEN   Token;
   /// Number of ID mappings
   UINT32            IdMappingCount;
@@ -502,9 +538,11 @@ typedef struct CmArmSmmuV1SmmuV2Node {
 
 /** A structure that describes the
     SMMUv3 node for the Platform.
+
+    ID: EArmObjSmmuV3
 */
 typedef struct CmArmSmmuV3Node {
-  /// An unique token used to ideintify this object
+  /// An unique token used to identify this object
   CM_OBJECT_TOKEN   Token;
   /// Number of ID mappings
   UINT32            IdMappingCount;
@@ -536,9 +574,11 @@ typedef struct CmArmSmmuV3Node {
 
 /** A structure that describes the
     PMCG node for the Platform.
+
+    ID: EArmObjPmcg
 */
 typedef struct CmArmPmcgNode {
-  /// An unique token used to ideintify this object
+  /// An unique token used to identify this object
   CM_OBJECT_TOKEN   Token;
   /// Number of ID mappings
   UINT32            IdMappingCount;
@@ -558,6 +598,8 @@ typedef struct CmArmPmcgNode {
 
 /** A structure that describes the
     ID Mappings for the Platform.
+
+    ID: EArmObjIdMappingArray
 */
 typedef struct CmArmIdMapping {
   /// Input base
@@ -574,6 +616,8 @@ typedef struct CmArmIdMapping {
 
 /** A structure that describes the
     SMMU interrupts for the Platform.
+
+    ID: EArmObjSmmuInterruptArray
 */
 typedef struct CmArmSmmuInterrupt {
   /// Interrupt number
-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'




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

* Re: [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes
  2019-02-21 18:14 [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes Sami Mujawar
                   ` (5 preceding siblings ...)
  2019-02-21 18:14 ` [PATCH v1 6/6] DynamicTablesPkg: Minor updates and fix typos Sami Mujawar
@ 2019-02-25 13:48 ` Alexei Fedorov
  2019-02-25 19:27 ` Laszlo Ersek
  7 siblings, 0 replies; 9+ messages in thread
From: Alexei Fedorov @ 2019-02-25 13:48 UTC (permalink / raw)
  To: Sami Mujawar, edk2-devel@lists.01.org
  Cc: leif.lindholm@linaro.org, Matteo Carlini, Stephanie Hughes-Fitt,
	nd

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


Alexei


________________________________
From: Sami Mujawar <sami.mujawar@arm.com>
Sent: 21 February 2019 18:14
To: edk2-devel@lists.01.org
Cc: Alexei Fedorov; leif.lindholm@linaro.org; Matteo Carlini; Stephanie Hughes-Fitt; nd
Subject: [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes

This patch series updates the Dynamic Tables Framework to
incorporate the following changes:
  * Fix DEPEX to load modules in correct order.
  * Add options for OEMs to provide OEM Table ID and revision.
  * Update DBG2_DEBUG_PORT_DDI macro to remove unused parameter.
  * Remove GIC Distributor ID field.
  * Minor updates to comments and typo fixes.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>

The changes can be seen at:
https://github.com/samimujawar/edk2/tree/473_dynamic_tables_framework_v1

The corresponding edk2-platform code changes can be seen at:
https://github.com/samimujawar/edk2-platforms/tree/473_dynamic_tables_framework_v1

Sami Mujawar (6):
  DynamicTablesPkg: Fix depex and protocol section
  DynamicTablesPkg: Rename enum used for ID Mapping
  DynamicTablesPkg: Add OEM Info
  DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDI
  DynamicTablesPkg: Remove GIC Distributor Id field
  DynamicTablesPkg: Minor updates and fix typos

 DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactoryDxe.inf |  7 +-
 DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf | 11 +--
 DynamicTablesPkg/Include/ArmNameSpaceObjects.h                             | 73 +++++++++++++++-----
 DynamicTablesPkg/Include/Library/TableHelperLib.h                          |  4 +-
 DynamicTablesPkg/Include/StandardNameSpaceObjects.h                        | 18 +++++
 DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c           |  7 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c           |  2 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c           |  2 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c           |  8 +--
 DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c           |  6 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c           |  2 +-
 DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c           |  2 +-
 DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c               | 26 +++++--
 13 files changed, 119 insertions(+), 49 deletions(-)

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




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

* Re: [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes
  2019-02-21 18:14 [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes Sami Mujawar
                   ` (6 preceding siblings ...)
  2019-02-25 13:48 ` [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes Alexei Fedorov
@ 2019-02-25 19:27 ` Laszlo Ersek
  7 siblings, 0 replies; 9+ messages in thread
From: Laszlo Ersek @ 2019-02-25 19:27 UTC (permalink / raw)
  To: Sami Mujawar, edk2-devel; +Cc: alexei.fedorov, nd, Stephanie.Hughes-Fitt

On 02/21/19 19:14, Sami Mujawar wrote:
> This patch series updates the Dynamic Tables Framework to
> incorporate the following changes:
>   * Fix DEPEX to load modules in correct order.
>   * Add options for OEMs to provide OEM Table ID and revision.
>   * Update DBG2_DEBUG_PORT_DDI macro to remove unused parameter.
>   * Remove GIC Distributor ID field.
>   * Minor updates to comments and typo fixes.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
> 
> The changes can be seen at:
> https://github.com/samimujawar/edk2/tree/473_dynamic_tables_framework_v1
> 
> The corresponding edk2-platform code changes can be seen at:
> https://github.com/samimujawar/edk2-platforms/tree/473_dynamic_tables_framework_v1
> 
> Sami Mujawar (6):
>   DynamicTablesPkg: Fix depex and protocol section
>   DynamicTablesPkg: Rename enum used for ID Mapping
>   DynamicTablesPkg: Add OEM Info
>   DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDI
>   DynamicTablesPkg: Remove GIC Distributor Id field
>   DynamicTablesPkg: Minor updates and fix typos
> 
>  DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactoryDxe.inf |  7 +-
>  DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf | 11 +--
>  DynamicTablesPkg/Include/ArmNameSpaceObjects.h                             | 73 +++++++++++++++-----
>  DynamicTablesPkg/Include/Library/TableHelperLib.h                          |  4 +-
>  DynamicTablesPkg/Include/StandardNameSpaceObjects.h                        | 18 +++++
>  DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c           |  7 +-
>  DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c           |  2 +-
>  DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c           |  2 +-
>  DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c           |  8 +--
>  DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c           |  6 +-
>  DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c           |  2 +-
>  DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c           |  2 +-
>  DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c               | 26 +++++--
>  13 files changed, 119 insertions(+), 49 deletions(-)
> 

This patch series (0692ef87594f..07f4e26eb6fe) should be reverted, in my
opinion. In particular, patch #3 ("DynamicTablesPkg: Add OEM Info")
looks very much like a feature addition. We entered the soft feature
freeze on 2019-Feb-22.

https://lists.01.org/pipermail/edk2-devel/2019-February/037169.html

The patch was posted on 2019-Feb-21 alright, but Alexei's review
appeared on 2019-Feb-25 only (today).

The definition at
<https://github.com/lersek/edk2/wiki/SoftFeatureFreeze> says that the
necessary reviews too must not cross over into the soft feature freeze.

Please revert this set, and reapply it after the next stable tag is applied.

Thanks
Laszlo


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

end of thread, other threads:[~2019-02-25 19:27 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-21 18:14 [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes Sami Mujawar
2019-02-21 18:14 ` [PATCH v1 1/6] DynamicTablesPkg: Fix depex and protocol section Sami Mujawar
2019-02-21 18:14 ` [PATCH v1 2/6] DynamicTablesPkg: Rename enum used for ID Mapping Sami Mujawar
2019-02-21 18:14 ` [PATCH v1 3/6] DynamicTablesPkg: Add OEM Info Sami Mujawar
2019-02-21 18:14 ` [PATCH v1 4/6] DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDI Sami Mujawar
2019-02-21 18:14 ` [PATCH v1 5/6] DynamicTablesPkg: Remove GIC Distributor Id field Sami Mujawar
2019-02-21 18:14 ` [PATCH v1 6/6] DynamicTablesPkg: Minor updates and fix typos Sami Mujawar
2019-02-25 13:48 ` [PATCH v1 0/6] DynamicTablesPkg: Framework updates and fixes Alexei Fedorov
2019-02-25 19:27 ` Laszlo Ersek

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