mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-13 08:04:27 +00:00

MPMM - the Maximum Power Mitigation Mechanism - is an optional microarchitectural feature present on some Armv9-A cores, introduced with the Cortex-X2, Cortex-A710 and Cortex-A510 cores. MPMM allows the SoC firmware to detect and limit high activity events to assist in SoC processor power domain dynamic power budgeting and limit the triggering of whole-rail (i.e. clock chopping) responses to overcurrent conditions. This feature is enabled via the `ENABLE_MPMM` build option. Configuration can be done via FCONF by enabling `ENABLE_MPMM_FCONF`, or by via the plaform-implemented `plat_mpmm_topology` function. Change-Id: I77da82808ad4744ece8263f0bf215c5a091c3167 Signed-off-by: Chris Kay <chris.kay@arm.com>
48 lines
1.3 KiB
ReStructuredText
48 lines
1.3 KiB
ReStructuredText
Maximum Power Mitigation Mechanism (MPMM) Bindings
|
|
==================================================
|
|
|
|
|MPMM| support cannot be determined at runtime by the firmware. Instead, these
|
|
DTB bindings allow the platform to communicate per-core support for |MPMM| via
|
|
the ``HW_CONFIG`` device tree blob.
|
|
|
|
Bindings
|
|
^^^^^^^^
|
|
|
|
.. contents::
|
|
:local:
|
|
|
|
``/cpus/cpus/cpu*`` node properties
|
|
"""""""""""""""""""""""""""""""""""
|
|
|
|
The ``cpu`` node has been augmented to allow the platform to indicate support
|
|
for |MPMM| on a given core.
|
|
|
|
+-------------------+-------+-------------+------------------------------------+
|
|
| Property name | Usage | Value type | Description |
|
|
+===================+=======+=============+====================================+
|
|
| ``supports-mpmm`` | O | ``<empty>`` | If present, indicates that |MPMM| |
|
|
| | | | is available on this core. |
|
|
+-------------------+-------+-------------+------------------------------------+
|
|
|
|
Example
|
|
^^^^^^^
|
|
|
|
An example system offering two cores, one with support for |MPMM| and one
|
|
without, can be described as follows:
|
|
|
|
.. code-block::
|
|
|
|
cpus {
|
|
#address-cells = <2>;
|
|
#size-cells = <0>;
|
|
|
|
cpu0@00000 {
|
|
...
|
|
|
|
supports-mpmm;
|
|
};
|
|
|
|
cpu1@00100 {
|
|
...
|
|
};
|
|
}
|