]> git.baikalelectronics.ru Git - arm-tf.git/log
arm-tf.git
20 months agorefactor(amu): use new AMU feature check routines
Andre Przywara [Fri, 3 Mar 2023 10:30:06 +0000 (10:30 +0000)]
refactor(amu): use new AMU feature check routines

The AMU extension code was using its own feature detection routines.
Replace them with the generic CPU feature handlers (defined in
arch_features.h), which get updated to cover the v1p1 variant as well.

Change-Id: I8540f1e745d7b02a25a6c6cdf2a39d6f5e21f2aa
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agorefactor(amu): unify ENABLE_AMU and ENABLE_FEAT_AMUv1
Andre Przywara [Tue, 21 Mar 2023 13:53:19 +0000 (13:53 +0000)]
refactor(amu): unify ENABLE_AMU and ENABLE_FEAT_AMUv1

So far we have the ENABLE_AMU build option to include AMU register
handling code for enabling and context switch. There is also an
ENABLE_FEAT_AMUv1 option, solely to protect the HAFGRTR_EL2 system
register handling. The latter needs some alignment with the new feature
scheme, but it conceptually overlaps with the ENABLE_AMU option.

Since there is no real need for two separate options, unify both into a
new ENABLE_FEAT_AMU name in a first step. This is mostly just renaming at
this point, a subsequent patch will make use of the new feature handling
scheme.

Change-Id: I97d8a55bdee2ed1e1509fa9f2b09fd0bdd82736e
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agoMerge changes from topic "feat_state_part4" into integration
Manish Pandey [Mon, 27 Mar 2023 11:08:26 +0000 (13:08 +0200)]
Merge changes from topic "feat_state_part4" into integration

* changes:
  refactor(cpufeat): enable FEAT_RNG for FEAT_STATE_CHECKED
  refactor(cpufeat): align FEAT_SEL2 to new feature handling
  refactor(cpufeat): enable FEAT_NV2 for FEAT_STATE_CHECKED
  refactor(cpufeat): enable FEAT_TWED for FEAT_STATE_CHECKED
  refactor(cpufeat): enable FEAT_CSV2_2 for FEAT_STATE_CHECKED
  refactor(cpufeat): enable FEAT_ECV for FEAT_STATE_CHECKED
  refactor(cpufeat): enable FEAT_PAN for FEAT_STATE_CHECKED
  refactor(cpufeat): align FEAT_SB to new feature handling
  refactor(cpufeat): use alternative encoding for "SB" barrier
  refactor(cpufeat): enable SYS_REG_TRACE for FEAT_STATE_CHECKED
  fix(cpufeat): make stub enable functions "static inline"
  fix(mpam): feat_detect: support major/minor

20 months agoMerge "docs(maintainers): add new maintainers for MediaTek SoCs" into integration
Joanna Farley [Mon, 27 Mar 2023 08:12:09 +0000 (10:12 +0200)]
Merge "docs(maintainers): add new maintainers for MediaTek SoCs" into integration

20 months agodocs(maintainers): add new maintainers for MediaTek SoCs
Bo-Chen Chen [Fri, 24 Mar 2023 02:35:45 +0000 (10:35 +0800)]
docs(maintainers): add new maintainers for MediaTek SoCs

Change-Id: Ie6afadf16921d084137b0e0b5f2a76ae504a6bc7
Signed-off-by: Bo-Chen Chen <rex-bc.chen@mediatek.com>
20 months agoMerge "fix(fvp): unconditionally include lib/psa headers" into integration
Manish Pandey [Fri, 24 Mar 2023 15:02:57 +0000 (16:02 +0100)]
Merge "fix(fvp): unconditionally include lib/psa headers" into integration

20 months agoMerge "fix(gicv3): workaround for NVIDIA erratum T241-FABRIC-4" into integration
Manish Pandey [Fri, 24 Mar 2023 15:02:16 +0000 (16:02 +0100)]
Merge "fix(gicv3): workaround for NVIDIA erratum T241-FABRIC-4" into integration

20 months agoMerge "fix(versal-net): use spin_lock instead of bakery_lock" into integration
Joanna Farley [Fri, 24 Mar 2023 09:38:12 +0000 (10:38 +0100)]
Merge "fix(versal-net): use spin_lock instead of bakery_lock" into integration

20 months agofix(fvp): unconditionally include lib/psa headers
Manish V Badarkhe [Fri, 24 Mar 2023 08:22:33 +0000 (08:22 +0000)]
fix(fvp): unconditionally include lib/psa headers

Included lib/psa headers uncondiitionally to leverage their
use across different FVP build configurations.

Change-Id: I3417925e544d9ec20606a2ffba3d46ef7adaa730
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
20 months agofix(gicv3): workaround for NVIDIA erratum T241-FABRIC-4
Varun Wadekar [Wed, 8 Mar 2023 16:47:38 +0000 (16:47 +0000)]
fix(gicv3): workaround for NVIDIA erratum T241-FABRIC-4

The purpose of this patch is to address the T241 erratum T241-FABRIC-4,
which causes unexpected behavior in the GIC when multiple transactions
are received simultaneously from different sources. This hardware issue
impacts NVIDIA server platforms that use more than two T241 chips
interconnected. Each chip has support for 320 {E}SPIs.

This issue occurs when multiple packets from different GICs are
incorrectly interleaved at the target chip. The erratum text below
specifies exactly what can cause multiple transfer packets susceptible
to interleaving and GIC state corruption. GIC state corruption can
lead to a range of problems, including kernel panics, and unexpected
behavior.

Erratum documentation:
https://developer.nvidia.com/docs/t241-fabric-4/nvidia-t241-fabric-4-errata.pdf

The workaround is to ensure that MMIO accesses target the GIC on the
socket that holds the data, for example SPI ranges owned by the socket’s
GIC. This ensures that the GIC will not utilize the inter-socket AXI
Stream interface for servicing these GIC MMIO accesses.

This patch updates the functions that use the GICD_In{E} registers to
ensure that the accesses are directed to the chip that owns the SPI,
instead of using the global alias.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Change-Id: I04e33ba64eb306bd5fdabb56e63cbe273d8cd632

20 months agoMerge "fix(fpga): include missing header file" into integration
Madhukar Pappireddy [Thu, 23 Mar 2023 16:38:42 +0000 (17:38 +0100)]
Merge "fix(fpga): include missing header file" into integration

20 months agoMerge "fix(versal-net): correct aff level for cpu off" into integration
Joanna Farley [Thu, 23 Mar 2023 16:16:13 +0000 (17:16 +0100)]
Merge "fix(versal-net): correct aff level for cpu off" into integration

