Commit graph

14661 commits

Author SHA1 Message Date
Rohit Mathew
c9e5d32fa0 refactor(neoverse-rd): refactor nrd_soc_platform_def.h file
Continuing the refactoring of the various definitions for the first
generation of platforms (A75/N1/V1), refactor the definitions in the
nrd_soc_platform_def.h file into the following files as appropriate.

- nrd_ros_def1.h: includes RoS hardware related definitions
- nrd_ros_fw_def1.h: includes RoS firmware related definitions
- nrd_plat_arm_def1.h: includes platform port related definitions

RoS (Rest Of System) is used to refer to the part of the reference
design platform that excludes CSS.

The file inclusions in the platform_def.h file of the platforms have
been updated accordingly.

Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I081d2a225a32c15f65d8d86f81104ba12d284406
2024-04-24 21:13:31 +01:00
Rohit Mathew
d1d45cd0ab refactor(neoverse-rd): move away from nrd_base_platform_def.h
The nrd_base_platform_def.h file includes CSS, RoS, firmware and
platform port related definitions. This approach of consolidating the
various definitions for multiple generation of platforms into the
nrd_base_platform_def.h file is not scaling well.

So in preparation of moving away from the use of nrd_base_platform_def.h
file for first generation of reference design platforms (A75/N1/V1),
split the definitions in this file into multiple include files. The new
files into which the definitions are refactored are -

- nrd_css_def1.h: includes CSS hardware related definitions
- nrd_css_fw_def1.h: includes CSS firmware related definitions
- nrd_ros_fw_def1.h: includes RoS firmware related definitions
- nrd_plat_arm_def1.h: includes platform port related definitions

RoS (Rest Of System) is used to refer to the part of the reference
design platform that excludes CSS.

The definitions that are only relavant to the first generation of
reference design platforms have been refactored from the
nrd_base_platform_def.h file.

Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: Ie730d913235221488c385f9ddf1da46a2b760816
2024-04-24 21:13:31 +01:00
Rohit Mathew
2bc0562315 refactor(neoverse-rd): remove inclusion of nrd_base_platform_def.h
The platform_def.h file includes the nrd_base_platform_def.h file in its
hierarchy of file inclusions. So the source files that include
platform_def.h file do not have to include the nrd_base_platform_def.h
file. So remove such explicit inclusion of nrd_base_platform_def.h from
the source files. The scope of this change is limited to only the first
generation of the reference design platforms, that is, the A75, N1 and
V1 based platforms.

Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I088b9f0ccfd9f94b5bb3c8ed91c23e8994484c7c
2024-04-24 21:13:31 +01:00
Rohit Mathew
e4f08cd9a2 refactor(neoverse-rd): header files for first generation platforms
Presently, platforms such as SGI-575, RD-N1-Edge single and dual chip,
RD_V1 single and multi-chip utilize nrd_soc_platform_def.h and
nrd_soc_css_def.h for all css and soc-related defines. So move these
two header files into a new directory named 'nrd1'. This new directory
will serve as the container of header files that are specific to
SGI-575, RD-N1 and RD-V1 platform and its variants.

Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I9d70659c6f5000ad6c1cfc0738f9e81f03238f5f
2024-04-24 21:13:31 +01:00
Rohit Mathew
682da9327a refactor(neoverse-rd): refactor scope for Neoverse RD platforms
As sgi has migrated to neoverse_rd, the scope variables would need
update. Therefore, remove the deprecated 'sgi' scope variable and
introduce the new scope variable 'neoverse-rd' to be used for any common
platform changes associated with Neoverse Reference Design platforms.

Change-Id: I5052e4573bdc7df3e6f4257146d716edd2585452
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
2024-04-24 21:13:31 +01:00
Madhukar Pappireddy
10784f5f38 Merge changes from topic "st_maintainers" into integration
* changes:
  docs(maintainers): add missing ST files
  docs(maintainers): add Maxime as co-maintainer for ST platforms
  docs(maintainers): update ST platform ports title
  docs(maintainers): sort github aliases
