- Jul 01, 2025
-
-
Mohamed Omar Asaker authored
Fixes a bug where `domain_ctx->config` was passed to the validation function before being assigned. The correct behavior is to validate the `config` parameter first, then assign it to `domain_ctx->config` only if valid. This change updates `pcapping_core_domain_init()` to pass the received `config` parameter to `pcapping_core_check_domain_configuration()`. Assignment to `domain_ctx->config` is performed only after successful validation. A unit test has been added to ensure domain initialization fails when invalid configuration values are provided, and that the domain context remains uninitialized in such cases. Signed-off-by:
Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-
Mohamed Omar Asaker authored
The check answer the validity of the step size compared to the range (min and max). but step cannot be zero only if min and max power cap are different. Add ut for valid cap_step = 0. Signed-off-by:
Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-
- Jun 30, 2025
-
-
Ahmed Gadallah authored
Remove power limiter id and binding to a power limiter as the power capping HAL is supposed to be polled instead. Additionally add missing static keyword to relevant functions. Signed-off-by:
Ahmed Gadallah <ahmed.gadallah@arm.com>
-
- May 30, 2025
-
-
Mohamed Omar Asaker authored
Replace PRIu32-based format specifiers with standard `%u` for logging `unsigned int` values. This simplifies format strings and ensures correct output for `status`, `phase_idx`, and `__LINE__`. Signed-off-by:
Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-
Mohamed Omar Asaker authored
Ensure phase processing only occurs when the next phase index is valid. Previously, a timer could be started or a phase event sent even if the current phase was the last one, depending on the `phase_us` value. This patch adds a check to prevent processing beyond the last valid phase, ensuring safe termination of the phase sequence. Signed-off-by:
Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-
- May 29, 2025
-
-
Mohamed Omar Asaker authored
Replace incorrect `%u` format specifier with `%"PRIu32"` in the error log message when distribution fails for a domain. This ensures correct and portable formatting of `uint32_t` values across platforms. Signed-off-by:
Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-
Mohamed Omar Asaker authored
Add an early return in domain_power_distribute() for domains with no children. Leaf domains do not distribute power further, so skipping the distribution logic avoids unnecessary processing and simplifies flow. Signed-off-by:
Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-
Mohamed Omar Asaker authored
Update set_budgets() to use the power_budget field when setting limits via the controller API. The power_budget reflects the available power after internal distribution and serves as the effective limit for the next consumer. Signed-off-by:
Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-
In the current implementation, in all scmi command handler functions, get_agent_id() of `scmi_api` is being invoked multiple times redundantly, from another function and explicitly. To improve efficiency, calling `get_agent_id()` is removed from `scmi_clock_get_clock_device_entry()` and called explicitly. Signed-off-by:
Md Golam Tanvir Zim <mdgolamtanvir.zim@arm.com> Change-Id: Ic44adfd6435cd426651cfad3823f2a34bffe59da
-
Add unit test to verify the `init()` and `element_init()` of SCMI-clk module. Signed-off-by:
Md Golam Tanvir Zim <mdgolamtanvir.zim@arm.com> Change-Id: I91b4325f73037c99b2f97d7989263ad6d7690c9c
-
The current implementation of agent table in SCMI-clock doesn't follow the standard SCP framework. It is now restructured to do so, i.e. each agent is treated as an element as the agent table is initialized in the standard element_init() function. Signed-off-by:
Md Golam Tanvir Zim <mdgolamtanvir.zim@arm.com> Change-Id: I424152ebaf9b43d2c6946aa38034c947ad088fb6
-
New tests have been added to cover the functions 'transport_transmit' and 'transport_respond'. Signed-off-by:
Matthew Wellings <matthew.wellings@arm.com>
-
In the function transport_transmit, dereferencing of the 'buffer' pointer to access member variables was occurring before the check to ensure the pointer was not null. There was also a missing bounds check to ensure'size' was not greater than max_payload_size. In the function transport_respond a call is made to fwk_str_memcpy passing the 'buffer' pointer as a parameter was made before the check to ensure the pointer was not null. There was also a missing bounds check to ensure'size' was not greater than max_payload_size. This did not cause an issue as there is no code path that leads to these functions being called with ‘buffer’ set to null. Signed-off-by:
Matthew Wellings <matthew.wellings@arm.com>
-
- May 27, 2025
-
-
Mohamed Omar Asaker authored
Previously, get_dev_ctx was restricted to accepting only element IDs due to an assert check. However, in release builds, it functions correctly with both element and sub-element IDs. This change updates the assert to explicitly allow sub-element IDs as well. Signed-off-by:
Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-
Display include directory warning when building, even when not in verbose mode. The include directory warning occurred when an include directory was added in a CMakeLists.txt file which pointed to a directory not present in the repository structure. Signed-off-by:
James Chesterman <James.Chesterman@arm.com>
-
There was a warning appearing when building SCP in verbose mode. It was due to include directories pointing to directories which do not exist in the repository structure. Remove references to these. Signed-off-by:
James Chesterman <James.Chesterman@arm.com>
-
Leandro Belli authored
Changed `WARN_AS_ERROR` to `FAIL_ON_WARNINGS_PRINT` to ensure all warnings are displayed while treating them as errors. Signed-off-by:
Leandro Belli <leandro.belli@arm.com>
-
Leandro Belli authored
- Updated the module name to "Power Budget Distributor" in `power_distributor.md`. - Added `MOD_SCMI_PROTOCOL_DAYNAMIC_PAYLOAD_SIZE` to define the maximum dynamic payload size in `mod_scmi_std`. - Fixed comment formatting for the `state_table` pointer in `mod_scmi_clock.h`. - Fixed a missing closing documentation block in `mod_scmi_telemetry.h`. Signed-off-by:
Leandro Belli <leandro.belli@arm.com>
-
Leandro Belli authored
- Removed the unused `driver` parameter from the `fwk_arch_init`. - Added missing documentation for the `fwk_arch_interrupt_init`. - Fixed incorrect file path for `fwk_test.h` in the input list. Signed-off-by:
Leandro Belli <leandro.belli@arm.com>
-
- May 22, 2025
-
-
Katherine Vincent authored
This patch addresses an issue with a mismatch in state tracking when a set state request is raised in the power domain, and when a response from a driver is received to say this is completed. Signed-off-by:
Katherine Vincent <katherine.vincent@arm.com>
-
- May 20, 2025
-
-
Leandro Belli authored
Refactors the AP context module to store the configuration pointer directly in the module context (`ctx.config`). This simplifies access throughout the module and avoids repeated calls to `fwk_module_get_data()`. Also adds a safeguard to prevent `wait_on_notifications` from being decremented below zero. Includes unit tests for init, start, and notification handling. Signed-off-by:
Leandro Belli <leandro.belli@arm.com>
-
- May 15, 2025
-
-
Refactor fwk_get_element_sub_element_count to return a status code and store the actual count in a pointer. This avoids returning -ve value due to any wrong configuration and use -ve values improperly. Signed-off-by:
Mina Aziz <mina.aziz@arm.com>
-
Refactor fwk_get_element_count to return a status code and store the actual count in a pointer. This avoids returning -ve value due to any wrong configuration and use -ve values improperly. Signed-off-by:
Mina Aziz <mina.aziz@arm.com>
-
MGI interrupts should be cleared by setting the corresponding MGI_IRQ_STAT bits to 1, but the current implementation sets them to 0 instead. This commit fixes the wrong bit mask to clear MGI interrupts. Signed-off-by:
Noe Galea-Sevilla <noe.galea-sevilla@arm.com>
-
- May 14, 2025
-
-
Leandro Belli authored
Introduce a Power Management API to the SCMI Power Capping Request module, allowing direct setting of power limits without asynchronous responses. This patch updates unit tests to validate the new API. Signed-off-by:
Leandro Belli <leandro.belli@arm.com>
-
Mahmoud Elsabbagh authored
Implement support in the Power capping HAL for sending notifications: - When the power averaging interval (PAI) changes. - When the average power consumption of the power capping domain, measured over PAI, is outside the threshold values set by the agent for the power capping domain. Also add support for setting low/high power thresholds using mod_pcapping_set_power_thresholds(), which allows agents to define when measurement-based notifications should occur for the power capping domain. Update scmi_power_capping to allow agents to subscribe to and process these new notifications. Signed-off-by:
Mahmoud Elsabbagh <mahmoud.elsabbagh@arm.com>
-
- May 13, 2025
-
-
Mahmoud Elsabbagh authored
- Upgraded base image from Ubuntu 20.04 to 22.04 - Updated toolchain versions: - arm-none-eabi: 10.3 → 13.3.rel1 - doxygen: 1.8.13 → 1.13.2 - Added support for GCC aarch64-linux-gnu and arm-none-linux-gnueabihf - Added separate LCOV installation stage Signed-off-by:
Mahmoud Elsabbagh <mahmoud.elsabbagh@arm.com>
-
- May 08, 2025
-
-
Configure SCMI_RESET_DOMAIN, RESET_DOMAIN, OPTEE_RESET modules to control OP-TEE resets through the SCMI protocol. Signed-off-by:
Valentin Caron <valentin.caron@foss.st.com>
-
Configure SCMI_CLOCK, CLOCK, OPTEE_CLOCK modules to control OP-TEE clocks through the SCMI protocol. Signed-off-by:
Valentin Caron <valentin.caron@foss.st.com>
-
Add the support of SCP-FW on STM32MP2x. Configure OPTEE_MBX and MSG_SMT modules to receive SCMI requests. This patch is a skeleton, protocols will be added in next patches. Signed-off-by:
Valentin Caron <valentin.caron@foss.st.com>
-
This function is called by OP-TEE before arch_main_init() to configure dynamically SCP-Fw resources. OP-TEE parse "scmi" device-tree node to fill the scpfw_config structure with SCMI resources before calling scmi_configure(). In "scmi" node, all SCMI resources are described, sorted by protocol, and for each agent. scpfw_config structure is defined in OP-TEE: core/lib/scmi-server/include/scmi_agent_configuration.h Signed-off-by:
Valentin Caron <valentin.caron@foss.st.com>
-
Solve compilation issues get up by gcc by adding void in function/declaration without any argument: - error: function declaration isn’t a prototype - error: old-style function definition Signed-off-by:
Valentin Caron <valentin.caron@foss.st.com>
-
Mahmoud Elsabbagh authored
This change restores and modernizes tools/ci.py to enable developers to run all public CI checks locally, consistent with the current Gitlab CI pipeline. - Added support for all relevant code-quality checks. - Integrated product build support using check_build.build_products() - Added stage-based execution: --stage code-quality, unit-testing, build, or all Signed-off-by:
Mahmoud Elsabbagh <mahmoud.elsabbagh@arm.com>
-
- May 07, 2025
-
-
James Chesterman authored
Promoting a variable of the type uint8_t to uint64_t by casting would first promote it to a signed integer, before converting it to uint64_t. This has been fixed by making a separate uint64_t variable to put the information in. Signed-off-by:
James Chesterman <James.Chesterman@arm.com>
-
- May 06, 2025
-
-
Wei-Chia Su authored
Updated bitmask calculation functions to use UINT64_C(0x1) for shifts, ensuring 64-bit integer operations and preventing overflow issues when shifting large values. Signed-off-by:
Wei-Chia Su <Wei-Chia.Su@arm.com>
-
- May 02, 2025
-
-
Add TC3 to list of products to build for both the check_build.py script and the build-test.yml for the CI. Signed-off-by:
James Chesterman <James.Chesterman@arm.com>
-
Remove Vagrant file and all its references for documentation and docker. Signed-off-by:
Mahmoud Elsabbagh <mahmoud.elsabbagh@arm.com>
-
This will fix a potential null dereference in the SCMI module, to ensure protocol_api is not dereferenced without a check. Signed-off-by:
Mahmoud Elsabbagh <mahmoud.elsabbagh@arm.com>
-
Mahmoud Elsabbagh authored
Fix logically dead code error, where ctx is just assigned and then checked if its equal NULL, so the if statement is dead code as ctx is never equall NULL. Signed-off-by:
Mahmoud Elsabbagh <mahmoud.elsabbagh@arm.com>
-
James Chesterman authored
Attempting to perform a left shift of more than 31 bits causes undefined behaviour. Add a cast to make the bit shift input 64 bits. Signed-off-by:
James Chesterman <James.Chesterman@arm.com>
-