20 months agoMerge "fix(build): partially fix qemu aarch32 build" into integration
Bipin Ravi [Thu, 23 Mar 2023 15:58:52 +0000 (16:58 +0100)]
Merge "fix(build): partially fix qemu aarch32 build" into integration

20 months agoMerge "refactor(fvp): use RSS API to retrieve attestation token and key" into integration
Sandrine Bailleux [Thu, 23 Mar 2023 13:56:38 +0000 (14:56 +0100)]
Merge "refactor(fvp): use RSS API to retrieve attestation token and key" into integration

20 months agofix(fpga): include missing header file
Andre Przywara [Thu, 23 Mar 2023 11:43:22 +0000 (11:43 +0000)]
fix(fpga): include missing header file

Since transitioning over FEAT_SPE to the new feature checking scheme, we
make use of the new is_feat_spe_supported() function in the Arm FPGA
platform code. However this missed to include the header file, so the
build broke.

Add the arch_features.h header to make arm_fpga compile again.

Change-Id: I5c8feecfcc6fb5845a6671842850df1943086a58
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agofix(versal-net): use spin_lock instead of bakery_lock
Jay Buddhabhatti [Thu, 2 Mar 2023 10:47:36 +0000 (02:47 -0800)]
fix(versal-net): use spin_lock instead of bakery_lock

In ARM v8.2 the cache will turn off automatically when cpu power down.
Therefore use the spin_lock instead of bakery_lock for the platform in
which HW_ASSISTED_COHERENCY is enabled.

In Versal NET platform HW_ASSISTED_COHERENCY is enabled so it will use
spin lock. In ZynqMP and Versal HW_ASSISTED_COHERENCY is not enabled so
it will use bakery_lock.

Also remove bakery_lock_init() because it is empty.

Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com>
Change-Id: I18ff939b51f16d7d3484d8564d6ee6c586f363d8

20 months agofix(versal-net): correct aff level for cpu off
Jay Buddhabhatti [Thu, 23 Mar 2023 05:44:16 +0000 (22:44 -0700)]
fix(versal-net): correct aff level for cpu off

CPU suspend is calling validate_power_state PSCI opps which returns
power domain state for CPU suspend according to PSTATE type. In case of
power down it assigns PLAT_MAX_OFF_STATE to all affinity level which is
incorrect since for CPU suspend we need to set only MPIDR_AFFLVL0 which
is CPU state. So correct affinity level for CPU suspend.

Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com>
Change-Id: I39f92790ea74e4cab8e87342e73e1ac211a46fcd

20 months agofix(build): partially fix qemu aarch32 build
Rebecca Cran [Wed, 7 Dec 2022 20:24:44 +0000 (13:24 -0700)]
fix(build): partially fix qemu aarch32 build

While aarch32 isn't currently supported on qemu, platform.mk contains
hard-coded references to aarch64 in BL1_SOURCES which should be ${ARCH}.

This improves the situation, but since aarch32/qemu_max.S doesn't exist
and there are other missing files for aarch32, this is only a partial
fix.

Signed-off-by: Rebecca Cran <rebecca@quicinc.com>
Change-Id: I3fa01483e572abfd781ceaecff16ecf57cda8316

20 months agorefactor(fvp): use RSS API to retrieve attestation token and key
Manish V Badarkhe [Sun, 12 Mar 2023 21:34:44 +0000 (21:34 +0000)]
refactor(fvp): use RSS API to retrieve attestation token and key

Retrieved the platform attestation token and delegated realm attestation
key through the PSA delegated attestation layer.

Even though FVP doesn't support RSS hardware today, it can still
leverage the RSS implementation of these PSA interfaces in their mocking
form (see PLAT_RSS_NOT_SUPPORTED).

Therefore, platform APIs now call these PSA interfaces instead of
directly providing these hardcoded values.

Change-Id: I31d0ca58f6f1a444f513d954da4e3e67757321ad
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
20 months agoMerge changes from topic "errata" into integration
Madhukar Pappireddy [Wed, 22 Mar 2023 14:36:48 +0000 (15:36 +0100)]
Merge changes from topic "errata" into integration

* changes:
  fix(cpus): workaround for Cortex-A78C erratum 1827440
  fix(cpus): workaround for Cortex-A78C erratum 1827430

20 months agorefactor(cpufeat): enable FEAT_RNG for FEAT_STATE_CHECKED
Andre Przywara [Wed, 22 Feb 2023 17:55:59 +0000 (17:55 +0000)]
refactor(cpufeat): enable FEAT_RNG for FEAT_STATE_CHECKED

At the moment we only support for FEAT_RNG to be either unconditionally
compiled in, or to be not supported at all.

Add support for runtime detection (FEAT_RNG=2), by splitting
is_armv8_5_rng_present() into an ID register reading function and a second
function to report the support status. That function considers both build
time settings and runtime information (if needed), and is used before we
access the RNDRRS system register.

Change the QEMU platform default to the now supported dynamic option (=2),
so the right decision can be made by the code at runtime.

Change-Id: I1a4a538d5ad395fead7324f297d0056bda4f84cb
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agorefactor(cpufeat): align FEAT_SEL2 to new feature handling
Andre Przywara [Wed, 22 Feb 2023 16:53:50 +0000 (16:53 +0000)]
refactor(cpufeat): align FEAT_SEL2 to new feature handling

In ARMv8.4, the EL2 exception level got added to the secure world.
Adapt and rename the existing is_armv8_4_sel2_present() function, to
align its handling with the other CPU features.

Change-Id: If11e1942fdeb63c63f36ab9e89be810347d1a952
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agorefactor(cpufeat): enable FEAT_NV2 for FEAT_STATE_CHECKED
Andre Przywara [Fri, 27 Jan 2023 14:09:20 +0000 (14:09 +0000)]
refactor(cpufeat): enable FEAT_NV2 for FEAT_STATE_CHECKED

At the moment we only support for FEAT_NV2 to be either unconditionally
compiled in, or to be not supported at all.

Add support for runtime detection (CTX_INCLUDE_NEVE_REGS=2), by
splitting get_armv8_4_feat_nv_support() into an ID register reading
function and a second function to report the support status. That
function considers both build time settings and runtime information
(if needed), and is used before we access the VNCR_EL2 system register.
Also move the context saving code from assembly to C, and use the new
is_feat_nv2_supported() function to guard its execution.

Change the FVP platform default to the now supported dynamic option (=2),
so the right decision can be made by the code at runtime.

Change-Id: I85b080641995fb72cfd4ac933f7a3f75770c2cb9
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agorefactor(cpufeat): enable FEAT_TWED for FEAT_STATE_CHECKED
Andre Przywara [Fri, 27 Jan 2023 12:25:49 +0000 (12:25 +0000)]
refactor(cpufeat): enable FEAT_TWED for FEAT_STATE_CHECKED

