blob: aa83332bd62779d1931d97c12ccdbe6f9b9878ee [file] [log] [blame]
Brad Bishopbec4ebc2022-08-03 09:55:16 -04001From 3e737dd47b228bdeffb06e39bffec7a4a436b244 Mon Sep 17 00:00:00 2001
2From: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
3Date: Wed, 9 Feb 2022 16:02:10 +0000
4Subject: [PATCH 4/4] tc0: support platform feature set options in firmware.mk
5
6Support existing platform feature set options that is in cmake to
7firmware.mk. Two feature set for TC0 are
80. Standard
91. MPMM/Power/Performance (Experimental)
10
11Build option to select the feature set is using:
12make PRODUCT=tc0 MODE=<debug,release> SCP_PLATFORM_FEATURE_SET=<0,1>
13
14The default value is set to 0 (Standard).
15Refer product/tc0/doc/features.md for more details.
16
17Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
18Change-Id: I4028686a8f8461e0e2c29e15d5e52eb1d37ca60a
19Upstream-Status: Pending [Not submitted to upstream yet]
20---
21 product/tc0/scp_ramfw/firmware.mk | 41 +++++++++++++++++++++++++++++--
22 product/tc0/scp_romfw/firmware.mk | 12 +++++++++
23 2 files changed, 51 insertions(+), 2 deletions(-)
24
25diff --git a/product/tc0/scp_ramfw/firmware.mk b/product/tc0/scp_ramfw/firmware.mk
26index ec6e6679..d7515f5b 100644
27--- a/product/tc0/scp_ramfw/firmware.mk
28+++ b/product/tc0/scp_ramfw/firmware.mk
29@@ -9,8 +9,24 @@ BS_FIRMWARE_CPU := cortex-m3
30 BS_FIRMWARE_HAS_NOTIFICATION := yes
31 BS_FIRMWARE_HAS_RESOURCE_PERMISSIONS := yes
32 BS_FIRMWARE_USE_NEWLIB_NANO_SPECS := yes
33-BS_FIRMWARE_HAS_FAST_CHANNELS := no
34-BS_FIRMWARE_HAS_PERF_PLUGIN_HANDLER := no
35+
36+DEFAULT_SCP_PLATFORM_FEATURE_SET := 0
37+
38+export SCP_PLATFORM_FEATURE_SET ?= $(DEFAULT_SCP_PLATFORM_FEATURE_SET)
39+ifneq ($(filter-out 0 1, $(SCP_PLATFORM_FEATURE_SET)),)
40+ $(error "Invalid for SCP_PLATFORM_FEATURE_SET parameter. Valid options are \
41+ 0 or 1. Aborting...")
42+endif
43+
44+ifeq ($(SCP_PLATFORM_FEATURE_SET),0)
45+ BS_FIRMWARE_HAS_PERF_PLUGIN_HANDLER := no
46+ BS_FIRMWARE_HAS_FAST_CHANNELS := no
47+else
48+ DEFINES += TC0_FEATURES_MPMM_POWER_PERF
49+ BS_FIRMWARE_HAS_PERF_PLUGIN_HANDLER := yes
50+ BS_FIRMWARE_HAS_FAST_CHANNELS := yes
51+ $(info "TC0 platform features POWER/PERFORMANCE is experimental")
52+endif
53
54 BS_FIRMWARE_MODULES := \
55 armv7m_mpu \
56@@ -44,6 +60,16 @@ ifeq ($(BS_FIRMWARE_HAS_RESOURCE_PERMISSIONS),yes)
57 BS_FIRMWARE_MODULES += resource_perms
58 endif
59
60+ifeq ($(SCP_PLATFORM_FEATURE_SET),1)
61+BS_FIRMWARE_MODULES += \
62+ traffic_cop \
63+ mpmm \
64+ sensor \
65+ reg_sensor \
66+ thermal_mgmt \
67+ tc0_power_model
68+endif
69+
70 BS_FIRMWARE_SOURCES := \
71 config_system_power.c \
72 config_armv7m_mpu.c \
73@@ -75,4 +101,15 @@ ifeq ($(BS_FIRMWARE_HAS_RESOURCE_PERMISSIONS),yes)
74 BS_FIRMWARE_SOURCES += config_resource_perms.c
75 endif
76
77+ifeq ($(SCP_PLATFORM_FEATURE_SET),1)
78+ BS_FIRMWARE_SOURCES += \
79+ config_traffic_cop.c \
80+ config_mpmm.c \
81+ config_sensor.c \
82+ config_reg_sensor.c \
83+ config_thermal_mgmt.c \
84+ config_tc0_power_model.c
85+endif
86+
87+
88 include $(BS_DIR)/firmware.mk
89diff --git a/product/tc0/scp_romfw/firmware.mk b/product/tc0/scp_romfw/firmware.mk
90index 9977712f..0012b9fa 100644
91--- a/product/tc0/scp_romfw/firmware.mk
92+++ b/product/tc0/scp_romfw/firmware.mk
93@@ -9,6 +9,18 @@ BS_FIRMWARE_CPU := cortex-m3
94 BS_FIRMWARE_HAS_NOTIFICATION := yes
95 BS_FIRMWARE_USE_NEWLIB_NANO_SPECS := yes
96
97+DEFAULT_SCP_PLATFORM_FEATURE_SET := 0
98+
99+export SCP_PLATFORM_FEATURE_SET ?= $(DEFAULT_SCP_PLATFORM_FEATURE_SET)
100+ifneq ($(filter-out 0 1, $(SCP_PLATFORM_FEATURE_SET)),)
101+ $(error "Invalid for SCP_PLATFORM_FEATURE_SET parameter. Valid options are \
102+ 0 or 1. Aborting...")
103+endif
104+
105+ifeq ($(SCP_PLATFORM_FEATURE_SET),1)
106+ $(info "TC0 platform features POWER/PERFORMANCE is experimental")
107+endif
108+
109 BS_FIRMWARE_MODULE_HEADERS_ONLY := \
110 power_domain \
111 timer
112--
1132.30.2
114