2024-04-24 16:37:29 +02:00
Yann Gautier
47ea303389 feat(stm32mp2): use early traces
Replace ERROR message with EARLY_ERROR for OTP driver probe, as this
will be called before default console is enabled.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: I756a04727c494d5f681a45d47d01189dff07dbe7
2024-04-24 15:44:28 +02:00
Yann Gautier
cf237f8d55 feat(st-bsec): use early traces
Replace trace macros with their corresponding EARLY_* macros.
Add some early traces in bsec2 driver.

Change-Id: I65e2feee6e7ba2524fb0a334557aa6e883672765
Signed-off-by: Yann Gautier <yann.gautier@st.com>
2024-04-24 15:44:28 +02:00
Yann Gautier
94cad75a35 refactor(st): replace STM32MP_EARLY_CONSOLE with EARLY_CONSOLE
Now that EARLY_CONSOLE is generic, use it instead of the ST flag.
Remove stm32mp_setup_early_console() calls as it is done in common TF-A
code.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: Icac29b62a6267303cb5c679d15847c013ead1d23
2024-04-24 15:44:28 +02:00
Yann Gautier
ae770fedf4 feat(console): introduce EARLY_CONSOLE
This is a generic porting of what was done on ST platforms with flag
STM32MP_EARLY_CONSOLE. It creates the flag and the prototype for
plat_setup_early_console(). This function depends on platform
implementation. This function call is added at the beginning of each BL
image early setup function.
The patch also introduce an extra log macro: EARLY_ERROR. This can
replace ERROR macro in code that will only be executed before the
default console is enabled, and will do nothing when the EARLY_CONSOLE
is not enabled. This can then save some space in memory.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: I77bf0a0c4289b4c7df94e4bfb783a938e05bf023
2024-04-24 15:44:28 +02:00
Yann Gautier
a1255c7585 feat(bl32): create an sp_min_setup function
This new C function will call sp_min_early_platform_setup2() and
sp_min_plat_arch_setup(). At this step the C environment is already
enabled, and it allows adding function like the one for early console
for which r9-r12 registers could be clobbered.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: I4cbf2f6acea769d595ff40b2e2b4ca5d29672878
2024-04-24 15:44:28 +02:00
Manish V Badarkhe
4b0570c3c3 Merge "docs(fconf): add TB_FW config bindings" into integration 2024-04-24 13:16:00 +02:00
Manish V Badarkhe
e88ce98812 Merge "fix(cert-create): add guardrails around brainpool usage" into integration 2024-04-24 10:37:20 +02:00
Manish V Badarkhe
4d2372e914 Merge "fix(cert-create): use a salt length equal to digest length for RSA-PSS" into integration 2024-04-24 10:24:39 +02:00
Harrison Mutai
02cc2efb6a refactor(docs): restructure min requirements section
The ordering of the setup guide is quite confusing, primarly because the
min requirements section is overly verbose. Reconcile this information
into a single table, and present the most important information at the
start of the document i.e. how to get the source, and the tools to
compile.

Change-Id: I1c4d708259e152b101c7282dad19e467d6c36519
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
2024-04-24 08:20:22 +00:00
Bipin Ravi
b67b02c3aa Merge "fix(cpus): workaround for Cortex-X4 erratum 2763018" into integration 2024-04-24 03:57:18 +02:00
Sona Mathew
47312115de fix(cpus): workaround for Cortex-X4 erratum 2763018
Cortex-X4 erratum 2763018 is a Cat B erratum that is present
in revisions r0p0, r0p1 and is fixed in r0p2.

The workaround is to set bit[47] of CPUACTLR3_EL1 register.
Setting this chicken bit might have a small impact on power
and negligible impact on performance.

SDEN documentation:
https://developer.arm.com/documentation/SDEN2432808/latest

