arm-trusted-firmware/include/drivers/arm/arm_gicv3_common.h
Andre Przywara 73a643eed9 feat(gicv3): introduce GIC component identification
The GIC specification describes ID registers in each GIC register frame
(PIDRx), which can be used to identify a GIC component. The Arm Ltd. GIC
implementations use certain ID values to identify the distributor, the
redistributors and other parts like ITSes.

Introduce a function that reads those part number IDs, which are spread
over two registers. The actual numbers are only meaningful in connection
with a certain GIC model, which would need to be checked beforehand, by
the caller.

Change-Id: Ia6ff326a1e8b12664e4637bc8e2683d2b5c7721c
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2021-11-04 15:58:34 +00:00

28 lines
910 B
C

/*
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef ARM_GICV3_COMMON_H
#define ARM_GICV3_COMMON_H
/*******************************************************************************
* GIC500/GIC600 Re-distributor interface registers & constants
******************************************************************************/
/* GICR_WAKER implementation-defined bit definitions */
#define WAKER_SL_SHIFT 0
#define WAKER_QSC_SHIFT 31
#define WAKER_SL_BIT (1U << WAKER_SL_SHIFT)
#define WAKER_QSC_BIT (1U << WAKER_QSC_SHIFT)
#define IIDR_MODEL_ARM_GIC_600 U(0x0200043b)
#define IIDR_MODEL_ARM_GIC_600AE U(0x0300043b)
#define IIDR_MODEL_ARM_GIC_700 U(0x0400043b)
#define PIDR_COMPONENT_ARM_DIST U(0x492)
#define PIDR_COMPONENT_ARM_REDIST U(0x493)
#define PIDR_COMPONENT_ARM_ITS U(0x494)
#endif /* ARM_GICV3_COMMON_H */