TianoCore EDK2 master
Loading...
Searching...
No Matches
ArmSratGenerator.c File Reference

Go to the source code of this file.

Data Structures

struct  SratSubTable
 

Typedefs

typedef enum ArmSratSubTableType EARM_SRAT_SUB_TABLE_TYPE
 
typedef struct SratSubTable SRAT_SUB_TABLE
 

Enumerations

enum  ArmSratSubTableType { EArmGicCSubTableType , EArmGicItsSubTableType , EArmSubTableTypeMax }
 

Functions

 GET_OBJECT_LIST (EObjNameSpaceArm, EArmObjGicCInfo, CM_ARM_GICC_INFO)
 
 GET_OBJECT_LIST (EObjNameSpaceArm, EArmObjGicItsInfo, CM_ARM_GIC_ITS_INFO)
 
EFI_STATUS EFIAPI ArchReserveOffsets (IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN OUT UINT32 *ArchOffset)
 
STATIC VOID EFIAPI AddGICCAffinity (IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER *CONST Srat)
 
STATIC VOID EFIAPI AddGICItsAffinity (IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER *CONST Srat)
 
EFI_STATUS EFIAPI AddArchObjects (IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER *CONST Srat)
 

Variables

STATIC SRAT_SUB_TABLE mSratSubTable [EArmSubTableTypeMax]
 

Detailed Description

Arm SRAT Table Generator

Copyright (c) 2019 - 2020, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent

Reference(s):
  • ACPI 6.3 Specification, January 2019
Glossary:
  • Cm or CM - Configuration Manager
  • Obj or OBJ - Object

Definition in file ArmSratGenerator.c.

Typedef Documentation

◆ EARM_SRAT_SUB_TABLE_TYPE

Enum of the Arm specific CM objects required to build the arch specific information of the SRAT table.

Enumeration Type Documentation

◆ ArmSratSubTableType

Enum of the Arm specific CM objects required to build the arch specific information of the SRAT table.

Definition at line 61 of file ArmSratGenerator.c.

Function Documentation

◆ AddArchObjects()

Add the arch specific sub-tables to the SRAT table.

These sub-tables are written in the space reserved beforehand.

Parameters
[in]CfgMgrProtocolPointer to the Configuration Manager Protocol Interface.
[in]SratPointer to the SRAT Table.
Return values
EFI_SUCCESSTable generated successfully.

Definition at line 247 of file ArmSratGenerator.c.

◆ AddGICCAffinity()

Add the GICC Affinity Structures in the SRAT Table.

Parameters
[in]CfgMgrProtocolPointer to the Configuration Manager Protocol Interface.
[in]SratPointer to the SRAT Table.

Definition at line 170 of file ArmSratGenerator.c.

◆ AddGICItsAffinity()

Add the GIC ITS Affinity Structures in the SRAT Table.

Parameters
[in]CfgMgrProtocolPointer to the Configuration Manager Protocol Interface.
[in]SratPointer to the SRAT Table.

Definition at line 207 of file ArmSratGenerator.c.

◆ ArchReserveOffsets()

EFI_STATUS EFIAPI ArchReserveOffsets ( IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST  CfgMgrProtocol,
IN OUT UINT32 *  ArchOffset 
)

Reserve arch sub-tables space.

Parameters
[in]CfgMgrProtocolPointer to the Configuration Manager
[in,out]ArchOffsetOn input, contains the offset where arch specific sub-tables can be written. It is expected that there enough space to write all the arch specific sub-tables from this offset onward. On ouput, contains the ending offset of the arch specific sub-tables.
Return values
EFI_SUCCESSTable generated successfully.
EFI_INVALID_PARAMETERA parameter is invalid.
EFI_NOT_FOUNDThe required object information is not found.
EFI_BAD_BUFFER_SIZEThe size returned by the Configuration Manager is less than the Object size for the requested object.

Definition at line 99 of file ArmSratGenerator.c.

◆ GET_OBJECT_LIST() [1/2]

GET_OBJECT_LIST ( EObjNameSpaceArm  ,
EArmObjGicCInfo  ,
CM_ARM_GICC_INFO   
)

ARM standard SRAT Generator

Requirements: The following Configuration Manager Object(s) are used by this Generator:

  • EArmObjGicCInfo (REQUIRED)
  • EArmObjGicItsInfo (OPTIONAL) This macro expands to a function that retrieves the GIC CPU interface Information from the Configuration Manager.

◆ GET_OBJECT_LIST() [2/2]

GET_OBJECT_LIST ( EObjNameSpaceArm  ,
EArmObjGicItsInfo  ,
CM_ARM_GIC_ITS_INFO   
)

This macro expands to a function that retrieves the GIC Interrupt Translation Service Information from the Configuration Manager.

Variable Documentation

◆ mSratSubTable

STATIC SRAT_SUB_TABLE mSratSubTable[EArmSubTableTypeMax]

Definition at line 78 of file ArmSratGenerator.c.