Change-Id: Ia188e08c2eb2952923ec72e2a56efdeea836fe1e
Signed-off-by: Sona Mathew <sonarebecca.mathew@arm.com>
2024-04-23 15:14:15 -05:00
Jeffrey Kardatzke
0ec69a5bfb fix(optee): set interrupt handler before kernel boot
When loading OPTEE via an SMC after we start Linux, we end up changing
the interrupt settings which is a violation of the Linux kernel's
policies. This change sets the interrupt handler before we proceed to
starting the kernel and ignores any incoming interrupts that occur
before OPTEE is loaded.

Signed-off-by: Jeffrey Kardatzke<jkardatzke@google.com>
Change-Id: I7da5334498e14f4a703e8cc3eeff386e3ecc0882
2024-04-23 12:25:17 -07:00
Madhukar Pappireddy
fb7aa37560 Merge "refactor(fvp_r): remove duplicated macro definitions" into integration 2024-04-23 16:45:25 +02:00
Lauren Wehrmeister
6a4afebb0f Merge "fix(cpus): workaround for Cortex-X4 erratum 2740089" into integration 2024-04-23 16:14:02 +02:00
Lauren Wehrmeister
8acdb13a9a Merge "fix(cpus): workaround for Cortex-A715 erratum 2728106" into integration 2024-04-23 16:13:55 +02:00
Soby Mathew
dcf7a8aee7 Merge "feat(qemu): update to manifest v0.3" into integration 2024-04-23 13:35:38 +02:00
Jean-Philippe Brucker
762a1c44b9 feat(qemu): update to manifest v0.3
Update the RMM manifest to v0.3: pass the console information to RMM.

Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Change-Id: I55093cd0c12f9c6a7569d7e524f7d301acbb2a45
2024-04-23 10:20:11 +01:00
Yann Gautier
56b263cb2a Merge "feat(qemu): allow ARM_ARCH_MAJOR/MINOR override" into integration 2024-04-23 10:42:01 +02:00
Yann Gautier
09d3fd1418 Merge "feat(qemu): enable FEAT_ECV when present" into integration 2024-04-23 09:58:54 +02:00
Jackson Cooper-Driver
9bf31a59d1 fix(tc): remove timer interrupt from G1S
TC3 and TC4 SCP makes use of the system timer interrupt as its own
timer. Previously, this timer was marked as a G1S interrupt which
routes the interrupt to the secure world and also enables it. This
causes spurious interrupts once the SCP has unmasked the interrupt in
the timer control itself.

Note that we move the inclusion of the timer interrupt from
CSS_G1S_INT_PROPS to CSS_G1S_IRQ_PROPS as the former is only used by TC.
This will also result in removing the timer interrupt from TC2. This is
not an issue as it does not make use of this interrupt in either the SCP
or AP.

Change-Id: I5cc88e2adffbc93fc3c9d9d41b5ba7235dbc39d9
Signed-off-by: Jackson Cooper-Driver <jackson.cooper-driver@arm.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-04-23 08:57:29 +01:00
Yann Gautier
4c77fac98d Merge "refactor(qemu): do not hardcode counter frequency" into integration 2024-04-23 09:18:16 +02:00
Madhukar Pappireddy
c4d80e7482 Merge "fix(cm): add more feature registers to EL1 context mgmt" into integration 2024-04-23 00:25:44 +02:00
Manish Pandey
9196add7fd Merge "docs(mte2): update docs" into integration 2024-04-22 17:40:43 +02:00
Marcin Juszkiewicz
5436047a0e refactor(qemu): do not hardcode counter frequency
From QEMU change:

> In previous versions of the Arm architecture, the frequency of the
> generic timers as reported in CNTFRQ_EL0 could be any IMPDEF value,
> and for QEMU we picked 62.5MHz, giving a timer tick period of 16ns.
> In Armv8.6, the architecture standardized this frequency to 1GHz.

This change stops TF-A from hardcoding 62.5MHz frequency. Instead value
stored in CNTFRQ_EL0 would be used. As a result we get 62.5MHz on older
cores and 1GHz on newer ones.

