Commit graph

11359 commits

Author SHA1 Message Date
Michal Simek
def661b6ef docs(maintainers): update xilinx record to cover docs
Recently new Xilinx Versal NET platform has been merged but documentation
cover only zynqmp. Fix the fragment to cover all Xilinx documentation.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Change-Id: I10f8f865ca8d46518135adb80ba0ba4470534529
2022-09-22 08:53:45 +02:00
Sai Pavan Boddu
6a079efd90 feat(versal_net): add support for QEMU COSIM platform
QEMU COSIM platform is equivalent to qemu with additional cosim
extensions, so just switching platform_id to QEMU if QEMU_COSIM is
detected.

Signed-off-by: Sai Pavan Boddu <sai.pavan.boddu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Change-Id: I922d10b1605c7f900158fa7fbe82571d3b9d4792
2022-09-22 08:45:53 +02:00
Jassi Brar
a12a66d0d6 fix(synquacer): increase size of BL33
Increase the max possible size of BL33 from 1MB to 2MB.
For example, edk2 is usually bigger than 1MB

Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
Change-Id: Idd4762e25e623de145c65f31cf2dfe1fee466a74
2022-09-21 22:14:29 +02:00
Joanna Farley
cdbea24097 Merge "docs(build): update GCC to 11.3.Rel1 version" into integration 2022-09-21 18:43:02 +02:00
Joanna Farley
f47d38ba02 Merge changes from topic "xilinx-versal-net" into integration
* changes:
  feat(versal-net): add support for platform management
  feat(versal-net): add support for IPI
  feat(versal-net): add SMP support for Versal NET
  feat(versal-net): add support for Xilinx Versal NET platform
  feat(versal-net): add documentation for Versal NET SoC
2022-09-21 18:29:58 +02:00
Marco Felsch
6e08cffcd2 fix(bl31): fix validate_el3_interrupt_rm preprocessor usage
Fix the "#if defined(FOO)" usage introduced by commit 7c2fe62f1
("fix(bl31): allow use of EHF with S-EL2 SPMC") since the defines are
always passed as -DFOO=0 or as -DFOO=1. The "#if defined(FOO)" will now
always be true which is wrong.

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Change-Id: I84fb144debc9899727a1fc021acdd59b4a6f0171
2022-09-21 17:54:57 +02:00
Jay Buddhabhatti
0654ab7f75 feat(versal-net): add support for platform management
Add support for PM EEMI interface for Versal_net. Also use PM
APIs in psci ops. Added TFA_NO_PM flag to disable PM functionality.

Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Change-Id: If2b2941c868bc9b0850d7f3adb81eac0e660c149
2022-09-20 19:02:42 +02:00
Michal Simek
0bf622de68 feat(versal-net): add support for IPI
Add support to send IPI to firmware.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Akshay Belsare <Akshay.Belsare@amd.com>
Change-Id: I8cd54c05b6a726e0d398dfc1cdcc7f4cf09ba725
2022-09-20 19:02:39 +02:00
Madhukar Pappireddy
a9e567cbe8 Merge "fix(imx8m): move caam init after serial init" into integration 2022-09-20 15:12:04 +02:00
Andrey Zhizhikin
901d74b2d4 fix(imx8m): move caam init after serial init
CAAM provides serial output during initialization, but the serial init
occurs after CAAM. This leads to serial output produced by CAAM init
function to be omitted and not displayed.

Change the order of initialization and call CAAM init after Serial. This
has no impact as Serial does not require CAAM to be initialized upfront.

Fixes: 2502709f60 ("plat: imx8m: Add caam module init on imx8m")
Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
Cc: Jacky Bai <ping.bai@nxp.com>
Change-Id: I09c0a5474a1babfb0b53c4455891689ec08b5bdb
2022-09-20 15:12:00 +02:00
Madhukar Pappireddy
7d3287f340 Merge "fix(imx8m): correct serial output for HAB JR0" into integration 2022-09-20 15:11:25 +02:00
Michal Simek
8529c7694f feat(versal-net): add SMP support for Versal NET
Add SMP support for Versal NET via register access.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Akshay Belsare <Akshay.Belsare@amd.com>
Change-Id: I46d73e2cd678ae720b5255722b6b0611c22659e8
2022-09-20 09:25:32 +02:00
Michal Simek
1d333e6909 feat(versal-net): add support for Xilinx Versal NET platform
New SoC is a78 based with gicv3 and uart over pl011. Communication
interfaces are similar to Versal platform. System starts with Xilinx PLM
firmware which loads TF-A(bl31) to DDR, which is already configured, and
jumps to it. PLM also prepare handoff structure for TF-A with information
what components were load and flags which indicate which EL level SW should
be started.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Akshay Belsare <Akshay.Belsare@amd.com>
Change-Id: I2a16c242a77be6c91be3d198727dc3b9bbb97410
2022-09-20 09:19:43 +02:00
Andrey Zhizhikin
6e24d79509 fix(imx8m): correct serial output for HAB JR0
Serial output is missing the EOL marker, which makes the output garbled.

