| From 3e737dd47b228bdeffb06e39bffec7a4a436b244 Mon Sep 17 00:00:00 2001 |
| From: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> |
| 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=<debug,release> 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 <arunachalam.ganapathy@arm.com> |
| 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 |
| |