mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-17 18:14:24 +00:00

New SoC is a78 based with gicv3 and uart over pl011. Communication interfaces are similar to Versal NET platform. System starts with AMD PLM firmware which loads TF-A(bl31) to memory, which is already configured, and jumps to it. PLM also prepare handoff structure for TF-A with information what components were load and flags which indicate which EL level SW should be started. Change-Id: I5065b1b7ec4ee58e77dc4096747758480c84009c Signed-off-by: Amit Nagal <amit.nagal@amd.com> Signed-off-by: Akshay Belsare <akshay.belsare@amd.com> Signed-off-by: Michal Simek <michal.simek@amd.com>
73 lines
1.4 KiB
C
73 lines
1.4 KiB
C
/*
|
|
* Copyright (c) 2022, Xilinx, Inc. All rights reserved.
|
|
* Copyright (c) 2022-2024, Advanced Micro Devices, Inc. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
/*
|
|
* SoC IPI agent registers access management
|
|
*/
|
|
|
|
#include <lib/utils_def.h>
|
|
#include <plat_ipi.h>
|
|
|
|
/* versal2 ipi configuration table */
|
|
static const struct ipi_config ipi_table[IPI_ID_MAX] = {
|
|
/* A78 IPI */
|
|
[IPI_ID_APU] = {
|
|
.ipi_bit_mask = IPI0_TRIG_BIT,
|
|
.ipi_reg_base = IPI0_REG_BASE,
|
|
.secure_only = 0,
|
|
},
|
|
|
|
/* PMC IPI */
|
|
[IPI_ID_PMC] = {
|
|
.ipi_bit_mask = PMC_IPI_TRIG_BIT,
|
|
.ipi_reg_base = IPI0_REG_BASE,
|
|
.secure_only = IPI_SECURE_MASK,
|
|
},
|
|
|
|
/* RPU0 IPI */
|
|
[IPI_ID_RPU0] = {
|
|
.ipi_bit_mask = IPI1_TRIG_BIT,
|
|
.ipi_reg_base = IPI1_REG_BASE,
|
|
.secure_only = 0,
|
|
},
|
|
|
|
/* RPU1 IPI */
|
|
[IPI_ID_RPU1] = {
|
|
.ipi_bit_mask = IPI2_TRIG_BIT,
|
|
.ipi_reg_base = IPI2_REG_BASE,
|
|
.secure_only = 0,
|
|
},
|
|
|
|
/* IPI3 IPI */
|
|
[IPI_ID_3] = {
|
|
.ipi_bit_mask = IPI3_TRIG_BIT,
|
|
.ipi_reg_base = IPI3_REG_BASE,
|
|
.secure_only = 0,
|
|
},
|
|
|
|
/* IPI4 IPI */
|
|
[IPI_ID_4] = {
|
|
.ipi_bit_mask = IPI4_TRIG_BIT,
|
|
.ipi_reg_base = IPI4_REG_BASE,
|
|
.secure_only = 0,
|
|
},
|
|
|
|
/* IPI5 IPI */
|
|
[IPI_ID_5] = {
|
|
.ipi_bit_mask = IPI5_TRIG_BIT,
|
|
.ipi_reg_base = IPI5_REG_BASE,
|
|
.secure_only = 0,
|
|
},
|
|
};
|
|
|
|
/**
|
|
* soc_ipi_config_table_init() - Initialize versal2 IPI configuration data.
|
|
*/
|
|
void soc_ipi_config_table_init(void)
|
|
{
|
|
ipi_config_table_init(ipi_table, ARRAY_SIZE(ipi_table));
|
|
}
|