Add EOL to the output, which adds a newline and makes log output
consistent.

Fixes: 77850c96f2 ("feat(plat/imx8m): do not release JR0 to NS if HAB is using it")
Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
Cc: Franck LENORMAND <franck.lenormand@nxp.com>
Cc: Jacky Bai <ping.bai@nxp.com>
Change-Id: I58b67f441016122bc9361d7224d310522917eff0
2022-09-20 08:03:57 +02:00
Joanna Farley
9f8de54b0f Merge "fix(zynqmp): resolve the misra 4.6 warnings" into integration 2022-09-19 18:23:28 +02:00
Michal Simek
4efdc48896 feat(versal-net): add documentation for Versal NET SoC
Add description for Versal NET SoC.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Akshay Belsare <Akshay.Belsare@amd.com>
Change-Id: Idcbb893c6b9e46512308c53ba2a0bee48a022b0a
2022-09-19 15:01:51 +02:00
HariBabu Gattem
15dc3e4f8d fix(zynqmp): resolve the misra 4.6 warnings
MISRA Violation: MISRA-C:2012 R.4.6
- Using basic numerical type int rather than a typedef
that includes size and signedness information.

Change-Id: Id85e69b29b124052b4a87462ce27fcdfc00c13c9
Signed-off-by: HariBabu Gattem <haribabu.gattem@amd.com>
2022-09-19 04:17:50 -07:00
Joanna Farley
8edd190e64 Merge "feat(versal): update macro name to generic and move to common place" into integration 2022-09-16 10:56:59 +02:00
Joanna Farley
b86cbe10d2 Merge changes from topic "provencore-spd" into integration
* changes:
  feat(zynqmp): add support for ProvenCore
  feat(services): add a SPD for ProvenCore
  feat(gic): add APIs to raise NS and S-EL1 SGIs
2022-09-16 10:52:37 +02:00
Manish V Badarkhe
75eb87f073 Merge changes from topic "RDN2_WARM_REBOOT_WITH_SGI" into integration
* changes:
  feat(sgi): enable css implementation of warm reset
  feat(scmi): send powerdown request to online secondary cpus
  feat(plat/arm/css): add interrupt handler for reboot request
  refactor(psci): move psci_do_pwrdown_sequence() out of private header
  feat(plat/arm/css): add per-cpu power down support for warm reset
  feat(scmi): set warm reboot entry point
  fix(gicv3): update the affinity mask to 8 bit
2022-09-16 10:27:21 +02:00
Manish V Badarkhe
eb3d4015a3 docs(fwu): update firmware update design
Refactored legacy firmware design and added details about PSA
firmware updates.

Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Change-Id: I9c123b3f62580d4271dbaff0a728b6412fae7890
2022-09-16 09:12:00 +01:00
Jeremie Corbier
358aa6b211 feat(zynqmp): add support for ProvenCore
ProvenCore requires secure SGIs to be handled at S-EL1. This patch
overrides the default ZynqMP configuration to handle them at EL3 in case
ProvenCore SPD is enabled.

Signed-off-by: Jeremie Corbier <jeremie.corbier@provenrun.com>
Signed-off-by: Mélanie Favre <melanie.favre@provenrun.com>
Change-Id: I2e36d2983f82fbb9b7acf7e18791b8ed92811b60
2022-09-15 22:26:57 +02:00
Florian Lugou
b0980e5843 feat(services): add a SPD for ProvenCore
Adds a dispatcher for ProvenCore based on the test secure payload
dispatcher.

Signed-off-by: Florian Lugou <florian.lugou@provenrun.com>
Change-Id: I978afc3af6a6f65791655685a7bc80070673c9f3
2022-09-15 22:26:57 +02:00
Sieu Mun Tang
dd7adcf3a8 fix(intel): fix asynchronous read response by copying data to input buffer
To fix that response should not be NULL when there is response data
need to be sent to input buffer by SDM.

Signed-off-by: Sieu Mun Tang <sieu.mun.tang@intel.com>
Change-Id: Id70289521792f5f995456d2e67e18f0185ca3fc0
2022-09-16 02:51:35 +08:00
Sieu Mun Tang
fbf7aef408 fix(intel): fix Mac verify update and finalize for return response data
To fix that the response data is returned when the source size ready
is still fit for response data size.

Signed-off-by: Sieu Mun Tang <sieu.mun.tang@intel.com>
Change-Id: Id8924137a5c33888e7042e9ab0e0e8c49b4a41ed
2022-09-16 02:49:01 +08:00
Pranav Madhu
18884c002e feat(sgi): enable css implementation of warm reset
Enable the CSS implementation of the warm reset for the rdn2 platform.

