| a127b99d | 09-Nov-2021 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "feat(SPMD): route secure interrupts to SPMC" into integration |
| 2e43638e | 09-Nov-2021 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "st_usb" into integration
* changes: fix(drivers/usb): add a optional ops get_other_speed_config_desc fix(drivers/usb): remove unnecessary cast |
| 28623c10 | 08-Nov-2021 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "fix: libc: use long for 64-bit types on aarch64" into integration |
| 51d8d1e3 | 08-Nov-2021 |
Mark Dykes <mark.dykes@arm.com> |
Changing SMC code for transitioning Granule
Changing the SMC code value to conform with RMM for transitioning a realm granule back to non-secure, otherwise known as undelegate.
Signed-off-by: Mark
Changing SMC code for transitioning Granule
Changing the SMC code value to conform with RMM for transitioning a realm granule back to non-secure, otherwise known as undelegate.
Signed-off-by: Mark Dykes <mark.dykes@arm.com> Change-Id: Ia45ad6cab538de48c65b071b49e504be234afa2b
show more ...
|
| 4ce3e99a | 25-Aug-2020 |
Scott Branden <scott.branden@broadcom.com> |
fix: libc: use long for 64-bit types on aarch64
Use long instead of long long on aarch64 for 64_t stdint types. Introduce inttypes.h to properly support printf format specifiers for fixed width type
fix: libc: use long for 64-bit types on aarch64
Use long instead of long long on aarch64 for 64_t stdint types. Introduce inttypes.h to properly support printf format specifiers for fixed width types for such change.
Change-Id: I0bca594687a996fde0a9702d7a383055b99f10a1 Signed-off-by: Scott Branden <scott.branden@broadcom.com>
show more ...
|
| 0b5e33c7 | 08-Nov-2021 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes Ic2f90d79,Ieca02425,I615bcc1f,I6a9cb4a2,I5247f8f8, ... into integration
* changes: fix(errata): workaround for Neoverse V1 erratum 2216392 fix(errata): workaround for Cortex A78 er
Merge changes Ic2f90d79,Ieca02425,I615bcc1f,I6a9cb4a2,I5247f8f8, ... into integration
* changes: fix(errata): workaround for Neoverse V1 erratum 2216392 fix(errata): workaround for Cortex A78 erratum 2242635 fix(errata): workaround for Neoverse-N2 erratum 2280757 fix(errata): workaround for Neoverse-N2 erratum 2242400 fix(errata): workaround for Neoverse-N2 erratum 2138958 fix(errata): workaround for Neoverse-N2 erratum 2242415
show more ...
|
| 216c1223 | 04-Nov-2021 |
Patrick Delaunay <patrick.delaunay@foss.st.com> |
fix(drivers/usb): add a optional ops get_other_speed_config_desc
Correctly handle USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION request in USB driver and support a different result than USB_DESC_TYPE_CONF
fix(drivers/usb): add a optional ops get_other_speed_config_desc
Correctly handle USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION request in USB driver and support a different result than USB_DESC_TYPE_CONFIGURATION with the new optional ops get_other_speed_config_desc().
The support of this descriptor is optionnal and is only required when high-speed capable device which can operate at its other possible speed.
This patch allows to remove the pbuf update in usb_core_get_desc() and solves an issue on USB re-enumeration on STM32MP15 platform as the result of get_config_desc() is a const array. This issue is not see on normal use-case, as the USB enumeration is only done in ROM code and TF-A reuse the same USB descritors.
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Change-Id: I8edcc1e45065ab4e45d48f4bc37b49120674fdb0
show more ...
|
| 603806d1 | 08-Oct-2021 |
nayanpatel-arm <nayankumar.patel@arm.com> |
fix(errata): workaround for Neoverse-N2 erratum 2242400
Neoverse-N2 erratum 2242400 is a Cat B erratum that applies to revision r0p0 of CPU. It is still open. The workaround is to set CPUACTLR5_EL1[
fix(errata): workaround for Neoverse-N2 erratum 2242400
Neoverse-N2 erratum 2242400 is a Cat B erratum that applies to revision r0p0 of CPU. It is still open. The workaround is to set CPUACTLR5_EL1[17] to 1'b1 followed by setting few system control registers to specific values as per attached SDEN document.
SDEN can be found here: https://developer.arm.com/documentation/SDEN1982442/latest
Signed-off-by: nayanpatel-arm <nayankumar.patel@arm.com> Change-Id: I6a9cb4a23238b8b511802a1ee9fcc5b207137649
show more ...
|
| c948185c | 21-Oct-2021 |
nayanpatel-arm <nayankumar.patel@arm.com> |
fix(errata): workaround for Neoverse-N2 erratum 2138958
Neoverse-N2 erratum 2138958 is a Cat B erratum that applies to revision r0p0 of CPU. It is still open. The workaround is to set CPUACTLR5_EL1[
fix(errata): workaround for Neoverse-N2 erratum 2138958
Neoverse-N2 erratum 2138958 is a Cat B erratum that applies to revision r0p0 of CPU. It is still open. The workaround is to set CPUACTLR5_EL1[13] to 1'b1.
SDEN can be found here: https://developer.arm.com/documentation/SDEN1982442/latest
Signed-off-by: nayanpatel-arm <nayankumar.patel@arm.com> Change-Id: I5247f8f8eef08d38c169aad6d2c5501ac387c720
show more ...
|
| 5819e23b | 06-Oct-2021 |
nayanpatel-arm <nayankumar.patel@arm.com> |
fix(errata): workaround for Neoverse-N2 erratum 2242415
Neoverse-N2 erratum 2242415 is a Cat B erratum that applies to revision r0p0 of CPU. It is still open. The workaround is to set CPUACTLR_EL1[2
fix(errata): workaround for Neoverse-N2 erratum 2242415
Neoverse-N2 erratum 2242415 is a Cat B erratum that applies to revision r0p0 of CPU. It is still open. The workaround is to set CPUACTLR_EL1[22] to 1'b1. Setting CPUACTLR_EL1[22] will cause CFP instruction to invalidate all branch predictor resources regardless of context.
SDEN can be found here: https://developer.arm.com/documentation/SDEN1982442/latest
Signed-off-by: nayanpatel-arm <nayankumar.patel@arm.com> Change-Id: I442be81fbc32e21fed51a84f59584df17f845e96
show more ...
|
| 93b785f5 | 19-May-2021 |
Andre Przywara <andre.przywara@arm.com> |
feat(arm_fpga): determine GICR base by probing
When an Arm Ltd GIC (Arm GIC-[567]00) is instantiated with one or more ITSes, the ITS MMIO frames appear between the distributor and redistributor addr
feat(arm_fpga): determine GICR base by probing
When an Arm Ltd GIC (Arm GIC-[567]00) is instantiated with one or more ITSes, the ITS MMIO frames appear between the distributor and redistributor addresses. This makes the beginning of the redistributor region dependent on the existence and number of ITSes.
To support various FPGA images, with and without ITSes, probe the addresses in question, to learn whether they accommodate an ITS or a redistributor. This can be safely done by looking at the PIDR[01] registers, which contain an ID code for each region, documented in the Arm GIC TRMs.
We try to find all ITSes instantiated, and skip either two or four 64K frames, depending on GICv4.1 support. At some point we will find the first redistributor; this address we then update in the DTB.
Change-Id: Iefb88c2afa989e044fe0b36b7020b56538c60b07 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 73a643ee | 24-Aug-2021 |
Andre Przywara <andre.przywara@arm.com> |
feat(gicv3): introduce GIC component identification
The GIC specification describes ID registers in each GIC register frame (PIDRx), which can be used to identify a GIC component. The Arm Ltd. GIC i
feat(gicv3): introduce GIC component identification
The GIC specification describes ID registers in each GIC register frame (PIDRx), which can be used to identify a GIC component. The Arm Ltd. GIC implementations use certain ID values to identify the distributor, the redistributors and other parts like ITSes.
Introduce a function that reads those part number IDs, which are spread over two registers. The actual numbers are only meaningful in connection with a certain GIC model, which would need to be checked beforehand, by the caller.
Change-Id: Ia6ff326a1e8b12664e4637bc8e2683d2b5c7721c Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 4d585fe5 | 19-May-2021 |
Andre Przywara <andre.przywara@arm.com> |
feat(libfdt): also allow changing base address
For platforms where we don't know the number of cores at compile time, the size of the GIC redistributor frame is then also undetermined, since it depe
feat(libfdt): also allow changing base address
For platforms where we don't know the number of cores at compile time, the size of the GIC redistributor frame is then also undetermined, since it depends on this number of cores. On top of this the GICR base address can also change, when an unknown number of ITS frames (including zero) take up space between the distributor and redistributor.
So while those two adjustments are done for independent reasons, the code for doing so is very similar, so we should utilise the existing fdt_adjust_gic_redist() function.
Add an (optional) gicr_base parameters to the prototype, so callers can choose to also adjust this base address later, if needed.
Change-Id: Id39c0ba83e7401fdff1944e86950bb7121f210e8 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 8cb99c3f | 05-Aug-2020 |
Olivier Deprez <olivier.deprez@arm.com> |
feat(SPMD): route secure interrupts to SPMC
Define a handler in the SPMD to route secure interrupts occurring while the normal world runs. On a Group1 Secure interrupt (with a GICv3 or a Group0 inte
feat(SPMD): route secure interrupts to SPMC
Define a handler in the SPMD to route secure interrupts occurring while the normal world runs. On a Group1 Secure interrupt (with a GICv3 or a Group0 interrupt on GICv2), the normal world is pre-empted to EL3 and redirected to the SPMD/SPMC for further handling.
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com> Change-Id: I1350d74048c5549a2af8da0ba004c08512cc006a
show more ...
|
| 4fcbbb33 | 29-Oct-2021 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "st_usb" into integration
* changes: feat(plat/st/stm32mp1): add STM32MP_USB_PROGRAMMER target feat(plat/st/stm32mp1): add USB DFU support for STM32MP1 feat(plat/st):
Merge changes from topic "st_usb" into integration
* changes: feat(plat/st/stm32mp1): add STM32MP_USB_PROGRAMMER target feat(plat/st/stm32mp1): add USB DFU support for STM32MP1 feat(plat/st): add STM32CubeProgrammer support on USB feat(drivers/st/usb): add device driver for STM32MP1 feat(plat/st): add a USB DFU stack feat(drivers/usb): add a USB device stack
show more ...
|
| 6482255d | 29-Oct-2021 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "refactor(fvp_r): remove unused files and clean up makefiles" into integration |
| 9a138eb5 | 14-Sep-2020 |
Patrick Delaunay <patrick.delaunay@st.com> |
feat(drivers/st/usb): add device driver for STM32MP1
Add a device driver for Synopsis DWC2 USB IP of STM32MP15x, this USB OTG device is only supported in device mode.
Signed-off-by: Patrick Delauna
feat(drivers/st/usb): add device driver for STM32MP1
Add a device driver for Synopsis DWC2 USB IP of STM32MP15x, this USB OTG device is only supported in device mode.
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Change-Id: I90b21f094f6637b85f3ace23a3a3a2f6fd4e0951
show more ...
|
| 859bfd8d | 04-Sep-2020 |
Patrick Delaunay <patrick.delaunay@st.com> |
feat(drivers/usb): add a USB device stack
Add a new USB framework to manage an USB device profile (USBD) based on a peripheral controller driver (PCD).
This USB stack can be use to implement any Un
feat(drivers/usb): add a USB device stack
Add a new USB framework to manage an USB device profile (USBD) based on a peripheral controller driver (PCD).
This USB stack can be use to implement any Universal Serial Bus Device Class in TF-A on top of a USB driver defined in the platform.
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Change-Id: I7971ec6d952edec3511157a198e6e5359df4346b
show more ...
|
| 88c22737 | 11-Oct-2021 |
johpow01 <john.powell@arm.com> |
refactor(fvp_r): remove unused files and clean up makefiles
This patch removes files that are not used by TF-R as well as removes unused generic files from the TF-R makefile.
Signed-off-by: John Po
refactor(fvp_r): remove unused files and clean up makefiles
This patch removes files that are not used by TF-R as well as removes unused generic files from the TF-R makefile.
Signed-off-by: John Powell <john.powell@arm.com> Change-Id: Idb15ac295dc77fd38735bf2844efdb73e6f7c89b
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 ...
|
| 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 ...
|