51 return EFI_INVALID_PARAMETER;
55 if (EFI_ERROR (Status)) {
61 if ((AddressCells < 1) ||
68 Data = fdt_getprop (Fdt, GicIntcNode,
"reg", &DataSize);
69 if ((Data ==
NULL) || (DataSize < (INT32)(AddressCells *
sizeof (UINT32)))) {
75 if (AddressCells == 2) {
76 GicItsInfo->PhysicalBaseAddress = fdt64_to_cpu (*(UINT64 *)Data);
78 GicItsInfo->PhysicalBaseAddress = fdt32_to_cpu (*(UINT32 *)Data);
82 GicItsInfo->GicItsId = GicItsId;
85 GicItsInfo->ProximityDomain = 0;
128 UINT32 GicItsNodeCount;
131 if (FdtParserHandle ==
NULL) {
133 return EFI_INVALID_PARAMETER;
136 Fdt = FdtParserHandle->Fdt;
140 return EFI_INVALID_PARAMETER;
145 if (EFI_ERROR (Status)) {
150 if (GicVersion < 3) {
152 return EFI_UNSUPPORTED;
164 if (EFI_ERROR (Status)) {
169 if (GicItsNodeCount == 0) {
170 return EFI_NOT_FOUND;
173 GicItsNode = FdtBranch;
174 for (Index = 0; Index < GicItsNodeCount; Index++) {
183 if (EFI_ERROR (Status)) {
185 if (Status == EFI_NOT_FOUND) {
187 Status = EFI_ABORTED;
199 if (EFI_ERROR (Status)) {
212 if (EFI_ERROR (Status)) {
EFI_STATUS EFIAPI GetGicVersion(IN CONST VOID *Fdt, IN INT32 IntcNode, OUT UINT32 *GicVersion)
STATIC EFI_STATUS EFIAPI GicItsIntcNodeParser(IN CONST VOID *Fdt, IN INT32 GicIntcNode, IN UINT32 GicItsId, IN CM_ARM_GIC_ITS_INFO *GicItsInfo)
EFI_STATUS EFIAPI ArmGicItsInfoParser(IN CONST FDT_HW_INFO_PARSER_HANDLE FdtParserHandle, IN INT32 FdtBranch)
@ EArmObjGicItsInfo
6 - GIC ITS Info
VOID *EFIAPI ZeroMem(OUT VOID *Buffer, IN UINTN Length)
EFI_STATUS EFIAPI AddSingleCmObj(IN CONST FDT_HW_INFO_PARSER_HANDLE FdtParserHandle, IN CM_OBJECT_ID ObjectId, IN VOID *Data, IN UINT32 Size, OUT CM_OBJECT_TOKEN *Token OPTIONAL)
#define CREATE_CM_ARM_OBJECT_ID(ObjectId)
EFI_STATUS EFIAPI FdtGetNextPropNodeInBranch(IN CONST VOID *Fdt, IN INT32 FdtBranch, IN CONST CHAR8 *PropName, IN OUT INT32 *Node)
EFI_STATUS EFIAPI FdtCountPropNodeInBranch(IN CONST VOID *Fdt, IN INT32 FdtBranch, IN CONST CHAR8 *PropName, OUT UINT32 *NodeCount)
EFI_STATUS EFIAPI FdtGetParentAddressInfo(IN CONST VOID *Fdt, IN INT32 Node, OUT INT32 *AddressCells, OPTIONAL OUT INT32 *SizeCells OPTIONAL)
BOOLEAN EFIAPI FdtNodeHasProperty(IN CONST VOID *Fdt, IN INT32 Node, IN CONST VOID *PropertyName)