At the moment we only support FEAT_TWED to be either unconditionally
compiled in, or to be not supported at all.

Add support for runtime detection (ENABLE_FEAT_TWED=2), by splitting
is_armv8_6_twed_present() into an ID register reading function and a
second function to report the support status. That function considers
both build time settings and runtime information (if needed), and is
used before we set the trap delay time.

Change the FVP platform default to the now supported dynamic option (=2),
so the right decision can be made by the code at runtime.

Change-Id: I58626230ef0af49886c0a197abace01e81f661d2
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agorefactor(cpufeat): enable FEAT_CSV2_2 for FEAT_STATE_CHECKED
Andre Przywara [Thu, 17 Nov 2022 17:30:43 +0000 (17:30 +0000)]
refactor(cpufeat): enable FEAT_CSV2_2 for FEAT_STATE_CHECKED

At the moment we only support FEAT_CSV2_2 to be either unconditionally
compiled in, or to be not supported at all.

Add support for runtime detection (ENABLE_FEAT_CSV2_2=2), by splitting
is_armv8_0_feat_csv2_2_present() into an ID register reading function
and a second function to report the support status. That function
considers both build time settings and runtime information (if needed),
and is used before we access the SCXTNUM_EL2 system register.
Also move the context saving code from assembly to C, and use the new
is_feat_csv2_2_supported() function to guard its execution.

Change the FVP platform default to the now supported dynamic option (=2),
so the right decision can be made by the code at runtime.

Change-Id: I89c7bc883e6a65727fdbdd36eb3bfbffb2196da7
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agorefactor(cpufeat): enable FEAT_ECV for FEAT_STATE_CHECKED
Andre Przywara [Thu, 17 Nov 2022 17:30:43 +0000 (17:30 +0000)]
refactor(cpufeat): enable FEAT_ECV for FEAT_STATE_CHECKED

At the moment we only support FEAT_ECV to be either unconditionally
compiled in, or to be not supported at all.

Add support for runtime detection (ENABLE_FEAT_ECV=2), by splitting
is_feat_ecv_present() into an ID register reading function and a second
function to report the support status. That function considers both
build time settings and runtime information (if needed), and is used
before we access the CNTPOFF_EL2 system register.
Also move the context saving code from assembly to C, and use the new
is_feat_ecv_supported() function to guard its execution.

Change the FVP platform default to the now supported dynamic option (=2),
so the right decision can be made by the code at runtime.

Change-Id: I4acd5384929f1902b62a87ae073aafa1472cd66b
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agorefactor(cpufeat): enable FEAT_PAN for FEAT_STATE_CHECKED
Andre Przywara [Thu, 26 Jan 2023 15:27:38 +0000 (15:27 +0000)]
refactor(cpufeat): enable FEAT_PAN for FEAT_STATE_CHECKED

At the moment we only support FEAT_PAN to be either unconditionally
compiled in, or to be not supported at all.

Add support for runtime detection (ENABLE_FEAT_PAN=2), by splitting
is_armv8_1_pan_present() into an ID register reading function and a
second function to report the support status. That function considers
both build time settings and runtime information (if needed), and is
used before we PAN specific setup.

Change the FVP platform default to the now supported dynamic option (=2),
so the right decision can be made by the code at runtime.

Change-Id: I58e5fe8d3c9332820391c7d93a8fb9dba4cf754a
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agorefactor(cpufeat): align FEAT_SB to new feature handling
Andre Przywara [Thu, 17 Nov 2022 16:42:09 +0000 (16:42 +0000)]
refactor(cpufeat): align FEAT_SB to new feature handling

FEAT_SB introduces a new speculation barrier instruction, that is more
lightweight than a "dsb; isb" combination. We use that in a hot path,
so cannot afford and don't want a runtime detection mechanism.
Nevertheless align the implementation of the feature detection part
with the other features, but renaming the detection function, and
updating the FEAT_DETECTION code. Also update the documentation.

Change-Id: I2b86dfd1ad259c3bb99ab5186e2911ace454b54c
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agorefactor(cpufeat): use alternative encoding for "SB" barrier
Andre Przywara [Fri, 25 Nov 2022 14:10:13 +0000 (14:10 +0000)]
refactor(cpufeat): use alternative encoding for "SB" barrier

