From 185746b66ace598c4c9c7412324e4d2a1fcc9b24 Mon Sep 17 00:00:00 2001 From: Arunachalam Ganapathy Date: Wed, 23 Feb 2022 17:12:51 +0000 Subject: [PATCH] arm-bsp/scp-firmware: add patches related to MPMM for TC0 This commits updates the SHA of SCP-firmware and include required patches to build SCP firmware with experimental features MPMM/POWER/PERFORMANCE for TC0 platform. Signed-off-by: Arunachalam Ganapathy Change-Id: I263b484a467636154b70805f920bb53c6fe2026c Signed-off-by: Jon Mason --- .../0001-tc0-fix-sensor-data-api-call.patch | 65 ++++++ .../files/tc/0002-tc0-fix-mpmm-config.patch | 92 ++++++++ ...form-variant-to-platform-feature-set.patch | 202 ++++++++++++++++++ ...form-feature-set-options-in-firmware.patch | 114 ++++++++++ .../scp-firmware/scp-firmware-tc.inc | 15 +- 5 files changed, 487 insertions(+), 1 deletion(-) create mode 100644 meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0001-tc0-fix-sensor-data-api-call.patch create mode 100644 meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0002-tc0-fix-mpmm-config.patch create mode 100644 meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0003-tc0-rename-platform-variant-to-platform-feature-set.patch create mode 100644 meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0004-tc0-support-platform-feature-set-options-in-firmware.patch diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0001-tc0-fix-sensor-data-api-call.patch b/meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0001-tc0-fix-sensor-data-api-call.patch new file mode 100644 index 00000000..227d9112 --- /dev/null +++ b/meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0001-tc0-fix-sensor-data-api-call.patch @@ -0,0 +1,65 @@ +From 33a2173e13453ecc4f766f0e69302524401df1b0 Mon Sep 17 00:00:00 2001 +From: Arunachalam Ganapathy +Date: Mon, 14 Feb 2022 08:28:46 +0000 +Subject: [PATCH 1/4] tc0: fix sensor data api call + +Signed-off-by: Arunachalam Ganapathy +Change-Id: I827abeeac8317e4dd466cc0c4d493cdc90e7e39d +Upstream-Status: Pending [Not submitted to upstream yet] +--- + module/thermal_mgmt/src/mod_thermal_mgmt.c | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/module/thermal_mgmt/src/mod_thermal_mgmt.c b/module/thermal_mgmt/src/mod_thermal_mgmt.c +index dbd45c74..6e2ff5ba 100644 +--- a/module/thermal_mgmt/src/mod_thermal_mgmt.c ++++ b/module/thermal_mgmt/src/mod_thermal_mgmt.c +@@ -20,7 +20,7 @@ + #include + #include + #include +-#include ++#include + + #include + #include +@@ -372,7 +372,7 @@ static int read_temperature(void) + .id = mod_thermal_event_id_read_temp, + }; + +- return fwk_thread_put_event(&event); ++ return fwk_put_event(&event); + #else + int status; + uint64_t value; +@@ -574,22 +574,22 @@ static int thermal_mgmt_process_event( + struct fwk_event *resp_event) + { + struct mod_sensor_event_params *params; +- uint64_t value; ++ struct mod_sensor_data ms_data; + int status; + + if (fwk_id_is_equal(event->id, mod_thermal_event_id_read_temp)) { + /* Temperature-reading event */ + status = +- mod_ctx.sensor_api->get_value(mod_ctx.config->sensor_id, &value); ++ mod_ctx.sensor_api->get_data(mod_ctx.config->sensor_id, &ms_data); + if (status == FWK_SUCCESS) { +- mod_ctx.cur_temp = (uint32_t)value; ++ mod_ctx.cur_temp = (uint32_t)ms_data.value; + } + } else if (fwk_id_is_equal(event->id, mod_sensor_event_id_read_request)) { + /* Response event from Sensor HAL */ + params = (struct mod_sensor_event_params *)event->params; + +- if (params->status == FWK_SUCCESS) { +- mod_ctx.cur_temp = (uint32_t)params->value; ++ if (params->sensor_data->status == FWK_SUCCESS) { ++ mod_ctx.cur_temp = (uint32_t)params->sensor_data->value; + status = FWK_SUCCESS; + } else { + status = FWK_E_DEVICE; +-- +2.30.2 + diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0002-tc0-fix-mpmm-config.patch b/meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0002-tc0-fix-mpmm-config.patch new file mode 100644 index 00000000..f2044a95 --- /dev/null +++ b/meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0002-tc0-fix-mpmm-config.patch @@ -0,0 +1,92 @@ +From 736bd8aeceefd474c15a97e4a4ec99f07ef9a82c Mon Sep 17 00:00:00 2001 +From: Arunachalam Ganapathy +Date: Fri, 11 Feb 2022 18:28:43 +0000 +Subject: [PATCH 2/4] tc0: fix mpmm config + +Do not enable MPMM in standard features set. + +Signed-off-by: Arunachalam Ganapathy +Change-Id: I7b273a2055452e2e8cd78a0d932514a6f2947ec5 +Upstream-Status: Pending [Not submitted to upstream yet] +--- + product/tc0/scp_ramfw/config_mpmm.c | 15 --------------- + 1 file changed, 15 deletions(-) + +diff --git a/product/tc0/scp_ramfw/config_mpmm.c b/product/tc0/scp_ramfw/config_mpmm.c +index 3bfe99d3..13d866a5 100644 +--- a/product/tc0/scp_ramfw/config_mpmm.c ++++ b/product/tc0/scp_ramfw/config_mpmm.c +@@ -27,7 +27,6 @@ enum core_pd_idx { + CORE7_IDX + }; + +-#if defined(PLATFORM_VARIANT) && (PLATFORM_VARIANT == TC0_VARIANT_STD) + static struct mod_mpmm_pct_table k_pct[] = { + { .cores_online = 4, + .default_perf_limit = 1153 * 1000000UL, +@@ -115,7 +114,6 @@ static struct mod_mpmm_pct_table m_pct[] = { + }, + } }, + }; +-#endif + + static struct mod_mpmm_pct_table m_elp_pct[] = { + { .cores_online = 1, +@@ -132,7 +130,6 @@ static struct mod_mpmm_pct_table m_elp_pct[] = { + } }, + }; + +-#if defined(PLATFORM_VARIANT) && (PLATFORM_VARIANT == TC0_VARIANT_STD) + static const struct mod_mpmm_core_config k_core_config[] = { + [0] = { + .pd_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_POWER_DOMAIN, CORE0_IDX), +@@ -180,7 +177,6 @@ static const struct mod_mpmm_core_config m_core_config[] = { + .core_starts_online = false, + }, + }; +-#endif + + static const struct mod_mpmm_core_config m_elp_core_config[] = { + [0] = { +@@ -191,7 +187,6 @@ static const struct mod_mpmm_core_config m_elp_core_config[] = { + }, + }; + +-#if defined(PLATFORM_VARIANT) && (PLATFORM_VARIANT == TC0_VARIANT_STD) + static const struct mod_mpmm_domain_config k_domain_conf[] = { + [0] = { + .perf_id = FWK_ID_ELEMENT_INIT( +@@ -219,7 +214,6 @@ static const struct mod_mpmm_domain_config m_domain_conf[] = { + }, + [1] = {0}, + }; +-#endif + + static const struct mod_mpmm_domain_config m_elp_domain_conf[] = { + [0] = { +@@ -236,14 +230,6 @@ static const struct mod_mpmm_domain_config m_elp_domain_conf[] = { + }; + + static const struct fwk_element element_table[] = { +-#if defined(PLATFORM_VARIANT) && (PLATFORM_VARIANT == TC0_VAR_EXPERIMENT_POWER) +- [0] = { +- .name = "MPMM_MATTERHORN_ELP_ARM_ELEM", +- .sub_element_count = 1, +- .data = m_elp_domain_conf, +- }, +- [1] = { 0 }, +-#else + [0] = { + .name = "MPMM_KLEIN_ELEM", + .sub_element_count = 4, +@@ -260,7 +246,6 @@ static const struct fwk_element element_table[] = { + .data = m_elp_domain_conf, + }, + [3] = { 0 }, +-#endif + }; + + static const struct fwk_element *mpmm_get_element_table(fwk_id_t module_id) +-- +2.30.2 + diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0003-tc0-rename-platform-variant-to-platform-feature-set.patch b/meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0003-tc0-rename-platform-variant-to-platform-feature-set.patch new file mode 100644 index 00000000..5e995253 --- /dev/null +++ b/meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0003-tc0-rename-platform-variant-to-platform-feature-set.patch @@ -0,0 +1,202 @@ +From 50e63f11762348bcd95d809af248f620f03d9ce4 Mon Sep 17 00:00:00 2001 +From: Arunachalam Ganapathy +Date: Fri, 11 Feb 2022 18:16:54 +0000 +Subject: [PATCH 3/4] tc0: rename platform variant to platform feature set + +THe PLATFORM_VARIANT flag was added to differentiate the software +features enabled in SCP firmware. But this flag misleads to a new +variant of same platform. This commits renames PLATFORM_VARIANT to +PLATFORM_FEATURE_SET + +Signed-off-by: Arunachalam Ganapathy +Change-Id: I93c0bc3e11fe18192bb8246df851345bdc473974 +Upstream-Status: Pending [Not submitted to upstream yet] +--- + product/tc0/doc/{variants.md => features.md} | 28 +++++++++----------- + product/tc0/scp_ramfw/CMakeLists.txt | 26 +++--------------- + product/tc0/scp_ramfw/Firmware.cmake | 2 +- + product/tc0/scp_ramfw/config_scmi_perf.c | 8 +++--- + product/tc0/scp_romfw/CMakeLists.txt | 6 ++--- + product/tc0/scp_romfw/Firmware.cmake | 2 +- + 6 files changed, 25 insertions(+), 47 deletions(-) + rename product/tc0/doc/{variants.md => features.md} (77%) + +diff --git a/product/tc0/doc/variants.md b/product/tc0/doc/features.md +similarity index 77% +rename from product/tc0/doc/variants.md +rename to product/tc0/doc/features.md +index fbf616db..3ef520e2 100644 +--- a/product/tc0/doc/variants.md ++++ b/product/tc0/doc/features.md +@@ -1,4 +1,4 @@ +-# TC0 Platform Variants ++# TC0 Platform Features + + Copyright (c) 2022, Arm Limited. All rights reserved. + +@@ -7,30 +7,27 @@ Copyright (c) 2022, Arm Limited. All rights reserved. + + Documentation for TC0 platform can be found at [1]. + ++### Standard ++ ++The standard build provides all the features described in [1]. ++For this default features, it's not required to provide any extra parameters in ++the build commands. ++ ++### MPMM/Power/Performance (Experimental) ++ + For the purpose of experimenting some of the software features that have been +-introduced in SCP-firmware a new variant of TC0 has been created. +-The variant(s) can be chosen at build time by adding: ++introduced in SCP-firmware of TC0. This can be enabled at build time, by adding: + + ```sh + + make -f Makefile.cmake \ + PRODUCT=tc0 \ + MODE= \ +- EXTRA_CONFIG_ARGS+=-DSCP_PLATFORM_VARIANT=<0,1> ++ EXTRA_CONFIG_ARGS+=-DSCP_PLATFORM_FEATURE_SET=1 + + ``` + +- +-### Variant 0 (Standard build) +- +-The standard build provides all the features described in [1]. +-For this default variant, it's not required to provide any extra parameters in +-the build commands. +- +- +-### Variant 1 (Power/Performance testing) +- +-This variant adds support for the following software features: ++This adds support for the following software features: + - Traffic Cop + - MPMM (Maximum Power Mitigation Mechanism) + - Thermal Management +@@ -63,7 +60,6 @@ Once built, the features above will act as: + + ## Limitations + +-- The "variant" option is available only with the CMake build. + - The Thermal functionality is limited at this time cause the constant + temperature being sampled. + +diff --git a/product/tc0/scp_ramfw/CMakeLists.txt b/product/tc0/scp_ramfw/CMakeLists.txt +index 96310320..ce3178ee 100644 +--- a/product/tc0/scp_ramfw/CMakeLists.txt ++++ b/product/tc0/scp_ramfw/CMakeLists.txt +@@ -11,25 +11,13 @@ + + add_executable(tc0-bl2) + ++set(SCP_PLATFORM_FEATURE_SET ${SCP_PLATFORM_FEATURE_SET_INIT} CACHE STRING "1") + +-# SCP_PLATFORM_VARIANT options: +-# - 'TC0_VARIANT_STD' for TC0 standard build +-# - 'TC0_VAR_EXPERIMENT_POWER' for TC0 with power/performance plugins used for +-# evaluation purposes +- +- +-target_compile_definitions(tc0-bl2 PUBLIC -DTC0_VARIANT_STD=0) +-target_compile_definitions(tc0-bl2 PUBLIC -DTC0_VAR_EXPERIMENT_POWER=1) +- +- +-set(SCP_PLATFORM_VARIANT ${SCP_PLATFORM_VARIANT_INIT} CACHE STRING "1") +- +- +-if (SCP_PLATFORM_VARIANT STREQUAL "1") +- message(NOTICE "SCP_PLATFORM_VARIANT set to EXPERIMENT_POWER (tc0-bl2)\n") ++if (SCP_PLATFORM_FEATURE_SET STREQUAL "1") ++ message(NOTICE "TC0 platform features MPMM/POWER/PERFORMANCE is experimental (tc0-bl2)\n") + + target_compile_definitions(tc0-bl2 +- PUBLIC -DPLATFORM_VARIANT=TC0_VAR_EXPERIMENT_POWER) ++ PUBLIC -DTC0_FEATURES_MPMM_POWER_PERF) + + set(SCP_ENABLE_PLUGIN_HANDLER TRUE PARENT_SCOPE) + set(SCP_ENABLE_FAST_CHANNELS TRUE PARENT_SCOPE) +@@ -56,12 +44,6 @@ if (SCP_PLATFORM_VARIANT STREQUAL "1") + list(PREPEND SCP_MODULE_PATHS + "${CMAKE_CURRENT_LIST_DIR}/../module/tc0_power_model") + target_sources(tc0-bl2 PRIVATE "config_tc0_power_model.c") +- +-else() +- message(NOTICE "SCP_PLATFORM_VARIANT set to STANDARD (tc0-bl2)\n") +- +- target_compile_definitions(tc0-bl2 +- PUBLIC -DPLATFORM_VARIANT=TC0_VARIANT_STD) + endif() + + +diff --git a/product/tc0/scp_ramfw/Firmware.cmake b/product/tc0/scp_ramfw/Firmware.cmake +index 11d8eaab..4a555296 100644 +--- a/product/tc0/scp_ramfw/Firmware.cmake ++++ b/product/tc0/scp_ramfw/Firmware.cmake +@@ -27,7 +27,7 @@ set(SCP_ENABLE_FAST_CHANNELS_INIT FALSE) + + set(SCP_ENABLE_PLUGIN_HANDLER_INIT FALSE) + +-set(SCP_PLATFORM_VARIANT_INIT 0) ++set(SCP_PLATFORM_FEATURE_SET_INIT 0) + + set(SCP_ARCHITECTURE "armv7-m") + +diff --git a/product/tc0/scp_ramfw/config_scmi_perf.c b/product/tc0/scp_ramfw/config_scmi_perf.c +index a4a47b3a..3e91939a 100644 +--- a/product/tc0/scp_ramfw/config_scmi_perf.c ++++ b/product/tc0/scp_ramfw/config_scmi_perf.c +@@ -129,7 +129,7 @@ static const struct mod_scmi_perf_domain_config domains[] = { + }, + }; + +-#if defined(PLATFORM_VARIANT) && (PLATFORM_VARIANT == TC0_VAR_EXPERIMENT_POWER) ++#ifdef TC0_FEATURES_MPMM_POWER_PERF + static const struct mod_scmi_plugin_config plugins_table[] = { + [0] = { + .id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_TRAFFIC_COP), +@@ -156,9 +156,9 @@ const struct fwk_module_config config_scmi_perf = { + #else + .fast_channels_alarm_id = FWK_ID_NONE_INIT, + #endif +-#if defined(PLATFORM_VARIANT) && (PLATFORM_VARIANT == TC0_VAR_EXPERIMENT_POWER) +- .plugins = plugins_table, +- .plugins_count = FWK_ARRAY_SIZE(plugins_table), ++#ifdef TC0_FEATURES_MPMM_POWER_PERF ++ .plugins = plugins_table, ++ .plugins_count = FWK_ARRAY_SIZE(plugins_table), + #endif + }) + }; +diff --git a/product/tc0/scp_romfw/CMakeLists.txt b/product/tc0/scp_romfw/CMakeLists.txt +index f9f40ad3..09cd2f5d 100644 +--- a/product/tc0/scp_romfw/CMakeLists.txt ++++ b/product/tc0/scp_romfw/CMakeLists.txt +@@ -48,6 +48,6 @@ target_include_directories(tc0-bl1 + PUBLIC $) + + cmake_dependent_option( +- SCP_PLATFORM_VARIANT "Choose platform software variant?" +- "${SCP_PLATFORM_VARIANT_INIT}" "DEFINED SCP_PLATFORM_VARIANT_INIT" +- "${SCP_PLATFORM_VARIANT}") ++ SCP_PLATFORM_FEATURE_SET "Choose platform software features?" ++ "${SCP_PLATFORM_FEATURE_SET_INIT}" "DEFINED SCP_PLATFORM_FEATURE_SET_INIT" ++ "${SCP_PLATFORM_FEATURE_SET}") +diff --git a/product/tc0/scp_romfw/Firmware.cmake b/product/tc0/scp_romfw/Firmware.cmake +index ab4468be..e1360159 100644 +--- a/product/tc0/scp_romfw/Firmware.cmake ++++ b/product/tc0/scp_romfw/Firmware.cmake +@@ -21,7 +21,7 @@ set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) + + set(SCP_ENABLE_IPO_INIT FALSE) + +-set(SCP_PLATFORM_VARIANT_INIT 0) ++set(SCP_PLATFORM_FEATURE_SET_INIT 0) + + set(SCP_ARCHITECTURE "armv7-m") + +-- +2.30.2 + diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0004-tc0-support-platform-feature-set-options-in-firmware.patch b/meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0004-tc0-support-platform-feature-set-options-in-firmware.patch new file mode 100644 index 00000000..aa83332b --- /dev/null +++ b/meta-arm-bsp/recipes-bsp/scp-firmware/files/tc/0004-tc0-support-platform-feature-set-options-in-firmware.patch @@ -0,0 +1,114 @@ +From 3e737dd47b228bdeffb06e39bffec7a4a436b244 Mon Sep 17 00:00:00 2001 +From: Arunachalam Ganapathy +Date: Wed, 9 Feb 2022 16:02:10 +0000 +Subject: [PATCH 4/4] tc0: support platform feature set options in firmware.mk + +Support existing platform feature set options that is in cmake to +firmware.mk. Two feature set for TC0 are +0. Standard +1. MPMM/Power/Performance (Experimental) + +Build option to select the feature set is using: +make PRODUCT=tc0 MODE= SCP_PLATFORM_FEATURE_SET=<0,1> + +The default value is set to 0 (Standard). +Refer product/tc0/doc/features.md for more details. + +Signed-off-by: Arunachalam Ganapathy +Change-Id: I4028686a8f8461e0e2c29e15d5e52eb1d37ca60a +Upstream-Status: Pending [Not submitted to upstream yet] +--- + product/tc0/scp_ramfw/firmware.mk | 41 +++++++++++++++++++++++++++++-- + product/tc0/scp_romfw/firmware.mk | 12 +++++++++ + 2 files changed, 51 insertions(+), 2 deletions(-) + +diff --git a/product/tc0/scp_ramfw/firmware.mk b/product/tc0/scp_ramfw/firmware.mk +index ec6e6679..d7515f5b 100644 +--- a/product/tc0/scp_ramfw/firmware.mk ++++ b/product/tc0/scp_ramfw/firmware.mk +@@ -9,8 +9,24 @@ BS_FIRMWARE_CPU := cortex-m3 + BS_FIRMWARE_HAS_NOTIFICATION := yes + BS_FIRMWARE_HAS_RESOURCE_PERMISSIONS := yes + BS_FIRMWARE_USE_NEWLIB_NANO_SPECS := yes +-BS_FIRMWARE_HAS_FAST_CHANNELS := no +-BS_FIRMWARE_HAS_PERF_PLUGIN_HANDLER := no ++ ++DEFAULT_SCP_PLATFORM_FEATURE_SET := 0 ++ ++export SCP_PLATFORM_FEATURE_SET ?= $(DEFAULT_SCP_PLATFORM_FEATURE_SET) ++ifneq ($(filter-out 0 1, $(SCP_PLATFORM_FEATURE_SET)),) ++ $(error "Invalid for SCP_PLATFORM_FEATURE_SET parameter. Valid options are \ ++ 0 or 1. Aborting...") ++endif ++ ++ifeq ($(SCP_PLATFORM_FEATURE_SET),0) ++ BS_FIRMWARE_HAS_PERF_PLUGIN_HANDLER := no ++ BS_FIRMWARE_HAS_FAST_CHANNELS := no ++else ++ DEFINES += TC0_FEATURES_MPMM_POWER_PERF ++ BS_FIRMWARE_HAS_PERF_PLUGIN_HANDLER := yes ++ BS_FIRMWARE_HAS_FAST_CHANNELS := yes ++ $(info "TC0 platform features POWER/PERFORMANCE is experimental") ++endif + + BS_FIRMWARE_MODULES := \ + armv7m_mpu \ +@@ -44,6 +60,16 @@ ifeq ($(BS_FIRMWARE_HAS_RESOURCE_PERMISSIONS),yes) + BS_FIRMWARE_MODULES += resource_perms + endif + ++ifeq ($(SCP_PLATFORM_FEATURE_SET),1) ++BS_FIRMWARE_MODULES += \ ++ traffic_cop \ ++ mpmm \ ++ sensor \ ++ reg_sensor \ ++ thermal_mgmt \ ++ tc0_power_model ++endif ++ + BS_FIRMWARE_SOURCES := \ + config_system_power.c \ + config_armv7m_mpu.c \ +@@ -75,4 +101,15 @@ ifeq ($(BS_FIRMWARE_HAS_RESOURCE_PERMISSIONS),yes) + BS_FIRMWARE_SOURCES += config_resource_perms.c + endif + ++ifeq ($(SCP_PLATFORM_FEATURE_SET),1) ++ BS_FIRMWARE_SOURCES += \ ++ config_traffic_cop.c \ ++ config_mpmm.c \ ++ config_sensor.c \ ++ config_reg_sensor.c \ ++ config_thermal_mgmt.c \ ++ config_tc0_power_model.c ++endif ++ ++ + include $(BS_DIR)/firmware.mk +diff --git a/product/tc0/scp_romfw/firmware.mk b/product/tc0/scp_romfw/firmware.mk +index 9977712f..0012b9fa 100644 +--- a/product/tc0/scp_romfw/firmware.mk ++++ b/product/tc0/scp_romfw/firmware.mk +@@ -9,6 +9,18 @@ BS_FIRMWARE_CPU := cortex-m3 + BS_FIRMWARE_HAS_NOTIFICATION := yes + BS_FIRMWARE_USE_NEWLIB_NANO_SPECS := yes + ++DEFAULT_SCP_PLATFORM_FEATURE_SET := 0 ++ ++export SCP_PLATFORM_FEATURE_SET ?= $(DEFAULT_SCP_PLATFORM_FEATURE_SET) ++ifneq ($(filter-out 0 1, $(SCP_PLATFORM_FEATURE_SET)),) ++ $(error "Invalid for SCP_PLATFORM_FEATURE_SET parameter. Valid options are \ ++ 0 or 1. Aborting...") ++endif ++ ++ifeq ($(SCP_PLATFORM_FEATURE_SET),1) ++ $(info "TC0 platform features POWER/PERFORMANCE is experimental") ++endif ++ + BS_FIRMWARE_MODULE_HEADERS_ONLY := \ + power_domain \ + timer +-- +2.30.2 + diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-tc.inc b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-tc.inc index cdf1bb6a..7b304322 100644 --- a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-tc.inc +++ b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-tc.inc @@ -1,4 +1,17 @@ -# TC0 specific SCP configuration +# TC specific SCP configuration + +# Intermediate SHA with 2.9 baseline version +# This has support for SCP features MPMM/POWER/PERFORMANCE for TC0 +SRCREV = "027b567fde5e3767fb1678bda28cf59fa7aac06d" +PV = "2.9+git${SRCPV}" + +FILESEXTRAPATHS:prepend := "${THISDIR}/files/tc:" +SRC_URI:append:tc = " \ + file://0001-tc0-fix-sensor-data-api-call.patch \ + file://0002-tc0-fix-mpmm-config.patch \ + file://0003-tc0-rename-platform-variant-to-platform-feature-set.patch \ + file://0004-tc0-support-platform-feature-set-options-in-firmware.patch \ + " COMPATIBLE_MACHINE = "(tc?)"