summaryrefslogtreecommitdiffstats
path: root/DynamicTablesPkg
diff options
context:
space:
mode:
authorKrzysztof Koch <krzysztof.koch@arm.com>2019-04-10 11:28:55 +0100
committerSami Mujawar <sami.mujawar@arm.com>2019-06-10 20:03:40 +0100
commit75bf10a68914a50b1d5c57f63a8561fa52dc0973 (patch)
tree0515acf0b82e70562a65d7f570e75252870e7dbc /DynamicTablesPkg
parent98f98eb440d65fbe9828bac2968a7cf7e749118c (diff)
downloadedk2-75bf10a68914a50b1d5c57f63a8561fa52dc0973.tar.gz
edk2-75bf10a68914a50b1d5c57f63a8561fa52dc0973.tar.bz2
edk2-75bf10a68914a50b1d5c57f63a8561fa52dc0973.zip
DynamicTablesPkg: Add frame number validation to GTDT generator
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.koch@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Diffstat (limited to 'DynamicTablesPkg')
-rw-r--r--DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c
index 8d9ddcf924..543e6f442f 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;