Added code to check if the Generic Timer Block Structure's frame number
provided by the platform repository is within the allowed range (0-7).

References:
- ACPI 6.2 Errata A, Table 5-122, September 2017

Signed-off-by: Krzysztof Koch <krzysztof.k...@arm.com>
---

The changes can be seen at: 
https://github.com/KrzysztofKoch1/edk2/tree/woa_522_gt_frame_number_validate_v1

Notes:
    v1:
    - Add GTDT Frame Number validation [Krzysztof]

 DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c 
b/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c
index 
8d9ddcf9244b9f8b795edf7a53dd8a071bb121bc..543e6f442f2ab93bc7c9cd5e563d305c0f400060
 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c
@@ -218,6 +218,15 @@ AddGTBlockTimerFrames (
       GtBlockFrame
       ));

+    if (GTBlockTimerFrameList->FrameNumber >= 8) {
+      DEBUG ((
+        DEBUG_ERROR,
+        "ERROR: GTDT: Frame number %d is not in the range 0-7\n",
+        GTBlockTimerFrameList->FrameNumber
+      ));
+      return EFI_INVALID_PARAMETER;
+    }
+
     GtBlockFrame->GTFrameNumber = GTBlockTimerFrameList->FrameNumber;
     GtBlockFrame->Reserved[0] = EFI_ACPI_RESERVED_BYTE;
     GtBlockFrame->Reserved[1] = EFI_ACPI_RESERVED_BYTE;
--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'


IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#40206): https://edk2.groups.io/g/devel/message/40206
Mute This Topic: https://groups.io/mt/31543551/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to