mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-30 07:39:24 +00:00
trusty: generic-arm64-smcall: Support gicr address
Add SMC_GET_GIC_BASE_GICR option to SMC_FC_GET_REG_BASE and SMC_FC64_GET_REG_BASE calls for returning the base address of the gic redistributor added in gic version 3. Bug: 122357256 Change-Id: Ia7c287040656515bab262588163e0c5fc8f13a21 Signed-off-by: Arve Hjønnevåg <arve@android.com>
This commit is contained in:
parent
471e8fa7d1
commit
76776c2c67
2 changed files with 13 additions and 2 deletions
|
@ -16,11 +16,18 @@
|
||||||
#ifdef GICD_BASE
|
#ifdef GICD_BASE
|
||||||
#define PLAT_ARM_GICD_BASE GICD_BASE
|
#define PLAT_ARM_GICD_BASE GICD_BASE
|
||||||
#define PLAT_ARM_GICC_BASE GICC_BASE
|
#define PLAT_ARM_GICC_BASE GICC_BASE
|
||||||
|
#ifdef GICR_BASE
|
||||||
|
#define PLAT_ARM_GICR_BASE GICR_BASE
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
#error PLAT_ARM_GICD_BASE or GICD_BASE must be defined
|
#error PLAT_ARM_GICD_BASE or GICD_BASE must be defined
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef PLAT_ARM_GICR_BASE
|
||||||
|
#define PLAT_ARM_GICR_BASE SMC_UNK
|
||||||
|
#endif
|
||||||
|
|
||||||
int trusty_disable_serial_debug;
|
int trusty_disable_serial_debug;
|
||||||
|
|
||||||
struct dputc_state {
|
struct dputc_state {
|
||||||
|
@ -57,12 +64,15 @@ static void trusty_dputc(char ch, int secure)
|
||||||
static uint64_t trusty_get_reg_base(uint32_t reg)
|
static uint64_t trusty_get_reg_base(uint32_t reg)
|
||||||
{
|
{
|
||||||
switch (reg) {
|
switch (reg) {
|
||||||
case 0:
|
case SMC_GET_GIC_BASE_GICD:
|
||||||
return PLAT_ARM_GICD_BASE;
|
return PLAT_ARM_GICD_BASE;
|
||||||
|
|
||||||
case 1:
|
case SMC_GET_GIC_BASE_GICC:
|
||||||
return PLAT_ARM_GICC_BASE;
|
return PLAT_ARM_GICC_BASE;
|
||||||
|
|
||||||
|
case SMC_GET_GIC_BASE_GICR:
|
||||||
|
return PLAT_ARM_GICR_BASE;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
NOTICE("%s(0x%x) unknown reg\n", __func__, reg);
|
NOTICE("%s(0x%x) unknown reg\n", __func__, reg);
|
||||||
return SMC_UNK;
|
return SMC_UNK;
|
||||||
|
|
|
@ -23,5 +23,6 @@
|
||||||
*/
|
*/
|
||||||
#define SMC_GET_GIC_BASE_GICD 0
|
#define SMC_GET_GIC_BASE_GICD 0
|
||||||
#define SMC_GET_GIC_BASE_GICC 1
|
#define SMC_GET_GIC_BASE_GICC 1
|
||||||
|
#define SMC_GET_GIC_BASE_GICR 2
|
||||||
#define SMC_FC_GET_REG_BASE SMC_FASTCALL_NR(SMC_ENTITY_PLATFORM_MONITOR, 0x1)
|
#define SMC_FC_GET_REG_BASE SMC_FASTCALL_NR(SMC_ENTITY_PLATFORM_MONITOR, 0x1)
|
||||||
#define SMC_FC64_GET_REG_BASE SMC_FASTCALL64_NR(SMC_ENTITY_PLATFORM_MONITOR, 0x1)
|
#define SMC_FC64_GET_REG_BASE SMC_FASTCALL64_NR(SMC_ENTITY_PLATFORM_MONITOR, 0x1)
|
||||||
|
|
Loading…
Add table
Reference in a new issue