| 96a5f876 | 27-Dec-2023 |
Boyan Karatotev <boyan.karatotev@arm.com> |
refactor(tc): reorder config variable defines
They are very scattered, hard to read, and especially hard to track down. As a result some are duplicate and some are overridden in the downstream as it
refactor(tc): reorder config variable defines
They are very scattered, hard to read, and especially hard to track down. As a result some are duplicate and some are overridden in the downstream as it's simpler.
Put all variables at the top of the platform makefile. Also drop setting variables that don't change from their default values (CTX_INCLUDE_EL2_REGS, ARCH, ENABLE_FEAT_RAS, SDEI_SUPPORT, EL3_EXCEPTION_HANDLING, HANDLE_EA_EL3_FIRST_NS, ENABLE_SPE_FOR_NS).
While we're at it, add some variables that are necessary. SPMD requires MTE registers to be saved, BRANCH_PROTECTION, as well as running at SEL2. All of our CPUs are Armv8.7 compliant so we can have ARM_ARCH_MINOR=7 (and drop ENABLE_TRF_FOR_NS which it includes).
Finally, drop the override directives as there's no reason to prohibit experimentation (even if incorrect).
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: I6ac596934952aab8abf5d4db5220e13a4941a10c
show more ...
|
| 6dacc272 | 04-Dec-2023 |
Boyan Karatotev <boyan.karatotev@arm.com> |
refactor(tc): correlate secure world addresses with platform_def
Similarly to the memory node in the NS device tree, platform_def already defines all the necessary values to populate the spmc manife
refactor(tc): correlate secure world addresses with platform_def
Similarly to the memory node in the NS device tree, platform_def already defines all the necessary values to populate the spmc manifest and NS related entries automatically. Use the macros directly so any changes can propagate automatically.
The result of this is that TC3 and above get correct secure world manifests automatically. They were previously broken.
One "breaking" change is that the FWU region moves. This should have happened previously but it was missed when the secure portion of DRAM was increased, leaving it in secure memory. This was caught when going over the definitions and correlating them should prevent this in the future.
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: I1415e402be8c70f5e22f28eabddcb53298c57a11
show more ...
|
| d585aa16 | 28-Sep-2023 |
Boyan Karatotev <boyan.karatotev@arm.com> |
refactor(tc): move DTB to start of DRAM
Now that tf-a passes the DTB address to BL33, its location doesn't matter. Since we declare a fixed size for it (32K) put it at the start of ram to not fragme
refactor(tc): move DTB to start of DRAM
Now that tf-a passes the DTB address to BL33, its location doesn't matter. Since we declare a fixed size for it (32K) put it at the start of ram to not fragment memory. This has the added benefit of "supporting" larger kernel sizes which are breaking with the current location.
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: Ib0e4e5cf780bd58a49a34d72085b0a0914c340ed
show more ...
|
| 5ee4deb8 | 04-Dec-2023 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(tc): add memory node in the device tree
With new TC revisions, memory banks move around which requires an update in platform_def. It also requires an update in the device tree which doesn't com
feat(tc): add memory node in the device tree
With new TC revisions, memory banks move around which requires an update in platform_def. It also requires an update in the device tree which doesn't come naturally. To avoid this, add the memory node such that it uses the macros defined in platform_def.
By doing this we can put u-boot out of its misery in trying to come up with the correct memory node and tf-a's device tree becomes complete.
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: Ia92cc6931abb12be2856ac3fb1455e4f3005b326
show more ...
|
| 638e4a92 | 29-Nov-2023 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(tc): pass the DTB address to BL33 in R0
The DTB that tf-a loads is already used in BL33 directly with the address hardcoded. As this address is prone to changing, pass it forward so we can avoi
feat(tc): pass the DTB address to BL33 in R0
The DTB that tf-a loads is already used in BL33 directly with the address hardcoded. As this address is prone to changing, pass it forward so we can avoid breakage in the future.
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: I7a42f72ecc00814b9f0a4bf5605d70cb53ce2ff4
show more ...
|
| a658b46d | 22-Nov-2023 |
Kshitij Sisodia <kshitij.sisodia@arm.com> |
feat(tc): add SCMI power domain and IOMMU toggles
Compile-time controls have been added for the following:
* SCMI power domain use for DPU and GPU. * SMMU-700: planned rework required to use IOMMU
feat(tc): add SCMI power domain and IOMMU toggles
Compile-time controls have been added for the following:
* SCMI power domain use for DPU and GPU. * SMMU-700: planned rework required to use IOMMU correctly for DPU and GPU.
These will allow easier experimentation in the future without ad-hoc changes needed in the dts file for any sort of analysis that requires testing different paths.
For TC3 however, the DPU is in an always on power domain so SCMI power domains are not supported.
Co-developed-by: Tintu Thomas <tintu.thomas@arm.com> Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com> Change-Id: If6179a3e4784c1b69f0338a8d52b552452c0eac1
show more ...
|
| 1b8ed099 | 15-Nov-2023 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(tc): factor in FVP/FPGA differences
Even though the FVP and FPGA are meant to be identical their RoS's (rest of system) are different. Factor these in so the device tree works for both. The dif
feat(tc): factor in FVP/FPGA differences
Even though the FVP and FPGA are meant to be identical their RoS's (rest of system) are different. Factor these in so the device tree works for both. The differences are: * addresses of GIC and UART * displays (FPGA uses 4k) * ethernet devices and SD card (it's non removable on the FPGA)
Their frequencies are also different. The FVP simulates certain frequencies but isn't very sensitive when we disregard them. To keep code similar, update them with the FPGA values. This keeps working on FVP even if slightly incorrect.
Also add an option for the DPU to either use fixed clocks or SCMI set clocks, hidden behind a flag. This is useful during bringup and because SCMI may not necessarily work on FPGA.
Co-developed-by: Kshitij Sisodia <kshitij.sisodia@arm.com> Co-developed-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> Co-developed-by: Usama Arif <usama.arif@arm.com> Co-developed-by: Angel Rodriguez Garcia <angel.rodriguezgarcia@arm.com> Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: Ic7a4bfc302673a3a6571757e23a9e6184fba2a13
show more ...
|
| a02bb36c | 12-Dec-2023 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(tc): introduce an FPGA subvariant and TC3 CPUs
TC is getting an FPGA port alongside the FVP. It is meant to be identical, but the core configurations on TC2 differ (there are 14 in an odd arran
feat(tc): introduce an FPGA subvariant and TC3 CPUs
TC is getting an FPGA port alongside the FVP. It is meant to be identical, but the core configurations on TC2 differ (there are 14 in an odd arrangement).
Introduce these differences and gate them behind a new TARGET_FLAVOUR flag which defaults to FVP for compatibility.
While updating CPUs, it's a good time to do TC3 too. It has different cores in a different configuration again, so it needs different capacity values. Those have been derived using GeekBench 6.0 ST on the FPGA.
Finally GPU and DPU power domains are 1 above the CPUs so make that relative.
In the end, the big/mid/little configurations are: * TC2 FVP: 1/3/4 * TC2 FPGA: 2/3/5/4 (the 3 is a big "min" core) * TC3 both: 2/4/2 (with new capacities)
Co-developed-by: Tintu Thomas <tintu.thomas@arm.com> Co-developed-by: Kshitij Sisodia <kshitij.sisodia@arm.com> Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: I3c3a10d6727f5010fd9026a404df27e9262dff6b
show more ...
|
| 62320dc4 | 07-Jul-2023 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(tc): add TC3 platform definitions
TC3 is a little different from TC2:
* new address for its second DRAM bank * new CPUs * a few interrupts have changed * new SCP MHU base address. * utili
feat(tc): add TC3 platform definitions
TC3 is a little different from TC2:
* new address for its second DRAM bank * new CPUs * a few interrupts have changed * new SCP MHU base address. * utility space address (needed for MPAM) is different * no CMN (and therefore cmn-pmu) * the uart clock is different
This requires the dts to be different between revisions for the first time. Introduce a tc_vers.dtsi that includes only definitions for things that are different.
Signed-off-by: Tintu Thomas <tintu.thomas@arm.com> Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: I2940d87a69ea93502b7f5a22a539e4b70a63e827
show more ...
|
| 18f754a2 | 14-Dec-2023 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(tc): allow booting from DRAM
In some occasions it is useful to boot with the rest of system (RoS) disabled. With no RoS there's no flash so we need to put images somewhere and that's in the DRA
feat(tc): allow booting from DRAM
In some occasions it is useful to boot with the rest of system (RoS) disabled. With no RoS there's no flash so we need to put images somewhere and that's in the DRAM1 bank. If we want to access it it needs to be mapped to memory.
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: I45e0fbb016e8f615d41b6ad9da0d1e7b466ece72
show more ...
|
| df6404b2 | 26-Feb-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "build(corstone1000): add CORSTONE1000_WITH_BL32 preprocessor flag" into integration |
| acf0076a | 23-Feb-2024 |
Andrey Skvortsov <andrej.skvortzov@gmail.com> |
build(fpga): correctly handle gcc as linker for LTO
When LTO is enabled and gcc is used as a linker, then option for a linker have to be provided with a -Wl prefix to gcc.
To build PLAT=arm_fpga wi
build(fpga): correctly handle gcc as linker for LTO
When LTO is enabled and gcc is used as a linker, then option for a linker have to be provided with a -Wl prefix to gcc.
To build PLAT=arm_fpga with LTO enabled extra '-nostdlib' has to be supplied to the linker at least, otherwise build fails with an error about many undefined references in libc. Since this option is defined as part of common TF_LDFLAGS already, just use that variable with couple extra options.
Change-Id: Iaab72d894317c91af5b7d770652e4353b32aae88 Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
show more ...
|
| d0628728 | 24-Sep-2021 |
Tudor Cretu <tudor.cretu@arm.com> |
feat(tc): add firmware update secure partition
Firmware update is a trusted service secure partition that implements the PSA firmware update specification. It executes in the secure world in total c
feat(tc): add firmware update secure partition
Firmware update is a trusted service secure partition that implements the PSA firmware update specification. It executes in the secure world in total compute platform. To make it fit with Op-tee we need to reduce its available memory.
Also, reserve 4 MB for stmm communication used for firmware update. The firmware update secure partition and u-boot communicates using the stmm communication layer and it needs a dedicated memory region.
Co-developed-by: Sergio Alves <sergio.dasilvalves@arm.com> Co-developed-by: Davidson K <davidson.kumaresan@arm.com> Signed-off-by: Tudor Cretu <tudor.cretu@arm.com> Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: I0427549845f6c7650b8ef4e450d387fe9702a847
show more ...
|
| ba197f5f | 11-Apr-2022 |
Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> |
feat(tc): add spmc manifest with trusty sp
Add SPMC manifest with Trusty SP. Define Trusty's load address, vcpu count, memory size.
Co-developed-by: Rupinderjit Singh <rupinderjit.singh@arm.com> Co
feat(tc): add spmc manifest with trusty sp
Add SPMC manifest with Trusty SP. Define Trusty's load address, vcpu count, memory size.
Co-developed-by: Rupinderjit Singh <rupinderjit.singh@arm.com> Co-developed-by: Ben Horgan <ben.horgan@arm.com> Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: I1f7d7c1c6a5ef67541097ab04670343282458aeb
show more ...
|
| 3ac3b6b0 | 20-Dec-2023 |
Boyan Karatotev <boyan.karatotev@arm.com> |
refactor(tc): unify all the spmc manifests
The manifests describe the same hardware layout with only the secure partitions being different. Factor it out so it can be shared and only add the VM info
refactor(tc): unify all the spmc manifests
The manifests describe the same hardware layout with only the secure partitions being different. Factor it out so it can be shared and only add the VM information separately.
This has some deliberate side effects: the test configuration gets the full secure memory address space and drops the 0x7000000 region as that was accidentally copied over from the FVP platform and doesn't apply to TC.
Also optee unconditionally gets the smaller mem_size as it's been working fine and simplifies the manifest.
Small touch up is that mem_size-s are now in hex but otherwise the same number.
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: Iea23f9769235eea32afa374952b9a0e4f6d3e9a1
show more ...
|
| 0686a01b | 11-Apr-2022 |
Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> |
feat(arm): add trusty_sp_fw_config build option
Also increase add PLAT_ARM_SP_MAX_SIZE to override the default ARM_SP_MAX_SIZE to support Trusty image and move OPTEE_SP_FW_CONFIG documentation to bu
feat(arm): add trusty_sp_fw_config build option
Also increase add PLAT_ARM_SP_MAX_SIZE to override the default ARM_SP_MAX_SIZE to support Trusty image and move OPTEE_SP_FW_CONFIG documentation to build-internals.rst as it's not externally set-able.
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: Ief90ae9113d32265ee2200f35f3e517b7b9a4bea
show more ...
|
| fc42f845 | 03-Jul-2023 |
Davidson K <davidson.kumaresan@arm.com> |
fix(tc): do not enable MPMM and Aux AMU counters always
There are requirements in which the MPMM and Auxiliary AMU counters have to be disabled. Hence removing the "override" here which helps in dis
fix(tc): do not enable MPMM and Aux AMU counters always
There are requirements in which the MPMM and Auxiliary AMU counters have to be disabled. Hence removing the "override" here which helps in disabling them during the build.
Change-Id: I2c0a808d5d9968082a508a9206e34f7a57f2e33a Signed-off-by: Davidson K <davidson.kumaresan@arm.com>
show more ...
|
| 75414f71 | 03-Feb-2024 |
Rohit Mathew <Rohit.Mathew@arm.com> |
refactor(sgi): replace references to "SGI"/"sgi" for neoverse_rd
Currently, there are several reference to "SGI" or "sgi" in comments or as macro prefix within the neoverse_rd directory. As part of
refactor(sgi): replace references to "SGI"/"sgi" for neoverse_rd
Currently, there are several reference to "SGI" or "sgi" in comments or as macro prefix within the neoverse_rd directory. As part of the migration to neoverse_rd, rename all occurences of "SGI/sgi" to "Neoverse-RD" or the "NRD" prefix accordingly. All references in comments are rephrased as "Neoverse RD platforms". References in code are renamed as "NRD"/"nrd" accordingly.
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: Iec195427ff2bee565cb4a325a1a22892be95ae16
show more ...
|
| 2cd66a44 | 03-Feb-2024 |
Rohit Mathew <Rohit.Mathew@arm.com> |
refactor(sgi): rename "CSS_SGI"" macro prefixes to "NRD"
As of now, several internal macros utilize "CSS_SGI" as their prefix. Given the change to neoverse_rd, and the subsequent migration out of th
refactor(sgi): rename "CSS_SGI"" macro prefixes to "NRD"
As of now, several internal macros utilize "CSS_SGI" as their prefix. Given the change to neoverse_rd, and the subsequent migration out of the css directory, the prefix "CSS_SGI" is no longer appropriate. Therefore, update the macro prefixes to "NRD" for consistency and clarity.
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: I3d1a9dba3e83f6e107379fc5bcf8256cc93d8c3d
show more ...
|
| 40ea4208 | 03-Feb-2024 |
Rohit Mathew <Rohit.Mathew@arm.com> |
refactor(sgi): move apis and types to "nrd" prefix
Currently, functions and types internal to "neoverse_rd" platforms are named with "sgi" as the prefix. Since common code and platforms are no longe
refactor(sgi): move apis and types to "nrd" prefix
Currently, functions and types internal to "neoverse_rd" platforms are named with "sgi" as the prefix. Since common code and platforms are no longer under the "sgi" umbrella, move the prefix to "nrd". This change would amend the prefixes for functions, types and objects.
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: I706a82bddf55c3be7cf9cef9aaa5df6d420098ca
show more ...
|
| a1e6467b | 03-Feb-2024 |
Rohit Mathew <Rohit.Mathew@arm.com> |
refactor(sgi): replace build-option prefix to "NRD"
As of now, CSS_SGI_PLATFORM_VARIANT and CSS_SGI_CHIP_COUNT are the external build option that "sgi" platforms support. As "sgi" has been renamed t
refactor(sgi): replace build-option prefix to "NRD"
As of now, CSS_SGI_PLATFORM_VARIANT and CSS_SGI_CHIP_COUNT are the external build option that "sgi" platforms support. As "sgi" has been renamed to "neoverse_rd" and the source files have been migrated out of the css directory, replace the prefix "CSS_SGI" with "NRD".
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: I27989ff42404d823dd2a8cd22ff485497ccb62d4
show more ...
|
| 4ced5956 | 03-Feb-2024 |
Rohit Mathew <Rohit.Mathew@arm.com> |
refactor(sgi): move neoverse_rd out of css
Currently, neoverse_rd is hosted under the "css" directory. However, "css" directory is more relevant for hosting css definitions and corresponding sources
refactor(sgi): move neoverse_rd out of css
Currently, neoverse_rd is hosted under the "css" directory. However, "css" directory is more relevant for hosting css definitions and corresponding sources. Since neoverse_rd hosts source and header for css and soc, move neoverse_rd from css to board folder. Consolidate common sources and headers under neoverse_rd/common. Additionally, group RD-V1, RD-V1-MC, RD-N2, RD-N1-Edgex2 and SGI-575 within neoverse_rd/platform. With the changes in this commit, the tree view would look as follows:
plat/arm/board/neoverse_rd/ ├── common │ ├── arch │ ├── include │ └── ras └── platform ├── rdn1edge ├── rdn2 ├── rdv1 ├── rdv1mc └── sgi575
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: Iaccc86bc9d415f5c045c834902241fcf3c00277b
show more ...
|
| c669f653 | 03-Feb-2024 |
Rohit Mathew <Rohit.Mathew@arm.com> |
refactor(sgi): move from "sgi" to "neoverse_rd"
Currently, reference design platforms such as RD-N2, RD-N1-Edge, RD-V1-MC, RD-V1 and SGI-575 utilize "css/sgi" as the common source directory. The "sg
refactor(sgi): move from "sgi" to "neoverse_rd"
Currently, reference design platforms such as RD-N2, RD-N1-Edge, RD-V1-MC, RD-V1 and SGI-575 utilize "css/sgi" as the common source directory. The "sgi" prefix originated from the System Guidance for Infrastructure (SGI) and was initially associated with the SGI-575 platform. However, subsequent platforms released were under the Neoverse Reference Design product name.
To align with the Neoverse Reference Design nomenclature, rename the common source directory from "css/sgi" to "css/neoverse_rd" and update all file prefixes from "sgi" to "nrd."
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: I3dcbb31b9ab202e82caf25218ba33c520dcea4e4
show more ...
|
| c69253cc | 11-Jan-2024 |
Rohit Mathew <Rohit.Mathew@arm.com> |
feat(rde1edge): remove support for RD-E1-Edge
As RD-E1_Edge is no longer actively supported and has been in the deprecated list for a while, remove its support.
Signed-off-by: Rohit Mathew <Rohit.M
feat(rde1edge): remove support for RD-E1-Edge
As RD-E1_Edge is no longer actively supported and has been in the deprecated list for a while, remove its support.
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: Iff66ad498dd99e44e2e6b79251ba2cbefbd5f3eb
show more ...
|
| 10dcffed | 12-Feb-2024 |
Rohit Mathew <Rohit.Mathew@arm.com> |
fix(rdn2): populate TOS_CONFIG only when SPMC_AT_EL3 is enabled
As of now, TOS_FW_CONFIG (trusted OS config) gets populated by default for RD-N2. However, TOS_FW_CONFIG is required only when SPMC_AT
fix(rdn2): populate TOS_CONFIG only when SPMC_AT_EL3 is enabled
As of now, TOS_FW_CONFIG (trusted OS config) gets populated by default for RD-N2. However, TOS_FW_CONFIG is required only when SPMC_AT_EL3 is enabled. As the platform should support SPMC_AT_EL3 disabled mode as well, populate TOS_CONFIG only when SPMC_AT_EL3 is enabled. Additionally, building of rdn2_stmm_sel0_manifest.dtb is made conditional to align with this configuration.
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: I9077d44b21d32ba7bf6b3b1c539662c14785ca6b
show more ...
|