- Jun 28, 2022
-
-
Brett Warren authored
Mocks are provided for all framework files providing function prototypes. Other framework files are excluded as their generated mocks are only stubs, and their inclusion may mislead that they provide mocked functions when they do not (macro functions in particular may mislead in this way, as these can't currently be mocked automatically). Signed-off-by:
Brett Warren <brett.warren@arm.com> Change-Id: Ie1e5605c4ce625d6eeb797b18771c92de53fe113
-
Brett Warren authored
To enable the generation of framework mocks, stripable macros have been added and modified. Regexes for macros with parameters have been appended to remove the parameters as well as the macro name. Signed-off-by:
Brett Warren <brett.warren@arm.com> Change-Id: I83f1bf7a53a472a2f4206cff75a4764f0c3d73cb
-
Brett Warren authored
The address of the cfg.yml file in unit_test/ is provided as the default value for this flag. This enables a more ergonomic use of gm.rb, reducing boilerplate arguments, for example: gm.rb -m mocks/ -f file_to_mock.h Signed-off-by:
Brett Warren <brett.warren@arm.com> Change-Id: I1d772f741e40663ca31a04234437c4b46444e9d1
-
Brett Warren authored
This enables the use of gm.rb in directories other than its own, particularly in test/ directories under modules. Change-Id: Iced3e0146b9baf214be456ddc2c155524852fa3c Signed-off-by:
Brett Warren <brett.warren@arm.com>
-
Brett Warren authored
When using the mocked version of a file, the real source needs to be removed and replaced with the mocked sources. For certain files such as fwk_notification some build flags need to be enabled for proper function. Macros are provided to bundle the required steps together. Signed-off-by:
Brett Warren <brett.warren@arm.com> Change-Id: If625b39baed2f03b07d6b0589844ef0df2bb2d95
-
Brett Warren authored
New dependencies are added via contrib/cmock: - CMock, a mock/stub generator and runtime, designed for use with: - Unity Test, a simple unit test framework built for C. These are integrated into the project via unit_test, which provides: - configuration for the framework, including project-wide mocks - tools for generating new mocks - cmake build system configuration allowing modules to be added to the test framework - doccumentation instructing how to configure and run the test suite and add new module test directories. The new test framework can be built and run via the 'mod_test' target, and it is also run in conjuction with framework tests under the existing 'test' target (to build framework tests independently, use 'fwk_test' target). Signed-off-by:
srevad01 <sreehari.vadlamudi@arm.com> Signed-off-by:
Brett Warren <brett.warren@arm.com> Change-Id: I6174ca8bb78f6fd34ed71d300873ce5de5a5d27b
-
Brett Warren authored
Upcoming unit testing patches autogenerate mock files which shouldn't be subject to the usual code style checks. Module-specific mocks will be held in "module/*/test/mocks", so an expanded glob is used to exclude all of these directories. Signed-off-by:
Brett Warren <brett.warren@arm.com> Change-Id: I840ebce8d14344d625476cde9fd1fd71501af475
-
Brett Warren authored
is_valid_directory was not recognising excluded directories because of faulty logic, this is rectified here. Signed-off-by:
Brett Warren <brett.warren@arm.com> Change-Id: I6f278f45f4a21122a3a9586fc1f1f47387533391
-
Brett Warren authored
Allow python files outside of tools/ to be checked. Signed-off-by:
Brett Warren <brett.warren@arm.com> Change-Id: I27b0c9f6bf51cc1608862f54af73bcd6a15e4076
-
Brett Warren authored
Signed-off-by:
Brett Warren <brett.warren@arm.com> Change-Id: I4319394a1f83db3d6f755a3194e2b327542e23d0
-
Nishant Sharma authored
Add support to publish a list of application CPUs that should not be used on the platform. The MPID of such CPUs are put together into a isolated CPU list and published via SDS. Typical reasons for isolating certain CPUs include faulty CPUs being identified or restricting the number of CPUs available for use on the platform. The isolated CPUs list is supplied from the platform system module's config data. This list is then published via the SDS to allow the next stages of boot software to obtain the list of CPUs to isolate. Signed-off-by:
Nishant Sharma <nishant.sharma@arm.com> Change-Id: I6f7d1045ea98ad4f33ae13bc6014dfd0768692c6
-
Nishant Sharma authored
Update CPU info in SDS. The CPU info contains the logical ID of the primary boot CPU on the platform and this is picked up from the platform system module's context information. Signed-off-by:
Nishant Sharma <nishant.sharma@arm.com> Change-Id: Ib9085e04c63509f3af36aff4dbdf8ae274c48648
-
Nishant Sharma authored
Primary CPU number is hardcoded at multiple places and so this makes it difficult to use a different CPU as the primary CPU. So add support to specify the primary CPU's MPID number via platform config and calculate logical number during runtime. Signed-off-by:
Nishant Sharma <nishant.sharma@arm.com> Change-Id: Ifb15f1525de44baabb9038050478b301c9d272b6
-
Nishant Sharma authored
Validate the return value of the messaging_stack_ready function and print error message on an error in updating the feature flags via SDS. Signed-off-by:
Nishant Sharma <nishant.sharma@arm.com> Change-Id: Ie933aba4b30485d288321ac7df68ccee6393d3f1
-
Nishant Sharma authored
Simplify the definition of SDS structure ID enum values by using a new macro 'SDS_STRUCT_ID'. This macro appends the SDS ID value and the major version of the SDS structure ID. Signed-off-by:
Nishant Sharma <nishant.sharma@arm.com> Change-Id: I124b9df5377e43c219083a5d3e68fc7742af3cc4
-
Vijayenthiran Subramaniam authored
Add support for RD-N2 MultiChip patform variant. This variant is a quad chip platform where the chips are connected via a high speed CCIX link. Each chip has 4 clusters. The "PLATFORM_VARIANT" value is set to 2. In addition to this, increase the chip address space to 64 TiB to account for the new changes in the increase in the address bus width in the rdn2 variants. Signed-off-by:
Nishant Sharma <nishant.sharma@arm.com> Signed-off-by:
Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com> Change-Id: I01256b9b254fa656676f08715c53350fac8b1bcc
-
- Jun 27, 2022
-
-
Masami Hiramatsu authored
Add FWU Multi Bank Update and boot BL2 from FIP image support for SynQuacer platform. When the DSW 3-4 is on, SynQuacer platform will decode FWU metadata and platform metadata to choose the active bank of the FIP image and boot BL2 from it. This also enables the platform trial boot, which count up the boot counter in the platform metadata, and when it reaches to the limit (== 3) it switch back to the previous active bank. This counter will stop when the BL33 (typically U-Boot) clears the counter. Signed-off-by:
Jassi Brar <jaswinder.singh@linaro.org> Signed-off-by:
Masami Hiramatsu <masami.hiramatsu@linaro.org> Signed-off-by:
Masahisa Kojima <masahisa.kojima@linaro.org> Change-Id: I00b9c932fac5b4a9a231fcf2a050b766abefed61
-
Nicola Mazzucato authored
The FastChannels functionality was introduced a while back to support SCMI FastChannels as per SCMI spec v2.0. At that time only the Performance protocol could advertise such support. Now with the recent version 3.1[1] of the SCMI spec,also the Power Capping protocol can support FastChannels. It is now time to reflect which protocol the current FastChannel support refers to, by adding _SCMI_PERF_ to its definition. So: - SCP_ENABLE_FAST_CHANNELS becomes SCP_ENABLE_SCMI_PERF_FAST_CHANNELS - BUILD_HAS_FAST_CHANNELS becomes BUILD_HAS_SCMI_PERF_FAST_CHANNELS This will allow precise inclusion of protocol-specific support for SCMI FastChannels. As a reminder, the CMake build option will become: make -f Makefile.cmake \ MODE=<mode> \ TOOLCHAIN=<toolchain> \ PRODUCT=<product> \ EXTRA_CONFIG_ARGS+="-DSCP_ENABLE_SCMI_PERF_FAST_CHANNELS=yes" [1]https://developer.arm.com/documentation/den0056/d/?lang=en Change-Id: I0ec4ffbc1ad5d797b9543aa979a98cceb267a798 Signed-off-by:
Nicola Mazzucato <nicola.mazzucato@arm.com>
-
- Jun 24, 2022
-
-
Leandro Belli authored
This patch change event type to lights events for temperature readings in order to remove overhead and memory consumption. Signed-off-by:
Leandro Belli <leandro.belli@arm.com> Change-Id: I65c31f3707956809959da052b742ab9e4ca056c6
-
Leandro Belli authored
This patch adds temperature protection functionality that allows to configure two different alarms, warning and critical. They can be configured independently but the critical level threshold should be above the one for warning. Also when an alarm is triggered it is reported to the driver through an API. A common case of use is that the first threshold would be used as first line of action against over temperature, while the second could be used to initiate a sequence of hard power-off. Signed-off-by:
Leandro Belli <leandro.belli@arm.com> Change-Id: I76304abd2feafcfc15836870ea9f5b4cfd5cc550
-
Leandro Belli authored
Currently there is support for one temperature sensor and a number of actors are controlled by one single loop. There are however examples of applications where it could be necessary to have multiple independent thermal domains. This patch adds the option to add multiple thermal management controllers using different temperature sensors, in order to have multiple loops working at the same time. Signed-off-by:
Leandro Belli <leandro.belli@arm.com> Change-Id: I92182e9ddd21d8d35ec1e47a7286eea482288508
-
- Jun 23, 2022
-
-
Tomás Agustín González Orlando authored
Configure a MHUv3 LCP->SCP connection via a doorbell channel. Signed-off-by:
Tomás Agustín González Orlando <tomasagustin.gonzalezorlando@arm.com> Change-Id: Ibffae0185e81427903f163a0102bb35fdd8c7901
-
Tomás Agustín González Orlando authored
Define some possible MHUv3 connections and devices in rdfremont and set the addresses of all the Mailbox (MBX) and PostBox (PBX) in the LCP. These addresses will be used by the MHUv3 driver to perform MHUv3 operations like triggering a message transfer. Change-Id: I106fcf6889877cc9e8d096ab34764d7b8b148e69 Signed-off-by:
Tomás Agustín González Orlando <tomasagustin.gonzalezorlando@arm.com>
-
Girish Pathak authored
This change adds support for MHUv3 hardware. This is intended to be used to communicate between: SCP <---> AP SCP <---> RSS SCP <---> LCP SCP <---> MCP SCP <---> SCP MCP <---> MCP LCP <---> AP At the moment only doorbell channels are supported. Change-Id: I62d09503ab77612c01b4a99707867fa68c024f6a Co-authored-by:
Tomás Agustín González Orlando <tomasagustin.gonzalezorlando@arm.com> Signed-off-by:
Girish Pathak <girish.pathak@arm.com> Signed-off-by:
Tomás Agustín González Orlando <tomasagustin.gonzalezorlando@arm.com>
-
Ahmed Gadallah authored
Add uart pl011 configuration to validate uart on LCP. Signed-off-by:
Ahmed Gadallah <ahmed.gadallah@arm.com> Change-Id: I8707b97d5dde4b427b6a4faf539ab7dbf9a3ab70
-
Ahmed Gadallah authored
Add timer and interrupt configuration to validate interrupt handling in the LCP. Signed-off-by:
Ahmed Gadallah <ahmed.gadallah@arm.com> Change-Id: I01bbf36890914fb17bab4c6eecb8b1d26b830996
-
Chuyue Luo authored
Update readme.md so that the reference to SCMI points to v3.1 instead of v1.0. Signed-off-by:
Chuyue Luo <Chuyue.Luo@arm.com> Change-Id: I85d04d53b1da3c45f58c15f1524c6e9e4ad07a03
-
- Jun 22, 2022
-
-
Sudeep Holla authored
Some compilers complain the return type error as below. | arch/none/host/include/arch_helpers.h: In function ‘arch_interrupts_disable’: | arch/none/host/include/arch_helpers.h:25:1: error: no return statement in | function returning non-void [-Werror=return-type] Fix the same. Change-Id: Ia3343fbbea57ae783b272f0c4db05a7060256f85 Signed-off-by:
Sudeep Holla <sudeep.holla@arm.com>
-
Katherine Vincent authored
The changes in this patch are to introduce a typedef, which will allow either signed or unsigned sensor values. This new typedef is used to be able to conditionally support int64, allowing the introduction of negative value sensors. It will be automatically enabled with SCMI-sensor-v2, however it can also be enabled on its own using with the cmake tag SCP_ENABLE_SENSOR_SIGNED_VALUE. Existing platforms that cannot handle signed values will return FWK_E_SUPPORT when the above build options are set. Signed-off-by:
Katherine Vincent <katherine.vincent@arm.com> Change-Id: I0f24e31d4bc3861b1724d814e866ef97f09c4b88
-
- Jun 06, 2022
-
-
Sahil authored
N1SDP SoC platform specific build option, SCP_N1SDP_SENSOR_LIB_PATH has been added which imports the n1sdp sensor library. Also, added a readme.md file which describes this option. Signed-off-by:
sahil <sahil@arm.com> Change-Id: Ie99d738a54d881bcb315e36efad5cb0b58d5a847
-
Sahil authored
Replace Sensor Library with dummy Interface Implementation, allowing relocation of closed source IP outside SCP codebase. Signed-off-by:
sahil <sahil@arm.com> Change-Id: I6041f903e75dfaa804c2c299e033de6ae8b3ad65
-
- May 25, 2022
-
-
Ahmed Gadallah authored
Adding rdfremont along with an LCP target consisting of armv8m MPU configuration example. Signed-off-by:
Ahmed Gadallah <ahmed.gadallah@arm.com> Change-Id: Ibe77e1a62ded74caca6b1bfa04cee51e565127b7
-
Ahmed Gadallah authored
The ARMv8-M architecture comes with a different MPU than the previous ARMv7-M architecture. Hence a new MPU module is added in this change to support it. Signed-off-by:
Ahmed Gadallah <ahmed.gadallah@arm.com> Change-Id: Ie8d4ff62c05186ec141114ac2508799f0f81a867
-
Ahmed Gadallah authored
ARMv7-M support arch directory is modified to support both ARMv7-M and ARMv8-M. The modified directory is renamed from armv7-m to arm-m. This in turn affects the SCP_ARCHITECTURE cmake flag which was previuosly set to armv7-m for armv7m targets and now would be set by arm-m. The ARMv8-M support does not include the security extension. This ARMv8-M support includes support for ARMv8-M Mainline and ARMv8.1-M Mainline. ARMv8.1-M Mainline is supported by GCC ver 10.1 onwards, the latest version can be found here: https://developer.arm.com/tools-and-software/open-source-software /developer-tools/gnu-toolchain/gnu-rm/downloads in addition to LLVM ver 13.0.0 onwards and ArmClang ver 6.14 onwards. Signed-off-by:
Ahmed Gadallah <ahmed.gadallah@arm.com> Change-Id: I7bdac6c80efbb56a0874daad794111376866a46c
-
Ahmed Gadallah authored
Update to CMSIS pack 5.8.0 is done as it supports cortex-m55 where the current version 5.2.0 doesn't. Additionally __VTOR_PRESENT macro is defined for all platforms that use cortex-m3/7 as it is required by the new cmsis pack. Signed-off-by:
Ahmed Gadallah <ahmed.gadallah@arm.com> Change-Id: Id7f4119c04b04bbedc0c5e4b5a5b9fa8832bc357
-
- May 23, 2022
-
-
Vincent Guittot authored
When the scp is running as an application or sub-system, there is a need to terminate the process gracefully. Let introduce the deinit and stop sequence to allow the modules and their elements to cleanup and release resources before terminating the process Add a new fwk_arch_deinit() to loop on modules and stop them. Signed-off-by:
Vincent Guittot <vincent.guittot@linaro.org> Signed-off-by:
Tarek El-Sherbiny <tarek.el-sherbiny@arm.com> Change-Id: I9da1486b8096043f94845c06980d3e7ae373b9e0
-
Tarek El-Sherbiny authored
Update the interface of fwk_interrupt_global_{enable|disable} functions to save and restore the current interrupt state. Add a new framework interface to get current interrupt context state: - fwk_is_interrupt_context() No functional change expected to current arch. Signed-off-by:
Vincent Guittot <vincent.guittot@linaro.org> Signed-off-by:
Tarek El-Sherbiny <tarek.el-sherbiny@arm.com> Change-Id: I61569d1ff21bbc7d7bcc82eee32fc6d7d28b8469
-
Tarek El-Sherbiny authored
Some architectures don't want to loop indefinitly in the same context of the initialization. Let architecture decides if it wants to stay in the initialization context or finish processing the events raised during init and return. No functional changes expected for current arch. fwk_process_event_queue() can then be called to process the pending events. Signed-off-by:
Vincent Guittot <vincent.guittot@linaro.org> Signed-off-by:
Tarek El-Sherbiny <tarek.el-sherbiny@arm.com> Change-Id: I626c0159e3bde38c4ed4d2931ed993cc5a5821dc
-
- May 19, 2022
-
-
Nicola Mazzucato authored
The inclusion of the notification_id member is now dependent on whether or not BUILD_HAS_SCMI_NOTIFICATIONS build flag is set. But in the reset_domain implementation, the functionality associated with that identifier is conditional to the availability of framework notifications BUILD_HAS_NOTIFICATION. This creates a misalignment of build option for the correct use of the reset domain features. Replace BUILD_HAS_SCMI_NOTIFICATIONS with BUILD_HAS_NOTIFICATION for the inclusion of the notification_id. Change-Id: If596761faae827a9a7b3fe4101b36039b0fb2720 Signed-off-by:
Nicola Mazzucato <nicola.mazzucato@arm.com>
-
Nicola Mazzucato authored
The HAL API type that should be returned by whoever binds to the reset module should be `mod_reset_domain_api` and not `mod_reset_domain_drv_api`. Fix the type. Change-Id: Ice6690c575db43af42e2c2ca014968aeb3c7bd96 Signed-off-by:
Nicola Mazzucato <nicola.mazzucato@arm.com>
-