- Jul 30, 2025
-
-
Md Golam Tanvir Zim authored
Current SCMI Notification which is implemented in SCMI layer has an inherent limitation that it doesn't support custom notification payload which is required when the agents have their own distinct identification of the resources, i.e. SCMI clocks. The new implementation has moved the SCMI notification processing from SCMI to SCMI protocol layers so that each protocol can maintain and customize its own notification table and payload, respectively. Signed-off-by:
Md Golam Tanvir Zim <mdgolamtanvir.zim@arm.com> Change-Id: I0b11d6bc4dde0c8c148a4d274422ac11e753a781
-
Md Golam Tanvir Zim authored
Updated `find_agent_scmi_clock_idx()` to take a physical device index (`phy_dev_idx`) instead of a `fwk_id_t` clock id, for ease of use in SCMI notification implementation. No functional changes intended. Signed-off-by:
Md Golam Tanvir Zim <mdgolamtanvir.zim@arm.com> Change-Id: I2890507b40b0056f0c2689ee6bc6114e7e8f6cf1
-
Introduce configuration for the integration_test and test_timer modules, only if the debugger is enabled globally. Signed-off-by:
Athul P Satheesan <athul.ps@arm.com>
-
The fvp_baser_aemv8r/test-timer module is used to test the timer module to showcase the functionality of integration test module. There is only one sample test case added, which is a basic integration-test case for the timer module to verify one-shot alarm triggering and callback functionality. The test asserts correct callback execution using Unity framework. Signed-off-by:
Athul P Satheesan <athul.ps@arm.com>
-
Define the FVP BaseR generic timer Add configuration for the debugger CLI and include the module only if the debugger is enabled globally. Signed-off-by:
Athul P Satheesan <athul.ps@arm.com>
-
The arch_interrupt_set_isr_irq_param() implementation previously rejected registration of an interrupt handler if the parameter value was 0. This prevented valid use cases such as debugger CLI modules which legitimately use 0 as the callback parameter. Signed-off-by:
Athul P Satheesan <athul.ps@arm.com>
-
Introduce a module to simplify running integration tests using the Unity test framework. It allows tests to be executed either automatically on boot or via the debugger CLI. Tests triggered via the debugger CLI are scheduled to run on the main event loop. Signed-off-by:
Peter Hoyes <peter.hoyes@arm.com> Signed-off-by:
Athul P Satheesan <athul.ps@arm.com>
-
Certain SCP-firmware framework functionality (notifications, time, buffered logging) requires initializers that run before arm_main(), using the FWK_CONSTRUCTOR attribute. Newlib provides __libc_init_array to iterate and call these, so add this to arch_crt0.s, so long as Newlib is being used. __libc_init_array calls _init, which is defined in crti, which is linked by default by GCC but must be manually linked when using Clang. Therefore add the path of crti to the Clang linker flags. Add a note to aarch64.md about the Newlib requirement to use FWK_CONSTRUCTOR attributes. Signed-off-by:
Peter Hoyes <peter.hoyes@arm.com>
-
Certain parts of the debugger CLI assume that pointers are 32-bits. Replace uint32_t with uintptr_t in these instances. Fix cppcheck issues related to const pointers. Signed-off-by:
Peter Hoyes <peter.hoyes@arm.com>
-
The AArch64 interrupt interface is currently inconsistent with the Arm-m interface in that it returns FWK_SUCCESS if the current interrupt ID is queried outside of an interrupt handler. Add logic to arch_interrupt_get_current to return FWK_E_STATE instead in this condition. Signed-off-by:
Peter Hoyes <peter.hoyes@arm.com>
-
SCMI notification should be sent to the subscribers for a specific operation on a specific resource. But, the current SCMI notification has a defect, it sends notification for a specific operation on any resource, resulting in sending same notification multiple times to the subscribers. The looping around element/resource list in SCMI Notification table is redundant, hence omitted to fix the defect. Signed-off-by:
Md Golam Tanvir Zim <mdgolamtanvir.zim@arm.com> Change-Id: I025a77393a9396f7723827eaf4e6ce3973dd1ac7
-
Change the optee module includes to be private instead of public, so they don't get used in every build, which can result in compile failures as /core/include/ doesn't exit. For some reason this behaviour isn't deterministic. Signed-off-by:
Ross Burton <ross.burton@arm.com> Signed-off-by:
Frazer Carsley <frazer.carsley@arm.com>
-
- Jul 29, 2025
-
-
Wei-Chia Su authored
Applied -ffile-prefix-map to all bare-metal toolchain files (GNU, Clang, ARMClang) to normalize source and build paths at compile time. This change ensures: - Consistent and relative paths in debug info and __FILE__ macros - Cleaner objdump output and improved compatibility with coverage tools Signed-off-by:
Wei-Chia Su <Wei-Chia.Su@arm.com>
-
- Jul 01, 2025
-
-
Valentin Caron authored
Since commit 15e2236a ("mod/scmi_clock: Restructuring SCMI-clk module") SCMI clock structures have changed. Adapt this product to the new SCMI clock description structures. Signed-off-by:
Valentin Caron <valentin.caron@foss.st.com>
-
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>
-