In addition to these  changes, fix coding style issues that are not
directly related to the code being introduced in this patch.

Change-Id: I75128d8bbcccbc26cf1e904691c7ef71349c622f
Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
2022-09-15 18:09:56 +05:30
Pranav Madhu
14a2892309 feat(scmi): send powerdown request to online secondary cpus
To initiate a reset or reboot, the nonsecure OS invokes the PSCI
SYSTEM_RESET function from any one core. As per the PSCI specification,
it is the responsibility of firmware to implement the system view of
the reset or reboot operation. For the platforms supported by CSS,
trigger the reset/reboot operation by sending an SGI to rest all CPUs
which are online. The CPUs respond to this interrupt by initiating its
powerdown sequence.

In addition to these changes, fix coding style issues that are not
directly related to the code being introduced in this patch.

Change-Id: I547253ee28ef7eefa78180d016893671a406bbfa
Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
2022-09-15 18:09:56 +05:30
Pranav Madhu
f1fe1440db feat(plat/arm/css): add interrupt handler for reboot request
Add platform specific interrupt handler for handling the reboot of
all CPU's. On shutdown/reboot, only one CPU invoke PSCI and enter into
trusted firmware. The CPU which entered trusted firmware signals the
rest of the cores which are online using SGI to initiate power down
sequence. On receiving the SGI, the handler will power down the
GIC redistributor interface of the respective core, configure the power
control register and power down the CPU by executing wfi.

In addition to these changes, fix coding style issues that are not
directly related to the code being introduced in this patch.

Change-Id: I4917dfdc47be5ce7367bee629486a6344cdd706f
Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
2022-09-15 18:09:56 +05:30
Pranav Madhu
65bbb9358b refactor(psci): move psci_do_pwrdown_sequence() out of private header
Move the psci_do_pwrdown_sequence() function declaration from PSCI
private header to common header. The psci_do_pwrdown_sequence is
required to support warm reset, where each CPU need to execute the
powerdown sequence.

Change-Id: I298e7a120be814941fa91c0b001002a080e56263
Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
2022-09-15 18:09:56 +05:30
Pranav Madhu
158ed580bd feat(plat/arm/css): add per-cpu power down support for warm reset
Add a new function to setup a SGI interrupt that will be used to trigger
a request for per-cpu power down when executing the PSCI SYSTEM_RESET
request. This will be used on CSS platform that require all the CPUs to
execute the CPU specific power down sequence to complete a warm reboot
sequence in which only the CPUs are power cycled.

Change-Id: I80da0f6c3cd0c5c442c82239ba1e1f773821a7f5
Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
2022-09-15 18:09:56 +05:30
Pranav Madhu
5cf9cc130a feat(scmi): set warm reboot entry point
Before issuing the system power down command, set the trusted mailbox
to 0. This will ensure that in the case of a warm/cold reset, the
primary CPU executes from the cold boot sequence, clearing any stale
jump address at this location.

Change-Id: I491ef5baf7a6728acd7e90e4558939ba77b8f9bf
Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
2022-09-15 18:09:56 +05:30
Pranav Madhu
e689048e20 fix(gicv3): update the affinity mask to 8 bit
The GIC ICC_SGI0R_EL1 register's affinity fields are 8bit wide for GIC
v3 and v4. Fix the SGIR_AFF_MASK variable accordingly.

Change-Id: I09f3fdd006708b40162776620f82abcfc6c3f782
Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
2022-09-15 18:09:56 +05:30
Manish Pandey
50c712d4ae Merge "fix: 'sp_mk_generator.py' reference to undef var" into integration 2022-09-15 14:28:34 +02:00
Rupinderjit Singh
a816de564f feat(tc): add RTC PL031 device tree node
It enables RTC PL031 driver in kernel.

Signed-off-by: Rupinderjit Singh <rupinderjit.singh@arm.com>
Change-Id: I6d7c1a5b6ce11b3d594f7575a747e72826c8d9b8
2022-09-15 13:04:44 +01:00
Manish Pandey
c6957b66e6 Merge "feat(gicv3): validate multichip data for GIC-700" into integration 2022-09-15 11:04:41 +02:00
Manish Pandey
f171ea2a1e Merge "fix(context mgmt): remove explicit ICC_SRE_EL2 register read" into integration 2022-09-15 10:49:38 +02:00
Joanna Farley
4e407e0d25 Merge "fix(versal): route GIC IPI interrupts during setup" into integration 2022-09-15 09:16:20 +02:00
Joanna Farley
71f286c211 Merge "fix(zynqmp): move debug bl31 based address back to OCM" into integration 2022-09-15 09:15:21 +02:00
Tanmay Shah
04cc91b43c fix(versal): route GIC IPI interrupts during setup
If primary core is down, then IPI interrupt should be
routed to another core for processing.

