From bca859ee71a1ccdddd7ea8a35ac6b4acd75e0693 Mon Sep 17 00:00:00 2001 From: Girish Pathak Date: Thu, 2 Sep 2021 17:51:03 +0100 Subject: [PATCH] products: Disable multi-threading for all products This change is a precursor to the subsequent changes where multi-threading support will be removed from the SCP firmware. The change is inteded to allow platform owners to test respective platforms without multi-threading. The term multi-threaded mode is misleading since it implies multiple threads of execution are concurrently supported (like in an OS), but that is not true. Also multi-threading add call overhead and could make things slower, and creates a larger memory footprint. Simply all of above is not needed at present, hence we expect multi-thread mode to be removed in near future from the firmware. Change-Id: Ia5009ddf75a5f385ee8a8966e178900e462e6cf9 Signed-off-by: Girish Pathak --- product/morello/mcp_ramfw_fvp/CMakeLists.txt | 3 +-- product/morello/mcp_ramfw_fvp/Firmware.cmake | 2 +- product/morello/mcp_ramfw_fvp/firmware.mk | 7 +++++-- product/morello/scp_ramfw_fvp/CMakeLists.txt | 3 +-- product/morello/scp_ramfw_fvp/Firmware.cmake | 4 +--- product/morello/scp_ramfw_fvp/firmware.mk | 7 +++++-- product/n1sdp/mcp_ramfw/CMakeLists.txt | 3 +-- product/n1sdp/mcp_ramfw/Firmware.cmake | 2 +- product/n1sdp/mcp_ramfw/firmware.mk | 7 +++++-- .../module/n1sdp_c2c/src/mod_n1sdp_c2c_i2c.c | 7 ++++++- product/n1sdp/scp_ramfw/CMakeLists.txt | 1 - product/n1sdp/scp_ramfw/Firmware.cmake | 2 +- product/n1sdp/scp_ramfw/firmware.mk | 7 +++++-- product/rcar/scp_ramfw/Firmware.cmake | 2 +- product/rcar/scp_ramfw/firmware.mk | 2 +- product/rdn1e1/scp_ramfw/CMakeLists.txt | 1 - product/rdn1e1/scp_ramfw/Firmware.cmake | 2 +- product/rdn1e1/scp_ramfw/firmware.mk | 7 +++++-- product/rdn2/mcp_ramfw/Firmware.cmake | 2 +- product/rdn2/mcp_ramfw/firmware.mk | 7 +++++-- product/rdn2/scp_ramfw/Firmware.cmake | 2 +- product/rdn2/scp_ramfw/firmware.mk | 7 +++++-- product/rdv1/mcp_ramfw/Firmware.cmake | 2 +- product/rdv1/mcp_ramfw/firmware.mk | 7 +++++-- product/rdv1/scp_ramfw/firmware.mk | 7 +++++-- product/rdv1mc/scp_ramfw/CMakeLists.txt | 1 - product/rdv1mc/scp_ramfw/Firmware.cmake | 2 +- product/rdv1mc/scp_ramfw/firmware.mk | 7 +++++-- product/sgi575/scp_ramfw/Firmware.cmake | 2 +- product/sgi575/scp_ramfw/firmware.mk | 7 +++++-- .../module/synquacer_memc/include/ddr_init.h | 6 ++++-- .../module/synquacer_memc/src/synquacer_ddr.c | 4 +++- .../src/mod_synquacer_system.c | 2 ++ product/synquacer/scp_ramfw/CMakeLists.txt | 15 +++++++------- product/synquacer/scp_ramfw/Firmware.cmake | 2 +- product/synquacer/scp_ramfw/firmware.mk | 7 +++++-- product/tc0/scp_ramfw/CMakeLists.txt | 1 - product/tc0/scp_ramfw/Firmware.cmake | 2 +- product/tc0/scp_ramfw/firmware.mk | 7 +++++-- tools/build_system/firmware.mk | 20 ++++++++++--------- 40 files changed, 116 insertions(+), 72 deletions(-) diff --git a/product/morello/mcp_ramfw_fvp/CMakeLists.txt b/product/morello/mcp_ramfw_fvp/CMakeLists.txt index f7bdfc688..7b7df7b90 100644 --- a/product/morello/mcp_ramfw_fvp/CMakeLists.txt +++ b/product/morello/mcp_ramfw_fvp/CMakeLists.txt @@ -19,8 +19,7 @@ target_include_directories( target_sources( morello-fvp-mcp-bl2 - PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/rtx_config.c" - "${CMAKE_CURRENT_SOURCE_DIR}/config_armv7m_mpu.c" + PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/config_armv7m_mpu.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_pl011.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_pik_clock.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_clock.c" diff --git a/product/morello/mcp_ramfw_fvp/Firmware.cmake b/product/morello/mcp_ramfw_fvp/Firmware.cmake index a780f615f..3d518c388 100644 --- a/product/morello/mcp_ramfw_fvp/Firmware.cmake +++ b/product/morello/mcp_ramfw_fvp/Firmware.cmake @@ -16,7 +16,7 @@ set(SCP_GENERATE_FLAT_BINARY_INIT TRUE) set(SCP_ARCHITECTURE "armv7-m") -set(SCP_ENABLE_MULTITHREADING_INIT TRUE) +set(SCP_ENABLE_MULTITHREADING_INIT FALSE) set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) diff --git a/product/morello/mcp_ramfw_fvp/firmware.mk b/product/morello/mcp_ramfw_fvp/firmware.mk index a1c4a788c..395b81122 100644 --- a/product/morello/mcp_ramfw_fvp/firmware.mk +++ b/product/morello/mcp_ramfw_fvp/firmware.mk @@ -9,7 +9,7 @@ # BS_FIRMWARE_CPU := cortex-m7 -BS_FIRMWARE_HAS_MULTITHREADING := yes +BS_FIRMWARE_HAS_MULTITHREADING := no BS_FIRMWARE_HAS_NOTIFICATION := yes BS_FIRMWARE_USE_NEWLIB_NANO_SPECS := yes @@ -28,7 +28,6 @@ BS_FIRMWARE_MODULES := \ morello_mcp_system BS_FIRMWARE_SOURCES := \ - rtx_config.c \ config_armv7m_mpu.c \ config_pl011.c \ config_pik_clock.c \ @@ -37,4 +36,8 @@ BS_FIRMWARE_SOURCES := \ config_smt.c \ config_scmi_agent.c +ifeq ($(BS_FIRMWARE_HAS_MULTITHREADING),yes) + BS_FIRMWARE_SOURCES += rtx_config.c +endif + include $(BS_DIR)/firmware.mk diff --git a/product/morello/scp_ramfw_fvp/CMakeLists.txt b/product/morello/scp_ramfw_fvp/CMakeLists.txt index 0eada826f..2a11252d2 100644 --- a/product/morello/scp_ramfw_fvp/CMakeLists.txt +++ b/product/morello/scp_ramfw_fvp/CMakeLists.txt @@ -19,8 +19,7 @@ target_include_directories( target_sources( morello-fvp-bl2 - PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/rtx_config.c" - "${CMAKE_CURRENT_SOURCE_DIR}/config_armv7m_mpu.c" + PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/config_armv7m_mpu.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_ssc.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_system_info.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_power_domain.c" diff --git a/product/morello/scp_ramfw_fvp/Firmware.cmake b/product/morello/scp_ramfw_fvp/Firmware.cmake index b1cb401a7..1f50de93f 100644 --- a/product/morello/scp_ramfw_fvp/Firmware.cmake +++ b/product/morello/scp_ramfw_fvp/Firmware.cmake @@ -17,13 +17,11 @@ set(SCP_TOOLCHAIN_INIT "GNU") set(SCP_GENERATE_FLAT_BINARY_INIT TRUE) -set(SCP_ENABLE_MULTITHREADING_INIT TRUE) - set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) set(SCP_ARCHITECTURE "armv7-m") -set(SCP_ENABLE_MULTITHREADING_INIT TRUE) +set(SCP_ENABLE_MULTITHREADING_INIT FALSE) set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) diff --git a/product/morello/scp_ramfw_fvp/firmware.mk b/product/morello/scp_ramfw_fvp/firmware.mk index 7a87fabd8..19f317ec7 100644 --- a/product/morello/scp_ramfw_fvp/firmware.mk +++ b/product/morello/scp_ramfw_fvp/firmware.mk @@ -9,7 +9,7 @@ # BS_FIRMWARE_CPU := cortex-m7 -BS_FIRMWARE_HAS_MULTITHREADING := yes +BS_FIRMWARE_HAS_MULTITHREADING := no BS_FIRMWARE_HAS_NOTIFICATION := yes BS_FIRMWARE_USE_NEWLIB_NANO_SPECS := yes @@ -49,7 +49,6 @@ BS_FIRMWARE_MODULES := \ resource_perms BS_FIRMWARE_SOURCES := \ - rtx_config.c \ morello_core.c \ config_armv7m_mpu.c \ config_ssc.c \ @@ -85,4 +84,8 @@ ifeq ($(BUILD_HAS_DEBUGGER),yes) BS_FIRMWARE_SOURCES += config_debugger_cli.c endif +ifeq ($(BS_FIRMWARE_HAS_MULTITHREADING),yes) + BS_FIRMWARE_SOURCES += rtx_config.c +endif + include $(BS_DIR)/firmware.mk diff --git a/product/n1sdp/mcp_ramfw/CMakeLists.txt b/product/n1sdp/mcp_ramfw/CMakeLists.txt index 7ae098620..651230bd9 100644 --- a/product/n1sdp/mcp_ramfw/CMakeLists.txt +++ b/product/n1sdp/mcp_ramfw/CMakeLists.txt @@ -19,8 +19,7 @@ target_include_directories( target_sources( n1sdp-mcp-bl2 - PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/rtx_config.c" - "${CMAKE_CURRENT_SOURCE_DIR}/config_armv7m_mpu.c" + PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/config_armv7m_mpu.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_pl011.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_pik_clock.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_clock.c" diff --git a/product/n1sdp/mcp_ramfw/Firmware.cmake b/product/n1sdp/mcp_ramfw/Firmware.cmake index e6a122347..6d6813686 100644 --- a/product/n1sdp/mcp_ramfw/Firmware.cmake +++ b/product/n1sdp/mcp_ramfw/Firmware.cmake @@ -17,7 +17,7 @@ set(SCP_TOOLCHAIN_INIT "GNU") set(SCP_GENERATE_FLAT_BINARY_INIT TRUE) -set(SCP_ENABLE_MULTITHREADING_INIT TRUE) +set(SCP_ENABLE_MULTITHREADING_INIT FALSE) set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) diff --git a/product/n1sdp/mcp_ramfw/firmware.mk b/product/n1sdp/mcp_ramfw/firmware.mk index 30742e714..754e62f74 100644 --- a/product/n1sdp/mcp_ramfw/firmware.mk +++ b/product/n1sdp/mcp_ramfw/firmware.mk @@ -9,7 +9,7 @@ # BS_FIRMWARE_CPU := cortex-m7 -BS_FIRMWARE_HAS_MULTITHREADING := yes +BS_FIRMWARE_HAS_MULTITHREADING := no BS_FIRMWARE_HAS_NOTIFICATION := yes BS_FIRMWARE_USE_NEWLIB_NANO_SPECS := no @@ -28,7 +28,6 @@ BS_FIRMWARE_MODULES := \ n1sdp_mcp_system BS_FIRMWARE_SOURCES := \ - rtx_config.c \ config_armv7m_mpu.c \ config_pl011.c \ config_pik_clock.c \ @@ -37,4 +36,8 @@ BS_FIRMWARE_SOURCES := \ config_smt.c \ config_scmi_agent.c +ifeq ($(BS_FIRMWARE_HAS_MULTITHREADING),yes) + BS_FIRMWARE_SOURCES += rtx_config.c +endif + include $(BS_DIR)/firmware.mk diff --git a/product/n1sdp/module/n1sdp_c2c/src/mod_n1sdp_c2c_i2c.c b/product/n1sdp/module/n1sdp_c2c/src/mod_n1sdp_c2c_i2c.c index 8d49720f1..73e996cbd 100644 --- a/product/n1sdp/module/n1sdp_c2c/src/mod_n1sdp_c2c_i2c.c +++ b/product/n1sdp/module/n1sdp_c2c/src/mod_n1sdp_c2c_i2c.c @@ -1041,9 +1041,14 @@ static int n1sdp_c2c_init(fwk_id_t module_id, unsigned int unused, if (n1sdp_c2c_ctx.chip_id == 0x0) { return FWK_SUCCESS; - } else { + } +#ifdef BUILD_HAS_MULTITHREADING + else { return fwk_thread_create(module_id); } +#else + return FWK_SUCCESS; +#endif } static int n1sdp_c2c_bind(fwk_id_t id, unsigned int round) diff --git a/product/n1sdp/scp_ramfw/CMakeLists.txt b/product/n1sdp/scp_ramfw/CMakeLists.txt index 267aefcc6..cc3921be5 100644 --- a/product/n1sdp/scp_ramfw/CMakeLists.txt +++ b/product/n1sdp/scp_ramfw/CMakeLists.txt @@ -20,7 +20,6 @@ target_include_directories( target_sources( n1sdp-bl2 PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/config_system_power.c" - "${CMAKE_CURRENT_SOURCE_DIR}/rtx_config.c" "${CMAKE_CURRENT_SOURCE_DIR}/../src/n1sdp_core.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_armv7m_mpu.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_ssc.c" diff --git a/product/n1sdp/scp_ramfw/Firmware.cmake b/product/n1sdp/scp_ramfw/Firmware.cmake index a588d9cee..6c6019a66 100644 --- a/product/n1sdp/scp_ramfw/Firmware.cmake +++ b/product/n1sdp/scp_ramfw/Firmware.cmake @@ -17,7 +17,7 @@ set(SCP_TOOLCHAIN_INIT "GNU") set(SCP_GENERATE_FLAT_BINARY_INIT TRUE) -set(SCP_ENABLE_MULTITHREADING_INIT TRUE) +set(SCP_ENABLE_MULTITHREADING_INIT FALSE) set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) diff --git a/product/n1sdp/scp_ramfw/firmware.mk b/product/n1sdp/scp_ramfw/firmware.mk index c13129179..5f31a3011 100644 --- a/product/n1sdp/scp_ramfw/firmware.mk +++ b/product/n1sdp/scp_ramfw/firmware.mk @@ -9,7 +9,7 @@ # BS_FIRMWARE_CPU := cortex-m7 -BS_FIRMWARE_HAS_MULTITHREADING := yes +BS_FIRMWARE_HAS_MULTITHREADING := no BS_FIRMWARE_HAS_NOTIFICATION := yes BS_FIRMWARE_USE_NEWLIB_NANO_SPECS := yes @@ -56,7 +56,6 @@ BS_FIRMWARE_MODULES := \ BS_FIRMWARE_SOURCES := \ config_system_power.c \ - rtx_config.c \ n1sdp_core.c \ config_armv7m_mpu.c \ config_ssc.c \ @@ -88,6 +87,10 @@ BS_FIRMWARE_SOURCES := \ config_scmi_power_domain.c \ config_pl011.c +ifeq ($(BS_FIRMWARE_HAS_MULTITHREADING),yes) + BS_FIRMWARE_SOURCES += rtx_config.c +endif + ifeq ($(BUILD_HAS_DEBUGGER),yes) BS_FIRMWARE_MODULES += debugger_cli BS_FIRMWARE_SOURCES += config_debugger_cli.c diff --git a/product/rcar/scp_ramfw/Firmware.cmake b/product/rcar/scp_ramfw/Firmware.cmake index 3a1839ee0..9f326c7ba 100644 --- a/product/rcar/scp_ramfw/Firmware.cmake +++ b/product/rcar/scp_ramfw/Firmware.cmake @@ -17,7 +17,7 @@ set(SCP_TOOLCHAIN_INIT "GNU") set(SCP_GENERATE_FLAT_BINARY_INIT TRUE) -set(SCP_ENABLE_MULTITHREADING_INIT TRUE) +set(SCP_ENABLE_MULTITHREADING_INIT FALSE) set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) diff --git a/product/rcar/scp_ramfw/firmware.mk b/product/rcar/scp_ramfw/firmware.mk index 70799c2b7..b26c41317 100644 --- a/product/rcar/scp_ramfw/firmware.mk +++ b/product/rcar/scp_ramfw/firmware.mk @@ -6,7 +6,7 @@ # BS_FIRMWARE_CPU := cortex-a57.cortex-a53 -BS_FIRMWARE_HAS_MULTITHREADING := yes +BS_FIRMWARE_HAS_MULTITHREADING := no BS_FIRMWARE_HAS_NOTIFICATION := yes BS_FIRMWARE_HAS_SCMI_NOTIFICATIONS := no BS_FIRMWARE_HAS_FAST_CHANNELS := no diff --git a/product/rdn1e1/scp_ramfw/CMakeLists.txt b/product/rdn1e1/scp_ramfw/CMakeLists.txt index ea1514caf..724ce9c1f 100644 --- a/product/rdn1e1/scp_ramfw/CMakeLists.txt +++ b/product/rdn1e1/scp_ramfw/CMakeLists.txt @@ -20,7 +20,6 @@ target_include_directories( target_sources( rdn1e1-bl2 PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/config_system_power.c" - "${CMAKE_CURRENT_SOURCE_DIR}/rtx_config.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_armv7m_mpu.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_pl011.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_power_domain.c" diff --git a/product/rdn1e1/scp_ramfw/Firmware.cmake b/product/rdn1e1/scp_ramfw/Firmware.cmake index 70c47e5d0..faa504325 100644 --- a/product/rdn1e1/scp_ramfw/Firmware.cmake +++ b/product/rdn1e1/scp_ramfw/Firmware.cmake @@ -17,7 +17,7 @@ set(SCP_TOOLCHAIN_INIT "GNU") set(SCP_GENERATE_FLAT_BINARY_INIT TRUE) -set(SCP_ENABLE_MULTITHREADING_INIT TRUE) +set(SCP_ENABLE_MULTITHREADING_INIT FALSE) set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) diff --git a/product/rdn1e1/scp_ramfw/firmware.mk b/product/rdn1e1/scp_ramfw/firmware.mk index d4685cd8e..7e35a6bf7 100644 --- a/product/rdn1e1/scp_ramfw/firmware.mk +++ b/product/rdn1e1/scp_ramfw/firmware.mk @@ -6,7 +6,7 @@ # BS_FIRMWARE_CPU := cortex-m7 -BS_FIRMWARE_HAS_MULTITHREADING := yes +BS_FIRMWARE_HAS_MULTITHREADING := no BS_FIRMWARE_HAS_NOTIFICATION := yes BS_FIRMWARE_HAS_RESOURCE_PERMISSIONS := yes BS_FIRMWARE_USE_NEWLIB_NANO_SPECS := no @@ -54,7 +54,6 @@ BS_FIRMWARE_SOURCES := \ config_system_power.c \ config_sid.c \ config_system_info.c \ - rtx_config.c \ config_armv7m_mpu.c \ config_pl011.c \ config_power_domain.c \ @@ -83,4 +82,8 @@ BS_FIRMWARE_SOURCES := \ config_scmi_power_domain.c \ config_resource_perms.c +ifeq ($(BS_FIRMWARE_HAS_MULTITHREADING),yes) + BS_FIRMWARE_SOURCES += rtx_config.c +endif + include $(BS_DIR)/firmware.mk diff --git a/product/rdn2/mcp_ramfw/Firmware.cmake b/product/rdn2/mcp_ramfw/Firmware.cmake index f8458103d..eae841862 100644 --- a/product/rdn2/mcp_ramfw/Firmware.cmake +++ b/product/rdn2/mcp_ramfw/Firmware.cmake @@ -19,7 +19,7 @@ set(SCP_TOOLCHAIN_INIT "GNU") set(SCP_GENERATE_FLAT_BINARY_INIT TRUE) -set(SCP_ENABLE_MULTITHREADING_INIT TRUE) +set(SCP_ENABLE_MULTITHREADING_INIT FALSE) set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) diff --git a/product/rdn2/mcp_ramfw/firmware.mk b/product/rdn2/mcp_ramfw/firmware.mk index 478041734..f3d5e0f47 100644 --- a/product/rdn2/mcp_ramfw/firmware.mk +++ b/product/rdn2/mcp_ramfw/firmware.mk @@ -9,7 +9,7 @@ # BS_FIRMWARE_CPU := cortex-m7 -BS_FIRMWARE_HAS_MULTITHREADING := yes +BS_FIRMWARE_HAS_MULTITHREADING := no BS_FIRMWARE_HAS_NOTIFICATION := yes BS_FIRMWARE_MODULE_HEADERS_ONLY := \ power_domain \ @@ -25,13 +25,16 @@ BS_FIRMWARE_MODULES := \ mcp_platform BS_FIRMWARE_SOURCES := \ - rtx_config.c \ config_armv7m_mpu.c \ config_clock.c \ config_pl011.c \ config_timer.c \ config_gtimer.c +ifeq ($(BS_FIRMWARE_HAS_MULTITHREADING),yes) + BS_FIRMWARE_SOURCES += rtx_config.c +endif + ifeq ($(BUILD_HAS_DEBUGGER),yes) BS_FIRMWARE_MODULES += debugger_cli BS_FIRMWARE_SOURCES += config_debugger_cli.c diff --git a/product/rdn2/scp_ramfw/Firmware.cmake b/product/rdn2/scp_ramfw/Firmware.cmake index 65c1d1122..8c07ab46d 100644 --- a/product/rdn2/scp_ramfw/Firmware.cmake +++ b/product/rdn2/scp_ramfw/Firmware.cmake @@ -17,7 +17,7 @@ set(SCP_TOOLCHAIN_INIT "GNU") set(SCP_GENERATE_FLAT_BINARY_INIT TRUE) -set(SCP_ENABLE_MULTITHREADING_INIT TRUE) +set(SCP_ENABLE_MULTITHREADING_INIT FALSE) set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) diff --git a/product/rdn2/scp_ramfw/firmware.mk b/product/rdn2/scp_ramfw/firmware.mk index e3829cfe2..d906a8da8 100644 --- a/product/rdn2/scp_ramfw/firmware.mk +++ b/product/rdn2/scp_ramfw/firmware.mk @@ -6,7 +6,7 @@ # BS_FIRMWARE_CPU := cortex-m7 -BS_FIRMWARE_HAS_MULTITHREADING := yes +BS_FIRMWARE_HAS_MULTITHREADING := no BS_FIRMWARE_HAS_NOTIFICATION := yes BS_FIRMWARE_HAS_FAST_CHANNELS := yes @@ -46,7 +46,6 @@ BS_FIRMWARE_SOURCES := \ config_apremap.c \ config_sid.c \ config_system_info.c \ - rtx_config.c \ config_armv7m_mpu.c \ config_pl011.c \ config_power_domain.c \ @@ -71,4 +70,8 @@ BS_FIRMWARE_SOURCES := \ config_dvfs.c \ config_scmi_perf.c +ifeq ($(BS_FIRMWARE_HAS_MULTITHREADING),yes) + BS_FIRMWARE_SOURCES += rtx_config.c +endif + include $(BS_DIR)/firmware.mk diff --git a/product/rdv1/mcp_ramfw/Firmware.cmake b/product/rdv1/mcp_ramfw/Firmware.cmake index 377bcdecf..02c80d1aa 100644 --- a/product/rdv1/mcp_ramfw/Firmware.cmake +++ b/product/rdv1/mcp_ramfw/Firmware.cmake @@ -17,7 +17,7 @@ set(SCP_TOOLCHAIN_INIT "GNU") set(SCP_GENERATE_FLAT_BINARY_INIT TRUE) -set(SCP_ENABLE_MULTITHREADING_INIT TRUE) +set(SCP_ENABLE_MULTITHREADING_INIT FALSE) set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) diff --git a/product/rdv1/mcp_ramfw/firmware.mk b/product/rdv1/mcp_ramfw/firmware.mk index 478041734..f3d5e0f47 100644 --- a/product/rdv1/mcp_ramfw/firmware.mk +++ b/product/rdv1/mcp_ramfw/firmware.mk @@ -9,7 +9,7 @@ # BS_FIRMWARE_CPU := cortex-m7 -BS_FIRMWARE_HAS_MULTITHREADING := yes +BS_FIRMWARE_HAS_MULTITHREADING := no BS_FIRMWARE_HAS_NOTIFICATION := yes BS_FIRMWARE_MODULE_HEADERS_ONLY := \ power_domain \ @@ -25,13 +25,16 @@ BS_FIRMWARE_MODULES := \ mcp_platform BS_FIRMWARE_SOURCES := \ - rtx_config.c \ config_armv7m_mpu.c \ config_clock.c \ config_pl011.c \ config_timer.c \ config_gtimer.c +ifeq ($(BS_FIRMWARE_HAS_MULTITHREADING),yes) + BS_FIRMWARE_SOURCES += rtx_config.c +endif + ifeq ($(BUILD_HAS_DEBUGGER),yes) BS_FIRMWARE_MODULES += debugger_cli BS_FIRMWARE_SOURCES += config_debugger_cli.c diff --git a/product/rdv1/scp_ramfw/firmware.mk b/product/rdv1/scp_ramfw/firmware.mk index 819432ab1..30b4c1fa1 100644 --- a/product/rdv1/scp_ramfw/firmware.mk +++ b/product/rdv1/scp_ramfw/firmware.mk @@ -6,7 +6,7 @@ # BS_FIRMWARE_CPU := cortex-m7 -BS_FIRMWARE_HAS_MULTITHREADING := yes +BS_FIRMWARE_HAS_MULTITHREADING := no BS_FIRMWARE_HAS_NOTIFICATION := yes BS_FIRMWARE_USE_NEWLIB_NANO_SPECS := no BS_FIRMWARE_HAS_FAST_CHANNELS := yes @@ -44,7 +44,6 @@ BS_FIRMWARE_SOURCES := \ config_system_power.c \ config_sid.c \ config_system_info.c \ - rtx_config.c \ config_armv7m_mpu.c \ config_pl011.c \ config_power_domain.c \ @@ -68,4 +67,8 @@ BS_FIRMWARE_SOURCES := \ config_dvfs.c \ config_scmi_perf.c +ifeq ($(BS_FIRMWARE_HAS_MULTITHREADING),yes) + BS_FIRMWARE_SOURCES += rtx_config.c +endif + include $(BS_DIR)/firmware.mk diff --git a/product/rdv1mc/scp_ramfw/CMakeLists.txt b/product/rdv1mc/scp_ramfw/CMakeLists.txt index 933118784..10010acca 100755 --- a/product/rdv1mc/scp_ramfw/CMakeLists.txt +++ b/product/rdv1mc/scp_ramfw/CMakeLists.txt @@ -20,7 +20,6 @@ target_include_directories( target_sources( rdv1mc-bl2 PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/config_system_power.c" - "${CMAKE_CURRENT_SOURCE_DIR}/rtx_config.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_armv7m_mpu.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_power_domain.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_ppu_v1.c" diff --git a/product/rdv1mc/scp_ramfw/Firmware.cmake b/product/rdv1mc/scp_ramfw/Firmware.cmake index b61d27cf9..0b99234d4 100755 --- a/product/rdv1mc/scp_ramfw/Firmware.cmake +++ b/product/rdv1mc/scp_ramfw/Firmware.cmake @@ -17,7 +17,7 @@ set(SCP_TOOLCHAIN_INIT "GNU") set(SCP_GENERATE_FLAT_BINARY_INIT TRUE) -set(SCP_ENABLE_MULTITHREADING_INIT TRUE) +set(SCP_ENABLE_MULTITHREADING_INIT FALSE) set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) diff --git a/product/rdv1mc/scp_ramfw/firmware.mk b/product/rdv1mc/scp_ramfw/firmware.mk index 11cf8adcc..7ad210a68 100644 --- a/product/rdv1mc/scp_ramfw/firmware.mk +++ b/product/rdv1mc/scp_ramfw/firmware.mk @@ -6,7 +6,7 @@ # BS_FIRMWARE_CPU := cortex-m7 -BS_FIRMWARE_HAS_MULTITHREADING := yes +BS_FIRMWARE_HAS_MULTITHREADING := no BS_FIRMWARE_HAS_NOTIFICATION := yes BS_FIRMWARE_USE_NEWLIB_NANO_SPECS := yes BS_FIRMWARE_HAS_FAST_CHANNELS := yes @@ -44,7 +44,6 @@ BS_FIRMWARE_SOURCES := \ config_system_power.c \ config_sid.c \ config_system_info.c \ - rtx_config.c \ config_armv7m_mpu.c \ config_pl011.c \ config_power_domain.c \ @@ -68,4 +67,8 @@ BS_FIRMWARE_SOURCES := \ config_dvfs.c \ config_scmi_perf.c +ifeq ($(BS_FIRMWARE_HAS_MULTITHREADING),yes) + BS_FIRMWARE_SOURCES += rtx_config.c +endif + include $(BS_DIR)/firmware.mk diff --git a/product/sgi575/scp_ramfw/Firmware.cmake b/product/sgi575/scp_ramfw/Firmware.cmake index efea0b858..aa64674cd 100644 --- a/product/sgi575/scp_ramfw/Firmware.cmake +++ b/product/sgi575/scp_ramfw/Firmware.cmake @@ -12,7 +12,7 @@ set(SCP_TOOLCHAIN_INIT "GNU") set(SCP_GENERATE_FLAT_BINARY TRUE) -set(SCP_ENABLE_MULTITHREADING_INIT TRUE) +set(SCP_ENABLE_MULTITHREADING_INIT FALSE) set(SCP_ENABLE_RESOURCE_PERMISSIONS_INIT TRUE) set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) diff --git a/product/sgi575/scp_ramfw/firmware.mk b/product/sgi575/scp_ramfw/firmware.mk index 904565d59..904164a5e 100644 --- a/product/sgi575/scp_ramfw/firmware.mk +++ b/product/sgi575/scp_ramfw/firmware.mk @@ -9,7 +9,7 @@ # BS_FIRMWARE_CPU := cortex-m7 -BS_FIRMWARE_HAS_MULTITHREADING := yes +BS_FIRMWARE_HAS_MULTITHREADING := no BS_FIRMWARE_HAS_NOTIFICATION := yes BS_FIRMWARE_HAS_RESOURCE_PERMISSIONS := yes BS_FIRMWARE_USE_NEWLIB_NANO_SPECS := no @@ -53,7 +53,6 @@ BS_FIRMWARE_MODULES := \ resource_perms BS_FIRMWARE_SOURCES := \ - rtx_config.c \ config_armv7m_mpu.c \ config_pl011.c \ config_cmn600.c \ @@ -85,4 +84,8 @@ BS_FIRMWARE_SOURCES := \ config_scmi_power_domain.c \ config_resource_perms.c +ifeq ($(BS_FIRMWARE_HAS_MULTITHREADING),yes) + BS_FIRMWARE_SOURCES += rtx_config.c +endif + include $(BS_DIR)/firmware.mk diff --git a/product/synquacer/module/synquacer_memc/include/ddr_init.h b/product/synquacer/module/synquacer_memc/include/ddr_init.h index a569e02b2..b9f5be34f 100644 --- a/product/synquacer/module/synquacer_memc/include/ddr_init.h +++ b/product/synquacer/module/synquacer_memc/include/ddr_init.h @@ -10,8 +10,10 @@ #include "synquacer_mmap.h" -#include -#include +#ifdef HAS_RTOS +# include +# include +#endif #include #include diff --git a/product/synquacer/module/synquacer_memc/src/synquacer_ddr.c b/product/synquacer/module/synquacer_memc/src/synquacer_ddr.c index f189a3f81..e7d469276 100644 --- a/product/synquacer/module/synquacer_memc/src/synquacer_ddr.c +++ b/product/synquacer/module/synquacer_memc/src/synquacer_ddr.c @@ -11,7 +11,9 @@ #include "synquacer_ddr.h" #include "synquacer_mmap.h" -#include +#ifdef HAS_RTOS +# include +#endif #include #include diff --git a/product/synquacer/module/synquacer_system/src/mod_synquacer_system.c b/product/synquacer/module/synquacer_system/src/mod_synquacer_system.c index 658bfba2e..dc770e5b3 100644 --- a/product/synquacer/module/synquacer_system/src/mod_synquacer_system.c +++ b/product/synquacer/module/synquacer_system/src/mod_synquacer_system.c @@ -120,9 +120,11 @@ static int synquacer_system_start(fwk_id_t id) FWK_LOG_INFO("[SYNQUACER SYSTEM] Request system initialization."); +#ifdef BUILD_HAS_MULTITHREADING status = fwk_thread_create(FWK_ID_MODULE(FWK_MODULE_IDX_SYNQUACER_SYSTEM)); if (status != FWK_SUCCESS) return status; +#endif req = (struct fwk_event){ .id = FWK_ID_EVENT( diff --git a/product/synquacer/scp_ramfw/CMakeLists.txt b/product/synquacer/scp_ramfw/CMakeLists.txt index 3f1e72785..7a184a26a 100644 --- a/product/synquacer/scp_ramfw/CMakeLists.txt +++ b/product/synquacer/scp_ramfw/CMakeLists.txt @@ -17,7 +17,10 @@ target_include_directories( synquacer-bl2 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../include" "${CMAKE_CURRENT_SOURCE_DIR}" - "${CMAKE_SOURCE_DIR}/contrib/cmsis/git/CMSIS/RTOS2/RTX/Include1") + "${CMAKE_SOURCE_DIR}/contrib/cmsis/git/CMSIS/RTOS2/RTX/Include1" + "${CMAKE_SOURCE_DIR}/contrib/cmsis/git/CMSIS/RTOS2/RTX/Include" + "${CMAKE_SOURCE_DIR}/contrib/cmsis/git/CMSIS/RTOS2/Include" + "${CMAKE_SOURCE_DIR}/contrib/cmsis/git/CMSIS/RTOS2/RTX/Source") target_sources( synquacer-bl2 @@ -39,14 +42,12 @@ target_sources( "${CMAKE_CURRENT_SOURCE_DIR}/config_synquacer_memc.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_system_power.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_timer.c" - "${CMAKE_CURRENT_SOURCE_DIR}/rtx_config.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_scmi_power_domain.c") -if(SCP_ENABLE_MULTITHREADING) - target_sources(synquacer-bl2 - PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/rtx_config.c") - target_link_libraries(synquacer-bl2 PRIVATE cmsis::rtos2-rtx) -endif() +# Include RTOS dependencies. +target_sources(synquacer-bl2 + PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/rtx_config.c") +target_link_libraries(synquacer-bl2 PRIVATE cmsis::rtos2-rtx) # # Some of our firmware includes require CMSIS. diff --git a/product/synquacer/scp_ramfw/Firmware.cmake b/product/synquacer/scp_ramfw/Firmware.cmake index 582108b67..7ff437afa 100644 --- a/product/synquacer/scp_ramfw/Firmware.cmake +++ b/product/synquacer/scp_ramfw/Firmware.cmake @@ -17,7 +17,7 @@ set(SCP_TOOLCHAIN_INIT "GNU") set(SCP_GENERATE_FLAT_BINARY_INIT TRUE) -set(SCP_ENABLE_MULTITHREADING_INIT TRUE) +set(SCP_ENABLE_MULTITHREADING_INIT FALSE) set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) diff --git a/product/synquacer/scp_ramfw/firmware.mk b/product/synquacer/scp_ramfw/firmware.mk index 2614748a0..1bbaaab06 100644 --- a/product/synquacer/scp_ramfw/firmware.mk +++ b/product/synquacer/scp_ramfw/firmware.mk @@ -6,7 +6,7 @@ # BS_FIRMWARE_CPU := cortex-m3 -BS_FIRMWARE_HAS_MULTITHREADING := yes +BS_FIRMWARE_HAS_MULTITHREADING := no BS_FIRMWARE_HAS_NOTIFICATION := yes BS_FIRMWARE_USE_NEWLIB_NANO_SPECS := yes @@ -17,6 +17,9 @@ DEFINES += SET_PCIE_NON_SECURE #DEFINES += CA53_USE_F_UART INCLUDES += $(OS_DIR)/RTX/Include1 +INCLUDES += $(OS_DIR)/RTX/Include +INCLUDES += $(OS_DIR)/Include +INCLUDES += $(OS_DIR)/RTX/Source BS_FIRMWARE_MODULES := \ @@ -45,6 +48,7 @@ BS_FIRMWARE_MODULES := \ BS_FIRMWARE_SOURCES := \ + rtx_config.c \ config_armv7m_mpu.c \ config_ccn512.c \ config_clock.c \ @@ -63,7 +67,6 @@ BS_FIRMWARE_SOURCES := \ config_synquacer_memc.c \ config_system_power.c \ config_timer.c \ - rtx_config.c \ config_scmi_power_domain.c include $(BS_DIR)/firmware.mk diff --git a/product/tc0/scp_ramfw/CMakeLists.txt b/product/tc0/scp_ramfw/CMakeLists.txt index 1cfdd3f05..141208dc4 100644 --- a/product/tc0/scp_ramfw/CMakeLists.txt +++ b/product/tc0/scp_ramfw/CMakeLists.txt @@ -20,7 +20,6 @@ target_include_directories( target_sources( tc0-bl2 PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/config_system_power.c" - "${CMAKE_CURRENT_SOURCE_DIR}/rtx_config.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_armv7m_mpu.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_pl011.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_power_domain.c" diff --git a/product/tc0/scp_ramfw/Firmware.cmake b/product/tc0/scp_ramfw/Firmware.cmake index d847ad4c2..ad1cbfe72 100644 --- a/product/tc0/scp_ramfw/Firmware.cmake +++ b/product/tc0/scp_ramfw/Firmware.cmake @@ -17,7 +17,7 @@ set(SCP_TOOLCHAIN_INIT "GNU") set(SCP_GENERATE_FLAT_BINARY_INIT TRUE) -set(SCP_ENABLE_MULTITHREADING_INIT TRUE) +set(SCP_ENABLE_MULTITHREADING_INIT FALSE) set(SCP_ENABLE_NOTIFICATIONS_INIT TRUE) diff --git a/product/tc0/scp_ramfw/firmware.mk b/product/tc0/scp_ramfw/firmware.mk index d54811887..b24e89c7d 100644 --- a/product/tc0/scp_ramfw/firmware.mk +++ b/product/tc0/scp_ramfw/firmware.mk @@ -6,7 +6,7 @@ # BS_FIRMWARE_CPU := cortex-m3 -BS_FIRMWARE_HAS_MULTITHREADING := yes +BS_FIRMWARE_HAS_MULTITHREADING := no BS_FIRMWARE_HAS_NOTIFICATION := yes BS_FIRMWARE_HAS_RESOURCE_PERMISSIONS := yes BS_FIRMWARE_USE_NEWLIB_NANO_SPECS := yes @@ -46,7 +46,6 @@ endif BS_FIRMWARE_SOURCES := \ config_system_power.c \ - rtx_config.c \ config_armv7m_mpu.c \ config_pl011.c \ config_power_domain.c \ @@ -76,4 +75,8 @@ ifeq ($(BS_FIRMWARE_HAS_RESOURCE_PERMISSIONS),yes) BS_FIRMWARE_SOURCES += config_resource_perms.c endif +ifeq ($(BS_FIRMWARE_HAS_MULTITHREADING),yes) + BS_FIRMWARE_SOURCES += rtx_config.c +endif + include $(BS_DIR)/firmware.mk diff --git a/tools/build_system/firmware.mk b/tools/build_system/firmware.mk index e4f215457..2ecc2767b 100644 --- a/tools/build_system/firmware.mk +++ b/tools/build_system/firmware.mk @@ -182,19 +182,21 @@ HEADER_STANDARD_MODULES := $(filter $(BS_FIRMWARE_MODULE_HEADERS_ONLY), \ HEADER_PRODUCT_MODULES := $(filter $(BS_FIRMWARE_MODULE_HEADERS_ONLY), \ $(ALL_PRODUCT_MODULES)) +ifneq ($(findstring $(BS_FIRMWARE_CPU),$(ARMV8A_CPUS)),) + INCLUDES += $(OS_DIR)/Include + INCLUDES += $(FREERTOS_DIR)/../../Source/include + INCLUDES += $(FREERTOS_DIR)/../../Source/portable/GCC/ARM_CA53_64_Rcar +else + INCLUDES += $(OS_DIR)/RTX/Source + INCLUDES += $(OS_DIR)/RTX/Include + INCLUDES += $(OS_DIR)/../Core/Include +endif + ifeq ($(BS_FIRMWARE_HAS_MULTITHREADING),yes) BUILD_SUFFIX := $(MULTHREADING_SUFFIX) BUILD_HAS_MULTITHREADING := yes - ifneq ($(findstring $(BS_FIRMWARE_CPU),$(ARMV8A_CPUS)),) - INCLUDES += $(OS_DIR)/Include - INCLUDES += $(FREERTOS_DIR)/../../Source/include - INCLUDES += $(FREERTOS_DIR)/../../Source/portable/GCC/ARM_CA53_64_Rcar - else - INCLUDES += $(OS_DIR)/RTX/Source - INCLUDES += $(OS_DIR)/RTX/Include - INCLUDES += $(OS_DIR)/../Core/Include - endif + else BUILD_HAS_MULTITHREADING := no endif -- GitLab