Merge "plat: marvell: armada: a3k: improve 4GB DRAM usage from 3.375 GB to 3.75 GB" into integration
diff --git a/plat/arm/board/rddanielxlr/fdts/rddanielxlr_fw_config.dts b/plat/arm/board/rddanielxlr/fdts/rddanielxlr_fw_config.dts
deleted file mode 100644
index 9c9cefe..0000000
--- a/plat/arm/board/rddanielxlr/fdts/rddanielxlr_fw_config.dts
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2020, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <common/tbbr/tbbr_img_def.h>
-
-/dts-v1/;
-
-/ {
- dtb-registry {
- compatible = "fconf,dyn_cfg-dtb_registry";
-
- tb_fw-config {
- load-address = <0x0 0x4001300>;
- max-size = <0x200>;
- id = <TB_FW_CONFIG_ID>;
- };
-
- nt_fw-config {
- load-address = <0x0 0xFEF00000>;
- max-size = <0x0100000>;
- id = <NT_FW_CONFIG_ID>;
- };
- };
-};
diff --git a/plat/arm/board/rddanielxlr/fdts/rddanielxlr_nt_fw_config.dts b/plat/arm/board/rddanielxlr/fdts/rddanielxlr_nt_fw_config.dts
deleted file mode 100644
index 42d07a4..0000000
--- a/plat/arm/board/rddanielxlr/fdts/rddanielxlr_nt_fw_config.dts
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (c) 2020, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-/dts-v1/;
-/ {
- /* compatible string */
- compatible = "arm,rd-daniel-xlr";
-
- /*
- * Place holder for system-id node with default values. The
- * value of platform-id and config-id will be set to the
- * correct values during the BL2 stage of boot.
- */
- system-id {
- platform-id = <0x0>;
- config-id = <0x0>;
- multi-chip-mode = <0x0>;
- };
-};
diff --git a/plat/arm/board/rddanielxlr/fdts/rddanielxlr_tb_fw_config.dts b/plat/arm/board/rddanielxlr/fdts/rddanielxlr_tb_fw_config.dts
deleted file mode 100644
index 49eda27..0000000
--- a/plat/arm/board/rddanielxlr/fdts/rddanielxlr_tb_fw_config.dts
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2020, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-/dts-v1/;
-
-/ {
- tb_fw-config {
- compatible = "arm,tb_fw";
-
- /* Disable authentication for development */
- disable_auth = <0x0>;
-
- /*
- * The following two entries are placeholders for Mbed TLS
- * heap information. The default values don't matter since
- * they will be overwritten by BL1.
- * In case of having shared Mbed TLS heap between BL1 and BL2,
- * BL1 will populate these two properties with the respective
- * info about the shared heap. This info will be available for
- * BL2 in order to locate and re-use the heap.
- */
- mbedtls_heap_addr = <0x0 0x0>;
- mbedtls_heap_size = <0x0>;
- };
-};
diff --git a/plat/arm/board/rddanielxlr/rddanielxlr_trusted_boot.c b/plat/arm/board/rddanielxlr/rddanielxlr_trusted_boot.c
deleted file mode 100644
index 4592b8f..0000000
--- a/plat/arm/board/rddanielxlr/rddanielxlr_trusted_boot.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (c) 2020, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <plat/arm/common/plat_arm.h>
-
-/*
- * Return the ROTPK hash in the following ASN.1 structure in DER format:
- *
- * AlgorithmIdentifier ::= SEQUENCE {
- * algorithm OBJECT IDENTIFIER,
- * parameters ANY DEFINED BY algorithm OPTIONAL
- * }
- *
- * DigestInfo ::= SEQUENCE {
- * digestAlgorithm AlgorithmIdentifier,
- * digest OCTET STRING
- * }
- */
-int plat_get_rotpk_info(void *cookie, void **key_ptr, unsigned int *key_len,
- unsigned int *flags)
-{
- return arm_get_rotpk_info(cookie, key_ptr, key_len, flags);
-}
diff --git a/plat/arm/board/rddaniel/fdts/rddaniel_fw_config.dts b/plat/arm/board/rdv1/fdts/rdv1_fw_config.dts
similarity index 100%
rename from plat/arm/board/rddaniel/fdts/rddaniel_fw_config.dts
rename to plat/arm/board/rdv1/fdts/rdv1_fw_config.dts
diff --git a/plat/arm/board/rddaniel/fdts/rddaniel_nt_fw_config.dts b/plat/arm/board/rdv1/fdts/rdv1_nt_fw_config.dts
similarity index 92%
rename from plat/arm/board/rddaniel/fdts/rddaniel_nt_fw_config.dts
rename to plat/arm/board/rdv1/fdts/rdv1_nt_fw_config.dts
index 4d4580d..62ba2c3 100644
--- a/plat/arm/board/rddaniel/fdts/rddaniel_nt_fw_config.dts
+++ b/plat/arm/board/rdv1/fdts/rdv1_nt_fw_config.dts
@@ -7,7 +7,7 @@
/dts-v1/;
/ {
/* compatible string */
- compatible = "arm,rd-daniel";
+ compatible = "arm,rd-v1";
/*
* Place holder for system-id node with default values. The
diff --git a/plat/arm/board/rddaniel/fdts/rddaniel_tb_fw_config.dts b/plat/arm/board/rdv1/fdts/rdv1_tb_fw_config.dts
similarity index 100%
rename from plat/arm/board/rddaniel/fdts/rddaniel_tb_fw_config.dts
rename to plat/arm/board/rdv1/fdts/rdv1_tb_fw_config.dts
diff --git a/plat/arm/board/rddaniel/include/platform_def.h b/plat/arm/board/rdv1/include/platform_def.h
similarity index 100%
rename from plat/arm/board/rddaniel/include/platform_def.h
rename to plat/arm/board/rdv1/include/platform_def.h
diff --git a/plat/arm/board/rddaniel/platform.mk b/plat/arm/board/rdv1/platform.mk
similarity index 66%
rename from plat/arm/board/rddaniel/platform.mk
rename to plat/arm/board/rdv1/platform.mk
index 6553ae2..5033b18 100644
--- a/plat/arm/board/rddaniel/platform.mk
+++ b/plat/arm/board/rdv1/platform.mk
@@ -3,45 +3,45 @@
# SPDX-License-Identifier: BSD-3-Clause
#
-# RD-Daniel platform uses GIC-Clayton which is based on GICv4.1
+# RD-V1 platform uses GIC-Clayton which is based on GICv4.1
GIC_ENABLE_V4_EXTN := 1
include plat/arm/css/sgi/sgi-common.mk
-RDDANIEL_BASE = plat/arm/board/rddaniel
+RDV1_BASE = plat/arm/board/rdv1
-PLAT_INCLUDES += -I${RDDANIEL_BASE}/include/
+PLAT_INCLUDES += -I${RDV1_BASE}/include/
SGI_CPU_SOURCES := lib/cpus/aarch64/neoverse_v1.S
PLAT_BL_COMMON_SOURCES += ${CSS_ENT_BASE}/sgi_plat.c
BL1_SOURCES += ${SGI_CPU_SOURCES} \
- ${RDDANIEL_BASE}/rddaniel_err.c
+ ${RDV1_BASE}/rdv1_err.c
-BL2_SOURCES += ${RDDANIEL_BASE}/rddaniel_plat.c \
- ${RDDANIEL_BASE}/rddaniel_security.c \
- ${RDDANIEL_BASE}/rddaniel_err.c \
+BL2_SOURCES += ${RDV1_BASE}/rdv1_plat.c \
+ ${RDV1_BASE}/rdv1_security.c \
+ ${RDV1_BASE}/rdv1_err.c \
lib/utils/mem_region.c \
drivers/arm/tzc/tzc400.c \
plat/arm/common/arm_tzc400.c \
plat/arm/common/arm_nor_psci_mem_protect.c
BL31_SOURCES += ${SGI_CPU_SOURCES} \
- ${RDDANIEL_BASE}/rddaniel_plat.c \
- ${RDDANIEL_BASE}/rddaniel_topology.c \
+ ${RDV1_BASE}/rdv1_plat.c \
+ ${RDV1_BASE}/rdv1_topology.c \
drivers/cfi/v2m/v2m_flash.c \
lib/utils/mem_region.c \
plat/arm/common/arm_nor_psci_mem_protect.c
ifeq (${TRUSTED_BOARD_BOOT}, 1)
-BL1_SOURCES += ${RDDANIEL_BASE}/rddaniel_trusted_boot.c
-BL2_SOURCES += ${RDDANIEL_BASE}/rddaniel_trusted_boot.c
+BL1_SOURCES += ${RDV1_BASE}/rdv1_trusted_boot.c
+BL2_SOURCES += ${RDV1_BASE}/rdv1_trusted_boot.c
endif
# Add the FDT_SOURCES and options for Dynamic Config
-FDT_SOURCES += ${RDDANIEL_BASE}/fdts/${PLAT}_fw_config.dts \
- ${RDDANIEL_BASE}/fdts/${PLAT}_tb_fw_config.dts
+FDT_SOURCES += ${RDV1_BASE}/fdts/${PLAT}_fw_config.dts \
+ ${RDV1_BASE}/fdts/${PLAT}_tb_fw_config.dts
FW_CONFIG := ${BUILD_PLAT}/fdts/${PLAT}_fw_config.dtb
TB_FW_CONFIG := ${BUILD_PLAT}/fdts/${PLAT}_tb_fw_config.dtb
@@ -50,7 +50,7 @@
# Add the TB_FW_CONFIG to FIP and specify the same to certtool
$(eval $(call TOOL_ADD_PAYLOAD,${TB_FW_CONFIG},--tb-fw-config,${TB_FW_CONFIG}))
-FDT_SOURCES += ${RDDANIEL_BASE}/fdts/${PLAT}_nt_fw_config.dts
+FDT_SOURCES += ${RDV1_BASE}/fdts/${PLAT}_nt_fw_config.dts
NT_FW_CONFIG := ${BUILD_PLAT}/fdts/${PLAT}_nt_fw_config.dtb
# Add the NT_FW_CONFIG to FIP and specify the same to certtool
diff --git a/plat/arm/board/rddaniel/rddaniel_err.c b/plat/arm/board/rdv1/rdv1_err.c
similarity index 89%
rename from plat/arm/board/rddaniel/rddaniel_err.c
rename to plat/arm/board/rdv1/rdv1_err.c
index 5e10942..68f9a3e 100644
--- a/plat/arm/board/rddaniel/rddaniel_err.c
+++ b/plat/arm/board/rdv1/rdv1_err.c
@@ -7,7 +7,7 @@
#include <plat/arm/common/plat_arm.h>
/*
- * rddaniel error handler
+ * rdv1 error handler
*/
void __dead2 plat_arm_error_handler(int err)
{
diff --git a/plat/arm/board/rddaniel/rddaniel_plat.c b/plat/arm/board/rdv1/rdv1_plat.c
similarity index 100%
rename from plat/arm/board/rddaniel/rddaniel_plat.c
rename to plat/arm/board/rdv1/rdv1_plat.c
diff --git a/plat/arm/board/rddaniel/rddaniel_security.c b/plat/arm/board/rdv1/rdv1_security.c
similarity index 100%
rename from plat/arm/board/rddaniel/rddaniel_security.c
rename to plat/arm/board/rdv1/rdv1_security.c
diff --git a/plat/arm/board/rddaniel/rddaniel_topology.c b/plat/arm/board/rdv1/rdv1_topology.c
similarity index 96%
rename from plat/arm/board/rddaniel/rddaniel_topology.c
rename to plat/arm/board/rdv1/rdv1_topology.c
index 55f5e04..ab64fd8 100644
--- a/plat/arm/board/rddaniel/rddaniel_topology.c
+++ b/plat/arm/board/rdv1/rdv1_topology.c
@@ -10,7 +10,7 @@
/******************************************************************************
* The power domain tree descriptor.
******************************************************************************/
-const unsigned char rd_daniel_pd_tree_desc[] = {
+const unsigned char rd_v1_pd_tree_desc[] = {
PLAT_ARM_CLUSTER_COUNT,
CSS_SGI_MAX_CPUS_PER_CLUSTER,
CSS_SGI_MAX_CPUS_PER_CLUSTER,
@@ -35,7 +35,7 @@
******************************************************************************/
const unsigned char *plat_get_power_domain_tree_desc(void)
{
- return rd_daniel_pd_tree_desc;
+ return rd_v1_pd_tree_desc;
}
/*******************************************************************************
diff --git a/plat/arm/board/rddaniel/rddaniel_trusted_boot.c b/plat/arm/board/rdv1/rdv1_trusted_boot.c
similarity index 100%
rename from plat/arm/board/rddaniel/rddaniel_trusted_boot.c
rename to plat/arm/board/rdv1/rdv1_trusted_boot.c
diff --git a/plat/arm/board/rddaniel/fdts/rddaniel_fw_config.dts b/plat/arm/board/rdv1mc/fdts/rdv1mc_fw_config.dts
similarity index 100%
copy from plat/arm/board/rddaniel/fdts/rddaniel_fw_config.dts
copy to plat/arm/board/rdv1mc/fdts/rdv1mc_fw_config.dts
diff --git a/plat/arm/board/rddaniel/fdts/rddaniel_nt_fw_config.dts b/plat/arm/board/rdv1mc/fdts/rdv1mc_nt_fw_config.dts
similarity index 92%
copy from plat/arm/board/rddaniel/fdts/rddaniel_nt_fw_config.dts
copy to plat/arm/board/rdv1mc/fdts/rdv1mc_nt_fw_config.dts
index 4d4580d..71c7db3 100644
--- a/plat/arm/board/rddaniel/fdts/rddaniel_nt_fw_config.dts
+++ b/plat/arm/board/rdv1mc/fdts/rdv1mc_nt_fw_config.dts
@@ -7,7 +7,7 @@
/dts-v1/;
/ {
/* compatible string */
- compatible = "arm,rd-daniel";
+ compatible = "arm,rd-v1-mc";
/*
* Place holder for system-id node with default values. The
diff --git a/plat/arm/board/rddaniel/fdts/rddaniel_tb_fw_config.dts b/plat/arm/board/rdv1mc/fdts/rdv1mc_tb_fw_config.dts
similarity index 100%
copy from plat/arm/board/rddaniel/fdts/rddaniel_tb_fw_config.dts
copy to plat/arm/board/rdv1mc/fdts/rdv1mc_tb_fw_config.dts
diff --git a/plat/arm/board/rddanielxlr/include/platform_def.h b/plat/arm/board/rdv1mc/include/platform_def.h
similarity index 100%
rename from plat/arm/board/rddanielxlr/include/platform_def.h
rename to plat/arm/board/rdv1mc/include/platform_def.h
diff --git a/plat/arm/board/rddanielxlr/platform.mk b/plat/arm/board/rdv1mc/platform.mk
similarity index 68%
rename from plat/arm/board/rddanielxlr/platform.mk
rename to plat/arm/board/rdv1mc/platform.mk
index 2f41e2e..5072841 100644
--- a/plat/arm/board/rddanielxlr/platform.mk
+++ b/plat/arm/board/rdv1mc/platform.mk
@@ -9,42 +9,42 @@
include plat/arm/css/sgi/sgi-common.mk
-RDDANIELXLR_BASE = plat/arm/board/rddanielxlr
+RDV1MC_BASE = plat/arm/board/rdv1mc
-PLAT_INCLUDES += -I${RDDANIELXLR_BASE}/include/
+PLAT_INCLUDES += -I${RDV1MC_BASE}/include/
SGI_CPU_SOURCES := lib/cpus/aarch64/neoverse_v1.S
PLAT_BL_COMMON_SOURCES += ${CSS_ENT_BASE}/sgi_plat.c
BL1_SOURCES += ${SGI_CPU_SOURCES} \
- ${RDDANIELXLR_BASE}/rddanielxlr_err.c
+ ${RDV1MC_BASE}/rdv1mc_err.c
-BL2_SOURCES += ${RDDANIELXLR_BASE}/rddanielxlr_plat.c \
- ${RDDANIELXLR_BASE}/rddanielxlr_security.c \
- ${RDDANIELXLR_BASE}/rddanielxlr_err.c \
+BL2_SOURCES += ${RDV1MC_BASE}/rdv1mc_plat.c \
+ ${RDV1MC_BASE}/rdv1mc_security.c \
+ ${RDV1MC_BASE}/rdv1mc_err.c \
lib/utils/mem_region.c \
plat/arm/common/arm_nor_psci_mem_protect.c
BL31_SOURCES += ${SGI_CPU_SOURCES} \
- ${RDDANIELXLR_BASE}/rddanielxlr_plat.c \
- ${RDDANIELXLR_BASE}/rddanielxlr_topology.c \
+ ${RDV1MC_BASE}/rdv1mc_plat.c \
+ ${RDV1MC_BASE}/rdv1mc_topology.c \
drivers/cfi/v2m/v2m_flash.c \
drivers/arm/gic/v3/gic600_multichip.c \
lib/utils/mem_region.c \
plat/arm/common/arm_nor_psci_mem_protect.c
ifeq (${TRUSTED_BOARD_BOOT}, 1)
-BL1_SOURCES += ${RDDANIELXLR_BASE}/rddanielxlr_trusted_boot.c
-BL2_SOURCES += ${RDDANIELXLR_BASE}/rddanielxlr_trusted_boot.c
+BL1_SOURCES += ${RDV1MC_BASE}/rdv1mc_trusted_boot.c
+BL2_SOURCES += ${RDV1MC_BASE}/rdv1mc_trusted_boot.c
endif
# Enable dynamic addition of MMAP regions in BL31
BL31_CFLAGS += -DPLAT_XLAT_TABLES_DYNAMIC
# Add the FDT_SOURCES and options for Dynamic Config
-FDT_SOURCES += ${RDDANIELXLR_BASE}/fdts/${PLAT}_fw_config.dts \
- ${RDDANIELXLR_BASE}/fdts/${PLAT}_tb_fw_config.dts
+FDT_SOURCES += ${RDV1MC_BASE}/fdts/${PLAT}_fw_config.dts \
+ ${RDV1MC_BASE}/fdts/${PLAT}_tb_fw_config.dts
FW_CONFIG := ${BUILD_PLAT}/fdts/${PLAT}_fw_config.dtb
TB_FW_CONFIG := ${BUILD_PLAT}/fdts/${PLAT}_tb_fw_config.dtb
@@ -55,11 +55,11 @@
$(eval $(call CREATE_SEQ,SEQ,4))
ifneq ($(CSS_SGI_CHIP_COUNT),$(filter $(CSS_SGI_CHIP_COUNT),$(SEQ)))
- $(error "Chip count for RD-Daniel Config-XLR should be either $(SEQ) \
+ $(error "Chip count for RD-V1-MC should be either $(SEQ) \
currently it is set to ${CSS_SGI_CHIP_COUNT}.")
endif
-FDT_SOURCES += ${RDDANIELXLR_BASE}/fdts/${PLAT}_nt_fw_config.dts
+FDT_SOURCES += ${RDV1MC_BASE}/fdts/${PLAT}_nt_fw_config.dts
NT_FW_CONFIG := ${BUILD_PLAT}/fdts/${PLAT}_nt_fw_config.dtb
# Add the NT_FW_CONFIG to FIP and specify the same to certtool
diff --git a/plat/arm/board/rddanielxlr/rddanielxlr_err.c b/plat/arm/board/rdv1mc/rdv1mc_err.c
similarity index 88%
rename from plat/arm/board/rddanielxlr/rddanielxlr_err.c
rename to plat/arm/board/rdv1mc/rdv1mc_err.c
index bff57cd..755a503 100644
--- a/plat/arm/board/rddanielxlr/rddanielxlr_err.c
+++ b/plat/arm/board/rdv1mc/rdv1mc_err.c
@@ -7,7 +7,7 @@
#include <plat/arm/common/plat_arm.h>
/*
- * rddanielxlr error handler
+ * rdv1mc error handler
*/
void __dead2 plat_arm_error_handler(int err)
{
diff --git a/plat/arm/board/rddanielxlr/rddanielxlr_plat.c b/plat/arm/board/rdv1mc/rdv1mc_plat.c
similarity index 83%
rename from plat/arm/board/rddanielxlr/rddanielxlr_plat.c
rename to plat/arm/board/rdv1mc/rdv1mc_plat.c
index a1a4876..d859400 100644
--- a/plat/arm/board/rddanielxlr/rddanielxlr_plat.c
+++ b/plat/arm/board/rdv1mc/rdv1mc_plat.c
@@ -12,7 +12,7 @@
#include <sgi_plat.h>
#if defined(IMAGE_BL31)
-static const mmap_region_t rddanielxlr_dynamic_mmap[] = {
+static const mmap_region_t rdv1mc_dynamic_mmap[] = {
ARM_MAP_SHARED_RAM_REMOTE_CHIP(1),
CSS_SGI_MAP_DEVICE_REMOTE_CHIP(1),
SOC_CSS_MAP_DEVICE_REMOTE_CHIP(1),
@@ -28,7 +28,7 @@
#endif
};
-static struct gic600_multichip_data rddanielxlr_multichip_data __init = {
+static struct gic600_multichip_data rdv1mc_multichip_data __init = {
.rt_owner_base = PLAT_ARM_GICD_BASE,
.rt_owner = 0,
.chip_count = CSS_SGI_CHIP_COUNT,
@@ -54,7 +54,7 @@
}
};
-static uintptr_t rddanielxlr_multichip_gicr_frames[] = {
+static uintptr_t rdv1mc_multichip_gicr_frames[] = {
/* Chip 0's GICR Base */
PLAT_ARM_GICR_BASE,
/* Chip 1's GICR BASE */
@@ -106,14 +106,14 @@
panic();
} else if ((plat_arm_sgi_get_multi_chip_mode() == 1) &&
(CSS_SGI_CHIP_COUNT > 1)) {
- INFO("Enabling support for multi-chip in RD-Daniel Cfg-XLR\n");
+ INFO("Enabling support for multi-chip in RD-V1-MC\n");
- for (i = 0; i < ARRAY_SIZE(rddanielxlr_dynamic_mmap); i++) {
+ for (i = 0; i < ARRAY_SIZE(rdv1mc_dynamic_mmap); i++) {
ret = mmap_add_dynamic_region(
- rddanielxlr_dynamic_mmap[i].base_pa,
- rddanielxlr_dynamic_mmap[i].base_va,
- rddanielxlr_dynamic_mmap[i].size,
- rddanielxlr_dynamic_mmap[i].attr);
+ rdv1mc_dynamic_mmap[i].base_pa,
+ rdv1mc_dynamic_mmap[i].base_va,
+ rdv1mc_dynamic_mmap[i].size,
+ rdv1mc_dynamic_mmap[i].attr);
if (ret != 0) {
ERROR("Failed to add dynamic mmap entry "
"(ret=%d)\n", ret);
@@ -122,8 +122,8 @@
}
plat_arm_override_gicr_frames(
- rddanielxlr_multichip_gicr_frames);
- gic600_multichip_init(&rddanielxlr_multichip_data);
+ rdv1mc_multichip_gicr_frames);
+ gic600_multichip_init(&rdv1mc_multichip_data);
}
sgi_bl31_common_platform_setup();
diff --git a/plat/arm/board/rddanielxlr/rddanielxlr_security.c b/plat/arm/board/rdv1mc/rdv1mc_security.c
similarity index 100%
rename from plat/arm/board/rddanielxlr/rddanielxlr_security.c
rename to plat/arm/board/rdv1mc/rdv1mc_security.c
diff --git a/plat/arm/board/rddanielxlr/rddanielxlr_topology.c b/plat/arm/board/rdv1mc/rdv1mc_topology.c
similarity index 95%
rename from plat/arm/board/rddanielxlr/rddanielxlr_topology.c
rename to plat/arm/board/rdv1mc/rdv1mc_topology.c
index 610e667..4486e5c 100644
--- a/plat/arm/board/rddanielxlr/rddanielxlr_topology.c
+++ b/plat/arm/board/rdv1mc/rdv1mc_topology.c
@@ -12,7 +12,7 @@
/******************************************************************************
* The power domain tree descriptor.
******************************************************************************/
-const unsigned char rd_daniel_xlr_pd_tree_desc_multi_chip[] = {
+const unsigned char rd_v1_mc_pd_tree_desc_multi_chip[] = {
((PLAT_ARM_CLUSTER_COUNT) * (CSS_SGI_CHIP_COUNT)),
CSS_SGI_MAX_CPUS_PER_CLUSTER,
CSS_SGI_MAX_CPUS_PER_CLUSTER,
@@ -44,7 +44,7 @@
const unsigned char *plat_get_power_domain_tree_desc(void)
{
if (plat_arm_sgi_get_multi_chip_mode() == 1)
- return rd_daniel_xlr_pd_tree_desc_multi_chip;
+ return rd_v1_mc_pd_tree_desc_multi_chip;
panic();
}
diff --git a/plat/arm/board/rddaniel/rddaniel_trusted_boot.c b/plat/arm/board/rdv1mc/rdv1mc_trusted_boot.c
similarity index 100%
copy from plat/arm/board/rddaniel/rddaniel_trusted_boot.c
copy to plat/arm/board/rdv1mc/rdv1mc_trusted_boot.c
diff --git a/plat/arm/css/sgi/include/sgi_variant.h b/plat/arm/css/sgi/include/sgi_variant.h
index eb12f3f..ecf6d93 100644
--- a/plat/arm/css/sgi/include/sgi_variant.h
+++ b/plat/arm/css/sgi/include/sgi_variant.h
@@ -14,8 +14,8 @@
#define RD_N1E1_EDGE_SID_VER_PART_NUM 0x0786
#define RD_E1_EDGE_CONFIG_ID 0x2
-/* SID Version values for RD-Daniel */
-#define RD_DANIEL_SID_VER_PART_NUM 0x078a
+/* SID Version values for RD-V1 */
+#define RD_V1_SID_VER_PART_NUM 0x078a
/* SID Version values for RD-N2 */
#define RD_N2_SID_VER_PART_NUM 0x07B7
diff --git a/plat/arm/css/sgi/sgi_bl31_setup.c b/plat/arm/css/sgi/sgi_bl31_setup.c
index d5c7593..89e2cab 100644
--- a/plat/arm/css/sgi/sgi_bl31_setup.c
+++ b/plat/arm/css/sgi/sgi_bl31_setup.c
@@ -74,7 +74,7 @@
scmi_channel_plat_info_t *plat_css_get_scmi_info(int channel_id)
{
if (sgi_plat_info.platform_id == RD_N1E1_EDGE_SID_VER_PART_NUM ||
- sgi_plat_info.platform_id == RD_DANIEL_SID_VER_PART_NUM ||
+ sgi_plat_info.platform_id == RD_V1_SID_VER_PART_NUM ||
sgi_plat_info.platform_id == RD_N2_SID_VER_PART_NUM) {
if (channel_id >= ARRAY_SIZE(rd_n1e1_edge_scmi_plat_info))
panic();
@@ -108,12 +108,12 @@
const plat_psci_ops_t *plat_arm_psci_override_pm_ops(plat_psci_ops_t *ops)
{
/*
- * For RD-E1-Edge and RD-Daniel platforms, only CPU power ON/OFF
+ * For RD-E1-Edge and RD-V1 platforms, only CPU power ON/OFF
* PSCI platform callbacks are supported.
*/
if (((sgi_plat_info.platform_id == RD_N1E1_EDGE_SID_VER_PART_NUM) &&
(sgi_plat_info.config_id == RD_E1_EDGE_CONFIG_ID)) ||
- (sgi_plat_info.platform_id == RD_DANIEL_SID_VER_PART_NUM)) {
+ (sgi_plat_info.platform_id == RD_V1_SID_VER_PART_NUM)) {
ops->cpu_standby = NULL;
ops->system_off = NULL;
ops->system_reset = NULL;
diff --git a/plat/xilinx/versal/bl31_versal_setup.c b/plat/xilinx/versal/bl31_versal_setup.c
index 27991d3..5e870ff 100644
--- a/plat/xilinx/versal/bl31_versal_setup.c
+++ b/plat/xilinx/versal/bl31_versal_setup.c
@@ -34,8 +34,9 @@
{
assert(sec_state_is_valid(type));
- if (type == NON_SECURE)
+ if (type == NON_SECURE) {
return &bl33_image_ep_info;
+ }
return &bl32_image_ep_info;
}
@@ -68,8 +69,9 @@
VERSAL_UART_CLOCK,
VERSAL_UART_BAUDRATE,
&versal_runtime_console);
- if (rc == 0)
+ if (rc == 0) {
panic();
+ }
console_set_scope(&versal_runtime_console, CONSOLE_FLAG_BOOT |
CONSOLE_FLAG_RUNTIME);
diff --git a/plat/xilinx/versal/plat_versal.c b/plat/xilinx/versal/plat_versal.c
index a080a76..107eae6 100644
--- a/plat/xilinx/versal/plat_versal.c
+++ b/plat/xilinx/versal/plat_versal.c
@@ -9,11 +9,13 @@
int plat_core_pos_by_mpidr(u_register_t mpidr)
{
- if (mpidr & MPIDR_CLUSTER_MASK)
+ if (mpidr & MPIDR_CLUSTER_MASK) {
return -1;
+ }
- if ((mpidr & MPIDR_CPU_MASK) >= PLATFORM_CORE_COUNT)
+ if ((mpidr & MPIDR_CPU_MASK) >= PLATFORM_CORE_COUNT) {
return -1;
+ }
return versal_calc_core_pos(mpidr);
}
diff --git a/plat/xilinx/zynqmp/bl31_zynqmp_setup.c b/plat/xilinx/zynqmp/bl31_zynqmp_setup.c
index 8272d62..d4cd7f6 100644
--- a/plat/xilinx/zynqmp/bl31_zynqmp_setup.c
+++ b/plat/xilinx/zynqmp/bl31_zynqmp_setup.c
@@ -32,8 +32,9 @@
{
assert(sec_state_is_valid(type));
- if (type == NON_SECURE)
+ if (type == NON_SECURE) {
return &bl33_image_ep_info;
+ }
return &bl32_image_ep_info;
}
@@ -99,10 +100,11 @@
enum fsbl_handoff ret = fsbl_atf_handover(&bl32_image_ep_info,
&bl33_image_ep_info,
atf_handoff_addr);
- if (ret == FSBL_HANDOFF_NO_STRUCT)
+ if (ret == FSBL_HANDOFF_NO_STRUCT) {
bl31_set_default_config();
- else if (ret != FSBL_HANDOFF_SUCCESS)
+ } else if (ret != FSBL_HANDOFF_SUCCESS) {
panic();
+ }
}
if (bl32_image_ep_info.pc) {
VERBOSE("BL31: Secure code at 0x%lx\n", bl32_image_ep_info.pc);
@@ -137,12 +139,14 @@
int request_intr_type_el3(uint32_t id, interrupt_type_handler_t handler)
{
/* Validate 'handler' and 'id' parameters */
- if (!handler || id >= MAX_INTR_EL3)
+ if (!handler || id >= MAX_INTR_EL3) {
return -EINVAL;
+ }
/* Check if a handler has already been registered */
- if (type_el3_interrupt_table[id])
+ if (type_el3_interrupt_table[id]) {
return -EALREADY;
+ }
type_el3_interrupt_table[id] = handler;
@@ -157,8 +161,9 @@
intr_id = plat_ic_get_pending_interrupt_id();
handler = type_el3_interrupt_table[intr_id];
- if (handler != NULL)
+ if (handler != NULL) {
handler(intr_id, flags, handle, cookie);
+ }
return 0;
}
@@ -181,8 +186,9 @@
set_interrupt_rm_flag(flags, NON_SECURE);
rc = register_interrupt_type_handler(INTR_TYPE_EL3,
rdo_el3_interrupt_handler, flags);
- if (rc)
+ if (rc) {
panic();
+ }
#endif
}
diff --git a/plat/xilinx/zynqmp/plat_zynqmp.c b/plat/xilinx/zynqmp/plat_zynqmp.c
index 906ce1b..58a52a3 100644
--- a/plat/xilinx/zynqmp/plat_zynqmp.c
+++ b/plat/xilinx/zynqmp/plat_zynqmp.c
@@ -9,11 +9,13 @@
int plat_core_pos_by_mpidr(u_register_t mpidr)
{
- if (mpidr & MPIDR_CLUSTER_MASK)
+ if (mpidr & MPIDR_CLUSTER_MASK) {
return -1;
+ }
- if ((mpidr & MPIDR_CPU_MASK) >= PLATFORM_CORE_COUNT)
+ if ((mpidr & MPIDR_CPU_MASK) >= PLATFORM_CORE_COUNT) {
return -1;
+ }
return zynqmp_calc_core_pos(mpidr);
}
diff --git a/plat/xilinx/zynqmp/pm_service/pm_defs.h b/plat/xilinx/zynqmp/pm_service/pm_defs.h
index ee31c92..3324431 100644
--- a/plat/xilinx/zynqmp/pm_service/pm_defs.h
+++ b/plat/xilinx/zynqmp/pm_service/pm_defs.h
@@ -18,7 +18,7 @@
* (PM_VERSION_MAJOR << 16) | PM_VERSION_MINOR
*/
#define PM_VERSION_MAJOR 1
-#define PM_VERSION_MINOR 0
+#define PM_VERSION_MINOR 1
#define PM_VERSION ((PM_VERSION_MAJOR << 16) | PM_VERSION_MINOR)
diff --git a/plat/xilinx/zynqmp/pm_service/pm_svc_main.c b/plat/xilinx/zynqmp/pm_service/pm_svc_main.c
index a4bc1ac..49824c7 100644
--- a/plat/xilinx/zynqmp/pm_service/pm_svc_main.c
+++ b/plat/xilinx/zynqmp/pm_service/pm_svc_main.c
@@ -29,8 +29,8 @@
#define PM_SET_SUSPEND_MODE 0xa02
#define PM_GET_TRUSTZONE_VERSION 0xa03
-/* !0 - UP, 0 - DOWN */
-static int32_t pm_up = 0;
+/* pm_up = !0 - UP, pm_up = 0 - DOWN */
+static int32_t pm_up, ipi_irq_flag;
#if ZYNQMP_WDT_RESTART
static spinlock_t inc_lock;
@@ -210,6 +210,15 @@
status = pm_ipi_init(primary_proc);
+ ret = pm_get_api_version(&pm_ctx.api_version);
+ if (pm_ctx.api_version < PM_VERSION) {
+ ERROR("BL31: Platform Management API version error. Expected: "
+ "v%d.%d - Found: v%d.%d\n", PM_VERSION_MAJOR,
+ PM_VERSION_MINOR, pm_ctx.api_version >> 16,
+ pm_ctx.api_version & 0xFFFF);
+ return -EINVAL;
+ }
+
#if ZYNQMP_WDT_RESTART
status = pm_wdt_restart_setup();
if (status)
@@ -321,22 +330,21 @@
case PM_GET_API_VERSION:
/* Check is PM API version already verified */
- if (pm_ctx.api_version == PM_VERSION) {
+ if (pm_ctx.api_version >= PM_VERSION) {
+ if (!ipi_irq_flag) {
+ /*
+ * Enable IPI IRQ
+ * assume the rich OS is OK to handle callback IRQs now.
+ * Even if we were wrong, it would not enable the IRQ in
+ * the GIC.
+ */
+ pm_ipi_irq_enable(primary_proc);
+ ipi_irq_flag = 1;
+ }
SMC_RET1(handle, (uint64_t)PM_RET_SUCCESS |
- ((uint64_t)PM_VERSION << 32));
+ ((uint64_t)pm_ctx.api_version << 32));
}
- ret = pm_get_api_version(&pm_ctx.api_version);
- /*
- * Enable IPI IRQ
- * assume the rich OS is OK to handle callback IRQs now.
- * Even if we were wrong, it would not enable the IRQ in
- * the GIC.
- */
- pm_ipi_irq_enable(primary_proc);
- SMC_RET1(handle, (uint64_t)ret |
- ((uint64_t)pm_ctx.api_version << 32));
-
case PM_SET_CONFIGURATION:
ret = pm_set_configuration(pm_arg[0]);
SMC_RET1(handle, (uint64_t)ret);
diff --git a/plat/xilinx/zynqmp/sip_svc_setup.c b/plat/xilinx/zynqmp/sip_svc_setup.c
index 4c29da2..114da33 100644
--- a/plat/xilinx/zynqmp/sip_svc_setup.c
+++ b/plat/xilinx/zynqmp/sip_svc_setup.c
@@ -44,9 +44,7 @@
static int32_t sip_svc_setup(void)
{
/* PM implementation as SiP Service */
- pm_setup();
-
- return 0;
+ return pm_setup();
}
/**