]> git.baikalelectronics.ru Git - arm-tf.git/log
arm-tf.git
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 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>
21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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>
21 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

21 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

21 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

21 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

21 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>
21 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

21 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

21 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

21 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>
21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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>
21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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>
21 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>
21 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

21 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

21 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

21 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

21 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

21 months agoMerge "docs(drtm): mention DRTM_SUPPORT as an experimental build option" into integration
Manish V Badarkhe [Thu, 9 Mar 2023 10:55:04 +0000 (11:55 +0100)]
Merge "docs(drtm): mention DRTM_SUPPORT as an experimental build option" into integration

21 months agofix(xilinx): handle CRC failure in IPI callback
Naman Trivedi Manojbhai [Tue, 7 Mar 2023 07:11:12 +0000 (12:41 +0530)]
fix(xilinx): handle CRC failure in IPI callback

Currently, if CRC validation fails during IPI communication,
pm_ipi_buff_read_callb() logs error message but don't return
error code to upper layers.

Added CRC failure specific error code which will be returned by
pm_ipi_buff_read_callb() if CRC validation fails.

Signed-off-by: Naman Trivedi Manojbhai <naman.trivedimanojbhai@amd.com>
Change-Id: I2eaca073e2bf325a8c86b1820bdd7cca487b783e

21 months agofix(xilinx): handle CRC failure in IPI
Naman Trivedi Manojbhai [Tue, 7 Mar 2023 07:11:11 +0000 (12:41 +0530)]
fix(xilinx): handle CRC failure in IPI

Currently, if CRC validation fails during IPI communication,
pm_ipi_buff_read() logs error message but don't return error
code to upper layers.

Added CRC failure specific error code which will be returned by
pm_ipi_buff_read() if CRC validation fails.

Signed-off-by: Naman Trivedi Manojbhai <naman.trivedimanojbhai@amd.com>
Change-Id: I33be330f276973471f4ce4115d1e1609ed8fb754

21 months agofeat(spmd): fail safe if SPM fails to initialize
Olivier Deprez [Wed, 16 Nov 2022 15:46:23 +0000 (16:46 +0100)]
feat(spmd): fail safe if SPM fails to initialize

The spmd_setup function is made fail safe in that a failure in the
SPMC manifest parsing, SPMD or SPMC initialization returns a success
code to the standard services initialization routine (std_svc_setup).
This permits continuing the boot process and initialize services
beyond the SPMD to succeed for the system to operate in the normal
world. It operates in a degraded mode for the secure world.

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: Ida0ac91c17925279a79f112d190f9ad038f518e7

21 months agofix(cpus): workaround for Cortex-A78C erratum 2779484
Bipin Ravi [Tue, 28 Feb 2023 22:21:51 +0000 (16:21 -0600)]
fix(cpus): workaround for Cortex-A78C erratum 2779484

Cortex-A78C erratum 2779484 is a Cat B erratum that applies to
revisions r0p1 and r0p2 and is still open.

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

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

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

21 months agofix(cpus): workaround for Cortex-A78 erratum 2742426
Bipin Ravi [Tue, 28 Feb 2023 20:51:28 +0000 (14:51 -0600)]
fix(cpus): workaround for Cortex-A78 erratum 2742426

Cortex-A78 erratum 2742426 is a Cat B erratum that applies to
all revisions <= r1p2 and is still open.

The workaround is to set the CPUACTLR5_EL1[56:55] to 2'b01.

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

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

21 months agofeat(fvp): copy the Event Log to TZC secured DRAM area
Manish V Badarkhe [Sat, 18 Feb 2023 20:04:43 +0000 (20:04 +0000)]
feat(fvp): copy the Event Log to TZC secured DRAM area

Copied the Event Log from internal SRAM to the TZC secured DRAM
reserved area. Also passed this Trusted DRAM address to OPTEE via
NT FW configuration, and to SPMC via TOS FW configuration,
which is eventually used to extend PCR via fTPM application running
on top of OPTEE/SPMC.

Furthermore, this patch makes it easier to access Event Log in RME
enabled systems where Secure World firmware does not have access to
internal(Root) SRAM.

Change-Id: I005e9da1e6075511f412bdf4d8b541fa543df9ab
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
21 months agofeat(arm): carveout DRAM1 area for Event Log
Manish V Badarkhe [Mon, 12 Dec 2022 10:14:25 +0000 (10:14 +0000)]
feat(arm): carveout DRAM1 area for Event Log

Reserved 4KB area for Event Log in DRAM1. This area is used by BL2
to copy Event Log from internal SRAM to this carved out DRAM region
in the subsequent patch.

Change-Id: I7b405775c66d249e31edf7688d95770e6c05c175
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
21 months agotest(tc): test for AP/RSS NV counter interface
laurenw-arm [Tue, 7 Feb 2023 19:40:05 +0000 (13:40 -0600)]
test(tc): test for AP/RSS NV counter interface

