TianoCore EDK2 master
|
#include <Library/BaseMemoryLib.h>
#include "FdtHwInfoParser.h"
#include "CmObjectDescUtility.h"
#include "Arm/GenericTimer/ArmGenericTimerParser.h"
#include "Arm/Gic/ArmGicDispatcher.h"
Go to the source code of this file.
Functions | |
STATIC EFI_STATUS EFIAPI | TimerNodeParser (IN CONST VOID *Fdt, IN INT32 TimerNode, IN CM_ARM_GENERIC_TIMER_INFO *GenericTimerInfo) |
EFI_STATUS EFIAPI | ArmGenericTimerInfoParser (IN CONST FDT_HW_INFO_PARSER_HANDLE FdtParserHandle, IN INT32 FdtBranch) |
Variables | |
STATIC CONST COMPATIBILITY_STR | TimerCompatibleStr [] |
STATIC CONST COMPATIBILITY_INFO | TimerCompatibleInfo |
Arm generic timer parser.
Copyright (c) 2021, ARM Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file ArmGenericTimerParser.c.
EFI_STATUS EFIAPI ArmGenericTimerInfoParser | ( | IN CONST FDT_HW_INFO_PARSER_HANDLE | FdtParserHandle, |
IN INT32 | FdtBranch | ||
) |
CM_ARM_GENERIC_TIMER_INFO parser function.
The following structure is populated: typedef struct CmArmGenericTimerInfo { UINT64 CounterControlBaseAddress; // {default} UINT64 CounterReadBaseAddress; // {default} UINT32 SecurePL1TimerGSIV; // {Populated} UINT32 SecurePL1TimerFlags; // {Populated} UINT32 NonSecurePL1TimerGSIV; // {Populated} UINT32 NonSecurePL1TimerFlags; // {Populated} UINT32 VirtualTimerGSIV; // {Populated} UINT32 VirtualTimerFlags; // {Populated} UINT32 NonSecurePL2TimerGSIV; // {Populated} UINT32 NonSecurePL2TimerFlags; // {Populated} UINT32 VirtualPL2TimerGSIV; // {default} UINT32 VirtualPL2TimerFlags; // {default} } CM_ARM_GENERIC_TIMER_INFO;
A parser parses a Device Tree to populate a specific CmObj type. None, one or many CmObj can be created by the parser. The created CmObj are then handed to the parser's caller through the HW_INFO_ADD_OBJECT interface. This can also be a dispatcher. I.e. a function that not parsing a Device Tree but calling other parsers.
[in] | FdtParserHandle | A handle to the parser instance. |
[in] | FdtBranch | When searching for DT node name, restrict the search to this Device Tree branch. |
EFI_SUCCESS | The function completed successfully. |
EFI_ABORTED | An error occurred. |
EFI_INVALID_PARAMETER | Invalid parameter. |
EFI_NOT_FOUND | Not found. |
EFI_UNSUPPORTED | Unsupported. |
Definition at line 184 of file ArmGenericTimerParser.c.
STATIC EFI_STATUS EFIAPI TimerNodeParser | ( | IN CONST VOID * | Fdt, |
IN INT32 | TimerNode, | ||
IN CM_ARM_GENERIC_TIMER_INFO * | GenericTimerInfo | ||
) |
Parse a timer node.
[in] | Fdt | Pointer to a Flattened Device Tree (Fdt). |
[in] | TimerNode | Offset of a timer node. |
[in] | GenericTimerInfo | The CM_ARM_BOOT_ARCH_INFO to populate. |
EFI_SUCCESS | The function completed successfully. |
EFI_ABORTED | An error occurred. |
EFI_INVALID_PARAMETER | Invalid parameter. |
Definition at line 46 of file ArmGenericTimerParser.c.
STATIC CONST COMPATIBILITY_INFO TimerCompatibleInfo |
Timer compatiblity information.
Definition at line 28 of file ArmGenericTimerParser.c.
STATIC CONST COMPATIBILITY_STR TimerCompatibleStr[] |
List of "compatible" property values for timer nodes.
Other "compatible" values are not supported by this module.
Definition at line 21 of file ArmGenericTimerParser.c.