public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Sami Mujawar" <sami.mujawar@arm.com>
To: <devel@edk2.groups.io>
Cc: Sami Mujawar <sami.mujawar@arm.com>, <zhichao.gao@intel.com>,
	<pierre.gondois@arm.com>, <Anshuman.Khandual@arm.com>,
	<Matteo.Carlini@arm.com>, <Akanksha.Jain2@arm.com>,
	<Sibel.Allinson@arm.com>, <jeshuas@nvidia.com>, <nd@arm.com>
Subject: [edk2-devel] [PATCH v3 07/13] ShellPkg: Acpiview: Update MADT parser for TRBE interrupt
Date: Fri, 22 Sep 2023 15:35:10 +0100	[thread overview]
Message-ID: <20230922143516.4764-8-sami.mujawar@arm.com> (raw)
In-Reply-To: <20230922143516.4764-1-sami.mujawar@arm.com>

ACPI 6.5 introduces a new filed to the MADT GICC
structure to specify the TRBE interrupt. The TRBE
interrupt is a Processor Private interrupt (PPI)
and is used to specify a platform-specific
interrupt to signal TRBE events.

Therefore, update the MADT GICC structure parser
to parse the new TRBE interrupt field. Also, add
validations to check that the TRBE interrupt is
within the PPI interrupt range.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Pierre Gondois  <pierre.gondois@arm.com>
---

Notes:
    v3:
     - No code change from v2 patch series.      [SAMI]
     - Added rb tag from Zhichao                 [SAMI]
    
    v2:
     - No code change from v1 patch series.      [SAMI]

 ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c | 48 +++++++++++++++++++-
 1 file changed, 46 insertions(+), 2 deletions(-)

diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c
index 41edcb9ffd1da90893c04e8284ea3317a9e3b45a..3a4f246347f8ad3489fda083e3268e73baa9bc92 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c
@@ -1,7 +1,7 @@
 /** @file
   MADT table parser
 
-  Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
+  Copyright (c) 2016 - 2023, ARM Limited. All rights reserved.
   Copyright (c) 2022, AMD Incorporated. All rights reserved.
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
@@ -97,6 +97,48 @@ ValidateSpeOverflowInterrupt (
   }
 }
 
+/**
+  This function validates the TRBE Interrupt in the GICC.
+
+  @param [in] Ptr     Pointer to the start of the field data.
+  @param [in] Context Pointer to context specific information e.g. this
+                      could be a pointer to the ACPI table header.
+**/
+STATIC
+VOID
+EFIAPI
+ValidateTrbeInterrupt (
+  IN UINT8  *Ptr,
+  IN VOID   *Context
+  )
+{
+  UINT16  TrbeInterrupt;
+
+  TrbeInterrupt = *(UINT16 *)Ptr;
+
+  // SPE not supported by this processor
+  if (TrbeInterrupt == 0) {
+    return;
+  }
+
+  if ((TrbeInterrupt < ARM_PPI_ID_MIN) ||
+      ((TrbeInterrupt > ARM_PPI_ID_MAX) &&
+       (TrbeInterrupt < ARM_PPI_ID_EXTENDED_MIN)) ||
+      (TrbeInterrupt > ARM_PPI_ID_EXTENDED_MAX))
+  {
+    IncrementErrorCount ();
+    Print (
+      L"\nERROR: TRBE Interrupt ID of %d is not in the allowed PPI ID "
+      L"ranges of %d-%d or %d-%d (for GICv3.1 or later).",
+      TrbeInterrupt,
+      ARM_PPI_ID_MIN,
+      ARM_PPI_ID_MAX,
+      ARM_PPI_ID_EXTENDED_MIN,
+      ARM_PPI_ID_EXTENDED_MAX
+      );
+  }
+}
+
 /**
   An ACPI_PARSER array describing the GICC Interrupt Controller Structure.
 **/
@@ -122,7 +164,9 @@ STATIC CONST ACPI_PARSER  GicCParser[] = {
     NULL },
   { L"Reserved",                         1, 77, L"0x%x",  NULL, NULL, NULL, NULL },
   { L"SPE overflow Interrupt",           2, 78, L"0x%x",  NULL, NULL,
-    ValidateSpeOverflowInterrupt, NULL }
+    ValidateSpeOverflowInterrupt, NULL },
+  { L"TRBE Interrupt",                   2, 80, L"0x%x",  NULL, NULL,
+    ValidateTrbeInterrupt, NULL }
 };
 
 /**
-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#109000): https://edk2.groups.io/g/devel/message/109000
Mute This Topic: https://groups.io/mt/101522266/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



  parent reply	other threads:[~2023-09-22 14:35 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-22 14:35 [edk2-devel] [PATCH v3 00/11] Update MADT for ACPI 6.5, and add TRBE & ETE support Sami Mujawar
2023-09-22 14:35 ` [edk2-devel] [PATCH v3 01/13] MdePkg: MADT: Add Online capable flag in GICC Sami Mujawar
2023-09-22 14:35 ` [edk2-devel] [PATCH v3 02/13] MdePkg: MADT: Add TRBE interrupt to GICC Sami Mujawar
2023-09-22 14:35 ` [edk2-devel] [PATCH v3 03/13] DynamicTablesPkg: Add TRBE interrupt to GICC object Sami Mujawar
2023-09-22 14:35 ` [edk2-devel] [PATCH v3 04/13] DynamicTablesPkg: Add TRBE interrupt to GICC object parser Sami Mujawar
2023-09-22 14:35 ` [edk2-devel] [PATCH v3 05/13] DynamicTablesPkg: Update MADT generator for ACPI 6.5 Sami Mujawar
2023-09-22 14:35 ` [edk2-devel] [PATCH v3 06/13] DynamicTablesPkg: Update FADT generator to " Sami Mujawar
2023-09-22 14:35 ` Sami Mujawar [this message]
2023-09-22 14:35 ` [edk2-devel] [PATCH v3 08/13] DynamicTablesPkg: Add an ET info object to Arm namespace Sami Mujawar
2023-09-22 14:35 ` [edk2-devel] [PATCH v3 09/13] DynamicTablesPkg: Add an ET info object parser Sami Mujawar
2023-09-22 14:35 ` [edk2-devel] [PATCH v3 10/13] DynamicTablesPkg: Add ETE device to CPU node in AML Sami Mujawar
2023-09-22 14:35 ` [edk2-devel] [PATCH v3 11/13] DynamicTablesPkg: Fix referencing of CPC token Sami Mujawar
2023-09-22 14:35 ` [edk2-devel] [PATCH v3 12/13] ArmPkg/ArmLib: Add ArmHasTrbe () helper function Sami Mujawar
2023-09-22 14:35 ` [edk2-devel] [PATCH v3 13/13] ArmPkg/ArmLib: Add ArmHasEte " Sami Mujawar
2023-09-22 14:50 ` [edk2-devel] [PATCH v3 00/11] Update MADT for ACPI 6.5, and add TRBE & ETE support PierreGondois
2023-10-23 15:30   ` Jeshua Smith via groups.io
2023-10-24  8:43     ` Sami Mujawar
2023-10-26  9:08       ` Gao, Zhichao
2023-10-30 14:16         ` Sami Mujawar
2023-09-22 16:19 ` Leif Lindholm

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=20230922143516.4764-8-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