Change in PLATFORM_TEST build flag from boolean -> string, with the
current string options being tfm-testsuite and rss-nv-counters.

To get the old behavior, i.e. where we used to use PLATFORM_TEST=1,
we now need to pass PLATFORM_TEST=tfm-testsuite.

Adding new test of the AP/RSS interface for non-volatile counters.
The test reads, increments, and reads again each 3 types of NV
counters for: CCA, secure, and non-secure firmware. Enabled by
PLATFORM_TEST=rss-nv-counters.

Change-Id: I2044cc9b2f37984697e0754c9c824eab51a11e7f
Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Signed-off-by: Raef Coles <raef.coles@arm.com>
21 months agodocs: add guidelines for thirdparty includes
Govindraj Raja [Thu, 2 Mar 2023 13:56:32 +0000 (13:56 +0000)]
docs: add guidelines for thirdparty includes

Currently there is no guidelines in docs for including thirdparty
includes, trying to address that with a proposed method to use third
party includes.

Change-Id: Ieec7a5c88a60b66ca72228741ba1894545130a06
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
21 months agoMerge "fix(tc): change the FIP offset to 8 KiB boundary" into integration
Manish V Badarkhe [Wed, 8 Mar 2023 13:57:00 +0000 (14:57 +0100)]
Merge "fix(tc): change the FIP offset to 8 KiB boundary" into integration

21 months agofix(tc): change the FIP offset to 8 KiB boundary
Tintu Thomas [Tue, 21 Feb 2023 17:51:24 +0000 (17:51 +0000)]
fix(tc): change the FIP offset to 8 KiB boundary

* This change overrides the default PLAT_ARM_FIP_OFFSET_IN_GPT

* This aligns the FIP base in GPT image to the RSS ATU page size
  boundary (8 KiB). RSS XIP feature requires the FIP to be aligned to
  the page size boundary. TC platform will require the XIP feature.

* The aligned FIP_A is starting at sector 48. Hence the offset will be
  48*512 = 0x6000.

Signed-off-by: Tintu Thomas <tintu.thomas@arm.com>
Change-Id: I8135ecd4168231847c80151c33ef8353a1586b9a

21 months agofix(ti): do not take system power reference in bl31_platform_setup()
Andrew Davis [Tue, 7 Mar 2023 15:22:32 +0000 (09:22 -0600)]
fix(ti): do not take system power reference in bl31_platform_setup()

Taking a reference at this early stage can cause boot failure if the DM
firmware is not fully initialized. Remove this early call until the
fix in DM firmware is widely available.

Signed-off-by: Andrew Davis <afd@ti.com>
Change-Id: Ic9c47ccf1e9a1b9faeb1c7d2665d54cf55ef5396

21 months agofix(pmu): switch FVP PMUv3 SPIs to PPI
AlexeiFedorov [Tue, 7 Mar 2023 13:34:45 +0000 (13:34 +0000)]
fix(pmu): switch FVP PMUv3 SPIs to PPI

FVP PMUv3 SPIs legacy interrupts are only listed for
cluster #0 and are missing for cluster #1.
This patch changes FVP SPIs to PMUv3 PPI as in
arm_fpga.dtsi, morello.dtsi and n1sdp.dtsi.

Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
Change-Id: Ic624cec09ba932666c746ae1a6a4b78b6decde96

21 months agodocs(zynqmp): add ddr address usage
Belsare, Akshay [Mon, 6 Mar 2023 09:38:54 +0000 (15:08 +0530)]
docs(zynqmp): add ddr address usage

Update documentation for TF-A DDR address range usage when the FSBL is
run on RPU instead of APU.

Change-Id: I223d67c35ac9ce3384820531a7453d3b32a1eb58
Signed-off-by: Akshay Belsare <akshay.belsare@amd.com>
21 months agoMerge "docs: discourage usage of weak functions" into integration
Sandrine Bailleux [Mon, 6 Mar 2023 19:38:28 +0000 (20:38 +0100)]
Merge "docs: discourage usage of weak functions" into integration

21 months agodocs: discourage usage of weak functions
Sandrine Bailleux [Wed, 8 Feb 2023 12:55:51 +0000 (13:55 +0100)]
docs: discourage usage of weak functions

As a coding guideline, we now discourage introducing new weak
functions in platform-agnostic code going forward and provide the
rationale for this.

This was already enforced most of the time in code reviews but this
patch makes it explicit in the project's documentation.

Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Change-Id: I88f4a55788899fb4146c4d26afb3a7418376b30c

21 months agofix(rss): fix msg deserialization bugs in comms
David Vincze [Mon, 6 Mar 2023 14:02:08 +0000 (15:02 +0100)]
fix(rss): fix msg deserialization bugs in comms

