/SCP-firmware-master/doc/ |
A D | framework.md | 32 A product is a representation of a system that one or more firmware images 34 both a System Control Processor (SCP) and a Manageability Control Processor 36 a product may be designed such that software for a single processor is split 65 represents a software image that is built as part of a product. Each firmware 109 A module is a unit of code that performs a well-defined operation, or set of 173 For each module that is built as part of a product, a corresponding module 202 An element represents a resource that is owned or governed by a module. Each 216 Elements are defined by a structure containing a pointer to a name string, the 247 context of a module, a sub-element within the context of an element, or a module 343 one module to another. Events are issued by a source towards a target, the [all …]
|
A D | build_system.md | 5 The SCP/MCP Software build system is composed of a top-level Makefile and a 19 A product is a collection of firmware. All products are located under the 54 Modules are the building blocks of a product firmware. Modules can be 67 │ └── mod_<module>.a 79 is used when building a firmware. 111 When building a firmware and its dependencies, the 123 When building a firmware and its dependencies, the 129 When building a firmware and its dependencies, the 141 When building a firmware and its dependencies, the 147 When building a firmware and its dependencies, it is possible to enable a set [all …]
|
A D | code_rules.md | 5 the risk of bugs, a series of rules and guidelines have been created; these form 23 This project uses `cppcheck` to do a static analysis of the codebase for 24 possible programmer error and other sources of bugs. This analysis occurs as a 74 In order to provide a reference, Juno platform is taken as a first platform to 183 If a unit (header or C file) requires a header, it must include that header 222 - `const xyz_t *ptr` or `xyz_t const *ptr`, `ptr` is a pointer to a constant 236 Declare functions and variables private to a C file as static. 244 if ((a == 'a') || (x == 'x')) { 249 Parenthesis around a unary operator and its operand may be omitted: 252 if (!a || &a) { [all …]
|
A D | cmake_readme.md | 18 one firmware target at a time e.g 33 In some case like running SCP-firmware with OP-TEE, the firmware is a 41 > lib${SCP_FIRMWARE_TARGET}-all.a 45 command to build all firmwares for a product 134 There are a number of ways to configure a specific option. 197 a particular module in the firmware. 211 a build environment, please see details below. 307 If you use Visual Studio Code, you may also work directly within a 319 and test a firmware. 426 This will give you a list of the options available to you as well as a helpful [all …]
|
A D | code_style.md | 3 To maintain consistency within the SCP/MCP software source code a series of 15 All files must begin with a license header of the following form, where first 65 Conditional statements and iteration statements with a single line or 115 if ((a == 'a') || (x == 'x')) { 120 Parentheses around a unary operator and its operand may be omitted: 123 if (!a && *b) { 160 These rules do not apply to *private* headers (headers under a `src/` 171 suffix, and the final enumeration value should include a comma. 298 without a fixed ordering: 351 At a minimum: [all …]
|
A D | cmsis.md | 7 Firmware using components with a dependency on the CMSIS library will need to 8 configure CMSIS for the target device. This is done by way of a `<fmw_cmsis.h>` 51 than one firmware in a product. The build system provides no provisions for 52 sharing a configuration, but the suggested strategy is laid out below: 80 ├── a
|
A D | Doxyfile | 6 # All text after a double hash (##) is considered a comment and is placed in 9 # All text after a single hash (#) is considered a comment and will be ignored. 29 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by 44 # for a project that appears at the top of each page and should give viewer a 134 # doxygen will generate a detailed section even if there is only a brief 203 # to treat a multi-line C++ comment block as a detailed description. Set this 373 # (for instance a group of public functions) to be put as a subgroup of that 402 # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or 702 # Note that if you run doxygen from a directory containing a file called 869 # output. The symbol name can be a fully qualified name, a word, or if the [all …]
|
/SCP-firmware-master/unit_test/unity_mocks/ |
A D | unity_config.h | 11 #define UNITY_OUTPUT_CHAR(a) fwk_io_putch(fwk_io_stdout, a) argument
|
/SCP-firmware-master/module/dvfs/doc/ |
A D | module_dvfs_architecture.md | 8 This module implements a Hardware Abstraction Layer (HAL) API for DVFS 13 and limits for a DVFS/performance domain. 15 The DVFS module defines a driver interface on which it relies to read and set 27 The DVFS module uses a "fire and forget" mechanism for the `set_level`/ 36 Note that a `set_level` operation will not be retried upon failure. 43 If a DVFS/performance domain receives a `set_limits`/`set_level` request which 81 Is there a request pending already ? 106 Does the domain have a request pending, (see 3 above) ? 111 Does this request require a retry ? 138 Does the domain have a timer configured ? [all …]
|
/SCP-firmware-master/module/mhu3/doc/ |
A D | mhu3.md | 11 This is a driver module that supports MHU hardware version 3. 24 However, this can be extended to support more on a larger system with more 26 channels, on a practical system for a SCP use case, the number of doorbell
|
/SCP-firmware-master/module/mpmm/doc/ |
A D | module_mpmm.md | 19 activity workloads and switching to a different DVFS operating point. 23 Each set of cores supporting MPMM and supplied by a single rail is represented 24 by a domain. A core inside the domain is handled as sub-element. For each core, 25 there is a set of MPMM counters and threshold registers. The algorithm is split 41 state. The maximum number of cores supported in a domain is 8. 42 The entries should be provided in a numerically descending order as shown in the 48 The Threshold map is a 32-bit value. Each 4-bits represents the threshold state 51 provided in a numerically descending order at every performance limit change 58 This table is an example for a 4 cores in a domain and 3 levels of supported 72 BTC represents the maximum steady state MPMM throttling count which a platform [all …]
|
/SCP-firmware-master/module/transport/doc/ |
A D | transport.md | 10 This module implements a Hardware Abstraction Layer (HAL) API for sending and 20 The transport module defines a driver interface to transfer/receive data from 21 drivers like MHU, MHUv2, etc. It also defines a signal interface which is used 22 to notify the client module on receiving a message. 47 ### Sending a message 86 ### Receiving a message 144 ### Sending a message 182 ### Receiving a message 240 a callback function for the corresponding fast channel). 288 In order to send firmware message, a module needs to bind to the [all …]
|
/SCP-firmware-master/module/scmi_perf/doc/ |
A D | perf_plugins_handler.md | 9 The performance of a platform with respect to voltage and frequency can be 24 level, a *scalable* mechanism to insert or remove modules at compile-time is 35 A scenario where a request for a performance limit is not *affected* by any 76 call via a data structure. 80 is a "new" performance request in the FastChannels. 84 In some circumstances a plugin may needs to set a limit to the performance 88 periodic call, because of a significant performance degradation. 109 Performance while having fewer physical domains (DVFS on a cluster-basis or a 143 OS and adjusted values from a plugin. 156 It is also possible for a plugin to receive a full snapshot of the performance [all …]
|
/SCP-firmware-master/module/scmi_sensor_req/doc/ |
A D | scmi_sensor_req.md | 12 to a completer. It also receives the sensor protocol SCMI commands' responses. 15 sensor. So it is treated as if it was a sensor driver. Hence an entity that 16 requires to get a sensor value doesn't need to know if the sensor is local or 22 Requester issues a "Sensor Reading Get" command to the entity responsible of 30 involved modules starting from a client requesting sensor data until it gets 53 requester in a primary SCP which needs to get a sensor value accessed by
|
/SCP-firmware-master/ |
A D | contributing.md | 7 - Make sure you have a [GitHub account](https://github.com/signup/free). 8 - [Fork](https://help.github.com/articles/fork-a-repo) 11 - Create a local topic branch based on the 18 [Git guidelines](http://git-scm.com/book/ch5-2.html) for contributing to a 23 enhancement, please address it on a separate topic branch. 24 - Avoid long commit series. If you do have a long series, consider whether 25 some commits should be squashed together or addressed in a separate topic. 36 sub-maintainer for (for example, a new platform port), then also update the 40 - Please test your changes. As a minimum, ensure you can do an AP boot. 87 such new requirements within a reasonable time. Failure to do so may result [all …]
|
A D | dco.txt | 15 By making a contribution to this project, I certify that: 17 (a) The contribution was created in whole or in part by me and I 26 permitted to submit under a different license), as indicated 30 person who certified (a), (b) or (c) and I have not modified 34 are public and that a record of the contribution (including all
|
A D | .gitignore | 11 *.a 15 !module/*/lib/mod_*.a
|
A D | Jenkinsfile | 33 * we're on a version of the Docker workflow plugin that 85 * part of a scripted stage. 92 * Once the plugin has been updated, we can adopt a proper 101 * premise is relatively simple: generate a list of 102 * all the possible matrix combinations, create a 103 * a list of closures returning a pipeline stage for
|
/SCP-firmware-master/module/i2c/doc/ |
A D | module_i2c_architecture.md | 9 This module implements a Hardware Abstraction Layer (HAL) API for I2C 15 through an I2C bus, reception from an I2C bus and to request a transmission 16 followed by a reception on an I2C bus. 18 The I2C module defines a driver interface on which it relies to transfer/receive 23 The I2C module provides support for concurrent accesses to an I2C bus. If a 26 processing of I2C transaction requests follow a FIFO logic. When a transaction 34 - Acting like a target. 42 The flow for a reception is similar. 90 a event at the end of the transmission. Instead it starts the reception by 120 When a transaction is completed on an I2C bus, the delayed response queue of [all …]
|
/SCP-firmware-master/module/traffic_cop/doc/ |
A D | module_traffic_cop.md | 9 Traffic Cop is a performance plugin module. It imposes limitations on 13 domain. In this case, a domain could be a group of cores supplied by the same 14 power rail. The configuration is a simple lookup table that maps the number of
|
/SCP-firmware-master/framework/include/ |
A D | fwk_macros.h | 152 #define FWK_MIN(a, b) \ argument 154 __auto_type _a = (a); \ 171 #define FWK_MAX(a, b) \ argument 173 __auto_type _a = (a); \
|
/SCP-firmware-master/product/synquacer/module/synquacer_system/include/internal/ |
A D | thermal_sensor.h | 63 #define THERMAL_SENSOR_BASE(a) \ argument 65 (a * (THERMAL_INDIVIDUAL_SENSOR_OFFSET)))
|
/SCP-firmware-master/module/thermal_mgmt/doc/ |
A D | thermal_mgmt.md | 11 Thermal Management is a basic closed-loop temperature controller which 12 dynamically controls the platform performance in a thermal envelope. 14 With a closed control loop and by intelligently dividing the power among actors, 26 In a system, multiple Thermal Management controllers could exist. Each of them 30 ## Architecture of a Thermal Management controller 57 provides a (proportional and integral) signal which is then converted into 60 bias mechanism. Each actor will get a fraction of the available power 64 The fast loop is required to provide a fast adjustment of the performance 102 With a slower periodicity (slow loop), the Thermal Management will: 103 - initiate a temperature reading [all …]
|
/SCP-firmware-master/cmake/ |
A D | SCPTargetLinkerScript.cmake | 16 # Add a linker script to a target. 20 # This macro preprocesses a linker script ``<source>`` for the target
|
/SCP-firmware-master/module/debug/doc/ |
A D | module_dedug_architecture.md | 8 This module implements a Hardware Abstraction Layer (HAL) API for SCMI 12 status of the entire hardware debug infrastructure that can be available on a 13 platform when it is required to perform a set of operations other than a 16 The DEBUG module defines a driver interface on which it relies to get and set 17 the power status of the debug system. It also provides a mechanism to allow the 19 can be useful when an external device connected to the platform, such as a 64 In the right-hand side case, the debug module offers a separation between the 72 either asynchronous or synchronous. There is only a minimal difference compared
|