ShellPkg: acpiview: Add -r parameter for table requirements validation

Define a new command line parameter '-r' to enable checking if all
mandatory ACPI tables listed in a specification are present.

The -r parameter takes an integer value to specify which specification
the validation should be performed against.

The parameter is used to set two Acpiview variables. An interface to
access these variables is implemented in this patch.

The new functionality is aimed at Arm-based platforms, however,
there are no restriction on extending it to other architectures.
For the 32-bit and 64-bit Arm architectures, the possible values for
the -r parameter are:
  0: Arm Server Base Boot Requirements 1.0, March 2016
  1: Arm Server Base Boot Requirements 1.1, May 2018
  2: Arm Server Base Boot Requirements 1.2, September 2019

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Sami Mujawar <Sami.Mujawar@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
This commit is contained in:
Krzysztof Koch
2020-03-25 17:39:22 +08:00
committed by mergify[bot]
parent befd18fca6
commit 8af507c1f1
3 changed files with 136 additions and 4 deletions

View File

@@ -1,7 +1,7 @@
/** @file
Header file for AcpiView
Copyright (c) 2016 - 2019, ARM Limited. All rights reserved.
Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -112,6 +112,48 @@ SetConsistencyChecking (
BOOLEAN ConsistencyChecking
);
/**
This function returns the ACPI table requirements validation flag.
@retval TRUE if check for mandatory table presence should be performed.
**/
BOOLEAN
GetMandatoryTableValidate (
VOID
);
/**
This function sets the ACPI table requirements validation flag.
@param Validate Enable/Disable ACPI table requirements validation.
**/
VOID
SetMandatoryTableValidate (
BOOLEAN Validate
);
/**
This function returns the identifier of specification to validate ACPI table
requirements against.
@return ID of specification listing mandatory tables.
**/
UINTN
GetMandatoryTableSpec (
VOID
);
/**
This function sets the identifier of specification to validate ACPI table
requirements against.
@param Spec ID of specification listing mandatory tables.
**/
VOID
SetMandatoryTableSpec (
UINTN Spec
);
/**
This function processes the table reporting options for the ACPI table.