-fix1: size of struct instead of pointer during reply_size check
-fix2: update the out_vec length with the actual length from reply
       message (e.g. in case of an output buffer, the returned output
       data length remained the size of the buffer and was not updated
       with the size of the actual data in it)

Change-Id: Ibed5520ca1fb05df358de4bdf85ace219183866c
Signed-off-by: David Vincze <david.vincze@arm.com>
21 months agoMerge "docs(spm): add other-s-interrupts-action field to sp manifest" into integration
Madhukar Pappireddy [Mon, 6 Mar 2023 14:09:27 +0000 (15:09 +0100)]
Merge "docs(spm): add other-s-interrupts-action field to sp manifest" into integration

21 months agoMerge "fix(zynqmp): conditional reservation of memory in DTB" into integration
Joanna Farley [Mon, 6 Mar 2023 12:33:39 +0000 (13:33 +0100)]
Merge "fix(zynqmp): conditional reservation of memory in DTB" into integration

21 months agofix(zynqmp): conditional reservation of memory in DTB
Akshay Belsare [Mon, 27 Feb 2023 06:34:26 +0000 (12:04 +0530)]
fix(zynqmp): conditional reservation of memory in DTB

When the TF-A is placed in DDR memory range, the DDR memory range is
getting explicitly reserved in the default device tree by TF-A.
This creates an error condition in the use case where Device tree is
not present or it is present at a different location.

To fix this, a new build time parameter, XILINX_OF_BOARD_DTB_ADDR, is
introduced. The TF-A will reserve the DDR memory only when a valid
DTB address is provided to XILINX_OF_BOARD_DTB_ADDR during build.

Now the user has options, either manually reserve the desired
DDR address range for TF-A in device tree or let TF-A access and modify
the device tree, to reserve the DDR address range, in runtime using
the build parameter.

Change-Id: I846fa373ba9f7c984eda3a55ccaaa622082cad81
Signed-off-by: Akshay Belsare <akshay.belsare@amd.com>
21 months agoMerge "fix(mbedtls): fix mbedtls coverity issues" into integration
Manish V Badarkhe [Fri, 3 Mar 2023 09:54:43 +0000 (10:54 +0100)]
Merge "fix(mbedtls): fix mbedtls coverity issues" into integration

21 months agoMerge "refactor(auth): use a single function for parsing extensions" into integration
Sandrine Bailleux [Fri, 3 Mar 2023 07:39:16 +0000 (08:39 +0100)]
Merge "refactor(auth): use a single function for parsing extensions" into integration

21 months agorefactor(auth): use a single function for parsing extensions
Demi Marie Obenour [Sat, 28 Jan 2023 20:15:37 +0000 (15:15 -0500)]
refactor(auth): use a single function for parsing extensions

Previously, extensions were parsed twice: once with error checking for
validation, and a second time without error checking to extract the
extension data.  This is error prone and caused TFV-10 (CVE-2022-47630).

A simpler approach is to have get_ext() be responsible for all extension
parsing, and to treat a NULL OID as an indicator that get_ext() is only
being called for validation.  cert_parse() checks that get_ext() returns
IMG_PARSER_OK and fails otherwise.

Change-Id: I65a2ff053a188351ba54799827a2b7bd833bb037
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
21 months agoMerge "fix(docs): add plantuml as a dependency" into integration
Joanna Farley [Thu, 2 Mar 2023 15:48:28 +0000 (16:48 +0100)]
Merge "fix(docs): add plantuml as a dependency" into integration

21 months agoMerge "fix(cpufeat): resolve build errors due to compiler optimization" into integration
Manish Pandey [Thu, 2 Mar 2023 10:37:12 +0000 (11:37 +0100)]
Merge "fix(cpufeat): resolve build errors due to compiler optimization" into integration

21 months agofix(cpufeat): resolve build errors due to compiler optimization
Jayanth Dodderi Chidanand [Wed, 1 Mar 2023 15:35:28 +0000 (15:35 +0000)]
fix(cpufeat): resolve build errors due to compiler optimization

Currently most of the architectural feature build flags are set
to 2(FEATURE_STATE_CHECK) for fvp platform only.

However other platforms still configure them by default to 0, which
would lead to build failures in cases when compiler configured
to build TF-A  with zero optimization (CFLAGS='-O0').

This patch addresses such build issues and thereby resolves the failures
seen under CI-l3 test_configurations.

Change-Id: I45b82b821951bba6b9df08177f7d286e624a4239
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
21 months agofix(mbedtls): fix mbedtls coverity issues
Govindraj Raja [Tue, 28 Feb 2023 11:37:02 +0000 (11:37 +0000)]
fix(mbedtls): fix mbedtls coverity issues

commit (a8eadc51a refactor(mbedtls): avoid including
MBEDTLS_CONFIG_FILE) avoids using config file directly and relies on
config file usage from mbedtls version.h