Change-Id: I7d414ce6d3708e598bbb5a6f79eb2d4ec8e15ac4
Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
2024-04-22 17:33:36 +02:00
Govindraj Raja
c643188f18 docs(mte2): update docs
Add a section under release for capturing and populating
build options that are deprecated and removed.

Various fixes and refactor[1] led to removal of certain MTE
build options so capture this part in build-options docs.

[1]: https://review.trustedfirmware.org/q/topic:%22mte_fixes%22

Change-Id: I74a82f6f73f7f1dceea65a295ad2df60301ad838
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
2024-04-22 17:04:26 +02:00
Leo Yan
07b576a445 refactor(fvp_r): remove duplicated macro definitions
The system counter macros are defined duplicatedly in the header file.
As the macros must be defined before arm_def.h, this patch removes the
redundant definitions afterwards.

Change-Id: Id74a8ef1b9cec4a978366b6db69981cfc30dffb6
Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-04-22 15:35:48 +01:00
Tamas Ban
ccc717391f refactor(changelog): change all occurrences of RSS to RSE
Changes all occurrences of "RSS" and "rss" in the code and build files
to "RSE" and "rse".

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I66a6c87c158b14e18cba25ea6c6e0809e30008ca
2024-04-22 15:44:38 +02:00
Tamas Ban
59549e62cb refactor(qemu): change all occurrences of RSS to RSE
Changes all occurrences of "RSS" and "rss" in the code and build files
to "RSE" and "rse".

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I2c6840f6f3f2f8f64595a0e0aa6e12084a37ce6e
2024-04-22 15:44:38 +02:00
Tamas Ban
a822b8d82c refactor(fvp): change all occurrences of RSS to RSE
Changes all occurrences of "RSS" and "rss" in the code and build files
to "RSE" and "rse".

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I36b8e498f3226fc72d21634aae2cc9328d00711d
2024-04-22 15:44:38 +02:00
Tamas Ban
a11230ad00 refactor(fiptool): change all occurrences of RSS to RSE
Changes all occurrences of "RSS" and "rss" in the code and build files
to "RSE" and "rse".

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I8982c203375250d6c709a26f33fb88673d69da50
2024-04-22 15:44:38 +02:00
Tamas Ban
d797665cce refactor(psa): change all occurrences of RSS to RSE
Changes all occurrences of "RSS" and "rss" in the code and build files
to "RSE" and "rse".

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I606e2663fb3719edf6372d6ffa4f1982eef45994
2024-04-22 15:44:38 +02:00
Tamas Ban
47805037a2 refactor(fvp): remove leftovers from rss measured boot support
Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I1687327e028c2baec1ac6f0ae21b42b6047ceac0
2024-04-22 15:44:38 +02:00
Tamas Ban
7f8589cdba refactor(tc): change all occurrences of RSS to RSE
Changes all occurrences of "RSS" and "rss" in the code and build files
to "RSE" and "rse".

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: Idec0bf7a90ae381f5bc968e1bb167daace24a11f
2024-04-22 15:44:38 +02:00
Tamas Ban
624c9a0b38 docs: change all occurrences of RSS to RSE
Changes all occurrences of "RSS" and "rss" in the documentation
to "RSE" and "rse".

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: Ia42078f5faa1db331b1e5a35f01faeaf1afacb5f
2024-04-22 15:44:38 +02:00
Tamas Ban
b8245368cc refactor(measured-boot): change all occurrences of RSS to RSE
Changes all occurrences of "RSS" and "rss" in the code and build files
to "RSE" and "rse".

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I8c2fcbdf1de1c75f9969d28bc15e0b3500071404
2024-04-22 15:44:38 +02:00
Tamas Ban
e249e56954 refactor(rse): change all occurrences of RSS to RSE
Changes all occurrences of "RSS" and "rss" in the code and build files
to "RSE" and "rse".

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I9f72ad36ec233d7eaac3ce9e2f2b010130e1fa94
2024-04-22 15:44:38 +02:00
Tamas Ban
3857898f66 refactor(psa): rename all 'rss' files to 'rse'
Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I379c471c541dda25d8ee9087fcf67e05b4204474
2024-04-22 15:44:38 +02:00
Tamas Ban
097e7d37e2 refactor(tc): rename all 'rss' files to 'rse'
Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I264690e9bbc30be7ed7b8e4e165696494a67e00c
2024-04-22 15:44:38 +02:00
Tamas Ban
a5a5947a28 docs: rename all 'rss' files to 'rse'
Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I93877ebeca1db6ee27dcb5446cc1f1a1e4e56775
2024-04-22 15:44:38 +02:00
Tamas Ban
024c49484d refactor(measured-boot): rename all 'rss' files to 'rse'
Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I3bd987456ad0f5c7a003960dd543efad2ce668a8
2024-04-22 15:44:38 +02:00
Tamas Ban
955116982f refactor(rss): rename all 'rss' files to 'rse'
Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I6cfca1d67e246d5079f683241021ed039cc27f74
2024-04-22 15:44:38 +02:00
Harrison Mutai
75093b726d docs(fconf): add TB_FW config bindings
Document bindings for TB_FW_CONFIG that are common between platforms.
Since the information this device tree type contains pertains to
firmware specific properties, we do not expect that the document will
cover all uses, nor do we promise backward compatiblity.

