* [PATCH 1/2] DynamicTablesPkg: IORT generator updates for Rev E.e spec
@ 2023-01-25 18:40 Name
2023-01-25 18:40 ` [PATCH 2/2] MdePkg:IORT header update for IORT " Name
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Name @ 2023-01-25 18:40 UTC (permalink / raw)
To: devel, Sami.Mujawar, Alexei.Fedorov, pierre.gondois,
michael.d.kinney, gaoliming, zhiguang.liu
Cc: Swatisri Kantamsetti
From: Swatisri Kantamsetti <swatisrik@nvidia.com>
The IO Remapping Table, Platform Design Document, Revision E.e,
Sept 2022 (https://developer.arm.com/documentation/den0049/ee)
added flags in SMMUv3 node for validity of ID mappings for MSIs
related to control interrupts.
It makes one small addition to SMMUv3 nodes to
describe MSI support independently of wired GSIV support
Therefore, update the IORT generator to:
- increment IORT table revision to 6
- increment SMMUV3 node revision to 5
- for SMMUV3 node revision >=5 check the DeviceID mapping index
valid flag to populate DeviceIdMappingIndex field
- preserve backward compatibility.
Signed-off-by: Swatisri Kantamsetti <swatisrik@nvidia.com>
---
.../Acpi/Arm/AcpiIortLibArm/IortGenerator.c | 36 ++++++++++++++-----
1 file changed, 28 insertions(+), 8 deletions(-)
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
index f28973c1a8..235a475629 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
@@ -1554,9 +1554,14 @@ AddSmmuV3Nodes (
{
SmmuV3Node->Node.Revision = 2;
SmmuV3Node->Node.Identifier = EFI_ACPI_RESERVED_DWORD;
- } else {
+ } else if (AcpiTableInfo->AcpiTableRevision <
+ EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06)
+ {
SmmuV3Node->Node.Revision = 4;
SmmuV3Node->Node.Identifier = NodeList->Identifier;
+ } else {
+ SmmuV3Node->Node.Revision = 5;
+ SmmuV3Node->Node.Identifier = NodeList->Identifier;
}
// SMMUv3 specific data
@@ -1577,12 +1582,27 @@ AddSmmuV3Nodes (
SmmuV3Node->ProximityDomain = 0;
}
- if ((SmmuV3Node->Event != 0) && (SmmuV3Node->Pri != 0) &&
- (SmmuV3Node->Gerr != 0) && (SmmuV3Node->Sync != 0))
- {
- // If all the SMMU control interrupts are GSIV based,
- // the DeviceID mapping index field is ignored.
- SmmuV3Node->DeviceIdMappingIndex = 0;
+ /* DeviceID mapping valid flag was introduced in IORT rev E.e
+ * for SMMUV3 nodes rev. > 5.
+ * For older revisions, if all the SMMU control interrupts are GSIV
+ * based, DeviceID mapping index field is ignored.
+ * If the DeviceID mapping index valid flag is set to 0,
+ * DeviceID mapping index field must be ignored.
+ * Where the SMMU uses message signaled interrupts for
+ * its control interrupts, DeviceId Mapping Index contains an
+ * index into the array of ID mapping.
+ */
+
+ if ((SmmuV3Node->Node.Revision < 5) || (!(SmmuV3Node->Flags & EFI_ACPI_IORT_SMMUv3_FLAG_DEVICEID_VALID))) {
+ if ((SmmuV3Node->Event != 0) && (SmmuV3Node->Pri != 0) &&
+ (SmmuV3Node->Gerr != 0) && (SmmuV3Node->Sync != 0))
+ {
+ // If all the SMMU control interrupts are GSIV based,
+ // the DeviceID mapping index field is ignored.
+ SmmuV3Node->DeviceIdMappingIndex = 0;
+ } else {
+ SmmuV3Node->DeviceIdMappingIndex = NodeList->DeviceIdMappingIndex;
+ }
} else {
SmmuV3Node->DeviceIdMappingIndex = NodeList->DeviceIdMappingIndex;
}
@@ -2819,7 +2839,7 @@ ACPI_IORT_GENERATOR IortGenerator = {
// ACPI Table Signature
EFI_ACPI_6_4_IO_REMAPPING_TABLE_SIGNATURE,
// ACPI Table Revision supported by this Generator
- EFI_ACPI_IO_REMAPPING_TABLE_REVISION_05,
+ EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06,
// Minimum supported ACPI Table Revision
EFI_ACPI_IO_REMAPPING_TABLE_REVISION_00,
// Creator ID
--
2.17.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] MdePkg:IORT header update for IORT Rev E.e spec
2023-01-25 18:40 [PATCH 1/2] DynamicTablesPkg: IORT generator updates for Rev E.e spec Name
@ 2023-01-25 18:40 ` Name
2023-01-29 5:59 ` 回复: " gaoliming
2023-02-06 10:34 ` Sami Mujawar
2023-02-03 16:40 ` [PATCH 1/2] DynamicTablesPkg: IORT generator updates for " PierreGondois
2023-02-06 10:38 ` Sami Mujawar
2 siblings, 2 replies; 8+ messages in thread
From: Name @ 2023-01-25 18:40 UTC (permalink / raw)
To: devel, Sami.Mujawar, Alexei.Fedorov, pierre.gondois,
michael.d.kinney, gaoliming, zhiguang.liu
Cc: Swatisri Kantamsetti
From: Swatisri Kantamsetti <swatisrik@nvidia.com>
The IO Remapping Table, Platform Design Document, Revision E.e,
Sept 2022 (https://developer.arm.com/documentation/den0049/ee)
added flags in SMMUv3 node for validity of ID mappings for MSIs
related to control interrupts.
Therefore, update the IORT header file to:
- increment IORT table revision to 6
- add support for DeviceId valid flag
Signed-off-by: Swatisri Kantamsetti <swatisrik@nvidia.com>
---
MdePkg/Include/IndustryStandard/IoRemappingTable.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/MdePkg/Include/IndustryStandard/IoRemappingTable.h b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
index f48a4a95cd..544aa67a05 100644
--- a/MdePkg/Include/IndustryStandard/IoRemappingTable.h
+++ b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
@@ -9,6 +9,8 @@
@par Reference(s):
- IO Remapping Table, Platform Design Document, Revision E.d, Feb 2022
(https://developer.arm.com/documentation/den0049/)
+ - IO Remapping Table, Platform Design Document, Revision E.e, Sept 2022
+ (https://developer.arm.com/documentation/den0049/)
@par Glossary:
- Ref : Reference
@@ -24,6 +26,7 @@
#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_00 0x0
#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_04 0x4 // Deprecated
#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_05 0x5
+#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06 0x6
#define EFI_ACPI_IORT_TYPE_ITS_GROUP 0x0
#define EFI_ACPI_IORT_TYPE_NAMED_COMP 0x1
@@ -59,6 +62,7 @@
#define EFI_ACPI_IORT_SMMUv3_FLAG_COHAC_OVERRIDE BIT0
#define EFI_ACPI_IORT_SMMUv3_FLAG_HTTU_OVERRIDE BIT1
#define EFI_ACPI_IORT_SMMUv3_FLAG_PROXIMITY_DOMAIN BIT3
+#define EFI_ACPI_IORT_SMMUv3_FLAG_DEVICEID_VALID BIT4
#define EFI_ACPI_IORT_SMMUv3_MODEL_GENERIC 0x0
#define EFI_ACPI_IORT_SMMUv3_MODEL_HISILICON_HI161X 0x1
--
2.17.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* 回复: [PATCH 2/2] MdePkg:IORT header update for IORT Rev E.e spec
2023-01-25 18:40 ` [PATCH 2/2] MdePkg:IORT header update for IORT " Name
@ 2023-01-29 5:59 ` gaoliming
2023-02-03 18:47 ` Swatisri Kantamsetti
2023-02-06 10:34 ` Sami Mujawar
1 sibling, 1 reply; 8+ messages in thread
From: gaoliming @ 2023-01-29 5:59 UTC (permalink / raw)
To: 'Name', devel, Sami.Mujawar, Alexei.Fedorov,
pierre.gondois, michael.d.kinney, zhiguang.liu
Cc: 'Swatisri Kantamsetti'
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
> -----邮件原件-----
> 发件人: Name <username@nvidia.com>
> 发送时间: 2023年1月26日 2:41
> 收件人: devel@edk2.groups.io; Sami.Mujawar@arm.com;
> Alexei.Fedorov@arm.com; pierre.gondois@arm.com;
> michael.d.kinney@intel.com; gaoliming@byosoft.com.cn;
> zhiguang.liu@intel.com
> 抄送: Swatisri Kantamsetti <swatisrik@nvidia.com>
> 主题: [PATCH 2/2] MdePkg:IORT header update for IORT Rev E.e spec
>
> From: Swatisri Kantamsetti <swatisrik@nvidia.com>
>
> The IO Remapping Table, Platform Design Document, Revision E.e,
> Sept 2022 (https://developer.arm.com/documentation/den0049/ee)
> added flags in SMMUv3 node for validity of ID mappings for MSIs
> related to control interrupts.
>
> Therefore, update the IORT header file to:
> - increment IORT table revision to 6
> - add support for DeviceId valid flag
>
> Signed-off-by: Swatisri Kantamsetti <swatisrik@nvidia.com>
> ---
> MdePkg/Include/IndustryStandard/IoRemappingTable.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> index f48a4a95cd..544aa67a05 100644
> --- a/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> +++ b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> @@ -9,6 +9,8 @@
> @par Reference(s):
> - IO Remapping Table, Platform Design Document, Revision E.d, Feb 2022
> (https://developer.arm.com/documentation/den0049/)
> + - IO Remapping Table, Platform Design Document, Revision E.e, Sept 2022
> + (https://developer.arm.com/documentation/den0049/)
>
> @par Glossary:
> - Ref : Reference
> @@ -24,6 +26,7 @@
> #define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_00 0x0
> #define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_04 0x4 //
> Deprecated
> #define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_05 0x5
> +#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06 0x6
>
> #define EFI_ACPI_IORT_TYPE_ITS_GROUP 0x0
> #define EFI_ACPI_IORT_TYPE_NAMED_COMP 0x1
> @@ -59,6 +62,7 @@
> #define EFI_ACPI_IORT_SMMUv3_FLAG_COHAC_OVERRIDE BIT0
> #define EFI_ACPI_IORT_SMMUv3_FLAG_HTTU_OVERRIDE BIT1
> #define EFI_ACPI_IORT_SMMUv3_FLAG_PROXIMITY_DOMAIN BIT3
> +#define EFI_ACPI_IORT_SMMUv3_FLAG_DEVICEID_VALID BIT4
>
> #define EFI_ACPI_IORT_SMMUv3_MODEL_GENERIC 0x0
> #define EFI_ACPI_IORT_SMMUv3_MODEL_HISILICON_HI161X 0x1
> --
> 2.17.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] DynamicTablesPkg: IORT generator updates for Rev E.e spec
2023-01-25 18:40 [PATCH 1/2] DynamicTablesPkg: IORT generator updates for Rev E.e spec Name
2023-01-25 18:40 ` [PATCH 2/2] MdePkg:IORT header update for IORT " Name
@ 2023-02-03 16:40 ` PierreGondois
2023-02-06 10:38 ` Sami Mujawar
2 siblings, 0 replies; 8+ messages in thread
From: PierreGondois @ 2023-02-03 16:40 UTC (permalink / raw)
To: Name, devel, Sami.Mujawar, Alexei.Fedorov, michael.d.kinney,
gaoliming, zhiguang.liu
Cc: Swatisri Kantamsetti
Hello Swatisri,
On 1/25/23 19:40, Name wrote:
> From: Swatisri Kantamsetti <swatisrik@nvidia.com>
>
> The IO Remapping Table, Platform Design Document, Revision E.e,
> Sept 2022 (https://developer.arm.com/documentation/den0049/ee)
> added flags in SMMUv3 node for validity of ID mappings for MSIs
> related to control interrupts.
> It makes one small addition to SMMUv3 nodes to
> describe MSI support independently of wired GSIV support
>
> Therefore, update the IORT generator to:
> - increment IORT table revision to 6
> - increment SMMUV3 node revision to 5
> - for SMMUV3 node revision >=5 check the DeviceID mapping index
> valid flag to populate DeviceIdMappingIndex field
> - preserve backward compatibility.
>
> Signed-off-by: Swatisri Kantamsetti <swatisrik@nvidia.com>
> ---
> .../Acpi/Arm/AcpiIortLibArm/IortGenerator.c | 36 ++++++++++++++-----
> 1 file changed, 28 insertions(+), 8 deletions(-)
>
> diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
> index f28973c1a8..235a475629 100644
> --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
> +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
> @@ -1554,9 +1554,14 @@ AddSmmuV3Nodes (
> {
> SmmuV3Node->Node.Revision = 2;
> SmmuV3Node->Node.Identifier = EFI_ACPI_RESERVED_DWORD;
> - } else {
> + } else if (AcpiTableInfo->AcpiTableRevision <
> + EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06)
> + {
> SmmuV3Node->Node.Revision = 4;
> SmmuV3Node->Node.Identifier = NodeList->Identifier;
> + } else {
> + SmmuV3Node->Node.Revision = 5;
> + SmmuV3Node->Node.Identifier = NodeList->Identifier;
> }
>
> // SMMUv3 specific data
> @@ -1577,12 +1582,27 @@ AddSmmuV3Nodes (
> SmmuV3Node->ProximityDomain = 0;
> }
>
> - if ((SmmuV3Node->Event != 0) && (SmmuV3Node->Pri != 0) &&
> - (SmmuV3Node->Gerr != 0) && (SmmuV3Node->Sync != 0))
> - {
> - // If all the SMMU control interrupts are GSIV based,
> - // the DeviceID mapping index field is ignored.
> - SmmuV3Node->DeviceIdMappingIndex = 0;
> + /* DeviceID mapping valid flag was introduced in IORT rev E.e
> + * for SMMUV3 nodes rev. > 5.
> + * For older revisions, if all the SMMU control interrupts are GSIV
> + * based, DeviceID mapping index field is ignored.
> + * If the DeviceID mapping index valid flag is set to 0,
> + * DeviceID mapping index field must be ignored.
> + * Where the SMMU uses message signaled interrupts for
> + * its control interrupts, DeviceId Mapping Index contains an
> + * index into the array of ID mapping.
> + */
> +
> + if ((SmmuV3Node->Node.Revision < 5) || (!(SmmuV3Node->Flags & EFI_ACPI_IORT_SMMUv3_FLAG_DEVICEID_VALID))) {
The definitions of:
- EFI_ACPI_IORT_SMMUv3_FLAG_DEVICEID_VALID
- EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06
are in the next patch, so a build in between these 2 patches will fail,
other than that:
Reviewed-by: Pierre Gondois <pierre.gondois@arm.com>
> + if ((SmmuV3Node->Event != 0) && (SmmuV3Node->Pri != 0) &&
> + (SmmuV3Node->Gerr != 0) && (SmmuV3Node->Sync != 0))
> + {
> + // If all the SMMU control interrupts are GSIV based,
> + // the DeviceID mapping index field is ignored.
> + SmmuV3Node->DeviceIdMappingIndex = 0;
> + } else {
> + SmmuV3Node->DeviceIdMappingIndex = NodeList->DeviceIdMappingIndex;
> + }
> } else {
> SmmuV3Node->DeviceIdMappingIndex = NodeList->DeviceIdMappingIndex;
> }
> @@ -2819,7 +2839,7 @@ ACPI_IORT_GENERATOR IortGenerator = {
> // ACPI Table Signature
> EFI_ACPI_6_4_IO_REMAPPING_TABLE_SIGNATURE,
> // ACPI Table Revision supported by this Generator
> - EFI_ACPI_IO_REMAPPING_TABLE_REVISION_05,
> + EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06,
> // Minimum supported ACPI Table Revision
> EFI_ACPI_IO_REMAPPING_TABLE_REVISION_00,
> // Creator ID
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] MdePkg:IORT header update for IORT Rev E.e spec
2023-01-29 5:59 ` 回复: " gaoliming
@ 2023-02-03 18:47 ` Swatisri Kantamsetti
2023-02-10 5:26 ` 回复: [edk2-devel] " gaoliming
0 siblings, 1 reply; 8+ messages in thread
From: Swatisri Kantamsetti @ 2023-02-03 18:47 UTC (permalink / raw)
To: gaoliming, 'Name', devel@edk2.groups.io,
Sami.Mujawar@arm.com, Alexei.Fedorov@arm.com,
pierre.gondois@arm.com, michael.d.kinney@intel.com,
zhiguang.liu@intel.com
[-- Attachment #1: Type: text/plain, Size: 4319 bytes --]
Just checking to see when this patch could be merged?
Thanks,
Swati
________________________________
From: gaoliming <gaoliming@byosoft.com.cn>
Sent: Saturday, January 28, 2023 10:59 PM
To: 'Name' <username@nvidia.com>; devel@edk2.groups.io <devel@edk2.groups.io>; Sami.Mujawar@arm.com <Sami.Mujawar@arm.com>; Alexei.Fedorov@arm.com <Alexei.Fedorov@arm.com>; pierre.gondois@arm.com <pierre.gondois@arm.com>; michael.d.kinney@intel.com <michael.d.kinney@intel.com>; zhiguang.liu@intel.com <zhiguang.liu@intel.com>
Cc: Swatisri Kantamsetti <swatisrik@nvidia.com>
Subject: 回复: [PATCH 2/2] MdePkg:IORT header update for IORT Rev E.e spec
External email: Use caution opening links or attachments
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
> -----邮件原件-----
> 发件人: Name <username@nvidia.com>
> 发送时间: 2023年1月26日 2:41
> 收件人: devel@edk2.groups.io; Sami.Mujawar@arm.com;
> Alexei.Fedorov@arm.com; pierre.gondois@arm.com;
> michael.d.kinney@intel.com; gaoliming@byosoft.com.cn;
> zhiguang.liu@intel.com
> 抄送: Swatisri Kantamsetti <swatisrik@nvidia.com>
> 主题: [PATCH 2/2] MdePkg:IORT header update for IORT Rev E.e spec
>
> From: Swatisri Kantamsetti <swatisrik@nvidia.com>
>
> The IO Remapping Table, Platform Design Document, Revision E.e,
> Sept 2022 (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper.arm.com%2Fdocumentation%2Fden0049%2Fee&data=05%7C01%7Cswatisrik%40nvidia.com%7C39d6cc086d3b45e32ea908db01bdfd93%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638105687766743781%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Yfn%2BzXkA2rKS4Y44XkU65gMLQy8OL3iqPF2AmyYmRNM%3D&reserved=0)
> added flags in SMMUv3 node for validity of ID mappings for MSIs
> related to control interrupts.
>
> Therefore, update the IORT header file to:
> - increment IORT table revision to 6
> - add support for DeviceId valid flag
>
> Signed-off-by: Swatisri Kantamsetti <swatisrik@nvidia.com>
> ---
> MdePkg/Include/IndustryStandard/IoRemappingTable.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> index f48a4a95cd..544aa67a05 100644
> --- a/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> +++ b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> @@ -9,6 +9,8 @@
> @par Reference(s):
> - IO Remapping Table, Platform Design Document, Revision E.d, Feb 2022
> (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper.arm.com%2Fdocumentation%2Fden0049%2F&data=05%7C01%7Cswatisrik%40nvidia.com%7C39d6cc086d3b45e32ea908db01bdfd93%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638105687766743781%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Yb238OnzfBZR8f9ad%2F5S0Ol3XetVptoMG24AO4Yj8To%3D&reserved=0)
> + - IO Remapping Table, Platform Design Document, Revision E.e, Sept 2022
> + (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper.arm.com%2Fdocumentation%2Fden0049%2F&data=05%7C01%7Cswatisrik%40nvidia.com%7C39d6cc086d3b45e32ea908db01bdfd93%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638105687766743781%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Yb238OnzfBZR8f9ad%2F5S0Ol3XetVptoMG24AO4Yj8To%3D&reserved=0)
>
> @par Glossary:
> - Ref : Reference
> @@ -24,6 +26,7 @@
> #define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_00 0x0
> #define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_04 0x4 //
> Deprecated
> #define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_05 0x5
> +#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06 0x6
>
> #define EFI_ACPI_IORT_TYPE_ITS_GROUP 0x0
> #define EFI_ACPI_IORT_TYPE_NAMED_COMP 0x1
> @@ -59,6 +62,7 @@
> #define EFI_ACPI_IORT_SMMUv3_FLAG_COHAC_OVERRIDE BIT0
> #define EFI_ACPI_IORT_SMMUv3_FLAG_HTTU_OVERRIDE BIT1
> #define EFI_ACPI_IORT_SMMUv3_FLAG_PROXIMITY_DOMAIN BIT3
> +#define EFI_ACPI_IORT_SMMUv3_FLAG_DEVICEID_VALID BIT4
>
> #define EFI_ACPI_IORT_SMMUv3_MODEL_GENERIC 0x0
> #define EFI_ACPI_IORT_SMMUv3_MODEL_HISILICON_HI161X 0x1
> --
> 2.17.1
[-- Attachment #2: Type: text/html, Size: 7920 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] MdePkg:IORT header update for IORT Rev E.e spec
2023-01-25 18:40 ` [PATCH 2/2] MdePkg:IORT header update for IORT " Name
2023-01-29 5:59 ` 回复: " gaoliming
@ 2023-02-06 10:34 ` Sami Mujawar
1 sibling, 0 replies; 8+ messages in thread
From: Sami Mujawar @ 2023-02-06 10:34 UTC (permalink / raw)
To: Name, devel, Alexei.Fedorov, pierre.gondois, michael.d.kinney,
gaoliming, zhiguang.liu
Cc: Swatisri Kantamsetti, nd@arm.com
Hi Swatisri,
Thank you for this patch.
This patch must be 1/2 to prevent git bisect from failing. Otherwise
these changes look good to me.
With that addressed,
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Regards,
Sami Mujawar
On 25/01/2023 06:40 pm, Name wrote:
> From: Swatisri Kantamsetti <swatisrik@nvidia.com>
>
> The IO Remapping Table, Platform Design Document, Revision E.e,
> Sept 2022 (https://developer.arm.com/documentation/den0049/ee)
> added flags in SMMUv3 node for validity of ID mappings for MSIs
> related to control interrupts.
>
> Therefore, update the IORT header file to:
> - increment IORT table revision to 6
> - add support for DeviceId valid flag
>
> Signed-off-by: Swatisri Kantamsetti <swatisrik@nvidia.com>
> ---
> MdePkg/Include/IndustryStandard/IoRemappingTable.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/MdePkg/Include/IndustryStandard/IoRemappingTable.h b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> index f48a4a95cd..544aa67a05 100644
> --- a/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> +++ b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> @@ -9,6 +9,8 @@
> @par Reference(s):
> - IO Remapping Table, Platform Design Document, Revision E.d, Feb 2022
> (https://developer.arm.com/documentation/den0049/)
> + - IO Remapping Table, Platform Design Document, Revision E.e, Sept 2022
> + (https://developer.arm.com/documentation/den0049/)
>
> @par Glossary:
> - Ref : Reference
> @@ -24,6 +26,7 @@
> #define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_00 0x0
> #define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_04 0x4 // Deprecated
> #define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_05 0x5
> +#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06 0x6
>
> #define EFI_ACPI_IORT_TYPE_ITS_GROUP 0x0
> #define EFI_ACPI_IORT_TYPE_NAMED_COMP 0x1
> @@ -59,6 +62,7 @@
> #define EFI_ACPI_IORT_SMMUv3_FLAG_COHAC_OVERRIDE BIT0
> #define EFI_ACPI_IORT_SMMUv3_FLAG_HTTU_OVERRIDE BIT1
> #define EFI_ACPI_IORT_SMMUv3_FLAG_PROXIMITY_DOMAIN BIT3
> +#define EFI_ACPI_IORT_SMMUv3_FLAG_DEVICEID_VALID BIT4
>
> #define EFI_ACPI_IORT_SMMUv3_MODEL_GENERIC 0x0
> #define EFI_ACPI_IORT_SMMUv3_MODEL_HISILICON_HI161X 0x1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] DynamicTablesPkg: IORT generator updates for Rev E.e spec
2023-01-25 18:40 [PATCH 1/2] DynamicTablesPkg: IORT generator updates for Rev E.e spec Name
2023-01-25 18:40 ` [PATCH 2/2] MdePkg:IORT header update for IORT " Name
2023-02-03 16:40 ` [PATCH 1/2] DynamicTablesPkg: IORT generator updates for " PierreGondois
@ 2023-02-06 10:38 ` Sami Mujawar
2 siblings, 0 replies; 8+ messages in thread
From: Sami Mujawar @ 2023-02-06 10:38 UTC (permalink / raw)
To: Name, devel, Alexei.Fedorov, pierre.gondois, michael.d.kinney,
gaoliming, zhiguang.liu
Cc: Swatisri Kantamsetti, nd@arm.com
[-- Attachment #1: Type: text/plain, Size: 5189 bytes --]
Hi Swatisri,
Thank you for this patch,
I have some suggestions marked inline as [SAMI].
Regards,
Sami Mujawar
On 25/01/2023 06:40 pm, Name wrote:
> From: Swatisri Kantamsetti<swatisrik@nvidia.com>
>
> The IO Remapping Table, Platform Design Document, Revision E.e,
> Sept 2022 (https://developer.arm.com/documentation/den0049/ee)
> added flags in SMMUv3 node for validity of ID mappings for MSIs
> related to control interrupts.
> It makes one small addition to SMMUv3 nodes to
> describe MSI support independently of wired GSIV support
>
> Therefore, update the IORT generator to:
> - increment IORT table revision to 6
> - increment SMMUV3 node revision to 5
> - for SMMUV3 node revision >=5 check the DeviceID mapping index
> valid flag to populate DeviceIdMappingIndex field
> - preserve backward compatibility.
>
> Signed-off-by: Swatisri Kantamsetti<swatisrik@nvidia.com>
> ---
> .../Acpi/Arm/AcpiIortLibArm/IortGenerator.c | 36 ++++++++++++++-----
> 1 file changed, 28 insertions(+), 8 deletions(-)
>
> diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
> index f28973c1a8..235a475629 100644
> --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
> +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c
[SAMI] Can you update the file header with the IORT Spec revision, please?
> @@ -1554,9 +1554,14 @@ AddSmmuV3Nodes (
> {
> SmmuV3Node->Node.Revision = 2;
> SmmuV3Node->Node.Identifier = EFI_ACPI_RESERVED_DWORD;
> - } else {
> + } else if (AcpiTableInfo->AcpiTableRevision <
> + EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06)
> + {
> SmmuV3Node->Node.Revision = 4;
> SmmuV3Node->Node.Identifier = NodeList->Identifier;
> + } else {
> + SmmuV3Node->Node.Revision = 5;
> + SmmuV3Node->Node.Identifier = NodeList->Identifier;
> }
>
> // SMMUv3 specific data
> @@ -1577,12 +1582,27 @@ AddSmmuV3Nodes (
> SmmuV3Node->ProximityDomain = 0;
> }
> <SNIP>
> - if ((SmmuV3Node->Event != 0) && (SmmuV3Node->Pri != 0) &&
> - (SmmuV3Node->Gerr != 0) && (SmmuV3Node->Sync != 0))
> - {
> - // If all the SMMU control interrupts are GSIV based,
> - // the DeviceID mapping index field is ignored.
> - SmmuV3Node->DeviceIdMappingIndex = 0;
> + /* DeviceID mapping valid flag was introduced in IORT rev E.e
> + * for SMMUV3 nodes rev. > 5.
> + * For older revisions, if all the SMMU control interrupts are GSIV
> + * based, DeviceID mapping index field is ignored.
> + * If the DeviceID mapping index valid flag is set to 0,
> + * DeviceID mapping index field must be ignored.
> + * Where the SMMU uses message signaled interrupts for
> + * its control interrupts, DeviceId Mapping Index contains an
> + * index into the array of ID mapping.
> + */
> +
> + if ((SmmuV3Node->Node.Revision < 5) || (!(SmmuV3Node->Flags & EFI_ACPI_IORT_SMMUv3_FLAG_DEVICEID_VALID))) {
> + if ((SmmuV3Node->Event != 0) && (SmmuV3Node->Pri != 0) &&
> + (SmmuV3Node->Gerr != 0) && (SmmuV3Node->Sync != 0))
> + {
> + // If all the SMMU control interrupts are GSIV based,
> + // the DeviceID mapping index field is ignored.
> + SmmuV3Node->DeviceIdMappingIndex = 0;
> + } else {
> + SmmuV3Node->DeviceIdMappingIndex = NodeList->DeviceIdMappingIndex;
> + }
> } else {
> SmmuV3Node->DeviceIdMappingIndex = NodeList->DeviceIdMappingIndex;
> }
</SNIP>
[SAMI] I think the above code should be changed to the following:
/* For older SMMUV3 nodes rev. < 5.
If all the SMMU control interrupts are GSIV based,
the DeviceID mapping index field is ignored.
DeviceID mapping valid flag was introduced in IORT rev E.e
for SMMUV3 nodes rev. > 5.
If the DeviceID mapping index valid flag is set to 0,
DeviceID mapping index field must be ignored.
Where the SMMU uses message signaled interrupts for
its control interrupts, DeviceId Mapping Index contains an
index into the array of ID mapping.
*/
if (((SmmuV3Node->Node.Revision < 5) &&
(SmmuV3Node->Event != 0) &&
(SmmuV3Node->Pri != 0) &&
(SmmuV3Node->Gerr != 0) &&
(SmmuV3Node->Sync != 0)
) ||
((SmmuV3Node->Node.Revision >= 5) &&
((SmmuV3Node->Flags & EFI_ACPI_IORT_SMMUv3_FLAG_DEVICEID_VALID) == 0))
) {
SmmuV3Node->DeviceIdMappingIndex = 0;
} else {
SmmuV3Node->DeviceIdMappingIndex = NodeList->DeviceIdMappingIndex;
}
Can you check, please?
[/SAMI]
> @@ -2819,7 +2839,7 @@ ACPI_IORT_GENERATOR IortGenerator = {
> // ACPI Table Signature
> EFI_ACPI_6_4_IO_REMAPPING_TABLE_SIGNATURE,
> // ACPI Table Revision supported by this Generator
> - EFI_ACPI_IO_REMAPPING_TABLE_REVISION_05,
> + EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06,
> // Minimum supported ACPI Table Revision
> EFI_ACPI_IO_REMAPPING_TABLE_REVISION_00,
> // Creator ID
[-- Attachment #2: Type: text/html, Size: 7637 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* 回复: [edk2-devel] [PATCH 2/2] MdePkg:IORT header update for IORT Rev E.e spec
2023-02-03 18:47 ` Swatisri Kantamsetti
@ 2023-02-10 5:26 ` gaoliming
0 siblings, 0 replies; 8+ messages in thread
From: gaoliming @ 2023-02-10 5:26 UTC (permalink / raw)
To: devel, swatisrik, 'Name', Sami.Mujawar, Alexei.Fedorov,
pierre.gondois, michael.d.kinney, zhiguang.liu
[-- Attachment #1: Type: text/plain, Size: 7110 bytes --]
It has been merged at 5db84c85c3544b92fa236c4d169440d523712ae0 in Edk2.
Thanks
Liming
发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Swatisri
Kantamsetti via groups.io
发送时间: 2023年2月4日 2:48
收件人: gaoliming <gaoliming@byosoft.com.cn>; 'Name' <username@nvidia.com>;
devel@edk2.groups.io; Sami.Mujawar@arm.com; Alexei.Fedorov@arm.com;
pierre.gondois@arm.com; michael.d.kinney@intel.com; zhiguang.liu@intel.com
主题: Re: [edk2-devel] [PATCH 2/2] MdePkg:IORT header update for IORT Rev E.
e spec
Just checking to see when this patch could be merged?
Thanks,
Swati
_____
From: gaoliming <gaoliming@byosoft.com.cn <mailto:gaoliming@byosoft.com.cn>
>
Sent: Saturday, January 28, 2023 10:59 PM
To: 'Name' <username@nvidia.com <mailto:username@nvidia.com> >;
devel@edk2.groups.io <mailto:devel@edk2.groups.io> <devel@edk2.groups.io
<mailto:devel@edk2.groups.io> >; Sami.Mujawar@arm.com
<mailto:Sami.Mujawar@arm.com> <Sami.Mujawar@arm.com
<mailto:Sami.Mujawar@arm.com> >; Alexei.Fedorov@arm.com
<mailto:Alexei.Fedorov@arm.com> <Alexei.Fedorov@arm.com
<mailto:Alexei.Fedorov@arm.com> >; pierre.gondois@arm.com
<mailto:pierre.gondois@arm.com> <pierre.gondois@arm.com
<mailto:pierre.gondois@arm.com> >; michael.d.kinney@intel.com
<mailto:michael.d.kinney@intel.com> <michael.d.kinney@intel.com
<mailto:michael.d.kinney@intel.com> >; zhiguang.liu@intel.com
<mailto:zhiguang.liu@intel.com> <zhiguang.liu@intel.com
<mailto:zhiguang.liu@intel.com> >
Cc: Swatisri Kantamsetti <swatisrik@nvidia.com <mailto:swatisrik@nvidia.com>
>
Subject: 回复: [PATCH 2/2] MdePkg:IORT header update for IORT Rev E.e spec
External email: Use caution opening links or attachments
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn <mailto:gaoliming@byosoft.
com.cn> >
> -----邮件原件-----
> 发件人: Name <username@nvidia.com <mailto:username@nvidia.com> >
> 发送时间: 2023年1月26日 2:41
> 收件人: devel@edk2.groups.io <mailto:devel@edk2.groups.io> ;
Sami.Mujawar@arm.com <mailto:Sami.Mujawar@arm.com> ;
> Alexei.Fedorov@arm.com <mailto:Alexei.Fedorov@arm.com> ;
pierre.gondois@arm.com <mailto:pierre.gondois@arm.com> ;
> michael.d.kinney@intel.com <mailto:michael.d.kinney@intel.com> ;
gaoliming@byosoft.com.cn <mailto:gaoliming@byosoft.com.cn> ;
> zhiguang.liu@intel.com <mailto:zhiguang.liu@intel.com>
> 抄送: Swatisri Kantamsetti <swatisrik@nvidia.com <mailto:swatisrik@nvidia.
com> >
> 主题: [PATCH 2/2] MdePkg:IORT header update for IORT Rev E.e spec
>
> From: Swatisri Kantamsetti <swatisrik@nvidia.com <mailto:swatisrik@nvidia.
com> >
>
> The IO Remapping Table, Platform Design Document, Revision E.e,
> Sept 2022
(https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper
.arm.com%2Fdocumentation%2Fden0049%2Fee <https://nam11.safelinks.protection.
outlook.com/?url=https%3A%2F%2Fdeveloper.arm.com%2Fdocumentation%2Fden0049%2
Fee&data=05%7C01%7Cswatisrik%40nvidia.com%7C39d6cc086d3b45e32ea908db01bdfd93
%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638105687766743781%7CUnknown%7
CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0
%3D%7C3000%7C%7C%7C&sdata=Yfn%2BzXkA2rKS4Y44XkU65gMLQy8OL3iqPF2AmyYmRNM%3D&r
eserved=0>
&data=05%7C01%7Cswatisrik%40nvidia.com%7C39d6cc086d3b45e32ea908db01bdfd93%7C
43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638105687766743781%7CUnknown%7CTW
FpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D
%7C3000%7C%7C%7C&sdata=Yfn%2BzXkA2rKS4Y44XkU65gMLQy8OL3iqPF2AmyYmRNM%3D&rese
rved=0)
> added flags in SMMUv3 node for validity of ID mappings for MSIs
> related to control interrupts.
>
> Therefore, update the IORT header file to:
> - increment IORT table revision to 6
> - add support for DeviceId valid flag
>
> Signed-off-by: Swatisri Kantamsetti <swatisrik@nvidia.com
<mailto:swatisrik@nvidia.com> >
> ---
> MdePkg/Include/IndustryStandard/IoRemappingTable.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> index f48a4a95cd..544aa67a05 100644
> --- a/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> +++ b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> @@ -9,6 +9,8 @@
> @par Reference(s):
> - IO Remapping Table, Platform Design Document, Revision E.d, Feb 2022
>
(https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper
.arm.com%2Fdocumentation%2Fden0049%2F
<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper
.arm.com%2Fdocumentation%2Fden0049%2F&data=05%7C01%7Cswatisrik%40nvidia.com%
7C39d6cc086d3b45e32ea908db01bdfd93%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C
0%7C638105687766743781%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV
2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Yb238OnzfBZR8f9a
d%2F5S0Ol3XetVptoMG24AO4Yj8To%3D&reserved=0>
&data=05%7C01%7Cswatisrik%40nvidia.com%7C39d6cc086d3b45e32ea908db01bdfd93%7C
43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638105687766743781%7CUnknown%7CTW
FpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D
%7C3000%7C%7C%7C&sdata=Yb238OnzfBZR8f9ad%2F5S0Ol3XetVptoMG24AO4Yj8To%3D&rese
rved=0)
> + - IO Remapping Table, Platform Design Document, Revision E.e, Sept 2022
> +
(https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper
.arm.com%2Fdocumentation%2Fden0049%2F
<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper
.arm.com%2Fdocumentation%2Fden0049%2F&data=05%7C01%7Cswatisrik%40nvidia.com%
7C39d6cc086d3b45e32ea908db01bdfd93%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C
0%7C638105687766743781%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV
2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Yb238OnzfBZR8f9a
d%2F5S0Ol3XetVptoMG24AO4Yj8To%3D&reserved=0>
&data=05%7C01%7Cswatisrik%40nvidia.com%7C39d6cc086d3b45e32ea908db01bdfd93%7C
43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638105687766743781%7CUnknown%7CTW
FpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D
%7C3000%7C%7C%7C&sdata=Yb238OnzfBZR8f9ad%2F5S0Ol3XetVptoMG24AO4Yj8To%3D&rese
rved=0)
>
> @par Glossary:
> - Ref : Reference
> @@ -24,6 +26,7 @@
> #define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_00 0x0
> #define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_04 0x4 //
> Deprecated
> #define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_05 0x5
> +#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06 0x6
>
> #define EFI_ACPI_IORT_TYPE_ITS_GROUP 0x0
> #define EFI_ACPI_IORT_TYPE_NAMED_COMP 0x1
> @@ -59,6 +62,7 @@
> #define EFI_ACPI_IORT_SMMUv3_FLAG_COHAC_OVERRIDE BIT0
> #define EFI_ACPI_IORT_SMMUv3_FLAG_HTTU_OVERRIDE BIT1
> #define EFI_ACPI_IORT_SMMUv3_FLAG_PROXIMITY_DOMAIN BIT3
> +#define EFI_ACPI_IORT_SMMUv3_FLAG_DEVICEID_VALID BIT4
>
> #define EFI_ACPI_IORT_SMMUv3_MODEL_GENERIC 0x0
> #define EFI_ACPI_IORT_SMMUv3_MODEL_HISILICON_HI161X 0x1
> --
> 2.17.1
[-- Attachment #2: Type: text/html, Size: 13038 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-02-10 5:26 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-25 18:40 [PATCH 1/2] DynamicTablesPkg: IORT generator updates for Rev E.e spec Name
2023-01-25 18:40 ` [PATCH 2/2] MdePkg:IORT header update for IORT " Name
2023-01-29 5:59 ` 回复: " gaoliming
2023-02-03 18:47 ` Swatisri Kantamsetti
2023-02-10 5:26 ` 回复: [edk2-devel] " gaoliming
2023-02-06 10:34 ` Sami Mujawar
2023-02-03 16:40 ` [PATCH 1/2] DynamicTablesPkg: IORT generator updates for " PierreGondois
2023-02-06 10:38 ` Sami Mujawar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox