SCP-firmware merge requestshttps://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests2024-01-29T12:01:42Zhttps://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/886tc2: Cut the SDS region in half2024-01-29T12:01:42ZTamas Bantc2: Cut the SDS region in halfRSS needs to share data with AP during early boot over shared memory to support DPE. Reuse the original, single SDS region to accommodate two SDS regions instead:
- Bottom half: RSS-AP
- Upper half: SCP-APRSS needs to share data with AP during early boot over shared memory to support DPE. Reuse the original, single SDS region to accommodate two SDS regions instead:
- Bottom half: RSS-AP
- Upper half: SCP-APhttps://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/631Add new features for supporting OS based architecture2023-12-14T13:36:44ZDarryl GreenAdd new features for supporting OS based architecture*Created by: vingu-linaro*
This patchset adds 3 new features that will be used by new architecture and product not yet pushed.
- Remove the infinite loop from arch init so the process of events can be done somewhere else which can be t...*Created by: vingu-linaro*
This patchset adds 3 new features that will be used by new architecture and product not yet pushed.
- Remove the infinite loop from arch init so the process of events can be done somewhere else which can be the context where we receive the event or a dedicated thread context
- Add an atomic dirver structure that provide minimal atomic operation when SCP firmware runs on top of an OS which already handles interrupt controller
- Add a stop sequence that can be called before destroying the SCP firmwarehttps://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/890requirements.txt: update python module requirements file2023-12-14T11:22:53ZDarryl Greenrequirements.txt: update python module requirements file*Created by: leandro-arm*
This patch updates `requirements.txt` file since dataclasses are now part of all non-deprecated `python3` versions. `clang-format` is also updated to a newer version.
Change-Id: I51bbe8fd5c3399aab9fcbb37ea...*Created by: leandro-arm*
This patch updates `requirements.txt` file since dataclasses are now part of all non-deprecated `python3` versions. `clang-format` is also updated to a newer version.
Change-Id: I51bbe8fd5c3399aab9fcbb37eab48d2f7243f64chttps://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/732fixes missing-prototypes reports2023-12-14T11:18:14ZDarryl Greenfixes missing-prototypes reports*Created by: etienne-lms*
Few changes in framework and some modules to address build issues reported when building ith OP-TEE, its build environment and toolchain. I have not covered all modules, only those currently embedded in the opt...*Created by: etienne-lms*
Few changes in framework and some modules to address build issues reported when building ith OP-TEE, its build environment and toolchain. I have not covered all modules, only those currently embedded in the optee-* products.https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/524RFC: SCMI server for OP-TEE, Zephyr and Vhost User2023-12-14T10:27:22ZDarryl GreenRFC: SCMI server for OP-TEE, Zephyr and Vhost User*Created by: vingu-linaro*
This P-R integrates the changes that we have made in SCP firmware in order to make it run as a SCMI server in:
- OP-TEE env. This has been tested on FVP arm64 and stm32. SCP-Firmware is integrated as a sub...*Created by: vingu-linaro*
This P-R integrates the changes that we have made in SCP firmware in order to make it run as a SCMI server in:
- OP-TEE env. This has been tested on FVP arm64 and stm32. SCP-Firmware is integrated as a sub-module of op_tee-os. this PR has been tested with : https://github.com/vingu-linaro/optee_os/tree/scmi-over-optee. The product/optee-fvp is used with fvp platform.
- Vhost user virtio SCMI backend. The SCP-firmware handles virtio-scmi request over a vhost user socket. This has been tested with a Linux image VM with Qemu. The product/vhost-user is built to monitor vscmi.ospm0.sock and vscmi.ospm1.sock. Additional Qemu parameter to provides:
qemu-system-aarch64 <usual qemu parameters to run rou linux image ..> -chardev socket,path=vscmi-ospm0.sock,id=vscmi -device vhost-user-scmi-device,chardev=vscmi,id=scmi -object memory-backend-file,id=mem,size=1G,mem-path=/dev/shm,share=on -numa node,memdev=mem -dtb /home/vingu/Linaro/Kernel/out/binaries/arm64/virt-scmi.dtb -global virtio-mmio.force-legacy=false. You have to create your own dtb file based on Qemu's one in order to add the scmi protocol that you want to enable in Linux.
- Virtio MMIO/ virtio SCMI device in zephyr. The SCP-firmware is used as a submodule of a zephyr app : https://github.com/vingu-linaro/mySCP-zephyr. It handles virtio-mmio request through a new virtio mmio zephyr device. This full setup is a bit more complex to put in place as it needs some changes in several other repo but i can provides the details if you are interested in. This one uses CMake
I don't expect this P-R to be merged as it is but appreciate some feedback about the way the new arch have been added in arch/none. The P-R also add 2 new features:
- add a framework stop stage to let module and element to cleanly destroy and release resource and memory. This is useful for the vhost user backend as it delete cleanly host resources
- add a context in mono threading mode. Enable to create an event list per channel. The goal is to be able to handle simultaneously and independently the requests from 2 differents channels which don't access the same resources.
https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/856adding PID controller feature for Thermal Management2023-12-08T16:48:20ZDarryl Greenadding PID controller feature for Thermal Management*Created by: hisandeepsingh*
Adding Derivative term in PI Controller .
Included the PID changes protected inside flag. Please review it and let me know if its looks good then we can do respective changes in test cases and in thermal d...*Created by: hisandeepsingh*
Adding Derivative term in PI Controller .
Included the PID changes protected inside flag. Please review it and let me know if its looks good then we can do respective changes in test cases and in thermal doc thermal_mgmt.mdhttps://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/858fwk_core: add locking around push/pop events2023-12-04T11:18:04ZDarryl Greenfwk_core: add locking around push/pop events*Created by: paulatsense*
This change adds locks around pushing/poping items to event queues.*Created by: paulatsense*
This change adds locks around pushing/poping items to event queues.https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/771[RFC] Scp 2.11 dts build rfc 0032023-11-29T11:52:30ZDarryl Green[RFC] Scp 2.11 dts build rfc 003*Created by: mikel-armbb*
RFC - for device tree config
Updated version of configuration of SCP firmware build using device tree
Contains documentation in device_tree_support.md, alongside doxygen comments in fwk_devicetree.h and ...*Created by: mikel-armbb*
RFC - for device tree config
Updated version of configuration of SCP firmware build using device tree
Contains documentation in device_tree_support.md, alongside doxygen comments in fwk_devicetree.h and fwk_dt_config_common.h. These will all appear when documentation is built.
Multiple modules supplied as worked examples, using the updated build flow - significant changes since last PR.
https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/828[experimental] rdn2: SCP and MCP supporting M55 example2023-11-28T18:20:27ZDarryl Green[experimental] rdn2: SCP and MCP supporting M55 example*Created by: leandro-arm*
This patch changes the core from M7 to M55 to MCP firmware
in RDN2 platform.
This is only intended to be use for test. Do not merge.*Created by: leandro-arm*
This patch changes the core from M7 to M55 to MCP firmware
in RDN2 platform.
This is only intended to be use for test. Do not merge.https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/784Multiple cases of explicit type casting unsigned int(uint32_t) to int2023-11-06T10:49:52ZDarryl GreenMultiple cases of explicit type casting unsigned int(uint32_t) to int*Created by: Sanchit-kumar*
Fixes #783 *Created by: Sanchit-kumar*
Fixes #783 https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/853Thermal management2023-10-02T12:40:23ZDarryl GreenThermal management*Created by: khaledAhmed-arm*
Add cold_state_power configuration to be used instead of TDP when
temperature is below `switch_on_temperature`.
To accommodate the cases where it's possible not to limit or use
different limits than TDP ...*Created by: khaledAhmed-arm*
Add cold_state_power configuration to be used instead of TDP when
temperature is below `switch_on_temperature`.
To accommodate the cases where it's possible not to limit or use
different limits than TDP for the distributable power when
the system is "cold."
Configure cold state power of thermal management in TC2.
https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/778module/mhu3: fix bind function2023-08-07T10:14:45ZDarryl Greenmodule/mhu3: fix bind function*Created by: girishpathak*
In the mhu3_bind() function, the transport_api pointer variable is passed to the fwk_module_bind() instead of the pointer address. This causes an error when the framework bind function checks if the API pointe...*Created by: girishpathak*
In the mhu3_bind() function, the transport_api pointer variable is passed to the fwk_module_bind() instead of the pointer address. This causes an error when the framework bind function checks if the API pointer is NULL. This patch fixes this error.
Change-Id: I774b0ec5104232918b73602b54ce74a86617b185https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/798unit_test: Add template for Quick Start2023-06-01T20:03:45ZDarryl Greenunit_test: Add template for Quick Start*Created by: nicola-mazzucato-arm*
It's been some time since we introduced unit testing in the SCP-firmware project.
Even though the guidelines are pretty useful to get started, we want to simplify even further the adoption of unit tes...*Created by: nicola-mazzucato-arm*
It's been some time since we introduced unit testing in the SCP-firmware project.
Even though the guidelines are pretty useful to get started, we want to simplify even further the adoption of unit testing for the contributors who may still not familiar with it.
Thus, we provide a template that can be used as a first copy-paste example which, along with the instructions, can provide a quick starter into unit testing development.https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/762module: timer: re-enable timer in isr if no alarm2023-05-19T00:30:05ZDarryl Greenmodule: timer: re-enable timer in isr if no alarm*Created by: Joe-Zhucg*
32 bits timer uses interrupt to support 64 bits counter*Created by: Joe-Zhucg*
32 bits timer uses interrupt to support 64 bits counterhttps://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/786fwk: fix missing references for `FWK_LOG_LEVEL_TRACE`2023-04-24T14:59:40ZDarryl Greenfwk: fix missing references for `FWK_LOG_LEVEL_TRACE`*Created by: leandro-arm*
This patch addresses an issue where a reference was missing after renaming from `FWK_LOG_LEVEL_DEBUG` to `FWK_LOG_LEVEL_TRACE`. The fix ensures all references are properly updated.
Change-Id: Icf1ea1386bb9...*Created by: leandro-arm*
This patch addresses an issue where a reference was missing after renaming from `FWK_LOG_LEVEL_DEBUG` to `FWK_LOG_LEVEL_TRACE`. The fix ensures all references are properly updated.
Change-Id: Icf1ea1386bb9cbaf4f04b875d3194c5b18cda2bdhttps://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/773scmi_clock: Return the SCMI agent's state instead of the physical state2023-03-22T23:59:25ZDarryl Greenscmi_clock: Return the SCMI agent's state instead of the physical state*Created by: mohamedasaker-arm*
The current method of reading the clock state calls the Clock HAL directly, which can cause inconsistencies between what is being read by Clock Hal and what is being set in the SCMI agent state table.
To...*Created by: mohamedasaker-arm*
The current method of reading the clock state calls the Clock HAL directly, which can cause inconsistencies between what is being read by Clock Hal and what is being set in the SCMI agent state table.
To address this, the existing `scmi_clock_get_agent_clock_state` helper function is used to read the clock state in relation to the requesting SCMI agent.
i.e. function returns the state expected by SCMI agent.
Change-Id: I8f0f00dc06eecd21803983837f3a7f27d0033723https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/767Add SECURITY.md2023-03-14T15:10:10ZDarryl GreenAdd SECURITY.md*Created by: ppadhan-arm*
Add the dedicated file SECURITY.md to indicate how to contact Arm for reporting any security issues.
This filename is recognized by GitHub:
https://docs.github.com/en/github/managing-security-vulnerabilitie...*Created by: ppadhan-arm*
Add the dedicated file SECURITY.md to indicate how to contact Arm for reporting any security issues.
This filename is recognized by GitHub:
https://docs.github.com/en/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository
Signed-off-by: Pradyumna Padhan <pradyumna.padhan@arm.com>https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/744module/scmi_sensor: reserved field must be null2023-01-12T11:21:20ZDarryl Greenmodule/scmi_sensor: reserved field must be null*Created by: vingu-linaro*
Reserved field should be considered null. SCMI compliance test reported non conformant command if reserved fields are not clear but SCMI server return success.
Unlike other reserved fields, it's not written...*Created by: vingu-linaro*
Reserved field should be considered null. SCMI compliance test reported non conformant command if reserved fields are not clear but SCMI server return success.
Unlike other reserved fields, it's not written that this one must be zeroed. I wonder if this is just a miss in the spec as most of them must be zeroed.
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/733arch: optee: fw_assert.h wrapper for fwk_expect() return value2023-01-05T09:30:58ZDarryl Greenarch: optee: fw_assert.h wrapper for fwk_expect() return value*Created by: etienne-lms*
Implements wrapper header file fwk_assert.h for optee architecture to overcome the issue building with OP-TEE. OP-TEE OS assert() function does not provide a return value resulting a compilation failure as repo...*Created by: etienne-lms*
Implements wrapper header file fwk_assert.h for optee architecture to overcome the issue building with OP-TEE. OP-TEE OS assert() function does not provide a return value resulting a compilation failure as reported in the below build traces:
/tmp/optee-3.19/build/../scp-firmware/framework/src/fwk_arch.c: In function ‘fwk_arch_init’: lib/libutils/isoc/include/assert.h:20:2: error: expected expression before ‘do’
20 | do { \
| ^~
/tmp/optee-3.19/build/../scp-firmware/framework/include/fwk_assert.h:147:35: note: in expansion of macro ‘assert’
147 | # define fwk_assert(condition) assert(condition)
| ^~~~~~
/tmp/optee-3.19/build/../scp-firmware/framework/include/fwk_assert.h:180:34: note: in expansion of macro ‘fwk_assert’
180 | # define fwk_check(condition) fwk_assert(condition)
| ^~~~~~~~~~
/tmp/optee-3.19/build/../scp-firmware/framework/include/fwk_assert.h:212:42: note: in expansion of macro ‘fwk_check’
212 | # define fwk_expect(condition) (bool)(fwk_check(condition), 1)
| ^~~~~~~~~
/tmp/optee-3.19/build/../scp-firmware/framework/src/fwk_arch.c:73:10: note: in expansion of macro ‘fwk_expect’
73 | if (!fwk_expect(status == FWK_SUCCESS)) {
| ^~~~~~~~~~
This change works around the issue by implementing a functional fwk_expect() function using OP-TEE OS standard lib libutils resources.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/739Revert "module: cmake: add option to replace modules"2022-12-12T16:19:23ZDarryl GreenRevert "module: cmake: add option to replace modules"*Created by: girishpathak*
Reverts ARM-software/SCP-firmware#737*Created by: girishpathak*
Reverts ARM-software/SCP-firmware#737