SCP-firmware merge requestshttps://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests2023-11-14T15:57:42Zhttps://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/872Pre-requisite patches for extending RD-Fremont platform support2023-11-14T15:57:42ZDarryl GreenPre-requisite patches for extending RD-Fremont platform support*Created by: ghost*
This pull request contains the set of patches that are pre-requisite patches for extending RD-Fremont platform support with updates for SCP, MCP and LCP.*Created by: ghost*
This pull request contains the set of patches that are pre-requisite patches for extending RD-Fremont platform support with updates for SCP, MCP and LCP.https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/871PPU Max Cores Per Cluster Count Configuration2023-11-14T11:17:36ZDarryl GreenPPU Max Cores Per Cluster Count Configuration*Created by: katvin01*
These patches change the number of cores per cluster to become part of the module configuration, and introduce initial unit tests for PPU_V1 to cover this.
They also include some code styling changes, found du...*Created by: katvin01*
These patches change the number of cores per cluster to become part of the module configuration, and introduce initial unit tests for PPU_V1 to cover this.
They also include some code styling changes, found during the process of this change. https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/870module/power_domain: Refactor the power domain module2023-11-22T16:02:40ZDarryl Greenmodule/power_domain: Refactor the power domain module*Created by: Jmc18134*
This PR breaks up the power domain module to make things more readable and easier to modify.
Notification-related functions are now only included when notifications are enabled. State-related utilities and notif...*Created by: Jmc18134*
This PR breaks up the power domain module to make things more readable and easier to modify.
Notification-related functions are now only included when notifications are enabled. State-related utilities and notifications have been moved to their own files.https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/869unit_test: List modules in alphabetical order2023-11-14T16:42:14ZDarryl Greenunit_test: List modules in alphabetical order*Created by: nicola-mazzucato-arm*
Reorder the UNIT_MODULE list in alphabetical order to ease the search of modules and explicitly request to maintain such ordering.
No functional change as consequence of this patch, only cosmetics.
...*Created by: nicola-mazzucato-arm*
Reorder the UNIT_MODULE list in alphabetical order to ease the search of modules and explicitly request to maintain such ordering.
No functional change as consequence of this patch, only cosmetics.
Change-Id: Ibf8f4fe63c2071e455d5216fe41668a8a6ad8390https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/868doc: add interface documentation2023-11-13T11:34:21ZDarryl Greendoc: add interface documentation*Created by: leandro-arm*
The documentation for the build system has been updated to include information about interfaces. Interfaces provide a common set of functionalities and define APIs and data structures for modules to implement s...*Created by: leandro-arm*
The documentation for the build system has been updated to include information about interfaces. Interfaces provide a common set of functionalities and define APIs and data structures for modules to implement specific features. The updated documentation explains the folder structure and usage of interfaces.
Change-Id: Ib9965fb23b46fd974f777b73c60dc25af4da1e74https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/867amu_mmap: `AMU` memory mapped driver2023-11-13T17:14:37ZDarryl Greenamu_mmap: `AMU` memory mapped driver*Created by: mohamedasaker-arm*
Add a memory-mapped `AMU` driver which implements the `AMU` interface when the
`AMU` counters are memory-mapped into the `SCP` memory.
*Created by: mohamedasaker-arm*
Add a memory-mapped `AMU` driver which implements the `AMU` interface when the
`AMU` counters are memory-mapped into the `SCP` memory.
https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/866interface: `AMU`2023-11-12T14:27:43ZDarryl Greeninterface: `AMU`*Created by: mohamedasaker-arm*
Add AMU interface definition.
The interface introduces an API to get the `AMU` counters of CPUs.
The definition of `AMU` interface to be implemented by multiple
drivers as counters access from SCP ...*Created by: mohamedasaker-arm*
Add AMU interface definition.
The interface introduces an API to get the `AMU` counters of CPUs.
The definition of `AMU` interface to be implemented by multiple
drivers as counters access from SCP differs across platforms.
https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/865product/rdn2: IONCICLK ctrl/div and TCU/IONCI clock enable should be RW2023-11-10T10:39:44ZDarryl Greenproduct/rdn2: IONCICLK ctrl/div and TCU/IONCI clock enable should be RW*Created by: lstarret*
IONCICLK_CTRL/IONCICLK_DIV1 were incorrectly marked as RO and WO, which breaks the read/modify/write behavior in mod_pik_clock.c. Also updated TCUx_CLK_ENABLE and NCIx_CLK_ENABLE R/W attributes, even though not y...*Created by: lstarret*
IONCICLK_CTRL/IONCICLK_DIV1 were incorrectly marked as RO and WO, which breaks the read/modify/write behavior in mod_pik_clock.c. Also updated TCUx_CLK_ENABLE and NCIx_CLK_ENABLE R/W attributes, even though not yet referened in the existing SW.https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/864mpmm/unit_test: Add unit test for mpmm2023-11-08T14:22:03ZDarryl Greenmpmm/unit_test: Add unit test for mpmm*Created by: wenping-arm*
This patch adds unit tests for mpmm module.
Change-Id: Ibc8a7a5730cf923f4af5d34881d90f673c1fecf7*Created by: wenping-arm*
This patch adds unit tests for mpmm module.
Change-Id: Ibc8a7a5730cf923f4af5d34881d90f673c1fecf7https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/863morello: Add firmware version information to SDS2023-11-13T13:17:09ZDarryl Greenmorello: Add firmware version information to SDS*Created by: wernerlewis*
Adds a firmware information structure to the SDS region on Morello, containing Morello-specific SCP, PCC, and MCC version information. This is to provide access to this versioning in further firmware stages. Ad...*Created by: wernerlewis*
Adds a firmware information structure to the SDS region on Morello, containing Morello-specific SCP, PCC, and MCC version information. This is to provide access to this versioning in further firmware stages. Additional commit resolves I2C issues where multiple SCP2PCC requests are made in succession, such as when fetching the PCC and MCC versions.https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/862rdn2/scp_ramfw: Exclude SCMI-Perf Ops by default2023-11-06T11:11:17ZDarryl Greenrdn2/scp_ramfw: Exclude SCMI-Perf Ops by default*Created by: nicola-mazzucato-arm*
RDN2 does not require the SCMI-Perf protocol support, but only the FastChannels support.
Set SCP_TARGET_EXCLUDE_SCMI_PERF_PROTOCOL_OPS by default for the scp ramfw.
Change-Id: I38062d1e3a551c37...*Created by: nicola-mazzucato-arm*
RDN2 does not require the SCMI-Perf protocol support, but only the FastChannels support.
Set SCP_TARGET_EXCLUDE_SCMI_PERF_PROTOCOL_OPS by default for the scp ramfw.
Change-Id: I38062d1e3a551c37b6f1267fa4935ce9fa3d657dhttps://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/861TCx: Fix Resource Permissions inclusion in build2023-10-19T10:50:49ZDarryl GreenTCx: Fix Resource Permissions inclusion in build*Created by: nicola-mazzucato-arm*
Fix the CMake scripts to correctly include the Resource Permissions module in the ramfw target.
For both TC1 & TC2.*Created by: nicola-mazzucato-arm*
Fix the CMake scripts to correctly include the Resource Permissions module in the ramfw target.
For both TC1 & TC2.https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/860module/optee: Add voltage domain regulators2023-11-09T16:54:44ZDarryl Greenmodule/optee: Add voltage domain regulators*Created by: etienne-lms*
Implements an OP-TEE voltage domain regulator module for voltage domains accessed through OP-TEE voltage regulators. OP-TEE regulator framework API is described in _drivers/regulator.h_ header file [1].
The ...*Created by: etienne-lms*
Implements an OP-TEE voltage domain regulator module for voltage domains accessed through OP-TEE voltage regulators. OP-TEE regulator framework API is described in _drivers/regulator.h_ header file [1].
The module treats voltage domains with a NULL OP-TEE regulator reference as voltage domain client cannot use yet allowing the client to query information about. In such case, the domain is treated as a reserved always off zero volt fixed voltage regulator.
[1] https://github.com/OP-TEE/optee_os/blob/master/core/include/drivers/regulator.hhttps://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/859fwk_list: Add a watermark to monitor list max sizes2023-10-17T14:31:18ZDarryl Greenfwk_list: Add a watermark to monitor list max sizes*Created by: khaledAhmed-arm*
Enable queue monitors and tracing the maximum queue elements as a watermark for both isr and event queues.
To enable queue monitor and watermark for tracing, `SCP_ENABLE_FWK_EVENT_WATERMARK_TRACING` shal...*Created by: khaledAhmed-arm*
Enable queue monitors and tracing the maximum queue elements as a watermark for both isr and event queues.
To enable queue monitor and watermark for tracing, `SCP_ENABLE_FWK_EVENT_WATERMARK_TRACING` shall be true.https://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/857module/atu: add driver module for address translation unit2023-10-12T15:36:27ZDarryl Greenmodule/atu: add driver module for address translation unit*Created by: shriram-k-arm*
The Address Translation Unit(ATU) provides means to convert the logical address (32 bit LA) from the MSCP memory space to the physical address residing in the system memory.
Add a driver module for the ATU...*Created by: shriram-k-arm*
The Address Translation Unit(ATU) provides means to convert the logical address (32 bit LA) from the MSCP memory space to the physical address residing in the system memory.
Add a driver module for the ATU that provides an interface for modules to request a translation region to be mapped, unmapped or output bus attributes to be configured during the runtime phase.
Change-Id: Ic9bf58cf75c74ecc2d760e041369f3df824e1efahttps://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/855increment nest counter inside critical section2023-11-15T09:52:26ZDarryl Greenincrement nest counter inside critical section*Created by: paulatsense*
The implementation for arch_interrupts_disable is incrementing the nest counter outside the critical section. This can lead to unexpected behavior because there is no guarantee the counter will be incremented a...*Created by: paulatsense*
The implementation for arch_interrupts_disable is incrementing the nest counter outside the critical section. This can lead to unexpected behavior because there is no guarantee the counter will be incremented atomically.
This change first aquires the critical section (by disabling irqs) then increments the counter thus guarantees the counter will be incremented atomically.https://gitlab.arm.com/firmware/SCP-firmware/-/merge_requests/854Add cold-state power for thermal management2023-10-02T15:06:58ZDarryl GreenAdd cold-state power for thermal 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/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.