| 745c129a | 09-Jul-2024 |
Andre Przywara <andre.przywara@arm.com> |
feat(rmmd): add RMM_RESERVE_MEMORY SMC handler
At the moment any memory required by an R-EL2 manager (RMM) needs to be known at compile time: that sets the size of the .data and .bss segments. Some
feat(rmmd): add RMM_RESERVE_MEMORY SMC handler
At the moment any memory required by an R-EL2 manager (RMM) needs to be known at compile time: that sets the size of the .data and .bss segments. Some resources depend on the particular machine this will be running on, the prime example is TF-RMM's granule array, which needs to know the maximum memory supported beforehand. Other data structures might depend on the number of CPU cores.
To provide more flexibility, but keep the memory footprint as small as possible, let's introduce some memory reservation SMC. Any RMM implementation can ask EL3 for some memory, and would get the physical address of a usable chunk of memory back. This must happen at RMM boot time, so before the RMM concluded the boot phase with the RMM_BOOT_COMPLETE SMC call. Also there is no provision to free memory again, this would not be needed for the use case of sizing platform resources, and avoids the complexity of a full-fledged memory allocator.
Add the new RMM_RESERVE_MEMORY command to the implementation defined RMM-EL3 SMC interface, both in code and documentation. The actual memory reservation is made a platform implementation, but a simple implementation is provided, which is used for the FVP platform already: it will just pick the next matching chunk of memory from the top end of the RMM carveout. This way the memory reservation will grow down from the end of the carveout, in a stack-like fashion, until it reaches the end of the RMM payload, located at the beginning of the carveout. Since secondary cores might also reserve memory at boot time, there is a spinlock to protect the simple allocation algorithm. Other platforms can choose to provide a more sophisticated reservation algorithm, for instance one taking NUMA locality into account.
This patch just provides the call, at this point there is no obligation to use the feature, although future TF-RMM versions would rely on it.
Change-Id: I096ac8870ee38f44e18850779fcae829a43a8fd1 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 2074600e | 08-Aug-2025 |
Khristine Andreea Barbulescu <khristineandreea.barbulescu@nxp.com> |
docs(s32g274a): update compilation instructions
Changes to the Poetry memory module have removed support for the `-f` option, following commit 8daebefe59e ("refactor(memmap)!: change behavioural fla
docs(s32g274a): update compilation instructions
Changes to the Poetry memory module have removed support for the `-f` option, following commit 8daebefe59e ("refactor(memmap)!: change behavioural flags to commands").
This update replaces `-f` with `footprint` option to ensure compatibility with the updated memory module.
Change-Id: I58eb2c5e9ca649c7a00696b0a3b5c8e02fa29c84 Signed-off-by: Khristine Andreea Barbulescu <khristineandreea.barbulescu@nxp.com>
show more ...
|
| 30bbc4fa | 14-Aug-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(drtm): remove plat_system_reset()
The name plat_system_reset() has been in use for some time by a mediatek platform (in plat/mediatek/mt8173/plat_pm.c). However, DRTM added a global hook, that i
fix(drtm): remove plat_system_reset()
The name plat_system_reset() has been in use for some time by a mediatek platform (in plat/mediatek/mt8173/plat_pm.c). However, DRTM added a global hook, that is only implemented on FVP, that conflicts with it. This sometimes results in failed builds.
DRTM remediation ends with a platform reset. However, there is currently an error message printed that this is not supported. In this case, the correct thing to do is to panic and as such this hook is not needed.
Further, the correct sequence to reset the system is different and is only fully implemented by psci_system_reset(). This is a portable implementation supported by a wide variety of platform.
So remove plat_system_reset(). Once DRTM remediation properly supports resetting, the psci_system_reset() function should be used to achieve reset correctly and portably.
Change-Id: Ia4e150c51aeec613838464fbb0e1d0542f19ccab Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| 58148b92 | 29-Jul-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(cpus): workaround for Cortex-X4 erratum 3133195
Cortex-X4 erratum 3133195 is a Cat B erratum that applies to all revisions = r0p2 and is fixed in r0p3.
This erratum can be avoided by writing to
fix(cpus): workaround for Cortex-X4 erratum 3133195
Cortex-X4 erratum 3133195 is a Cat B erratum that applies to all revisions = r0p2 and is fixed in r0p3.
This erratum can be avoided by writing to a set of implementation defined registers which will execute a PSB instruction following the TSB CSYNC instruction.
SDEN documentation: https://developer.arm.com/documentation/SDEN-2432808/latest
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: Id44daf950124e7c2d46cb5d6d6a1083d06fad12d
show more ...
|