Change-Id: I0e850c13b77cc62940ab5020a15bf8e503568ed8
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
2024-04-22 08:30:24 +00:00
Sandrine Bailleux
c540769349 docs(fvp): restructure FVP platform documentation
The Arm FVP documentation has grown organically over the years. As a
result, it has become a big document, which can be difficult to digest.

Also, the organization of some of the sections does not make sense. In
particular, all "Running on the ... FVP" sections live under a section
named "Booting a preloaded kernel image (Base FVP)". To illustrate this,
here is the current table of contents:

  Arm Fixed Virtual Platforms (FVP)
    Fixed Virtual Platform (FVP) Support
    Arm FVP Platform Specific Build Options
    Booting Firmware Update images
    Booting an EL3 payload
    Booting a preloaded kernel image (Base FVP)
      Obtaining the Flattened Device Treesp
      Running on the Foundation FVP with reset to BL1 entrypoint
      Running on the AEMv8 Base FVP with reset to BL1 entrypoint
      Running on the AEMv8 Base FVP (AArch32) with reset to BL1 entrypoint
      Running on the Cortex-A57-A53 Base FVP with reset to BL1 entrypoint
      Running on the Cortex-A32 Base FVP (AArch32) with reset to BL1 entrypoint
      Running on the AEMv8 Base FVP with reset to BL31 entrypoint
      Running on the AEMv8 Base FVP (AArch32) with reset to SP_MIN entrypoint
      Running on the Cortex-A57-A53 Base FVP with reset to BL31 entrypoint
      Running on the Cortex-A32 Base FVP (AArch32) with reset to SP_MIN entrypoint

This patch breaks down this document in sub-documents, which are now
included from the index file. The table of contents (ToC) reflects the
new documents hierarchy. The depth of the ToC has been reduced to
simplify the index page. Here is what it looks like now:

  Arm Fixed Virtual Platforms (FVP)
    Fixed Virtual Platform (FVP) Support
    Arm FVP Platform Specific Build Options
    Running on the Foundation FVP
    Running on the AEMv8 Base FVP
    Running on the Cortex-A57-A53 Base FVP
    Running on the Cortex-A32 Base FVP (AArch32)
    Booting Firmware Update images
    Booting an EL3 payload
    Booting a preloaded kernel image (Base FVP)

Apart from moving information around in separate files, this patch also
makes the following minor changes to the contents:

 - Add a brief introduction about FVPs in the index page.
 - Change some of the titles names for conciseness.

Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Change-Id: Icb650e0ec2c7a86ccd6e7eea4e16a84c41442c96
2024-04-22 08:54:30 +01:00
Lauren Wehrmeister
9728f9915d Merge "docs(plat): remove TC1 entry from the deprecation table" into integration 2024-04-19 17:49:06 +02:00