But we could build trusted boot without mbedtls dir so guard version.h
include in cot_def.h with availability of config file.

Also we refactored in same commit to break dependencies between
auth_mod.h and cot_def.h, So add cot_def.h include in nxp tbbr
cot file.

Change-Id: I4779e90c18f04c73d2121c88df6420b4b1109c8b
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
21 months agofeat(imx8mq): enable dram dvfs support on imx8mq
Jacky Bai [Tue, 14 Jan 2020 06:19:05 +0000 (14:19 +0800)]
feat(imx8mq): enable dram dvfs support on imx8mq

Enable DRAM DVFS support on i.MX8MQ.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: Id72c5eb9625936052ec51e5a52d9d31175ed1b1b

21 months agofeat(imx8m): use non-fast wakeup stop mode for system suspend
Jacky Bai [Fri, 10 Jan 2020 01:24:46 +0000 (09:24 +0800)]
feat(imx8m): use non-fast wakeup stop mode for system suspend

Use non-fast wakeup stop mode for system suspend support, so
the SOC can enter DSM mode by default.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: I37828d4e66ee2ebd48e7adca054b93c520cb2c82

21 months agofeat(imx8mq): correct the slot ack setting for STOP mode
Jacky Bai [Fri, 10 Jan 2020 09:46:31 +0000 (17:46 +0800)]
feat(imx8mq): correct the slot ack setting for STOP mode

A53 core's power up ack need to be used when system resume
from DSM mode.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: I47fb33c0582ae5f483ffaa887f95e27bd47875f7

21 months agofeat(imx8mq): add anamix pll override setting for DSM mode
Jacky Bai [Fri, 10 Jan 2020 07:31:52 +0000 (15:31 +0800)]
feat(imx8mq): add anamix pll override setting for DSM mode

Add the anamix PLL override setting for DSM mode support,
so that the PLL can be power down in DSM mode to save power.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: Ibe954bc7c4a7b453ace13f8e4b6a335e6d4856c3

21 months agofeat(imx8mq): add workaround code for ERR11171 on imx8mq
Jacky Bai [Wed, 8 Jan 2020 08:56:01 +0000 (16:56 +0800)]
feat(imx8mq): add workaround code for ERR11171 on imx8mq

This new workaround takes advantage of the per core IMR
registers in GPC in order to unmask the IRQ0, still generated
by the 12bit in IOMUX_GPR register (which now remains always set),
so it can only wake up one core at the time.Also, this entire
workaround has now been moved here in TF-A, allowing the kernel
side to be minimal.

Another advantage this workaround brings is the removal of the
50us delay (which was necessary before in gic_raise_softirq in
kernel) by allowing the core that is waking up to mask his own
IRQ0 in the suspend finish callback.

One important change here is the way the cores are woken up in
dram_dvfs_handler. Since the wake up mechanism has changed from
asserting the 12th bit in IOMUX_GPR and leaving the IMR1 1st bit
on for each core to exactly the reverse, that is, leaving the
IOMUX_GPR 12th bit always set and then masking/unmasking the IMR1
1st bit for each independent core, we need to use the imx_gpc_core_wake
to wake up the cores.

Also, the 50us udelay is moved to TF-A (inside imx_pwr_domain_off)
from kernel(gic_raise_softirq), since the new cpuidle workaround
does not need it in order to clean the IOMUX_GPC 12bit. For now,
the udelay seems to be still needed in order to delay the affinity
info OFF for the dying core. This is something that needs further
investigation.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: I9f17ff6fc3452b8225a50b232964712aafeab78a

21 months agofeat(imx8mq): add the dram retention support for imx8mq
Jacky Bai [Tue, 7 Jan 2020 08:44:46 +0000 (16:44 +0800)]
feat(imx8mq): add the dram retention support for imx8mq

Add the dram retention support for i.MX8MQ. As there is
no enough ocram space available before entering TF-A,
so the timing info need to be copied from dram into ocram.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: Id8264c342fd62e297b1969cba5ed505450c78a25

21 months agofeat(imx8mq): add version for B2
Ye Li [Wed, 3 Feb 2021 04:06:40 +0000 (20:06 -0800)]
feat(imx8mq): add version for B2

iMX8MQ B2 chip uses same OCOTP magic value with B1. So
read the ROM version to distinguish it with B1.

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: I3e6865922deeb66816a0dddb49d986405e802b6f

21 months agofix(imx8m): backup mr12/14 value from lpddr4 chip
Jacky Bai [Mon, 20 Dec 2021 09:56:08 +0000 (17:56 +0800)]
fix(imx8m): backup mr12/14 value from lpddr4 chip

Backup the mr12/14 value as the actual value used is not the
one we configured in the ddrc config timing.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
Change-Id: If04733b34a3b4c080828bb7c82e83f0badbeaafd