ShellPkg/AcpiView: PCCT Parser

Bugzilla: 3047 (https://bugzilla.tianocore.org/show_bug.cgi?id=3047)

Create a new parser for the PCCT Table.

The PCCT Table is used to describe how the OSPM can
communicate with entities outside the platform. It
describes which memory spaces correspond to which
entity as well as a few of the needed information
to handle the communications.

This new PCCT parser dumps the values and names of
the table fields. It also performs some validation
on the table's fields.

Signed-off-by: Marc Moisson-Franckhauser <marc.moisson-franckhauser@arm.com>
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
This commit is contained in:
Marc Moisson-Franckhauser
2020-07-02 10:09:02 +02:00
committed by mergify[bot]
parent 856cf5abf7
commit d4633b36b9
6 changed files with 679 additions and 5 deletions

View File

@@ -0,0 +1,33 @@
/** @file
Header file for PCCT parser
Copyright (c) 2020, Arm Limited.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef PCCT_PARSER_H_
#define PCCT_PARSER_H_
/**
Minimum value for the 'length' field in subspaces of types 0, 1 and 2.
*/
#define MIN_MEMORY_RANGE_LENGTH 8
/**
Minimum value for the 'length' field in subspaces of types 3 and 4.
*/
#define MIN_EXT_PCC_SUBSPACE_MEM_RANGE_LEN 16
/**
Maximum number of PCC subspaces.
*/
#define MAX_PCC_SUBSPACES 256
/**
Parser for the header of any type of PCC subspace.
*/
#define PCC_SUBSPACE_HEADER() \
{L"Type", 1, 0, L"0x%x", NULL, (VOID**)&PccSubspaceType, NULL, NULL}, \
{L"Length", 1, 1, L"%u", NULL, (VOID**)&PccSubspaceLength, NULL, NULL}
#endif // PCCT_PARSER_H_