The "sb" barrier instruction is a rather new addition to the AArch64
instruction set, so it is not recognised by all toolchains. On top of
that, the GNU assembler denies this instruction, unless a compatible
processor is selected:
asm_macros.S:223: Error: selected processor does not support `sb'

Provide an alternative encoding of the "sb" instruction, by using a
system register write, as this is the group where the barrier
instructions borrow their encoding space from.
This results in the exact same opcode to be generated, and any
disassembler will decode this instruction as "sb".

Change-Id: I5f44c8321e0cc04c784e02bd838e964602a96a8e
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agorefactor(cpufeat): enable SYS_REG_TRACE for FEAT_STATE_CHECKED
Andre Przywara [Thu, 17 Nov 2022 16:42:09 +0000 (16:42 +0000)]
refactor(cpufeat): enable SYS_REG_TRACE for FEAT_STATE_CHECKED

At the moment we only support access to the trace unit by system
registers (SYS_REG_TRACE) to be either unconditionally compiled in, or
to be not supported at all.

Add support for runtime detection (ENABLE_SYS_REG_TRACE_FOR_NS=2), by
adding is_feat_sys_reg_trace_supported(). That function considers both
build time settings and runtime information (if needed), and is used
before we access SYS_REG_TRACE related registers.

The FVP platform decided to compile in support unconditionally (=1),
even though this is an optional feature, so it is not available with the
FVP model's default command line.
Change that to the now supported dynamic option (=2), so the right
decision can be made by the code at runtime.

Change-Id: I450a574a4f6bd9fc269887037049c94c906f54b2
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agofix(cpufeat): make stub enable functions "static inline"
Andre Przywara [Wed, 22 Mar 2023 13:25:00 +0000 (13:25 +0000)]
fix(cpufeat): make stub enable functions "static inline"

For builds where we don't have a certain feature enabled, we provide
empty stub xxx_enable() functions in a header file. This way we
avoid #ifdef's in the code, and can call the enable function
unconditionally. When compiling with -O1 or higher, the compiler will
even optimise out the whole call, so the symbol will never make it into
any object file.
When compiling with optimisations turned off, the function stub will
survive, and could make it into multiple object files, which would lead
to a multiple definitons error.

Avoid this by defining those stub functions as "static inline". The
"static" will avoid the multiple definitions problems, the "inline" will
avoid a potential compiler warning about unused functions.
This patterns is used extensively in the Linux kernel.

Change-Id: Iad07bb946aab372587c83f2423b4983bf3817990
Reported-by: Chris Kay <chris.kay@arm.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agofix(cpus): workaround for Cortex-A78C erratum 1827440
Bipin Ravi [Tue, 14 Mar 2023 16:03:24 +0000 (11:03 -0500)]
fix(cpus): workaround for Cortex-A78C erratum 1827440

Cortex-A78C erratum 1827440 is a Cat B erratum that applies to
revision r0p0 and is fixed in r0p1.

The workaround is to set CPUACTLR2_EL1[2], which forces atomic store
operations to write-back memory to be performed in the L1 data cache.

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

Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
Change-Id: I41d8ef48f70216ec66bf2b0f4f03ea8d8c261ee7

20 months agofix(cpus): workaround for Cortex-A78C erratum 1827430
Bipin Ravi [Tue, 14 Mar 2023 15:04:23 +0000 (10:04 -0500)]
fix(cpus): workaround for Cortex-A78C erratum 1827430

Cortex-A78C erratum 1827430 is a Cat B erratum that applies to
revision r0p0 and is fixed in r0p1.

The workaround is to set the CPUECTLR_EL1[53] to 1, which disables
allocation of splintered pages in the L2 TLB.

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

Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
Change-Id: Ie68771bdd3bddeff54d06b6a456dad4a7fc27426

20 months agoMerge "fix(pauth): make pauth_helpers linking generic" into integration
Manish Pandey [Tue, 21 Mar 2023 15:58:34 +0000 (16:58 +0100)]
Merge "fix(pauth): make pauth_helpers linking generic" into integration

20 months agoMerge "fix(mmc): remove redundant reset_to_idle call" into integration
Manish Pandey [Tue, 21 Mar 2023 15:53:14 +0000 (16:53 +0100)]
Merge "fix(mmc): remove redundant reset_to_idle call" into integration

20 months agoMerge "fix(smccc): check smc_fid [23:17] bits" into integration
Manish V Badarkhe [Tue, 21 Mar 2023 15:07:14 +0000 (16:07 +0100)]
Merge "fix(smccc): check smc_fid [23:17] bits" into integration

20 months agofix(mpam): feat_detect: support major/minor
Andre Przywara [Tue, 21 Mar 2023 14:44:59 +0000 (14:44 +0000)]
fix(mpam): feat_detect: support major/minor

The MPAM CPU ID version number is split between two CPU ID register
fields, with the second being a fractional field, allowing for instance
for a "MPAM v1.1" number. The read_feat_mpam_version() function merges
those two fields to form a "4.4" fixed point fractional number, but the
limit check in the check_feature() function was not taking this into
account.
To support MPAM major version 1, extend the limit from "1" to "17", to
cover the current maximum version of "MPAM v1.1".
This fixes FVP runs with "has_mpam=1" and FEATURE_DETECTION enabled.

Change-Id: Icb557741d597e4e43eaf658b78f18af6e9fb439e
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agoMerge changes I924ea85d,I22e128c4,I7a5cfaac into integration
Olivier Deprez [Tue, 21 Mar 2023 09:46:41 +0000 (10:46 +0100)]
Merge changes I924ea85d,I22e128c4,I7a5cfaac into integration

* changes:
  feat(mt8195): add support for SMC from OP-TEE
  feat(mediatek): add SMC handler for EMI MPU
  feat(mediatek): add SiP service for OP-TEE

20 months agofeat(mt8195): add support for SMC from OP-TEE
Bo-Chen Chen [Wed, 1 Mar 2023 08:12:46 +0000 (16:12 +0800)]
feat(mt8195): add support for SMC from OP-TEE

- Add MTK_SIP_SMC_FROM_S_EL1_TABLE to handle the SMC call from OP-TEE.
- Register optee SMC ID for EMI MPU.

Signed-off-by: Bo-Chen Chen <rex-bc.chen@mediatek.com>
Signed-off-by: Ming Huang <ming.huang@mediatek.com>
Signed-off-by: jason-ch chen <Jason-ch.Chen@mediatek.com>
Change-Id: I924ea85d29d4113e92d8f3d411c0fb77daa0c205

20 months agofeat(mediatek): add SMC handler for EMI MPU
Bo-Chen Chen [Tue, 6 Dec 2022 07:22:33 +0000 (15:22 +0800)]
feat(mediatek): add SMC handler for EMI MPU

EMI MPU will handle the SMC call from optee, so we need to add this
patch to support it.

Signed-off-by: Bo-Chen Chen <rex-bc.chen@mediatek.com>
Signed-off-by: jason-ch chen <Jason-ch.Chen@mediatek.com>
Change-Id: I22e128c4246814cbd5855f51a26e4e11ccfe3a6b

20 months agofeat(mediatek): add SiP service for OP-TEE
Bo-Chen Chen [Tue, 6 Dec 2022 07:20:31 +0000 (15:20 +0800)]
feat(mediatek): add SiP service for OP-TEE

Add SiP service for the SMC call from the secure world.

Signed-off-by: Bo-Chen Chen <rex-bc.chen@mediatek.com>
Signed-off-by: jason-ch chen <Jason-ch.Chen@mediatek.com>
Change-Id: I7a5cfaac5c46ea65be793c3d291e4332cc0b2e54

20 months agoMerge changes from topics "qemu", "qemu_sbsa" into integration
Bipin Ravi [Mon, 20 Mar 2023 21:21:24 +0000 (22:21 +0100)]
Merge changes from topics "qemu", "qemu_sbsa" into integration

* changes:
  feat(qemu): add A76/N1 cpu support for virt
  feat(qemu): add "neoverse-n1" cpu support
  feat(qemu): make coherent memory section optional
  refactor(qemu): make use of setup_page_tables()

20 months agoMerge changes from topic "feat_state_part3" into integration
Manish Pandey [Mon, 20 Mar 2023 17:25:00 +0000 (18:25 +0100)]
Merge changes from topic "feat_state_part3" into integration

* changes:
  refactor(cpufeat): enable FEAT_VHE for FEAT_STATE_CHECKED
  refactor(mpam): enable FEAT_MPAM for FEAT_STATE_CHECKED
  feat(libc): add support for fallthrough statement
  refactor(spe): enable FEAT_SPE for FEAT_STATE_CHECKED
  refactor(cpufeat): rename ENABLE_SPE_FOR_LOWER_ELS to ENABLE_SPE_FOR_NS
  fix(spe): drop SPE EL2 context switch code

20 months agoMerge changes from topic "bk/errata_refactor" into integration
Manish Pandey [Mon, 20 Mar 2023 15:45:08 +0000 (16:45 +0100)]
Merge changes from topic "bk/errata_refactor" into integration

* changes:
  chore(fvp): add the aarch32 cortex A57 to the build
  chore(cpus): remove redundant asserts
  refactor(cpus): shorten errata flag defines

20 months agorefactor(cpufeat): enable FEAT_VHE for FEAT_STATE_CHECKED
Andre Przywara [Thu, 17 Nov 2022 16:42:09 +0000 (16:42 +0000)]
refactor(cpufeat): enable FEAT_VHE for FEAT_STATE_CHECKED

At the moment we only support FEAT_VHE to be either unconditionally
compiled in, or to be not supported at all.

Add support for runtime detection (ENABLE_FEAT_VHE=2), by splitting
is_armv8_1_vhe_present() into an ID register reading function and a
second function to report the support status. That function considers
both build time settings and runtime information (if needed), and is
used before we access VHE related registers.
Also move the context saving code from assembly to C, and use the new
is_feat_vhe_supported() function to guard its execution.

Enable VHE in its runtime detection version for all FVP builds.

Change-Id: Ib397cd0c83e8c709bd6fed603560e39901fa672b
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agorefactor(mpam): enable FEAT_MPAM for FEAT_STATE_CHECKED
Andre Przywara [Thu, 17 Nov 2022 16:42:09 +0000 (16:42 +0000)]
refactor(mpam): enable FEAT_MPAM for FEAT_STATE_CHECKED

At the moment we only support FEAT_MPAM to be either unconditionally
compiled in, or to be not supported at all.

Add support for runtime detection (ENABLE_MPAM_FOR_LOWER_ELS=2), by
splitting get_mpam_version() into an ID register reading
function and a second function to report the support status. That
function considers both build time settings and runtime information (if
needed), and is used before we access MPAM related registers.
Also move the context saving code from assembly to C, and use the new
is_feat_mpam_supported() function to guard its execution.

ENABLE_MPAM_FOR_LOWER_ELS defaults to 0, so add a stub enable function
to cover builds with compiler optimisations turned off. The unused
mpam_enable() function call will normally be optimised away (because it
would never be called), but with -O0 the compiler will leave the symbol
in the object file.

Change-Id: I531d87cb855a7c43471f861f625b5a6d4bc61313
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agofeat(libc): add support for fallthrough statement
Andre Przywara [Tue, 21 Feb 2023 12:05:29 +0000 (12:05 +0000)]
feat(libc): add support for fallthrough statement

Modern C compilers warn about unannotated switch/case fallthrough code,
and require either a comment with some magic words, or an explicit
compiler attribute.
Since some TF-A static analysis CI check suggests having a "fallthrough;"
statement instead of a comment, introduce a macro that implements that
statement, and emits the proper compiler attribute.

Change-Id: Ib34e615fb48d0f4a340aabfad4472e08d5c70248
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agorefactor(spe): enable FEAT_SPE for FEAT_STATE_CHECKED
Andre Przywara [Thu, 17 Nov 2022 16:42:09 +0000 (16:42 +0000)]
refactor(spe): enable FEAT_SPE for FEAT_STATE_CHECKED

At the moment we only support FEAT_SPE to be either unconditionally
compiled in, or to be not supported at all.

Add support for runtime detection (ENABLE_SPE_FOR_NS=2), by splitting
is_armv8_2_feat_spe_present() into an ID register reading function and
a second function to report the support status. That function considers
both build time settings and runtime information (if needed), and is
used before we access SPE related registers.

Previously SPE was enabled unconditionally for all platforms, change
this now to the runtime detection version.

Change-Id: I830c094107ce6a398bf1f4aef7ffcb79d4f36552
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agorefactor(cpufeat): rename ENABLE_SPE_FOR_LOWER_ELS to ENABLE_SPE_FOR_NS
Andre Przywara [Fri, 3 Feb 2023 15:30:14 +0000 (15:30 +0000)]
refactor(cpufeat): rename ENABLE_SPE_FOR_LOWER_ELS to ENABLE_SPE_FOR_NS

At the moment we hardcode the SPE functionality to be available on the
non-secure side only, by setting MDCR_EL2.E2PB accordingly.

This should be reflected in the feature selection symbol, so rename that
to ENABLE_SPE_FOR_NS, to make it clearer that SPE is not supported in
the secure world.

Change-Id: I3f9b48eab1a45d6ccfcbb9c90a11eeb66867ad9a
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agofix(spe): drop SPE EL2 context switch code
Andre Przywara [Fri, 3 Feb 2023 15:23:59 +0000 (15:23 +0000)]
fix(spe): drop SPE EL2 context switch code

At the moment we hardcode the SPE functionality to be available on the
non-secure side only, by setting MDCR_EL3.NSPB accordingly.
This also means that the secure world cannot use SPE, so there is no
need to context switch the PMSCR_EL2 register.

Drop the SPE bits from the EL2 context switch code. If any of the other
EL2 worlds wish to start using SPE, this can be brought back.

Change-Id: Ie0fedb2aeb722a2c9db316051fbbe57ca0e3c0c9
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
20 months agoMerge "feat(qemu): combine TF-A artefacts into ROM file" into integration
André Przywara [Mon, 20 Mar 2023 10:18:37 +0000 (11:18 +0100)]
Merge "feat(qemu): combine TF-A artefacts into ROM file" into integration

20 months agofix(smccc): check smc_fid [23:17] bits
Jayanth Dodderi Chidanand [Thu, 9 Mar 2023 13:56:03 +0000 (13:56 +0000)]
fix(smccc): check smc_fid [23:17] bits

As per SMCCC spec Table 2.1 bit 23:17 must be zero (MBZ),
for all Fast Calls, when bit[31] == 1.
Adding this check to ensure SMC FIDs when get to the SMC handler
have these bits (23:17) cleared, if not capture and report them
as an unknown SMCs at the core.

Also the C runtime stack is copied to the stackpointer well in
advance, to leverage the existing el3_exit routine for unknown SMC.

Change-Id: I9972216db5ac164815011177945fb34dadc871b0
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
20 months agoMerge "feat(tcr2): support FEAT_TCR2" into integration
Manish Pandey [Fri, 17 Mar 2023 13:44:41 +0000 (14:44 +0100)]
Merge "feat(tcr2): support FEAT_TCR2" into integration

20 months agoMerge "feat(ufs): adds timeout and error handling" into integration
Madhukar Pappireddy [Fri, 17 Mar 2023 13:34:41 +0000 (14:34 +0100)]
Merge "feat(ufs): adds timeout and error handling" into integration

20 months agoMerge "docs: disable PDF output for documentation generation" into integration
Joanna Farley [Thu, 16 Mar 2023 19:22:27 +0000 (20:22 +0100)]
Merge "docs: disable PDF output for documentation generation" into integration

20 months agofeat(tcr2): support FEAT_TCR2
Mark Brown [Tue, 14 Mar 2023 20:13:03 +0000 (20:13 +0000)]
feat(tcr2): support FEAT_TCR2

Arm v8.9 introduces FEAT_TCR2, adding extended translation control
registers. Support this, context switching TCR2_EL2 and disabling
traps so lower ELs can access the new registers.

Change the FVP platform to default to handling this as a dynamic option so
the right decision can be made by the code at runtime.

Signed-off-by: Mark Brown <broonie@kernel.org>
Change-Id: I297452acd8646d58bac64fc15e05b06a543e5148

20 months agodocs: disable PDF output for documentation generation
Sandrine Bailleux [Thu, 16 Mar 2023 15:55:26 +0000 (16:55 +0100)]
docs: disable PDF output for documentation generation

Change-Id: I827deeb8008f0bf5f44c1f9d4afcce21ef102bba

20 months agoMerge "fix(nxp-drivers): use semicolon instead of comma" into integration
Madhukar Pappireddy [Thu, 16 Mar 2023 14:55:06 +0000 (15:55 +0100)]
Merge "fix(nxp-drivers): use semicolon instead of comma" into integration

20 months agochore(fvp): add the aarch32 cortex A57 to the build
Boyan Karatotev [Fri, 27 Jan 2023 10:58:42 +0000 (10:58 +0000)]
chore(fvp): add the aarch32 cortex A57 to the build

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: I80921b501ad9a97ddf23c371642a0a5e3f56cd99

20 months agochore(cpus): remove redundant asserts
Boyan Karatotev [Fri, 27 Jan 2023 10:51:27 +0000 (10:51 +0000)]
chore(cpus): remove redundant asserts

get_cpu_ops_ptr asserts that it didn't get 0 for a cpu_ops pointer. Its
callers don't need to do the same.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: I547ac592949f74e153ef161015326f64aead2f28

20 months agorefactor(cpus): shorten errata flag defines
Boyan Karatotev [Thu, 17 Nov 2022 12:01:29 +0000 (12:01 +0000)]
refactor(cpus): shorten errata flag defines

The cpu-ops makefile has errata flag definition and flag processing done
per flag in separate parts in the file. Rework this to make a list and
do this in a much more concise way.

To ensure no flags were missed, a bash script [1] was used to verify all
errata flags made it across. Only the first few flags with different
naming were checked manually.

[1]:
sed -n "s/CPU_FLAG_LIST += ERRATA_\(.*\)/\1/p" lib/cpus/cpu-ops.mk > \
/tmp/new
git checkout origin/master
sed -n "s/ERRATA_\([[:alnum:]_-]*\)\s*?=0/\1/p" lib/cpus/cpu-ops.mk > \
/tmp/old
diff /tmp/old /tmp/new

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: I3b88af46838cc26f42d2c66b31f96c0855fa406c

20 months agoMerge changes from topic "mb/secure-evlog-cpy" into integration
Sandrine Bailleux [Thu, 16 Mar 2023 08:37:18 +0000 (09:37 +0100)]
Merge changes from topic "mb/secure-evlog-cpy" into integration

* changes:
  feat(fvp): copy the Event Log to TZC secured DRAM area
  feat(arm): carveout DRAM1 area for Event Log

20 months agofix(nxp-drivers): use semicolon instead of comma
Elyes Haouas [Tue, 21 Feb 2023 13:54:50 +0000 (14:54 +0100)]
fix(nxp-drivers): use semicolon instead of comma

Use semicolon insted of comma at the end of line.

Change-Id: Id820f4419fdd7cf522fd8bb07395789d25f40c2e
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
20 months agofeat(qemu): add A76/N1 cpu support for virt
Chen Baozi [Sun, 12 Mar 2023 15:19:28 +0000 (23:19 +0800)]
feat(qemu): add A76/N1 cpu support for virt

Add support to "cortex-a76" and "neoverse-n1" cpu for "qemu" ('virt')
platform.

Signed-off-by: Chen Baozi <chenbaozi@phytium.com.cn>
Change-Id: I77a3e0bb8397a2fb45a2caa7d93ba38e39297f93

20 months agoMerge "fix(tc): unify TC ROM start addresses" into integration
Manish V Badarkhe [Wed, 15 Mar 2023 20:06:19 +0000 (21:06 +0100)]
Merge "fix(tc): unify TC ROM start addresses" into integration

20 months agoMerge "test(tc): test for AP/RSS NV counter interface" into integration
Manish V Badarkhe [Wed, 15 Mar 2023 17:49:35 +0000 (18:49 +0100)]
Merge "test(tc): test for AP/RSS NV counter interface" into integration

20 months agoMerge "style(hooks): adds Arm copyright style fix" into integration
Manish V Badarkhe [Wed, 15 Mar 2023 16:51:42 +0000 (17:51 +0100)]
Merge "style(hooks): adds Arm copyright style fix" into integration

20 months agostyle(hooks): adds Arm copyright style fix
Maksims Svecovs [Wed, 15 Mar 2023 13:24:44 +0000 (13:24 +0000)]
style(hooks): adds Arm copyright style fix

Adds a check to pre-commit hook that makes sure "Arm" is written in a
correct case and not "arm" or "ARM". Same as a copyright-year check, the
hook will fix the issue and prompt user to stage the fix.

Change-Id: I39db148d6621d542193f3ee703bddc23c7e8dc27
Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com>
20 months agoMerge "feat(morello): implement methods to retrieve soc-id information" into integration
Manish V Badarkhe [Wed, 15 Mar 2023 13:27:47 +0000 (14:27 +0100)]
Merge "feat(morello): implement methods to retrieve soc-id information" into integration

20 months agoMerge "fix(versal_net): fix irq for IPI0" into integration
Joanna Farley [Wed, 15 Mar 2023 12:14:26 +0000 (13:14 +0100)]
Merge "fix(versal_net): fix irq for IPI0" into integration

20 months agoMerge "refactor(build): distinguish BL2 as TF-A entry point and BL2 running at EL3...
Manish Pandey [Wed, 15 Mar 2023 11:45:26 +0000 (12:45 +0100)]
Merge "refactor(build): distinguish BL2 as TF-A entry point and BL2 running at EL3" into integration

20 months agorefactor(build): distinguish BL2 as TF-A entry point and BL2 running at EL3
Arvind Ram Prakash [Tue, 22 Nov 2022 20:41:00 +0000 (14:41 -0600)]
refactor(build): distinguish BL2 as TF-A entry point and BL2 running at EL3

BL2_AT_EL3 is an overloaded macro which has two uses:
1. When BL2 is entry point into TF-A(no BL1)
2. When BL2 is running at EL3 exception level
These two scenarios are not exactly same even though first implicitly
means second to be true. To distinguish between these two use cases we
introduce new macros.
BL2_AT_EL3 is renamed to RESET_TO_BL2 to better convey both 1. and 2.
Additional macro BL2_RUNS_AT_EL3 is added to cover all scenarious where
BL2 runs at EL3 (including four world systems).

BREAKING CHANGE: BL2_AT_EL3 renamed to RESET_TO_BL2 across the
repository.

Change-Id: I477e1d0f843b44b799c216670e028fcb3509fb72
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com>
20 months agofeat(ufs): adds timeout and error handling
Anand Saminathan [Fri, 10 Mar 2023 08:29:57 +0000 (08:29 +0000)]
feat(ufs): adds timeout and error handling

Adds a common function to poll for interrupt status which reports errors
and returns error codes

Signed-off-by: Anand Saminathan <anans@google.com>
Change-Id: Ie5df036dc979e984871de4ae7e974b994296ca4c

20 months agofeat(morello): implement methods to retrieve soc-id information
Chandni Cherukuri [Thu, 16 Feb 2023 14:52:32 +0000 (20:22 +0530)]
feat(morello): implement methods to retrieve soc-id information

Added silicon revision in the platform information SDS structure.

Implemented platform functions to retrieve the soc-id information
for the morello SoC platform. SoC revision, which is same as
silicon revision, is fetched from the morello_plat_info structure
and SoC version is populated with the part number from SSC_VERSION
register, and is reflected in bits[0:15] of soc-id.

Signed-off-by: Chandni Cherukuri <chandni.cherukuri@arm.com>
Change-Id: I8e0c5b2bc21e393e6d638858cc2ea9f4638f04b9

20 months agofix(versal_net): fix irq for IPI0
Trung Tran [Tue, 14 Mar 2023 18:59:37 +0000 (11:59 -0700)]
fix(versal_net): fix irq for IPI0

Currently isr is not called when IPI0 interrupt occurs.
fix irq number and enable GIC interrupt properly to invoke
registered isr on IPI0 interrupt.

Signed-off-by: Trung Tran <trung.tran@amd.com>
Signed-off-by: Tanmay Shah <tanmay.shah@amd.com>
Change-Id: Id0408b3a560b25234886a9fa01c4ed248d1d1532

20 months agoMerge "fix(cpus): workaround for Neoverse V1 errata 2743233" into integration
Bipin Ravi [Tue, 14 Mar 2023 18:53:19 +0000 (19:53 +0100)]
Merge "fix(cpus): workaround for Neoverse V1 errata 2743233" into integration

20 months agoMerge "fix(rss): fix msg deserialization bugs in comms" into integration
Manish V Badarkhe [Tue, 14 Mar 2023 14:19:21 +0000 (15:19 +0100)]
Merge "fix(rss): fix msg deserialization bugs in comms" into integration

20 months agoMerge "fix(pmu): switch FVP PMUv3 SPIs to PPI" into integration
Manish V Badarkhe [Tue, 14 Mar 2023 13:25:10 +0000 (14:25 +0100)]
Merge "fix(pmu): switch FVP PMUv3 SPIs to PPI" into integration

20 months agoMerge "fix(tegra): append major revision to the chip_id value" into integration
Varun Wadekar [Mon, 13 Mar 2023 16:52:15 +0000 (17:52 +0100)]
Merge "fix(tegra): append major revision to the chip_id value" into integration

20 months agoMerge "fix(ti): do not take system power reference in bl31_platform_setup()" into...
Madhukar Pappireddy [Mon, 13 Mar 2023 16:01:08 +0000 (17:01 +0100)]
Merge "fix(ti): do not take system power reference in bl31_platform_setup()" into integration

20 months agoMerge "style: fix functions definitions" into integration
Madhukar Pappireddy [Mon, 13 Mar 2023 14:20:26 +0000 (15:20 +0100)]
Merge "style: fix functions definitions" into integration

20 months agoMerge changes I9430f5fa,I23680085 into integration
Manish Pandey [Mon, 13 Mar 2023 13:17:57 +0000 (14:17 +0100)]
Merge changes I9430f5fa,I23680085 into integration

* changes:
  feat(build): add support for new binutils versions
  build(makefile): add helper to detect linker options

20 months agostyle: fix functions definitions
Elyes Haouas [Mon, 13 Feb 2023 09:38:45 +0000 (10:38 +0100)]
style: fix functions definitions

This is to fix old style functions definitions.

Change-Id: I094b1497dcf948d4d8de4d57d93878aa092ea053
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
20 months agoMerge "style: remove useless trailing semicolon and line continuations" into integration
Manish Pandey [Mon, 13 Mar 2023 11:34:21 +0000 (12:34 +0100)]
Merge "style: remove useless trailing semicolon and line continuations" into integration

20 months agofeat(build): add support for new binutils versions
Marco Felsch [Wed, 9 Nov 2022 11:59:09 +0000 (12:59 +0100)]
feat(build): add support for new binutils versions

Users of GNU ld (BPF) from binutils 2.39+ will observe multiple instaces
of a new warning when linking the bl*.elf in the form:

  ld.bfd: warning: stm32mp1_helper.o: missing .note.GNU-stack section implies executable stack
  ld.bfd: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
  ld.bfd: warning: bl2.elf has a LOAD segment with RWX permissions
  ld.bfd: warning: bl32.elf has a LOAD segment with RWX permissions

These new warnings are enbaled by default to secure elf binaries:
 - https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ba951afb99912da01a6e8434126b8fac7aa75107
 - https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=0d38576a34ec64a1b4500c9277a8e9d0f07e6774

Fix it in a similar way to what the Linux kernel does, see:
https://lore.kernel.org/all/20220810222442.2296651-1-ndesaulniers@google.com/

Following the reasoning there, we set "-z noexecstack" for all linkers
(although LLVM's LLD defaults to it) and optional add
--no-warn-rwx-segments since this a ld.bfd related.

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
Change-Id: I9430f5fa5036ca88da46cd3b945754d62616b617

20 months agobuild(makefile): add helper to detect linker options
Marco Felsch [Thu, 24 Nov 2022 10:02:05 +0000 (11:02 +0100)]
build(makefile): add helper to detect linker options

This is a small helper to check for possible linker options. If the
linker supports the requested option it is returned and if not nothing
will be returned, e.g.:

  TF_LDFLAGS += $(call ld_option, --no-warn-rwx-segments)

can be called unconditional.

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Change-Id: I236800852ece49948ff53a0b91fddba53c8f0f95

20 months agoMerge "docs(zynqmp): add ddr address usage" into integration
Joanna Farley [Mon, 13 Mar 2023 08:51:19 +0000 (09:51 +0100)]
Merge "docs(zynqmp): add ddr address usage" into integration

20 months agofeat(qemu): add "neoverse-n1" cpu support
Chen Baozi [Wed, 22 Feb 2023 06:58:39 +0000 (06:58 +0000)]
feat(qemu): add "neoverse-n1" cpu support

Add support to qemu "neoverse-n1" cpu for "qemu_sbsa" ('sbsa-ref')
platform.

Signed-off-by: Chen Baozi <chenbaozi@phytium.com.cn>
Change-Id: I4620e879c71115451ae91a1643812d89ec7c071f

20 months agofeat(qemu): make coherent memory section optional
Chen Baozi [Sun, 12 Mar 2023 12:58:04 +0000 (20:58 +0800)]
feat(qemu): make coherent memory section optional

Since CPUs such as cortex-a76 are hardware-assisted coherent, coherent
memory section is not required for them and should be an optional
section.

Signed-off-by: Chen Baozi <chenbaozi@phytium.com.cn>
Change-Id: I03c8e9148ca1780b8af92024359698f4452f7129

20 months agorefactor(qemu): make use of setup_page_tables()
Chen Baozi [Mon, 20 Feb 2023 10:50:15 +0000 (10:50 +0000)]
refactor(qemu): make use of setup_page_tables()

Use the setup_page_tables() helper function to setup page tables.

Signed-off-by: Chen Baozi <chenbaozi@phytium.com.cn>
Change-Id: I0bca4e463ed68abf2ef1c79fc8e5cb2b635fcd1c

20 months agoMerge "fix(tegra210): support legacy SMC_ID 0xC2FEFE00" into integration
Varun Wadekar [Fri, 10 Mar 2023 16:28:10 +0000 (17:28 +0100)]
Merge "fix(tegra210): support legacy SMC_ID 0xC2FEFE00" into integration

20 months agoMerge "docs: add guidelines for thirdparty includes" into integration
Manish V Badarkhe [Fri, 10 Mar 2023 11:35:05 +0000 (12:35 +0100)]
Merge "docs: add guidelines for thirdparty includes" into integration

20 months agoMerge changes from topic "xlnx_ipi_fix" into integration
Joanna Farley [Fri, 10 Mar 2023 09:11:24 +0000 (10:11 +0100)]
Merge changes from topic "xlnx_ipi_fix" into integration

* changes:
  fix(xilinx): handle CRC failure in IPI callback
  fix(xilinx): handle CRC failure in IPI

20 months agofix(cpus): workaround for Neoverse V1 errata 2743233
Sona Mathew [Thu, 2 Mar 2023 21:07:55 +0000 (15:07 -0600)]
fix(cpus): workaround for Neoverse V1 errata 2743233

Neoverse V1 erratum 2743233 is a Cat B erratum that applies to
all revisions <= r1p2 and is still open.

The workaround sets CPUACTLR5_EL1[56:55] to 2'b01.

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

Change-Id: If51a6f4293fa8b5b35c44edd564ebb715ba309a1
Signed-off-by: Sona Mathew <SonaRebecca.Mathew@arm.com>
20 months agofix(tegra210): support legacy SMC_ID 0xC2FEFE00
Kalyani Chidambaram Vaidyanathan [Tue, 31 Jan 2023 01:44:26 +0000 (17:44 -0800)]
fix(tegra210): support legacy SMC_ID 0xC2FEFE00

This patch introduces a workaround to support the legacy SMC FID
0xC2FEFE00 to maintain compatibility with older software components.

Change-Id: Icf2ef9cfa6b28c09bbab325a642d0b3b20b23535
Signed-off-by: Kalyani Chidambaram Vaidyanathan <kalyanic@nvidia.com>
20 months agofix(tegra): append major revision to the chip_id value
Varun Wadekar [Tue, 7 Mar 2023 19:20:13 +0000 (19:20 +0000)]
fix(tegra): append major revision to the chip_id value

This patch appends the chip's major revision to the chip id value
to form the SoC version value expected by the SMCCC_GET_SOC_VERSION
function ID.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Change-Id: I09118f446f6b8198588826d4a161bd97dcb6a581

20 months agoMerge "feat(spmd): fail safe if SPM fails to initialize" into integration
Olivier Deprez [Thu, 9 Mar 2023 16:44:24 +0000 (17:44 +0100)]
Merge "feat(spmd): fail safe if SPM fails to initialize" into integration

20 months agoMerge changes from topic "imx8m_misc_changes" into integration
Madhukar Pappireddy [Thu, 9 Mar 2023 14:46:36 +0000 (15:46 +0100)]
Merge changes from topic "imx8m_misc_changes" into integration

* changes:
  feat(imx8mq): enable dram dvfs support on imx8mq
  feat(imx8m): use non-fast wakeup stop mode for system suspend
  feat(imx8mq): correct the slot ack setting for STOP mode
  feat(imx8mq): add anamix pll override setting for DSM mode
  feat(imx8mq): add workaround code for ERR11171 on imx8mq
  feat(imx8mq): add the dram retention support for imx8mq
  feat(imx8mq): add version for B2
  fix(imx8m): backup mr12/14 value from lpddr4 chip
  fix(imx8m): add ddr4 dvfs sw workaround for ERR050712
  fix(imx8m): fix coverity out of bound access issue
  fix(imx8m): fix the dram retention random hang on some imx8mq Rev2.0
  feat(imx8m): add more dram pll setting
  fix(imx8m): fix the current fsp init
  fix(imx8m): fix the rank to rank space issue
  fix(imx8m): fix the dfiphymaster setting after dvfs
  feat(imx8m): update the ddr4 dvfs flow to include ddr3l support
  fix(imx8m): correct the rank info get fro mstr
  feat(imx8m): fix the ddr4 dvfs random hang on imx8m

20 months agoMerge changes from topic "errata" into integration
Madhukar Pappireddy [Thu, 9 Mar 2023 14:44:06 +0000 (15:44 +0100)]
Merge changes from topic "errata" into integration

* changes:
  fix(cpus): workaround for Cortex-A78C erratum 2779484
  fix(cpus): workaround for Cortex-A78 erratum 2742426

20 months agostyle: remove useless trailing semicolon and line continuations
Elyes Haouas [Mon, 13 Feb 2023 09:05:41 +0000 (10:05 +0100)]
style: remove useless trailing semicolon and line continuations

found using checkpatch.pl[1]

[1]: https://review.coreboot.org/plugins/gitiles/coreboot/+/refs/heads/master/util/lint/checkpatch.pl

Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Change-Id: I7957c9694300fefb85d11f7819c43af95271f14c