SCP-firmware merge requestshttps://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests2022-12-11T13:19:42Zhttps://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/723scmi_clock: Update comments about source of event2022-12-11T13:19:42ZDarryl Greenscmi_clock: Update comments about source of event*Created by: BY1994*
Hi, I want to change the comments in scmi_clock slightly. In current status, event source is missing for the first comment.
When I looked module/scmi_perf/src/mod_scmi_perf.c file (2304 - 2310 lines), the comments ...*Created by: BY1994*
Hi, I want to change the comments in scmi_clock slightly. In current status, event source is missing for the first comment.
When I looked module/scmi_perf/src/mod_scmi_perf.c file (2304 - 2310 lines), the comments helped me a lot to understand the codes. So I want to suggest changing the comments as the same format.
Any feedback is welcome including suggestion of commit message.https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/657RFC v2 - using devicetree to configure SCP firmware2022-10-21T14:17:54ZDarryl GreenRFC v2 - using devicetree to configure SCP firmware*Created by: mikel-armbb*
These patches contain an update to the firmware cmake build system that integrates a step to process device tree files in order to populate config arrays.
The library for reading .dts files has been copied f...*Created by: mikel-armbb*
These patches contain an update to the firmware cmake build system that integrates a step to process device tree files in order to populate config arrays.
The library for reading .dts files has been copied from the Zephyr project, as have some of the macro generation headers.
The processing script dt_gen_config.py is based largely on the similar script in the Zephyr project, with changes to work with the SCP frameworks.
There are now multiple modules that have been converted to use device tree configuration,.
These are used in the product/juno/scp_ramfw.
There are two new cmake list variables used to select modules to be configured by .dts in the product Firmware.cmake :-
SCP_DT_CONFIG_MODULES_STD - for statically configuration tables.
SCP_DT_CONFIG_MODULES_DYN - for dynamically configuration tables.
When a module is selected in one of these lists the relevant config_xxx.c (e.g. config_pl011.c) file needs to be dropped from the CMakelists file for the product.
These lists are then processed by the common framework build files to call the .dts operations.
For any converted module, once selected for .dts support, an additional config_dt_<module>.c is built alongside the main <module> common code. This replaces the data tables from the original files that are linked via the automatic generation in cmake.
The data tables are built from macros generated by the ,dts interpretation code.
The clock module in the Juno scp_ramfw product uses a dynamic table setup to make runtime changes.
The main Zephyr devicetree library has been moved to the /contrib part of the file structure, and the build process updated to correctly use it
https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/444scmi: fix psci protocol-count assertions2022-10-20T08:28:11ZDarryl Greenscmi: fix psci protocol-count assertions*Created by: HelloGravity*
I got assertion errors when trying to work with mod_scmi with a PSCI agent with `protocol_count=0`.
It turned out the assertion itself has a bug, it does not allow `scmi_ctx.protocol_count` to be equal to `...*Created by: HelloGravity*
I got assertion errors when trying to work with mod_scmi with a PSCI agent with `protocol_count=0`.
It turned out the assertion itself has a bug, it does not allow `scmi_ctx.protocol_count` to be equal to `scmi_ctx.config->dis_protocol_count_psci`.
The reason for the assertion is so that the subtraction `scmi_ctx.protocol_count - scmi_ctx.config->dis_protocol_count_psci` would not be negative. But no reason it cannot be 0.
It worked after fixing these 2 assertions.
https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/400Minor fix in cpu.mk of bug causing an intended error message to not be displayed2022-10-20T08:27:54ZDarryl GreenMinor fix in cpu.mk of bug causing an intended error message to not be displayed*Created by: yaronm-hailo*
When building without setting `BS_FIRMWARE_CPU` to a valid option I was not getting the intended error message because of a typo in the error line in `cpu.mk` - it should be `$(error ...)` and not `$(erro ...)`*Created by: yaronm-hailo*
When building without setting `BS_FIRMWARE_CPU` to a valid option I was not getting the intended error message because of a typo in the error line in `cpu.mk` - it should be `$(error ...)` and not `$(erro ...)`https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/399fwk_module: add debug message for module processing2022-10-20T08:27:06ZDarryl Greenfwk_module: add debug message for module processing*Created by: iwishguo*
When SCP firmware hangs in development, it is not very easy to find
which module and which stage of the module causes the hang.
Add debug messages using cli_printf() in the module processing
framework to make...*Created by: iwishguo*
When SCP firmware hangs in development, it is not very easy to find
which module and which stage of the module causes the hang.
Add debug messages using cli_printf() in the module processing
framework to make it easier to find which piece of code dies.
Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com>https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/714module: Rearrange module paths in CMakeLists.txt2022-09-30T14:25:47ZDarryl Greenmodule: Rearrange module paths in CMakeLists.txt*Created by: anukou*
A bunch of SCP module paths were not listed in the intended alphabetical order in module/CMakeLists.txt.
Rearranged the ones that were not in order.
Signed-off-by: Anurag Koul <anurag.koul@arm.com>
Change-Id:...*Created by: anukou*
A bunch of SCP module paths were not listed in the intended alphabetical order in module/CMakeLists.txt.
Rearranged the ones that were not in order.
Signed-off-by: Anurag Koul <anurag.koul@arm.com>
Change-Id: Ie71f916a9193f5f068ab838f12149044f1b339d6https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/699tc1: update internal ip names of the cores to their public ip names2022-08-25T13:08:37ZDarryl Greentc1: update internal ip names of the cores to their public ip names*Created by: rupsin01*
*Created by: rupsin01*
https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/693product/tc2: Add support for TC2/RSS boot flow2022-08-09T14:06:28ZDarryl Greenproduct/tc2: Add support for TC2/RSS boot flow*Created by: tintuthomas-arm*
Add TC2 BL1 module that implements the boot flow, with MHU (doorbell)
signalling to/from RSS.
BL1 will signal the RSS to indicate that startup is complete, then wait
for another signal from RSS before ...*Created by: tintuthomas-arm*
Add TC2 BL1 module that implements the boot flow, with MHU (doorbell)
signalling to/from RSS.
BL1 will signal the RSS to indicate that startup is complete, then wait
for another signal from RSS before powering on the AP CPUs.
Signed-off-by: Anders Dellien <anders.dellien@arm.com>
Change-Id: I2747bd0d07e867764c9a498ae87a985f4b6b7035https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/688Master sp805 wdt2022-08-08T09:03:41ZDarryl GreenMaster sp805 wdt*Created by: tonykn-arm*
*Created by: tonykn-arm*
https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/671Experimental: Merge PR #670 (Transport Module)2022-07-26T09:16:07ZDarryl GreenExperimental: Merge PR #670 (Transport Module)*Created by: girishpathak*
This PR is raised to merge PR #670. We need this experimental PR because of the recent change to CI nodes that updated the lcov tool which seems to be incompatible with other tools.
Apart from commits in P...*Created by: girishpathak*
This PR is raised to merge PR #670. We need this experimental PR because of the recent change to CI nodes that updated the lcov tool which seems to be incompatible with other tools.
Apart from commits in PR #670. This PR includes commit [Makefile.cmake: Disable code coverage](https://github.com/ARM-software/SCP-firmware/pull/671/commits/6ff1eb59f194abc407d4acdd52d5b51041c043ad) which temporarily disables this feature. Since code coverage tool is still in development phase and it executes only on sample unit test cases, we can safely disable this tool to progress merging of PR #670.
https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/665Enable CPPC on cmake build and update SCMI perf configuration.2022-06-28T12:12:12ZDarryl GreenEnable CPPC on cmake build and update SCMI perf configuration.*Created by: Pranav-Madhu*
This patch series enable CPPC support with cmake build system. This series also fixup the performance domain count in the configuration data.*Created by: Pranav-Madhu*
This patch series enable CPPC support with cmake build system. This series also fixup the performance domain count in the configuration data.https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/600RFC request for initial work on adding device tree support for firmware build2022-06-20T15:29:31ZDarryl GreenRFC request for initial work on adding device tree support for firmware build*Created by: mikel-armbb*
These patches contain an update to the firmware cmake build system that integrates a step to process device tree files in order to populate config arrays.
The library for reading .dts files has been copied f...*Created by: mikel-armbb*
These patches contain an update to the firmware cmake build system that integrates a step to process device tree files in order to populate config arrays.
The library for reading .dts files has been copied from the Zephyr project, as have some of the macro generation headers.
The processing script dt_gen_config.py is based largely on the similar script in the Zephyr project, with changes to work with the SCP frameworks.
There is a single example included with this set of a arm,pl011 device implemented as a .dts configured element.
This is implemented for the product/juno/scp_ramfw.
There are two new cmake list variables used to select modules to be configured by .dts in the product Firmware.cmake :-
SCP_DT_CONFIG_MODULES_STD - for statically configuration tables.
SCP_DT_CONFIG_MODULES_DYN - for dynamically configuration tables.
When a module is selected in one of these lists the relevant config_xxx.c (e.g. config_pl011.c) file needs to be dropped from the CMakelists file for the product.
These lists are then processed by the common framework build files to call the .dts operations.
For the pl011 module, once selected for .dts support, an additional config_dt_pl011.c is built alongside the main pl011 common module code. This replaces the data tables from the original files that are linked via the automatic generation in cmake.
The data tables are built from macros generated by the ,dts interpretation code.
The pl011 can be a static configuration module, but an example of using this as a dynamic module is provided to demonstrate how this mechanism will work for modules that require this configuration.
Issues:-
1. Not yet clear what is the best way to import the code from the Zephyr project. At present this is a simple copy and where required modify. The python library itself is intended to be separated as a standalone open-source library, but the timeframe on this is not clear. Some of the code reused from the Zephyr library has Apache 2 licencing.
2. Overall layout for .dts and .yaml bindings files will need to be revised as more modules are converted.
3. This is still a manual process - modules must be selected and appropriate .c files added / dropped.
https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/652Add ARMv8-M and ARMv8.1-M support2022-05-24T17:20:02ZDarryl GreenAdd ARMv8-M and ARMv8.1-M support*Created by: AhmedImbabyGadallah*
*Created by: AhmedImbabyGadallah*
https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/643Ag/lcp fremont2022-04-25T15:46:08ZDarryl GreenAg/lcp fremont*Created by: AhmedImbabyGadallah*
*Created by: AhmedImbabyGadallah*
https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/605themal management fixes2022-03-31T11:32:06ZDarryl Greenthemal management fixes*Created by: tgonzalezorlandoarm*
*Created by: tgonzalezorlandoarm*
https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/628code_rules: Cosmetic changes for MISRAC-2012 section2022-03-31T11:32:03ZDarryl Greencode_rules: Cosmetic changes for MISRAC-2012 section*Created by: tgonzalezorlandoarm*
Regroups rules, fix indentation and minor cosmetics.
Change-Id: Ia07098af32c1b8cfe6fdf69c5a3082062bbccc55
Co-authored-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
Signed-off-by: Nicola Mazzucato...*Created by: tgonzalezorlandoarm*
Regroups rules, fix indentation and minor cosmetics.
Change-Id: Ia07098af32c1b8cfe6fdf69c5a3082062bbccc55
Co-authored-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
Signed-off-by: Tomás Agustín González Orlando <tomasagustin.gonzalezorlando@arm.com>https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/623scp: Update firmware version to 2.10.02022-03-28T08:10:38ZDarryl Greenscp: Update firmware version to 2.10.0*Created by: brett-warren-arm*
This patch updates the SCP-firmware version to 2.10.0.*Created by: brett-warren-arm*
This patch updates the SCP-firmware version to 2.10.0.https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/532Experimental: products: Disable multi-threading for all products2022-03-14T13:23:38ZDarryl GreenExperimental: products: Disable multi-threading for all products*Created by: girishpathak*
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 withou...*Created by: girishpathak*
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 <girish.pathak@arm.com>https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/238RFC: clock: add run reference counting2022-01-27T19:39:09ZDarryl GreenRFC: clock: add run reference counting*Created by: jeromebrunet*
Hi,
I'm working on platform on which several agent might be using the same clock. In this configuration, it is crucial that a call to set_state() with MOD_CLOCK_STATE_STOPPED does not stop the clock if anoth...*Created by: jeromebrunet*
Hi,
I'm working on platform on which several agent might be using the same clock. In this configuration, it is crucial that a call to set_state() with MOD_CLOCK_STATE_STOPPED does not stop the clock if another agent still use the clock.
I have discussed this topic with Sudeep Holla by mail. He asked me to raise a bug but I gave it a shot a tried to implement something.
I have tested this on Juno by hacking Linux CCF to manually send set_state() request to the SCP firmware. It seems to work as expected:
* Call to set_state() will increment or decrement the run_count depending on the requested state.
* Calls to the underlying clock driver is only made when the run count transition from 0 to 1 or 1 to 0.
What is missing:
On start, the initial clock state is check to intitialize the run_count to 0 or 1.
This init does not support delayed response ATM. It will be added before the actual submission
But first, lets see if this proposal is going in the right direction :)
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/573pd/juno: Simplify get state request2021-12-21T16:53:29ZDarryl Greenpd/juno: Simplify get state request*Created by: tarek-arm*
This patch reduces the overhead of queuing events for retrieving
the power state of a domain. It also removes a call to the
deprecated function fwk_thread_put_event_and_wait().
Signed-off-by: Tarek El-Sherbi...*Created by: tarek-arm*
This patch reduces the overhead of queuing events for retrieving
the power state of a domain. It also removes a call to the
deprecated function fwk_thread_put_event_and_wait().
Signed-off-by: Tarek El-Sherbiny <tarek.el-sherbiny@arm.com>
Change-Id: Id336ce6ccf1023f37970ae562faa5a4ccedb4642