public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Sami Mujawar <sami.mujawar@arm.com>
To: edk2-devel@lists.01.org
Cc: alexei.fedorov@arm.com, leif.lindholm@linaro.org,
	Matteo.Carlini@arm.com,  Stephanie.Hughes-Fitt@arm.com,
	nd@arm.com
Subject: [PATCH v1 06/22] DynamicTablesPkg: Standard NameSpace Objects
Date: Fri, 21 Dec 2018 16:57:03 +0000	[thread overview]
Message-ID: <20181221165719.49480-7-sami.mujawar@arm.com> (raw)
In-Reply-To: <20181221165719.49480-1-sami.mujawar@arm.com>

The dynamic tables frameworks core communicates with the
platform specific implementation using the configuration
manager protocol interface. The dynamic tables framework
core uses this interface to retrieve information required
for generating the firmware tables. This information is
represented in the form of objects, which are classified
as standard namespace objects, Arm namespace objects or
as Custom/OEM namespace objects.

This patch introduces the definitions for standard
namespace objects.

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

diff --git a/DynamicTablesPkg/Include/StandardNameSpaceObjects.h b/DynamicTablesPkg/Include/StandardNameSpaceObjects.h
new file mode 100644
index 0000000000000000000000000000000000000000..4f682a52dad4059b0d768d7765c4dbd875cc5d53
--- /dev/null
+++ b/DynamicTablesPkg/Include/StandardNameSpaceObjects.h
@@ -0,0 +1,116 @@
+/** @file
+
+  Copyright (c) 2017, 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
+  which accompanies this distribution.  The full text of the license may be found at
+  http://opensource.org/licenses/bsd-license.php
+
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+  @par Glossary:
+    - Cm or CM   - Configuration Manager
+    - Obj or OBJ - Object
+    - Std or STD - Standard
+**/
+
+#ifndef STANDARD_NAMESPACE_OBJECTS_H_
+#define STANDARD_NAMESPACE_OBJECTS_H_
+
+#include <AcpiTableGenerator.h>
+#include <SmbiosTableGenerator.h>
+
+#pragma pack(1)
+
+/** A macro defining a reserved zero/NULL token value that
+    does not identify any object.
+*/
+#define CM_NULL_TOKEN  0
+
+/** A reference token that the Configuration Manager can use
+    to identify a Configuration Manager object.
+
+  This can be used to differentiate between instances of
+  objects of the same types. The identification scheme is
+  implementation defined and is defined by the Configuration
+  Manager.
+
+  Typically the token is used to identify a specific instance
+  from a set of objects in a call to the GetObject()/SetObject(),
+  implemented by the Configuration Manager protocol.
+
+  Note: The token value 0 is reserved for a NULL token and does
+        not identify any object.
+**/
+typedef UINTN   CM_OBJECT_TOKEN;
+
+/** The ESTD_OBJECT_ID enum describes the Object IDs
+    in the Standard Namespace.
+*/
+typedef enum StdObjectID {
+  EStdObjCfgMgrInfo = 0x00000000, ///< 0 - Configuration Manager Info
+  EStdObjAcpiTableList,           ///< 1 - ACPI table Info List
+  EStdObjSmbiosTableList,         ///< 2 - SMBIOS table Info List
+  EStdObjMax
+} ESTD_OBJECT_ID;
+
+/** A structure that describes the Configuration Manager Information.
+*/
+typedef struct CmStdObjConfigurationManagerInfo {
+  /// The Configuration Manager Revision.
+  UINT32  Revision;
+
+  /** The OEM ID. This information is used to
+      populate the ACPI table header information.
+  */
+  UINT8   OemId[6];
+} CM_STD_OBJ_CONFIGURATION_MANAGER_INFO;
+
+/** A structure used to describe the ACPI table generators to be invoked.
+
+  The AcpiTableData member of this structure may be used to directly provide
+  the binary ACPI table data which is required by the following standard
+  generators:
+    - RAW
+    - DSDT
+    - SSDT
+
+  Providing the ACPI table data is optional and depends on the generator
+  that is being invoked. If unused, set AcpiTableData to NULL.
+*/
+typedef struct CmAStdObjAcpiTableInfo {
+  /// The signature of the ACPI Table to be installed.
+  UINT32                         AcpiTableSignature;
+
+  /// The ACPI Table Generator ID.
+  ACPI_TABLE_GENERATOR_ID        TableGeneratorId;
+
+  /// Optional pointer to the ACPI table data.
+  EFI_ACPI_DESCRIPTION_HEADER  * AcpiTableData;
+
+} CM_STD_OBJ_ACPI_TABLE_INFO;
+
+/** A structure used to describe the SMBIOS table generators to be invoked.
+
+  The SmbiosTableData member of this structure is used to provide
+  the SMBIOS table data which is required by the following standard
+  generator(s):
+    - RAW
+
+  Providing the SMBIOS table data is optional and depends on the
+  generator that is being invoked. If unused, set the SmbiosTableData
+  to NULL.
+*/
+typedef struct CmStdObjSmbiosTableInfo {
+  /// The SMBIOS Table Generator ID.
+  SMBIOS_TABLE_GENERATOR_ID   TableGeneratorId;
+
+  /// Optional pointer to the SMBIOS table data.
+  SMBIOS_STRUCTURE           * SmbiosTableData;
+} CM_STD_OBJ_SMBIOS_TABLE_INFO;
+
+#pragma pack()
+
+#endif // STANDARD_NAMESPACE_OBJECTS_H_
-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'




  parent reply	other threads:[~2018-12-21 16:59 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-21 16:56 [PATCH v1 00/22] DynamicTablesPkg: Introduce Dynamic Tables Framework Sami Mujawar
2018-12-21 16:56 ` [PATCH v1 01/22] DynamicTablesPkg: " Sami Mujawar
2018-12-21 16:56 ` [PATCH v1 02/22] DynamicTablesPkg: Table Generator definition Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 03/22] DynamicTablesPkg: Acpi Table Generator Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 04/22] DynamicTablesPkg: SMBIOS " Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 05/22] DynamicTablesPkg: DT " Sami Mujawar
2018-12-21 16:57 ` Sami Mujawar [this message]
2018-12-21 16:57 ` [PATCH v1 07/22] DynamicTablesPkg: Arm NameSpace Objects Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 08/22] DynamicTablesPkg: Configuration Manager Objects Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 09/22] DynamicTablesPkg: Configuration Manager Protocol Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 10/22] DynamicTablesPkg: Configuration Manager Helper Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 11/22] DynamicTablesPkg: Table Helper Library Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 12/22] DynamicTablesPkg: Dynamic Table Factory Protocol Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 13/22] DynamicTablesPkg: Dynamic Table Factory Dxe Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 14/22] DynamicTablesPkg: Dynamic Table Manager Dxe Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 15/22] DynamicTablesPkg: Arm Raw/DSDT/SSDT Generator Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 16/22] DynamicTablesPkg: Arm ACPI FADT Generator Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 17/22] DynamicTablesPkg: Arm ACPI MADT Generator Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 18/22] DynamicTablesPkg: Arm ACPI GTDT Generator Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 19/22] DynamicTablesPkg: Arm SPCR Table Generator Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 20/22] DynamicTablesPkg: Arm DBG2 " Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 21/22] DynamicTablesPkg: Arm PCI MCFG " Sami Mujawar
2018-12-21 16:57 ` [PATCH v1 22/22] DynamicTablesPkg: Arm IORT " Sami Mujawar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181221165719.49480-7-sami.mujawar@arm.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox