blob: aa83332bd62779d1931d97c12ccdbe6f9b9878ee [file] [log] [blame]
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