| c19a82be | 18-May-2021 |
Chris Kay <chris.kay@arm.com> |
feat(tc): enable MPMM
This change enables MPMM and adds, to the TC firmware configuration device tree, the AMU counters representing the "gears" for the Maximum Power Mitigation Mechanism feature of
feat(tc): enable MPMM
This change enables MPMM and adds, to the TC firmware configuration device tree, the AMU counters representing the "gears" for the Maximum Power Mitigation Mechanism feature of the Cortex-X2, Cortex-A710 and Cortex-A510:
- Gear 0: throttle medium and high bandwidth vector and viruses. - Gear 1: throttle high bandwidth vector and viruses. - Gear 2: throttle power viruses only.
This ensures these counters are enabled and context-switched as expected.
Change-Id: I6df6e0fe3a5362861aa967a78ab7c34fc4bb8fc3 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 68120783 | 05-May-2021 |
Chris Kay <chris.kay@arm.com> |
feat(mpmm): add support for MPMM
MPMM - the Maximum Power Mitigation Mechanism - is an optional microarchitectural feature present on some Armv9-A cores, introduced with the Cortex-X2, Cortex-A710 a
feat(mpmm): add support for MPMM
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>
show more ...
|
| 742ca230 | 19-Aug-2021 |
Chris Kay <chris.kay@arm.com> |
feat(amu): enable per-core AMU auxiliary counters
This change makes AMU auxiliary counters configurable on a per-core basis, controlled by `ENABLE_AMU_AUXILIARY_COUNTERS`.
Auxiliary counters can be
feat(amu): enable per-core AMU auxiliary counters
This change makes AMU auxiliary counters configurable on a per-core basis, controlled by `ENABLE_AMU_AUXILIARY_COUNTERS`.
Auxiliary counters can be described via the `HW_CONFIG` device tree if the `ENABLE_AMU_FCONF` build option is enabled, or the platform must otherwise implement the `plat_amu_topology` function.
A new phandle property for `cpu` nodes (`amu`) has been introduced to the `HW_CONFIG` specification to allow CPUs to describe the view of their own AMU:
``` cpu0: cpu@0 { ...
amu = <&cpu0_amu>; }; ```
Multiple cores may share an `amu` handle if they implement the same set of auxiliary counters.
AMU counters are described for one or more AMUs through the use of a new `amus` node:
``` amus { cpu0_amu: amu-0 { #address-cells = <1>; #size-cells = <0>;
counter@0 { reg = <0>;
enable-at-el3; };
counter@n { reg = <n>;
... }; }; }; ```
This structure describes the **auxiliary** (group 1) AMU counters. Architected counters have architecturally-defined behaviour, and as such do not require DTB entries.
These `counter` nodes support two properties:
- The `reg` property represents the counter register index. - The presence of the `enable-at-el3` property determines whether the firmware should enable the counter prior to exiting EL3.
Change-Id: Ie43aee010518c5725a3b338a4899b0857caf4c28 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 9cf75647 | 17-Aug-2021 |
Chris Kay <chris.kay@arm.com> |
docs(amu): add AMU documentation
This change adds some documentation on the AMU and its purpose. This is expanded on in later patches.
Change-Id: If2834676790938d8da5ea2ceba37b674f6cc0f01 Signed-of
docs(amu): add AMU documentation
This change adds some documentation on the AMU and its purpose. This is expanded on in later patches.
Change-Id: If2834676790938d8da5ea2ceba37b674f6cc0f01 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| e747a59b | 24-May-2021 |
Chris Kay <chris.kay@arm.com> |
refactor(amu): refactor enablement and context switching
This change represents a general refactoring to clean up old code that has been adapted to account for changes required to enable dynamic aux
refactor(amu): refactor enablement and context switching
This change represents a general refactoring to clean up old code that has been adapted to account for changes required to enable dynamic auxiliary counters.
Change-Id: Ia85e0518f3f65c765f07b34b67744fc869b9070d Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 31d3cc25 | 25-May-2021 |
Chris Kay <chris.kay@arm.com> |
refactor(amu): detect auxiliary counters at runtime
This change decouples the group 1 counter macros to facilitate dynamic detection at runtime. These counters remain disabled - we will add dynamic
refactor(amu): detect auxiliary counters at runtime
This change decouples the group 1 counter macros to facilitate dynamic detection at runtime. These counters remain disabled - we will add dynamic enablement of them in a later patch.
Change-Id: I820d05f228d440643bdfa308d030bd51ebc0b35a Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 81e2ff1f | 25-May-2021 |
Chris Kay <chris.kay@arm.com> |
refactor(amu): detect architected counters at runtime
This change removes the `AMU_GROUP0_COUNTERS_MASK` and `AMU_GROUP0_MAX_COUNTERS` preprocessor definitions, instead retrieving the number of grou
refactor(amu): detect architected counters at runtime
This change removes the `AMU_GROUP0_COUNTERS_MASK` and `AMU_GROUP0_MAX_COUNTERS` preprocessor definitions, instead retrieving the number of group 0 counters dynamically through `AMCGCR_EL0.CG0NC`.
Change-Id: I70e39c30fbd5df89b214276fac79cc8758a89f72 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 1fd685a7 | 25-May-2021 |
Chris Kay <chris.kay@arm.com> |
refactor(amu): conditionally compile auxiliary counter support
This change reduces preprocessor dependencies on the `AMU_GROUP1_NR_COUNTERS` and `AMU_GROUP1_COUNTERS_MASK` definitions, as these valu
refactor(amu): conditionally compile auxiliary counter support
This change reduces preprocessor dependencies on the `AMU_GROUP1_NR_COUNTERS` and `AMU_GROUP1_COUNTERS_MASK` definitions, as these values will eventually be discovered dynamically.
In their stead, we introduce the `ENABLE_AMU_AUXILIARY_COUNTERS` build option, which will enable support for dynamically detecting and enabling auxiliary AMU counters.
This substantially reduces the amount of memory used by platforms that know ahead of time that they do not have any auxiliary AMU counters.
Change-Id: I3d998aff44ed5489af4857e337e97634d06e3ea1 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 33b9be6d | 26-May-2021 |
Chris Kay <chris.kay@arm.com> |
refactor(amu): factor out register accesses
This change introduces a small set of register getters and setters to avoid having to repeatedly mask and shift in complex code.
Change-Id: Ia372f60c5efb
refactor(amu): factor out register accesses
This change introduces a small set of register getters and setters to avoid having to repeatedly mask and shift in complex code.
Change-Id: Ia372f60c5efb924cd6eeceb75112e635ad13d942 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| b4b726ea | 24-May-2021 |
Chris Kay <chris.kay@arm.com> |
refactor(amu)!: privatize unused AMU APIs
This change reduces the exposed surface area of the AMU API in order to simplify the refactoring work in following patches. The functions and definitions pr
refactor(amu)!: privatize unused AMU APIs
This change reduces the exposed surface area of the AMU API in order to simplify the refactoring work in following patches. The functions and definitions privatized by this change are not used by other parts of the code-base today.
BREAKING CHANGE: The public AMU API has been reduced to enablement only to facilitate refactoring work. These APIs were not previously used.
Change-Id: Ibf6174fb5b3949de3c4ba6847cce47d82a6bd08c Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 6c8dda19 | 17-May-2021 |
Chris Kay <chris.kay@arm.com> |
refactor(amu)!: remove `PLAT_AMU_GROUP1_COUNTERS_MASK`
With the introduction of MPMM, the auxiliary AMU counter logic requires refactoring to move away from a single platform-defined group 1 counter
refactor(amu)!: remove `PLAT_AMU_GROUP1_COUNTERS_MASK`
With the introduction of MPMM, the auxiliary AMU counter logic requires refactoring to move away from a single platform-defined group 1 counter mask in order to support microarchitectural (per-core) group 1 counters.
BREAKING CHANGE: The `PLAT_AMU_GROUP1_COUNTERS_MASK` platform definition has been removed. Platforms should specify per-core AMU counter masks via FCONF or a platform-specific mechanism going forward.
Change-Id: I1e852797c7954f92409222b066a1ae57bc72bb05 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 9b43d098 | 19-May-2021 |
Chris Kay <chris.kay@arm.com> |
build(amu): introduce `amu.mk`
This change introduces the `amu.mk` Makefile, used to remove the need to manually include AMU sources into the various build images. Makefiles requiring the list of AM
build(amu): introduce `amu.mk`
This change introduces the `amu.mk` Makefile, used to remove the need to manually include AMU sources into the various build images. Makefiles requiring the list of AMU sources are expected to include this file and use `${AMU_SOURCES}` to retrieve them.
Change-Id: I3d174033ecdce6439a110d776f0c064c67abcfe0 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| e04da4c8 | 20-May-2021 |
Chris Kay <chris.kay@arm.com> |
build(fconf)!: clean up source collection
Including the FCONF Makefile today automatically places the FCONF sources into the source list of the BL1 and BL2 images. This may be undesirable if, for in
build(fconf)!: clean up source collection
Including the FCONF Makefile today automatically places the FCONF sources into the source list of the BL1 and BL2 images. This may be undesirable if, for instance, FCONF is only required for BL31.
This change moves the BL1 and BL2 source appends out of the common Makefile to where they are required.
BREAKING CHANGE: FCONF is no longer added to BL1 and BL2 automatically when the FCONF Makefile (`fconf.mk`) is included. When including this Makefile, consider whether you need to add `${FCONF_SOURCES}` and `${FCONF_DYN_SOURCES}` to `BL1_SOURCES` and `BL2_SOURCES`.
Change-Id: Ic028eabb7437ae95a57c5bcb7821044d31755c77 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 2d9ea360 | 28-Sep-2021 |
Chris Kay <chris.kay@arm.com> |
feat(fdt-wrappers): add CPU enumeration utility function
This change adds a new utility function - `fdtw_for_each_cpu` - to invoke a callback for every CPU node listed in a flattened device tree (FD
feat(fdt-wrappers): add CPU enumeration utility function
This change adds a new utility function - `fdtw_for_each_cpu` - to invoke a callback for every CPU node listed in a flattened device tree (FDT) with the node identifier and the MPIDR of the core it describes.
Signed-off-by: Chris Kay <chris.kay@arm.com> Change-Id: Iabb5c0f0c9d11928a4a7a41cdc7d1e09aadeb2bc
show more ...
|
| 1fa05dab | 28-Sep-2021 |
Chris Kay <chris.kay@arm.com> |
build(fdt-wrappers): introduce FDT wrappers makefile
This has been introduced to simplify dependencies on the FDT wrappers. We generally want to avoid pulling in components on a file-by-file basis,
build(fdt-wrappers): introduce FDT wrappers makefile
This has been introduced to simplify dependencies on the FDT wrappers. We generally want to avoid pulling in components on a file-by-file basis, particularly as we are trying to draw conceptual boxes around components in preparation for transitioning the build system to CMake, where dependencies are modelled on libraries rather than files.
Signed-off-by: Chris Kay <chris.kay@arm.com> Change-Id: Idb7ee05a9b54a8caa3e07f36e608867e20b6dcd5
show more ...
|
| eb1acfb6 | 28-Sep-2021 |
Chris Kay <chris.kay@arm.com> |
build(bl2): deduplicate sources
Deduplicating sources prevents the build system from complaining about multiply-compiled files, which can happen if multiple makefiles depend on a component. This alr
build(bl2): deduplicate sources
Deduplicating sources prevents the build system from complaining about multiply-compiled files, which can happen if multiple makefiles depend on a component. This already occurs for BL31.
Signed-off-by: Chris Kay <chris.kay@arm.com> Change-Id: Ic9e67932550f07cb9e4d199f68bc46c33a611748
show more ...
|
| b34635a0 | 28-Sep-2021 |
Chris Kay <chris.kay@arm.com> |
build(bl1): deduplicate sources
Deduplicating sources prevents the build system from complaining about multiply-compiled files, which can happen if multiple makefiles depend on a component. This alr
build(bl1): deduplicate sources
Deduplicating sources prevents the build system from complaining about multiply-compiled files, which can happen if multiple makefiles depend on a component. This already occurs for BL31.
Signed-off-by: Chris Kay <chris.kay@arm.com> Change-Id: I9b40402f6f04600061fba7d6ad5d222a71e7d4a7
show more ...
|
| 7186a29b | 06-Oct-2021 |
Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com> |
feat(plat/arm/sgi): increase max BL2 size
Increase `PLAT_ARM_MAX_BL2_SIZE` to 128KiB for the primary chip to accommodate debug builds with log level set to verbose (LOG_LEVEL=LOG_LEVEL_VERBOSE).
Si
feat(plat/arm/sgi): increase max BL2 size
Increase `PLAT_ARM_MAX_BL2_SIZE` to 128KiB for the primary chip to accommodate debug builds with log level set to verbose (LOG_LEVEL=LOG_LEVEL_VERBOSE).
Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com> Change-Id: I9dc835430f61b0d0c46a75f7a36d67f165293c8c
show more ...
|
| 387ff949 | 22-Oct-2021 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "fix(sdei): print event number in hex format" into integration |
| 6b94356b | 01-Sep-2021 |
Vasyl Gomonovych <vgomonovych@marvell.com> |
fix(sdei): print event number in hex format
SDEI specified event numbers in hexadecimal format. Change event number format to hexadecimal to make it easier for the reader to recognize the proper eve
fix(sdei): print event number in hex format
SDEI specified event numbers in hexadecimal format. Change event number format to hexadecimal to make it easier for the reader to recognize the proper event.
Change-Id: Iac7a91d0910316e0ad54a8f09bc17209e8c6adf6 Signed-off-by: Vasyl Gomonovych <vgomonovych@marvell.com>
show more ...
|
| 700e7685 | 21-Oct-2021 |
Manish Pandey <manish.pandey2@arm.com> |
fix: remove "experimental" tag for stable features
there are features which are marked as experimental even though they are stable and used for quite some time. Following features are no longer mark
fix: remove "experimental" tag for stable features
there are features which are marked as experimental even though they are stable and used for quite some time. Following features are no longer marked as experimental - SPMD - MEASURED_BOOT - FCONF and associated build flags - DECRYPTION_SUPPORT and associated build flags - ENABLE_PAUTH - ENABLE_BTI - USE_SPINLOCK_CAS - GICv3 Multichip support
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: I4bb653d9c413c66095ec31f0b8aefeb13ea04ee9
show more ...
|
| 53602a13 | 21-Oct-2021 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "fix(cpu): correct Demeter CPU name" into integration |
| 0172ac30 | 21-Oct-2021 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "fix(scmi): mention "SCMI" in driver initialisation message" into integration |
| 4cb576a0 | 15-Oct-2021 |
johpow01 <john.powell@arm.com> |
fix(cpu): correct Demeter CPU name
This patch changes Cortex Demeter to Neoverse Demeter.
Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I7306d09ca60e101d0a96c9ceff9845422d75c160 |
| 65da2f2a | 21-Oct-2021 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "docs(stm32mp1): fix FIP command with OP-TEE" into integration |