Tools: Use dictionary to manage partition statistics
This patch creates a partition_statistics dictionary
to manage ipc_partition_num and sfn_partition_num.
It makes the scripts more readable and easier to maintain.
Signed-off-by: Xinyu Zhang <xinyu.zhang@arm.com>
Change-Id: Iee76f011c0611f77e8362105220bf4d7436e15a9
diff --git a/interface/include/config_impl.h.template b/interface/include/config_impl.h.template
index 5a6c3e1..8c79f04 100644
--- a/interface/include/config_impl.h.template
+++ b/interface/include/config_impl.h.template
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021, Arm Limited. All rights reserved.
+ * Copyright (c) 2021-2022, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
@@ -10,7 +10,8 @@
#ifndef __CONFIG_IMPL_H__
#define __CONFIG_IMPL_H__
-{% if ipc_partition_num > 0 and sfn_partition_num == 0 %}
+{% if partition_statistics['ipc_partition_num'] > 0
+ and partition_statistics['sfn_partition_num'] == 0 %}
/* IPC model */
#define {{"%-56s"|format("CONFIG_TFM_SPM_BACKEND_IPC")}} 1
@@ -27,7 +28,8 @@
{{"%-56s"|format("CONFIG_TFM_NS_AGENT_TZ_STACK_SIZE")}}
#endif /* TFM_LVL > 1 */
-{% elif sfn_partition_num > 0 and ipc_partition_num == 0 %}
+{% elif partition_statistics['sfn_partition_num'] > 0
+ and partition_statistics['ipc_partition_num'] == 0 %}
/* SFN model */
#define {{"%-56s"|format("CONFIG_TFM_SPM_BACKEND_SFN")}} 1
#define {{"%-56s"|format("CONFIG_TFM_PSA_API_SFN_CALL")}} 1
@@ -61,7 +63,8 @@
#define {{"%-56s"|format("CONFIG_TFM_NS_AGENT_TZ_STACK_SIZE")}} \
((({{"0x%x"|format(total_stk.size)}} >> CONFIG_TFM_NS_AGENT_TZ_STK_SIZE_SHIFT_FACTOR) + 0x7) & (~0x7))
-{% elif sfn_partition_num > 0 and ipc_partition_num > 0 %}
+{% elif partition_statistics['sfn_partition_num'] > 0
+ and partition_statistics['ipc_partition_num'] > 0 %}
#error "IPC and SFN co-work not supported yet."
{% else %}
#error "Invalid partition number input, check configurations."