This function returns the revision of the GIC Architecture. Some GICv3 controllers can work in GICv2 mode. Switching to an older GIC revision is driven by the higher level exception level. This function allows code to support any GIC revision at runtime. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16231 6f19259b-4bc3-4df7-8a09-765794883524
58 lines
1.5 KiB
C
58 lines
1.5 KiB
C
/*++
|
|
|
|
Copyright (c) 2013-2014, ARM Ltd. All rights reserved.<BR>
|
|
|
|
This program and the accompanying materials
|
|
are licensed and made available under the terms and conditions of the BSD License
|
|
which accompanies this distribution. The full text of the license may be found at
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
Module Name:
|
|
|
|
ArmGicDxe.c
|
|
|
|
Abstract:
|
|
|
|
Driver implementing the GIC interrupt controller protocol
|
|
|
|
--*/
|
|
|
|
#include <PiDxe.h>
|
|
|
|
#include "ArmGicDxe.h"
|
|
|
|
/**
|
|
Initialize the state information for the CPU Architectural Protocol
|
|
|
|
@param ImageHandle of the loaded driver
|
|
@param SystemTable Pointer to the System Table
|
|
|
|
@retval EFI_SUCCESS Protocol registered
|
|
@retval EFI_OUT_OF_RESOURCES Cannot allocate protocol data structure
|
|
@retval EFI_DEVICE_ERROR Hardware problems
|
|
@retval EFI_UNSUPPORTED GIC version not supported
|
|
|
|
**/
|
|
EFI_STATUS
|
|
InterruptDxeInitialize (
|
|
IN EFI_HANDLE ImageHandle,
|
|
IN EFI_SYSTEM_TABLE *SystemTable
|
|
)
|
|
{
|
|
EFI_STATUS Status;
|
|
ARM_GIC_ARCH_REVISION Revision;
|
|
|
|
Revision = ArmGicGetSupportedArchRevision ();
|
|
|
|
if (Revision == ARM_GIC_ARCH_REVISION_2) {
|
|
Status = GicV2DxeInitialize (ImageHandle, SystemTable);
|
|
} else {
|
|
Status = EFI_UNSUPPORTED;
|
|
}
|
|
|
|
return Status;
|
|
}
|