Brad Bishop | bec4ebc | 2022-08-03 09:55:16 -0400 | [diff] [blame] | 1 | From 3e737dd47b228bdeffb06e39bffec7a4a436b244 Mon Sep 17 00:00:00 2001 |
| 2 | From: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> |
| 3 | Date: Wed, 9 Feb 2022 16:02:10 +0000 |
| 4 | Subject: [PATCH 4/4] tc0: support platform feature set options in firmware.mk |
| 5 | |
| 6 | Support existing platform feature set options that is in cmake to |
| 7 | firmware.mk. Two feature set for TC0 are |
| 8 | 0. Standard |
| 9 | 1. MPMM/Power/Performance (Experimental) |
| 10 | |
| 11 | Build option to select the feature set is using: |
| 12 | make PRODUCT=tc0 MODE=<debug,release> SCP_PLATFORM_FEATURE_SET=<0,1> |
| 13 | |
| 14 | The default value is set to 0 (Standard). |
| 15 | Refer product/tc0/doc/features.md for more details. |
| 16 | |
| 17 | Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> |
| 18 | Change-Id: I4028686a8f8461e0e2c29e15d5e52eb1d37ca60a |
| 19 | Upstream-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 | |
| 25 | diff --git a/product/tc0/scp_ramfw/firmware.mk b/product/tc0/scp_ramfw/firmware.mk |
| 26 | index 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 |
| 89 | diff --git a/product/tc0/scp_romfw/firmware.mk b/product/tc0/scp_romfw/firmware.mk |
| 90 | index 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 | -- |
| 113 | 2.30.2 |
| 114 | |