Header files for N2 CPU based platforms currently use "2" as
a suffix. Rename the common source file, nrd_plat_v2.c used by these
platforms to nrd_plat2.c to align with this convention.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I36b138a0a4dff8087e52f0f2cbc21abc03a793ad
Continuing the refactoring of the various definition for platforms based
on N2/V2 CPU, refactor the definitions in the nrd_soc_css_def_v2.h file
into the following files as appropriate.
- nrd_ros_def2.h: includes RoS hardware related definitions
- nrd_plat_arm_def2.h: includes platform port related definitions
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: Ib447e67a0a42722735297b27b7f5017bc146156c
Continuing the refactoring of the various definitions for the second
generation platforms based on the N2/V2 CPU, refactor the definitions in
the nrd_soc_platform_def_v2.h file into the following files as
appropriate.
- nrd_ros_def2.h: includes RoS hardware related definitions
- nrd_ros_fw_def2.h: includes RoS firmware related definitions
- nrd_plat_arm_def2.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: I393e6f4a84be45f1781ea281bd55fa813803f6db
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 the second generation platforms based on N2/V2 CPUs, split the
definitions in this file into multiple include files. The new files into
which the definitions are refactored are -
- nrd_css_def2.h: includes CSS hardware related definitions
- nrd_css_fw_def2.h: includes CSS firmware related definitions
- nrd_ros_fw_def2.h: includes RoS firmware related definitions
- nrd_plat_arm_def2.h: includes platform port elated 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 aforementioned platforms have been refactored from the
nrd_base_platform_def.h file.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I45f680857328fa77f0977897490b225bdb29efe4
Presently, platforms such as RD-N2, RD-N2-Cfg1, RD-N2-Cfg2 and RD-V2
utilize nrd_soc_platform_def_v2.h and nrd_soc_css_def_v2.h for all css
and soc-related defines. So move these two header files into a new
directory named 'nrd2'. This new directory will serve as the container
of header files that are specific to the former stated platforms.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I51ba0944dea91ae81e1840947d2e9af9b28d561d
The title for RD-N1-Edge was written as "RD-N1 Edge" in the changelog
file. This has been corrected to "RD-N1-Edge" to pedantically reflect
the proper name for the platform.
Change-Id: I17a0f8745117674482e7c668109d821c81e35d1d
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
As RD-V1-MC would need a dedicated scope for use, define the scope
'rdv1mc' under the subsection within Neoverse-RD platforms.
Change-Id: I5fd53ce89815e355b595fe7ff066386842b7af03
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
As RD-V1 would need a dedicated scope for use, define the scope
'rdv1' under the subsection within Neoverse-RD platforms.
Change-Id: I035499e1ce85d6efd54ac4fe74ff6185367a07aa
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
As SGI-575 would need a dedicated scope for use, define the scope
'sgi575' under the subsection within Neoverse-RD platforms.
Change-Id: I872dc3bceace5c3358cde24fff1c4c17207ec962
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
SPMD_SPM_AT_SEL2 is enabled by default for platforms. As the platforms
based on A75/V1/N1 CPUs don't use SPMD_SPM_AT_SEL2, set its value to 0.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I59703ddd769f61778ea06cc183e1b163369281f1
Set build-option ENABLE_FEAT_AMU to 2 for RD-V1 and RD-V1-MC so that AMU
is enabled if the feature is implemented on these platforms. This would
ensure that lower ELs could access system registers relevant to AMU
without causing a trap to EL3.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I4d34db0c102c786f34103746064e22600d28da33
As the last step of refactoring the platform support of the first
generation of reference design platforms (A75/N1/V1), clean-up the
platform port definitions listed in the nrd_plat_arm_def1.h file.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I73a9b94f1db22192398ea8211109d2e4aaf965e1
As part of the refactoring for A75/V1/N1 CPU based platforms, remove
unused defines from the platform_def.h for each of these platforms.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I37a6d82ad2f80a5c92b2652432fe2d211e052580
Presently, A75/V1/N1 CPU based platforms have platform port specific
macros defined within their platform_def.h file. To enhance organization
and appropriateness, relocate these definitions to
nrd_arm_platform_def1.h.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I1f55192185df1509756bc2ef022e5aed0724dd05
The newly introduced nrd_ros_fw_def1.h file contains definitions that
have been refactored from other files. For better clarity, these
definitions are renamed appropriately with the prefix NRD_ROS to
denote that the definitions are for the rest of system (RoS) part
of the platform.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I4ecc76ca9250a68f7eca5d9a0d82c7674b34ca1d
The newly introduced nrd_ros_def1.h file contains definitions that
have been refactored from other files. For better clarity, these
definitions are renamed appropriately with the prefix NRD_ROS to
denote that the definitions are for the rest of system (RoS) part
of the platform. While at it, cleanup the platform ID related
definitions as well.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I12f559c82c62f05b9eed67baf9dd69d89f83a4da
The newly introduced nrd_css_fw_def1.h file contains definitions that
have been refactored from other files. For better clarity, these
definitions are renamed appropriately with the prefix NRD_CSS to denote
that the definitions are for the CSS.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I8b9e52b4beb42aba1117df2db53daff96a7994bb
The newly introduced nrd_css_def1.h file contains definitions that have
been refactored from other files. For better clarity, these definitions
are renamed appropriately with the prefix NRD_CSS to denote that the
definitions are for the CSS.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: Ie8bb32f96273cfa102a03fba3290b58051dac747
The CSS and RoS peripherals memory map macros have incorrect memory base
address and region size values. That is, the existing mmap definitions
are -
CSS peripherals mmap - Base address (0x20000000) and size (0x20000000)
RoS peripherals mmap - Base address (0x40000000) and size (0x40000000)
The corrected peripherals memory map definitions are -
CSS peripherals mmap - Base address (0x20000000) and size (0x40000000)
RoS peripherals mmap - Base address (0x60000000) and size (0x20000000)
While these macros are being updated, it is a good opportunity to rename
them appropriately. That is, the new macros are named as
NRD_CSS_PERIPH_MMAP - for mmap macro for CSS peripherals memory region
NRD_ROS_PERIPH_MMAP - for mmap macro for RoS peripherals memory region
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: Ic2d12d7904922660a03efe6bc83ca8df2eb5a8d4
There are two macros that define ROS device memory map range and
attributes - one for local chip and the other for remote chip. Refactor
these two macros into a single macro that uses the chip ID to identify
the local or the remote chip.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: Iceb87f5fc319efa37105d66bb1c88b622a2bb366
There are two macros that define CSS device memory map range and
attributes - one for local chip and the other for remote chip. Refactor
these two macros into a single macro that uses the chip ID to identify
the local or the remote chip.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I8c5374587391839260079f49f66c3307cf7118a9
As per the ongoing refactoring, page table entry mappings should be part
of nrd_css_fw_def1.h, nrd_ros_fw_def1.h or nrd_plat_arm_def1.h.
Therefore, migrate any page table entries which are part of nrd_plat1.c
file.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: Ia3318b4a10b9379486cefb83b0efe2f12d545a09
The source file nrd_plat.c file is used only by the first generation of
reference design platforms (A75/N1/V1). So, rename this file as
nrd_plat1.c file to denote that this file is used only by the first
generation of reference design platforms. In addition to this, remove
any unused code in this file.
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I15aa9465260789b02a3e8f82af9e26a97092cebf
Continuing the refactoring of the various definitions for the first
generation of platforms (A75/N1/V1), refactor the definitions in the
nrd_soc_css_def.h file into the following files as appropriate.
- nrd_ros_def1.h: includes RoS hardware related definitions
- nrd_plat_arm_def1.h: includes platform port related definitions
Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I791a5cfbccdbdf19083f9b482b51d60f832aafd6
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
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
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
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
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>
* 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
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>
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>
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
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
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>
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>