From: "PierreGondois" <pierre.gondois@arm.com>
To: devel@edk2.groups.io, Sami.Mujawar@arm.com, Alexei.Fedorov@arm.com
Subject: [PATCH v1 10/10] DynamicTablesPkg: Rework AmlResourceDataCodegen.c/h
Date: Wed, 23 Jun 2021 12:05:24 +0100 [thread overview]
Message-ID: <20210623110525.6171-11-Pierre.Gondois@arm.com> (raw)
In-Reply-To: <20210623110525.6171-1-Pierre.Gondois@arm.com>
From: Pierre Gondois <Pierre.Gondois@arm.com>
Rework all the functions to to have a generic prototype:
- First take take the resource data specific arguments.
E.g.: for a Register(): the AddressSpace, BitWidth, ...
- The penultimate parameter is a NameOpNode. The resource data
created is appended to the ResourceTemplate() contained in the
NameOpNode.
- The last parameter is a pointer holding the created resource data.
A least one of the two last parameter must be provided. One of them can
be omitted. This generic interface allows to either:
- Add the resource data to a NameOpNode. This is a common case for the
Ssdt tables generator.
- Get the created resource data and let the caller place it in an AML
tree.
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
---
.../Include/Library/AmlLib/AmlLib.h | 60 +++--
.../SsdtCmn600Generator.c | 8 +-
.../AmlLib/CodeGen/AmlResourceDataCodeGen.c | 235 +++++++-----------
.../AmlLib/CodeGen/AmlResourceDataCodeGen.h | 67 +++--
4 files changed, 150 insertions(+), 220 deletions(-)
diff --git a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h
index c40808343fce..6824cf3a6c82 100644
--- a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h
+++ b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h
@@ -418,41 +418,36 @@ AmlUpdateRdQWord (
IN UINT64 BaseAddressLength
);
-/** Add an Interrupt Resource Data node.
-
- This function creates a Resource Data element corresponding to the
- "Interrupt ()" ASL function, stores it in an AML Data Node.
-
- It then adds it after the input NameOpNode in the list of resource data
- element.
+/** Code generation for the "Interrupt ()" ASL function.
The Resource Data effectively created is an Extended Interrupt Resource
- Data. See ACPI 6.3 specification, s6.4.3.6 "Extended Interrupt Descriptor"
- for more information about Extended Interrupt Resource Data.
+ Data. Cf ACPI 6.4:
+ - s6.4.3.6 "Extended Interrupt Descriptor"
+ - s19.6.64 "Interrupt (Interrupt Resource Descriptor Macro)"
- The Extended Interrupt contains one single interrupt.
-
- This function allocates memory to create a data node. It is the caller's
- responsibility to either:
- - attach this node to an AML tree;
- - delete this node.
+ The created resource data node can be:
+ - appended to the list of resource data elements of the NameOpNode.
+ In such case NameOpNode must be defined by a the "Name ()" ASL statement
+ and initially contain a "ResourceTemplate ()".
+ - returned through the NewRdNode parameter.
@ingroup CodeGenApis
+ @param [in] ResourceConsumer The device consumes the specified interrupt
+ or produces it for use by a child device.
+ @param [in] EdgeTriggered The interrupt is edge triggered or
+ level triggered.
+ @param [in] ActiveLow The interrupt is active-high or active-low.
+ @param [in] Shared The interrupt can be shared with other
+ devices or not (Exclusive).
+ @param [in] IrqList Interrupt list. Must be non-NULL.
+ @param [in] IrqCount Interrupt count. Must be non-zero.
@param [in] NameOpNode NameOp object node defining a named object.
- Must have an OpCode=AML_NAME_OP, SubOpCode=0.
- NameOp object nodes are defined in ASL
- using the "Name ()" function.
- @param [in] ResourceConsumer The device consumes the specified interrupt
- or produces it for use by a child device.
- @param [in] EdgeTriggered The interrupt is edge triggered or
- level triggered.
- @param [in] ActiveLow The interrupt is active-high or active-low.
- @param [in] Shared The interrupt can be shared with other
- devices or not (Exclusive).
- @param [in] IrqList Interrupt list. Must be non-NULL.
- @param [in] IrqCount Interrupt count. Must be non-zero.
-
+ If provided, append the new resource data node
+ to the list of resource data elements of this
+ node.
+ @param [out] NewRdNode If provided and success,
+ contain the created node.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INVALID_PARAMETER Invalid parameter.
@@ -460,14 +455,15 @@ AmlUpdateRdQWord (
**/
EFI_STATUS
EFIAPI
-AmlCodeGenAddRdInterrupt (
- IN AML_OBJECT_NODE_HANDLE NameOpNode,
+AmlCodeGenRdInterrupt (
IN BOOLEAN ResourceConsumer,
IN BOOLEAN EdgeTriggered,
IN BOOLEAN ActiveLow,
IN BOOLEAN Shared,
- IN UINT32 * IrqList,
- IN UINT8 IrqCount
+ IN UINT32 *IrqList,
+ IN UINT8 IrqCount,
+ IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL
+ OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL
);
/** AML code generation for DefinitionBlock.
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCmn600LibArm/SsdtCmn600Generator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCmn600LibArm/SsdtCmn600Generator.c
index fb93a5d2e70c..19b7b128a08d 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCmn600LibArm/SsdtCmn600Generator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCmn600LibArm/SsdtCmn600Generator.c
@@ -338,8 +338,8 @@ FixupCmn600Info (
// Resource Data nodes.
for (Index = 0; Index < Cmn600Info->DtcCount; Index++) {
DtcInt = &Cmn600Info->DtcInterrupt[Index];
- Status = AmlCodeGenAddRdInterrupt (
- NameOpCrsNode,
+
+ Status = AmlCodeGenRdInterrupt (
((DtcInt->Flags &
EFI_ACPI_EXTENDED_INTERRUPT_FLAG_PRODUCER_CONSUMER_MASK) != 0),
((DtcInt->Flags &
@@ -349,7 +349,9 @@ FixupCmn600Info (
((DtcInt->Flags &
EFI_ACPI_EXTENDED_INTERRUPT_FLAG_SHARABLE_MASK) != 0),
(UINT32*)&DtcInt->Interrupt,
- 1
+ 1,
+ NameOpCrsNode,
+ NULL
);
if (EFI_ERROR (Status)) {
goto error_handler;
diff --git a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c
index c7348aa5daf7..089597a6c906 100644
--- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c
+++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c
@@ -24,11 +24,15 @@
If NewRdNode is not NULL, update its value to RdNode.
@param [in] RdNode Newly created Resource Data node.
- @param [in] ParentNode If not NULL, add the generated node
- to the end of the variable list of
- argument of the ParentNode, but
- before the "End Tag" Resource Data.
- Must be a BufferOpNode.
+ RdNode is deleted if an error occurs.
+ @param [in] ParentNode If not NULL, ParentNode must:
+ - be a NameOp node, i.e. have the AML_NAME_OP
+ opcode (cf "Name ()" ASL statement)
+ - contain a list of resource data elements
+ (cf "ResourceTemplate ()" ASL statement)
+ RdNode is then added at the end of the variable
+ list of resource data elements, but before the
+ "End Tag" Resource Data.
@param [out] NewRdNode If not NULL, update the its value to RdNode.
@retval EFI_SUCCESS The function completed successfully.
@@ -43,57 +47,81 @@ LinkRdNode (
OUT AML_DATA_NODE ** NewRdNode
)
{
- EFI_STATUS Status;
- EFI_STATUS Status1;
+ EFI_STATUS Status;
+ EFI_STATUS Status1;
+ AML_OBJECT_NODE *BufferOpNode;
if (NewRdNode != NULL) {
*NewRdNode = RdNode;
}
- // Add RdNode as the last element, but before the EndTag.
if (ParentNode != NULL) {
- Status = AmlAppendRdNode (ParentNode, RdNode);
+ // Check this is a NameOp node.
+ if ((!AmlNodeHasOpCode (ParentNode, AML_NAME_OP, 0))) {
+ ASSERT (0);
+ Status = EFI_INVALID_PARAMETER;
+ goto error_handler;
+ }
+
+ // Get the value which is represented as a BufferOp object node
+ // which is the 2nd fixed argument (i.e. index 1).
+ BufferOpNode = (AML_OBJECT_NODE_HANDLE)AmlGetFixedArgument (
+ ParentNode,
+ EAmlParseIndexTerm1
+ );
+ if ((BufferOpNode == NULL) ||
+ (AmlGetNodeType ((AML_NODE_HANDLE)BufferOpNode) != EAmlNodeObject) ||
+ (!AmlNodeHasOpCode (BufferOpNode, AML_BUFFER_OP, 0))) {
+ ASSERT (0);
+ Status = EFI_INVALID_PARAMETER;
+ goto error_handler;
+ }
+
+ // Add RdNode as the last element, but before the EndTag.
+ Status = AmlAppendRdNode (BufferOpNode, RdNode);
if (EFI_ERROR (Status)) {
ASSERT (0);
- Status1 = AmlDeleteTree ((AML_NODE_HEADER*)RdNode);
- ASSERT_EFI_ERROR (Status1);
- // Return original error.
- return Status;
+ goto error_handler;
}
}
- return EFI_SUCCESS;
+ return Status;
+
+error_handler:
+ Status1 = AmlDeleteTree ((AML_NODE_HEADER*)RdNode);
+ ASSERT_EFI_ERROR (Status1);
+ // Return original error.
+ return Status;
}
/** Code generation for the "Interrupt ()" ASL function.
- This function creates a Resource Data element corresponding to the
- "Interrupt ()" ASL function and stores it in an AML Data Node.
-
The Resource Data effectively created is an Extended Interrupt Resource
- Data. See ACPI 6.3 specification, s6.4.3.6 "Extended Interrupt Descriptor"
- for more information about Extended Interrupt Resource Data.
+ Data. Cf ACPI 6.4:
+ - s6.4.3.6 "Extended Interrupt Descriptor"
+ - s19.6.64 "Interrupt (Interrupt Resource Descriptor Macro)"
- This function allocates memory to create a data node. It is the caller's
- responsibility to either:
- - attach this node to an AML tree;
- - delete this node.
+ The created resource data node can be:
+ - appended to the list of resource data elements of the NameOpNode.
+ In such case NameOpNode must be defined by a the "Name ()" ASL statement
+ and initially contain a "ResourceTemplate ()".
+ - returned through the NewRdNode parameter.
- @param [in] ResourceConsumer The device consumes the specified interrupt
- or produces it for use by a child device.
- @param [in] EdgeTriggered The interrupt is edge triggered or
- level triggered.
- @param [in] ActiveLow The interrupt is active-high or active-low.
- @param [in] Shared The interrupt can be shared with other
- devices or not (Exclusive).
- @param [in] IrqList Interrupt list. Must be non-NULL.
- @param [in] IrqCount Interrupt count. Must be non-zero.
- @param [in] ParentNode If not NULL, add the generated node
- to the end of the variable list of
- argument of the ParentNode, but
- before the "End Tag" Resource Data.
- Must be a BufferOpNode.
- @param [out] NewRdNode If success, contains the generated node.
+ @param [in] ResourceConsumer The device consumes the specified interrupt
+ or produces it for use by a child device.
+ @param [in] EdgeTriggered The interrupt is edge triggered or
+ level triggered.
+ @param [in] ActiveLow The interrupt is active-high or active-low.
+ @param [in] Shared The interrupt can be shared with other
+ devices or not (Exclusive).
+ @param [in] IrqList Interrupt list. Must be non-NULL.
+ @param [in] IrqCount Interrupt count. Must be non-zero.
+ @param [in] NameOpNode NameOp object node defining a named object.
+ If provided, append the new resource data node
+ to the list of resource data elements of this
+ node.
+ @param [out] NewRdNode If provided and success,
+ contain the created node.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INVALID_PARAMETER Invalid parameter.
@@ -101,15 +129,15 @@ LinkRdNode (
**/
EFI_STATUS
EFIAPI
-AmlCodeGenInterrupt (
- IN BOOLEAN ResourceConsumer,
- IN BOOLEAN EdgeTriggered,
- IN BOOLEAN ActiveLow,
- IN BOOLEAN Shared,
- IN UINT32 * IrqList,
- IN UINT8 IrqCount,
- IN AML_OBJECT_NODE * ParentNode, OPTIONAL
- OUT AML_DATA_NODE ** NewRdNode OPTIONAL
+AmlCodeGenRdInterrupt (
+ IN BOOLEAN ResourceConsumer,
+ IN BOOLEAN EdgeTriggered,
+ IN BOOLEAN ActiveLow,
+ IN BOOLEAN Shared,
+ IN UINT32 *IrqList,
+ IN UINT8 IrqCount,
+ IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL
+ OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL
)
{
EFI_STATUS Status;
@@ -120,16 +148,19 @@ AmlCodeGenInterrupt (
if ((IrqList == NULL) ||
(IrqCount == 0) ||
- ((ParentNode == NULL) && (NewRdNode == NULL))) {
+ ((NameOpNode == NULL) && (NewRdNode == NULL))) {
ASSERT (0);
return EFI_INVALID_PARAMETER;
}
+ // Header
RdInterrupt.Header.Header.Bits.Name =
ACPI_LARGE_EXTENDED_IRQ_DESCRIPTOR_NAME;
RdInterrupt.Header.Header.Bits.Type = ACPI_LARGE_ITEM_FLAG;
RdInterrupt.Header.Length = sizeof (EFI_ACPI_EXTENDED_INTERRUPT_DESCRIPTOR) -
sizeof (ACPI_LARGE_RESOURCE_HEADER);
+
+ // Body
RdInterrupt.InterruptVectorFlags = (ResourceConsumer ? BIT0 : 0) |
(EdgeTriggered ? BIT1 : 0) |
(ActiveLow ? BIT2 : 0) |
@@ -153,105 +184,7 @@ AmlCodeGenInterrupt (
return Status;
}
- return LinkRdNode (RdNode, ParentNode, NewRdNode);
-}
-
-/** Add an Interrupt Resource Data node.
-
- This function creates a Resource Data element corresponding to the
- "Interrupt ()" ASL function, stores it in an AML Data Node.
-
- It then adds it after the input NameOpNode in the list of resource data
- element.
-
- The Resource Data effectively created is an Extended Interrupt Resource
- Data. See ACPI 6.3 specification, s6.4.3.6 "Extended Interrupt Descriptor"
- for more information about Extended Interrupt Resource Data.
-
- The Extended Interrupt contains one single interrupt.
-
- This function allocates memory to create a data node. It is the caller's
- responsibility to either:
- - attach this node to an AML tree;
- - delete this node.
-
- Note:
- The named node must be defined using the ASL "Name ()" statement.
- E.g. Name (_CRS, ResourceTemplate () { ... })
- Methods cannot be modified with this function.
-
- @param [in] NameOpNode NameOp object node defining a named object.
- Must have an OpCode=AML_NAME_OP, SubOpCode=0.
- NameOp object nodes are defined in ASL
- using the "Name ()" function.
- @param [in] ResourceConsumer The device consumes the specified interrupt
- or produces it for use by a child device.
- @param [in] EdgeTriggered The interrupt is edge triggered or
- level triggered.
- @param [in] ActiveLow The interrupt is active-high or active-low.
- @param [in] Shared The interrupt can be shared with other
- devices or not (Exclusive).
- @param [in] IrqList Interrupt list. Must be non-NULL.
- @param [in] IrqCount Interrupt count. Must be non-zero.
-
-
- @retval EFI_SUCCESS The function completed successfully.
- @retval EFI_INVALID_PARAMETER Invalid parameter.
- @retval EFI_OUT_OF_RESOURCES Could not allocate memory.
-**/
-EFI_STATUS
-EFIAPI
-AmlCodeGenAddRdInterrupt (
- IN AML_OBJECT_NODE_HANDLE NameOpNode,
- IN BOOLEAN ResourceConsumer,
- IN BOOLEAN EdgeTriggered,
- IN BOOLEAN ActiveLow,
- IN BOOLEAN Shared,
- IN UINT32 * IrqList,
- IN UINT8 IrqCount
- )
-{
- EFI_STATUS Status;
-
- AML_OBJECT_NODE_HANDLE BufferOpNode;
-
- if ((IrqList == NULL) ||
- (IrqCount == 0) ||
- (!AmlNodeHasOpCode (NameOpNode, AML_NAME_OP, 0))) {
- ASSERT (0);
- return EFI_INVALID_PARAMETER;
- }
-
- // Get the value which is represented as a BufferOp object node
- // which is the 2nd fixed argument (i.e. index 1).
- BufferOpNode = (AML_OBJECT_NODE_HANDLE)AmlGetFixedArgument (
- NameOpNode,
- EAmlParseIndexTerm1
- );
- if ((BufferOpNode == NULL) ||
- (AmlGetNodeType ((AML_NODE_HANDLE)BufferOpNode) != EAmlNodeObject) ||
- (!AmlNodeHasOpCode (BufferOpNode, AML_BUFFER_OP, 0))) {
- ASSERT (0);
- return EFI_INVALID_PARAMETER;
- }
-
- // Generate the Extended Interrupt Resource Data node,
- // and attach it as the last variable argument of the BufferOpNode.
- Status = AmlCodeGenInterrupt (
- ResourceConsumer,
- EdgeTriggered,
- ActiveLow,
- Shared,
- IrqList,
- IrqCount,
- BufferOpNode,
- NULL
- );
- if (EFI_ERROR (Status)) {
- ASSERT (0);
- }
-
- return Status;
+ return LinkRdNode (RdNode, NameOpNode, NewRdNode);
}
// DEPRECATED APIS
@@ -316,15 +249,15 @@ AmlCodeGenCrsAddRdInterrupt (
IN UINT8 IrqCount
)
{
- return AmlCodeGenAddRdInterrupt (
- NameOpCrsNode,
- NameOpNode,
+ return AmlCodeGenRdInterrupt (
ResourceConsumer,
EdgeTriggered,
ActiveLow,
Shared,
IrqList,
- IrqCount
+ IrqCount,
+ NameOpCrsNode,
+ NULL
);
}
diff --git a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.h b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.h
index 08364db4431f..764051e3d7c9 100644
--- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.h
+++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.h
@@ -1,7 +1,7 @@
/** @file
AML Resource Data Code Generation.
- Copyright (c) 2019 - 2020, Arm Limited. All rights reserved.<BR>
+ Copyright (c) 2019 - 2021, Arm Limited. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -11,33 +11,32 @@
/** Code generation for the "Interrupt ()" ASL function.
- This function creates a Resource Data element corresponding to the
- "Interrupt ()" ASL function and stores it in an AML Data Node.
-
The Resource Data effectively created is an Extended Interrupt Resource
- Data. See ACPI 6.3 specification, s6.4.3.6 "Extended Interrupt Descriptor"
- for more information about Extended Interrupt Resource Data.
+ Data. Cf ACPI 6.4:
+ - s6.4.3.6 "Extended Interrupt Descriptor"
+ - s19.6.64 "Interrupt (Interrupt Resource Descriptor Macro)"
- This function allocates memory to create a data node. It is the caller's
- responsibility to either:
- - attach this node to an AML tree;
- - delete this node.
+ The created resource data node can be:
+ - appended to the list of resource data elements of the NameOpNode.
+ In such case NameOpNode must be defined by a the "Name ()" ASL statement
+ and initially contain a "ResourceTemplate ()".
+ - returned through the NewRdNode parameter.
- @param [in] ResourceConsumer The device consumes the specified interrupt
- or produces it for use by a child device.
- @param [in] EdgeTriggered The interrupt is edge triggered or
- level triggered.
- @param [in] ActiveLow The interrupt is active-high or active-low.
- @param [in] Shared The interrupt can be shared with other
- devices or not (Exclusive).
- @param [in] IrqList Interrupt list. Must be non-NULL.
- @param [in] IrqCount Interrupt count. Must be non-zero.
- @param [in] ParentNode If not NULL, add the generated node
- to the end of the variable list of
- argument of the ParentNode, but
- before the "End Tag" Resource Data.
- Must be a BufferOpNode.
- @param [out] NewRdNode If success, contains the generated node.
+ @param [in] ResourceConsumer The device consumes the specified interrupt
+ or produces it for use by a child device.
+ @param [in] EdgeTriggered The interrupt is edge triggered or
+ level triggered.
+ @param [in] ActiveLow The interrupt is active-high or active-low.
+ @param [in] Shared The interrupt can be shared with other
+ devices or not (Exclusive).
+ @param [in] IrqList Interrupt list. Must be non-NULL.
+ @param [in] IrqCount Interrupt count. Must be non-zero.
+ @param [in] NameOpNode NameOp object node defining a named object.
+ If provided, append the new resource data node
+ to the list of resource data elements of this
+ node.
+ @param [out] NewRdNode If provided and success,
+ contain the created node.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INVALID_PARAMETER Invalid parameter.
@@ -45,15 +44,15 @@
**/
EFI_STATUS
EFIAPI
-AmlCodeGenInterrupt (
- IN BOOLEAN ResourceConsumer,
- IN BOOLEAN EdgeTriggered,
- IN BOOLEAN ActiveLow,
- IN BOOLEAN Shared,
- IN UINT32 * IrqList,
- IN UINT8 IrqCount,
- IN AML_OBJECT_NODE * ParentNode, OPTIONAL
- OUT AML_DATA_NODE ** NewRdNode OPTIONAL
+AmlCodeGenRdInterrupt (
+ IN BOOLEAN ResourceConsumer,
+ IN BOOLEAN EdgeTriggered,
+ IN BOOLEAN ActiveLow,
+ IN BOOLEAN Shared,
+ IN UINT32 *IrqList,
+ IN UINT8 IrqCount,
+ IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL
+ OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL
);
#endif // AML_RESOURCE_DATA_CODE_GEN_H_
--
2.17.1
next prev parent reply other threads:[~2021-06-23 11:05 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-23 11:05 [PATCH v1 00/10] Various DynamicTablesPkg modifications PierreGondois
2021-06-23 11:05 ` [PATCH v1 01/10] DynamicTablesPkg: Extract AcpiTableHelperLib from TableHelperLib PierreGondois
2021-09-22 15:15 ` [edk2-devel] " Sami Mujawar
2021-06-23 11:05 ` [PATCH v1 02/10] DynamicTablesPkg: Update TableHelperLib.inf PierreGondois
2021-09-22 15:16 ` [edk2-devel] " Sami Mujawar
2021-06-23 11:05 ` [PATCH v1 03/10] DynamicTablesPkg: Rename single char input parameter PierreGondois
2021-09-22 15:20 ` [edk2-devel] " Sami Mujawar
2021-06-23 11:05 ` [PATCH v1 04/10] DynamicTablesPkg: Add HexFromAscii() to AcpiHelperLib PierreGondois
2021-09-22 15:23 ` [edk2-devel] " Sami Mujawar
2021-06-23 11:05 ` [PATCH v1 05/10] DynamicTablesPkg: Add AmlGetEisaIdFromString() " PierreGondois
2021-09-22 15:40 ` [edk2-devel] " Sami Mujawar
2021-06-23 11:05 ` [PATCH v1 06/10] DynamicTablesPkg: Add Configuration Manager Object parser PierreGondois
2021-09-24 8:56 ` [edk2-devel] " Joey Gouly
2021-09-27 7:14 ` PierreGondois
2021-09-29 15:03 ` Joey Gouly
2021-06-23 11:05 ` [PATCH v1 07/10] DynamicTablesPkg: Use %a formatter in AmlDbgPrint PierreGondois
2021-09-22 15:44 ` [edk2-devel] " Sami Mujawar
2021-06-23 11:05 ` [PATCH v1 08/10] DynamicTablesPkg: Update DynamicTablesPkg.ci.yaml PierreGondois
2021-09-22 15:48 ` [edk2-devel] " Sami Mujawar
2021-09-23 7:49 ` PierreGondois
2021-06-23 11:05 ` [PATCH v1 09/10] DynamicTablesPkg: Deprecate Crs specific methods in AmlLib PierreGondois
2021-09-22 15:56 ` [edk2-devel] " Sami Mujawar
2021-06-23 11:05 ` PierreGondois [this message]
2021-09-22 16:04 ` [edk2-devel] [PATCH v1 10/10] DynamicTablesPkg: Rework AmlResourceDataCodegen.c/h 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=20210623110525.6171-11-Pierre.Gondois@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