diff --git a/src/arch/tricore/inc/arch/platform.h b/src/arch/tricore/inc/arch/platform.h index ae8d78483..b4f899c1a 100644 --- a/src/arch/tricore/inc/arch/platform.h +++ b/src/arch/tricore/inc/arch/platform.h @@ -14,7 +14,7 @@ #define IR_MAX_INTERRUPTS (2048U) #define HYP_GPSR_GROUP (0) -#define IPI_CPU_MSG (GPSR_SRC_BASE) +#define IPI_CPU_MSG (GPSR_SRC_BASE + (HYP_GPSR_GROUP * 8)) // Arch-specific platform data struct plat_device { diff --git a/src/arch/tricore/vm.c b/src/arch/tricore/vm.c index 7e09262f6..18d79ea40 100644 --- a/src/arch/tricore/vm.c +++ b/src/arch/tricore/vm.c @@ -28,8 +28,8 @@ static void vm_ipi_init(struct vm* vm, const struct vm_config* vm_config) for (unsigned long int i = 0; i < vm_config->platform.arch.gpsr_num; i++) { unsigned long group = (unsigned long)vm_config->platform.arch.gpsr_groups[i]; - if (group == 0) { - ERROR("GPSR group 0 is reserved for Bao internal use.\n"); + if (group == HYP_GPSR_GROUP) { + ERROR("GPSR group %d is reserved for Bao internal use.\n", HYP_GPSR_GROUP); } // We need to clear the group 1st because it allows access to everyone by default ir_clear_gpsr_group(group);