diff options
author | Krzysztof Koch <krzysztof.koch@arm.com> | 2019-04-10 11:28:55 +0100 |
---|---|---|
committer | Sami Mujawar <sami.mujawar@arm.com> | 2019-06-10 20:03:40 +0100 |
commit | 75bf10a68914a50b1d5c57f63a8561fa52dc0973 (patch) | |
tree | 0515acf0b82e70562a65d7f570e75252870e7dbc /DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c | |
parent | 98f98eb440d65fbe9828bac2968a7cf7e749118c (diff) | |
download | edk2-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/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c')
-rw-r--r-- | DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c | 9 |
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;
|