Signed-off-by: Tanmay Shah <tanmay.shah@amd.com>
Change-Id: I01d7c4232a18c0c3b3f3f9ddadfa6ff5bd2f2471
2022-09-14 17:46:05 +02:00
J-Alves
0be2475f69 fix: 'sp_mk_generator.py' reference to undef var
The script 'sp_mk_generator.py' was reworked in [1]. There was a
reference the variable 'data' left. This variable 'data' used to refer
to the json data of a the sp layout file.
This patch fixed the reference with the proper variable according to the
rework [1].

[1] https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/commit/?id=a96a07bfb66b7d38fe3da824e8ba183967659008

Signed-off-by: J-Alves <joao.alves@arm.com>
Change-Id: I9ddbfa8d55a114bcef6997920522571e070fc7d2
2022-09-14 15:56:03 +01:00
Florian Lugou
dcb31ff790 feat(gic): add APIs to raise NS and S-EL1 SGIs
This patch adds two helper functions:
 - plat_ic_raise_ns_sgi to raise a NS SGI
 - plat_ic_raise_s_el1_sgi to raise a S-EL1 SGI

Signed-off-by: Florian Lugou <florian.lugou@provenrun.com>
Change-Id: I6f262dd1da1d77fec3f850eb74189e726b8e24da
2022-09-14 16:08:29 +02:00
Varun Wadekar
2b28727e6d fix(context mgmt): remove explicit ICC_SRE_EL2 register read
ICC_SRE_EL2 has only 4 bits, while others are RES0. The library programs
all four of them already, so there is no need to read the previous
settings from the actual register.

This patch removes the explicit register read as a result.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Change-Id: Iff0cb3b0d6fd85e5ae891068e440d855973a1c5e
2022-09-14 13:39:28 +02:00
Manish V Badarkhe
9dedc1ab21 Merge changes from topic "morello-dt-fix" into integration
* changes:
  fix(morello): dts: remove #a-c and #s-c from memory node
  fix(morello): dts: fix GICv3 compatible string
  fix(morello): dts: fix DT node naming
  fix(morello): dts: fix SCMI shmem/mboxes grouping
  fix(morello): dts: use documented DPU compatible string
  fix(morello): dts: fix DP SMMU IRQ ordering
  fix(morello): dts: fix SMMU IRQ ordering
  fix(morello): dts: add model names
  fix(morello): dts: fix stdout-path target
2022-09-14 12:35:29 +02:00
Joanna Farley
febefa4dbb Merge changes from topic "xilinx-pm-misc-changes" into integration
* changes:
  fix(xilinx): update define for ZynqMP specific functions
  fix(xilinx): remove unnecessary header include
  fix(xilinx): include missing header
2022-09-14 12:01:37 +02:00
Joanna Farley
77135473c5 Merge changes from topic "xilinx-misc-changes" into integration
* changes:
  chore(zynqmp): fix comment style in zynqmp_def.h
  chore(versal): add missing dot at the end of sentence
  fix(zynqmp): remove additional 0x in %p print
  fix(versal): fix Misra-C violations in bl31_setup and pm_svc_main
2022-09-14 11:52:29 +02:00
Rajan Vaja
24b5b53a59 fix(xilinx): update define for ZynqMP specific functions
Instead of exclude code for Versal, define only for ZynqMP.
For new platforms this code should be excluded so instead of
excluding for all platform, define only for ZynqMP.

Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Change-Id: I45798dadc0f374c5794f517f7d0158675a75caa9
2022-09-14 10:15:16 +02:00
Rajan Vaja
0ee2dc118c fix(xilinx): remove unnecessary header include
Platform specific IPI header inclusion is not required
in common IPI source file. So remove inclusion of the same.

Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Change-Id: I6686757f00370c6ec42b5ee2c44ea5cd13da70c0
2022-09-14 10:12:42 +02:00
Rajan Vaja
28ba140021 fix(xilinx): include missing header
pm_ipi.h needs some definitions from stddef.h so include it.
Currently it is working because required file is included
indirectly due to other includes.

Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Change-Id: Ic4a6c469c3152e21eaeb365ba96f3a29f14593bf
2022-09-14 10:12:16 +02:00
Michal Simek
f114fd3b10 chore(zynqmp): fix comment style in zynqmp_def.h
Add missing space in one line comment to follow common coding style.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Change-Id: Idebf8f34bf48444ee20a68ac3e6fd7f5a41bf8b0
2022-09-14 09:35:58 +02:00
Michal Simek
8f4b37f12e chore(versal): add missing dot at the end of sentence
Add missing dot at the end of sentence.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Change-Id: I356e65fd8c572c12795e3492dd02d73f48cb4b67
2022-09-14 09:34:46 +02:00