| #
a6f60e0f |
| 20-Jan-2024 |
Volodymyr Babchuk <volodymyr_babchuk@epam.com> |
arm: plat: rcar: gen4: adjust memory map
Adjust the OP-TEE memory map for Gen4/S4 SoC to reflect changes of IPL layout made by Renesas. Now BL31 starts at 0x46400000, so we have less memory for OP-T
arm: plat: rcar: gen4: adjust memory map
Adjust the OP-TEE memory map for Gen4/S4 SoC to reflect changes of IPL layout made by Renesas. Now BL31 starts at 0x46400000, so we have less memory for OP-TEE.
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
5d3112cb |
| 16-Jan-2024 |
Volodymyr Babchuk <volodymyr_babchuk@epam.com> |
plat: rcar-gen3: disable HWRNG by default
Sometimes ROM code fails to provide random numbers, which leads to OP-TEE panic with "ROM_GetRndVector() returned error!" message.
So far this behavior was
plat: rcar-gen3: disable HWRNG by default
Sometimes ROM code fails to provide random numbers, which leads to OP-TEE panic with "ROM_GetRndVector() returned error!" message.
So far this behavior was observed only on M3 Ver.3.0, but it is unclear if other SoCs are affected. There is a workaround which retries and operation and this workaround seems to work, but again, it is unclear if this is the correct way to deal with the issue. So it is better to disable use of HWRNG by default, until we get clarification on those errors from Renesas.
This patch moves HWRNG code under CFG_RCAR_GEN3_HWRNG option, so expert user still can try to use it.
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
ce127af5 |
| 03-May-2022 |
Andrew Davis <afd@ti.com> |
plat-rcar: Software PRNG should be disabled when using hardware generator
On RCAR_GEN3 platforms, a hardware random number generator is available and the HWRNG_PTA is enabled. For this to work right
plat-rcar: Software PRNG should be disabled when using hardware generator
On RCAR_GEN3 platforms, a hardware random number generator is available and the HWRNG_PTA is enabled. For this to work right the software PRNG should be disabled.
Signed-off-by: Andrew Davis <afd@ti.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
ab875342 |
| 10-Feb-2022 |
Volodymyr Babchuk <volodymyr_babchuk@epam.com> |
plar: rcar: add initial support for Gen4
RCar Gen4 is the next generation of Renesas automotive chips. Currently only RCar S4 on board Spider is available. This platform has 8 CortexA55 cores with G
plar: rcar: add initial support for Gen4
RCar Gen4 is the next generation of Renesas automotive chips. Currently only RCar S4 on board Spider is available. This platform has 8 CortexA55 cores with GICv3.
This is patch adds minimal support, so not all Gen4 features are available. Namely, ROM API is not supported right now, so HW RNG and ASLR are disabled. Also, ATF does not provide DTB, so non-secure DDR ranges are hardcoded.
Apart from that, depending on external configuration, initial bootloader can use two different UARTs as console: either SCIF3 or HSCIF0. Thus, CFG_RCAR_UART is introduced.
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
68c56642 |
| 10-Feb-2022 |
Volodymyr Babchuk <volodymyr_babchuk@epam.com> |
plat: rcar: enable GIC support
Enable GIC support in the same as it is done in other platforms.
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Acked-by: Jens Wiklander <jens.wiklande
plat: rcar: enable GIC support
Enable GIC support in the same as it is done in other platforms.
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
a8a45bbf |
| 17-May-2021 |
Sergiy Kibrik <Sergiy_Kibrik@epam.com> |
plat: rcar: enable hardware RNG pseudo TA
Enable access of hardware entropy through HWRNG PTA.
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com> Reviewed-by: Jerome Forissier <jerome@forissier.
plat: rcar: enable hardware RNG pseudo TA
Enable access of hardware entropy through HWRNG PTA.
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com> Reviewed-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
2e0f28d0 |
| 25-Jan-2021 |
Volodymyr Babchuk <volodymyr_babchuk@epam.com> |
plat: rcar: enable ASLR
On RCAR hw_get_random_byte() can be called very early, as it have no dependencies. So we can use it to provide ASLR seed value.
Also, the previous fix to SCIF drivers preven
plat: rcar: enable ASLR
On RCAR hw_get_random_byte() can be called very early, as it have no dependencies. So we can use it to provide ASLR seed value.
Also, the previous fix to SCIF drivers prevents crashes with ASLR enabled.
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
ceefea12 |
| 05-May-2021 |
Volodymyr Babchuk <volodymyr_babchuk@epam.com> |
plat: rcar: disable aarch32 support for OP-TEE core
While it is theoretically possible to boot RCar Gen3 SoC in aarch32 mode, it isn't supported by Renesas BSP. ARM TF provided by Renesas boots only
plat: rcar: disable aarch32 support for OP-TEE core
While it is theoretically possible to boot RCar Gen3 SoC in aarch32 mode, it isn't supported by Renesas BSP. ARM TF provided by Renesas boots only in aarch64 mode. Also it lacks aarch32 assembler code, so it is not possible to built it for aarch32 at all.
Therefore, there is a little sense in supporting aarch32 in OP-TEE (for plat-rcar, of course) - user just can't boot it. On other hand it requires additional efforts to maintain aarch32 assembly code that newer will be used.
This patch enforces CFG_ARM64_core build option and removes all aarch32 related parts.
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
22d7b316 |
| 05-Dec-2020 |
Marek Vasut <marek.vasut+renesas@gmail.com> |
plat: rcar: Obtain memory layout from DT
Since the ATF is passing a DT fragment to OpTee-OS, parse the memory information from this DT fragment. This makes it possible to run the OpTee-OS on any mem
plat: rcar: Obtain memory layout from DT
Since the ATF is passing a DT fragment to OpTee-OS, parse the memory information from this DT fragment. This makes it possible to run the OpTee-OS on any memory layout instead of the few hard-coded options. Switch the default platform to this DT based approach, but retain the legacy platforms as well for backward compatibility.
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com> Acked-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
show more ...
|
| #
572afdce |
| 05-Dec-2020 |
Marek Vasut <marek.vasut+renesas@gmail.com> |
plat: rcar: Derive core map from PRR
Instead of hard-coding the core count and the core ID mapping, derive this information from the PRR register. All R-Car3 SoCs have either one or two 4-core CPU c
plat: rcar: Derive core map from PRR
Instead of hard-coding the core count and the core ID mapping, derive this information from the PRR register. All R-Car3 SoCs have either one or two 4-core CPU clusters composed of CA53 or CA57, except for M3W/M3W+, which has two CA57s and four CA53s.
So the approach here is to always set core count to 8, read out PRR register once on boot, and then calculate the core ID using CorePos = CoreId + (ClusterId << (IsM3W ? 1 : 0))
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
show more ...
|
| #
0bdf2e5d |
| 11-Apr-2020 |
Marek Vasut <marek.vasut+renesas@gmail.com> |
plat: rcar: Enable parsing DT from TFA
Enable support for reading and processing DT passed in by TFA, this is useful to read out the DRAM configuration and layout.
Signed-off-by: Marek Vasut <marek
plat: rcar: Enable parsing DT from TFA
Enable support for reading and processing DT passed in by TFA, this is useful to read out the DRAM configuration and layout.
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
f3721740 |
| 23-Jul-2020 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: remove the unused PM stubs
Removes the PM stubs and all references to CFG_PM_STUBS.
Reviewed-by: Jerome Forissier <jerome@forissier.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.o
core: remove the unused PM stubs
Removes the PM stubs and all references to CFG_PM_STUBS.
Reviewed-by: Jerome Forissier <jerome@forissier.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
35e770df |
| 04-Jun-2020 |
Jerome Forissier <jerome@forissier.org> |
Move CFG_WITH_STACK_CANARIES to global config file
All platforms but one (bcm-ns3) set CFG_WITH_STACK_CANARIES ?= y in their configuration files. Move this flag to the global mk/config.mk instead. N
Move CFG_WITH_STACK_CANARIES to global config file
All platforms but one (bcm-ns3) set CFG_WITH_STACK_CANARIES ?= y in their configuration files. Move this flag to the global mk/config.mk instead. Not sure it matters much, but in order to avoid any functional change, CFG_WITH_STACK_CANARIES ?= n is added to plat-bcm/conf.mk.
Signed-off-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
0146c7ad |
| 07-Jun-2020 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: make generic boot mandatory
The OP-TEE booting has since quite some time been unified in the sense that all platforms use CFG_GENERIC_BOOT=y. Make this configuration option mandatory and remov
core: make generic boot mandatory
The OP-TEE booting has since quite some time been unified in the sense that all platforms use CFG_GENERIC_BOOT=y. Make this configuration option mandatory and remove the CFG_GENERIC_BOOT flag.
Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jerome Forissier <jerome@forissier.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
7d5f25b7 |
| 22-Jan-2020 |
Volodymyr Babchuk <volodymyr_babchuk@epam.com> |
plat: rcar: force disable core ALSR
We need to disable core ASLR for two reasons: 1. There is no source for ALSR seed, as Rcar platform does not provide DTB to OP-TEE 2. OP-TEE crashes during boo
plat: rcar: force disable core ALSR
We need to disable core ASLR for two reasons: 1. There is no source for ALSR seed, as Rcar platform does not provide DTB to OP-TEE 2. OP-TEE crashes during boot with enabled CFG_CORE_ASLR
Mainly we are disabling ASLR for the second reason. Further investigation is needed to see why enabled ASLR causes data abort in MMIO functions.
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
4518cdc1 |
| 14-Jan-2020 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: arm64: introduce CFG_CORE_ARM64_PA_BITS
Introduces CFG_CORE_ARM64_PA_BITS which replaces the max_pa global variable which was used to configure TCR_EL1.IPS.
Prior to 520860f ("core: generic_e
core: arm64: introduce CFG_CORE_ARM64_PA_BITS
Introduces CFG_CORE_ARM64_PA_BITS which replaces the max_pa global variable which was used to configure TCR_EL1.IPS.
Prior to 520860f ("core: generic_entry: add enable_mmu()") TCR_EL1.IPS was calculated and even updated later in the boot flow to automatically cover the needed physical address space. But now it's calculated before MMU is enabled and once MMU it's kept in read only memory.
With CFG_CORE_ARM64_PA_BITS TCR_EL1.IPS can be determined early and later it is enough to check that physical addresses to be mapped are covered by CFG_CORE_ARM64_PA_BITS.
Fixes: 520860f658be ("core: generic_entry: add enable_mmu()") Acked-by: Jerome Forissier <jerome@forissier.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
179c8fe8 |
| 26-Mar-2019 |
Volodymyr Babchuk <vlad.babchuk@gmail.com> |
plat/rcar: fix core numbering for M3 flavor
R-car Gen3 SoCs have consistent core numbering across all variations: CA57 cluster have core numbers 0-3 and CA53 have numbers 4-7.
M3 flavor have 6 core
plat/rcar: fix core numbering for M3 flavor
R-car Gen3 SoCs have consistent core numbering across all variations: CA57 cluster have core numbers 0-3 and CA53 have numbers 4-7.
M3 flavor have 6 cores: two CA57s and four CA53s. Taking into account consistent numbering, M3 will have the following core ids: 0, 1, 3, 5, 6, 7. To fix this, we need to set CFG_CORE_CLUSTER_SHIFT to 1.
This somewhat abuses implementation of get_core_pos_mpidr(), but it is not expected, that it will change in the future.
Signed-off-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
c2a93232 |
| 06-Feb-2019 |
Volodymyr Babchuk <vlad.babchuk@gmail.com> |
plat-rcar: add support for H3 module with 8GB memory
Renesas calls this flavor "salvator-h3-4x2g", in OP-TEE flavor will be named "salvator_h3_4x2g".
Signed-off-by: Volodymyr Babchuk <vlad.babchuk@
plat-rcar: add support for H3 module with 8GB memory
Renesas calls this flavor "salvator-h3-4x2g", in OP-TEE flavor will be named "salvator_h3_4x2g".
Signed-off-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Acked-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| #
b0b3a51c |
| 25-Jan-2019 |
Volodymyr Babchuk <vlad.babchuk@gmail.com> |
plat-rcar: Use generic memory layout
plat-rcar have quite standard memory layout, so there is no sense to maintain separate configuration if it possible to use generic one.
Signed-off-by: Volodymyr
plat-rcar: Use generic memory layout
plat-rcar have quite standard memory layout, so there is no sense to maintain separate configuration if it possible to use generic one.
Signed-off-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
8955ffc4 |
| 17-Dec-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
Platforms set supported TA targets as $(supported-ta-targets)
Rename $(ta-targets) to $(supported-ta-targets) in the platform configuration files, in preparation for the next patch.
Suggested-by: J
Platforms set supported TA targets as $(supported-ta-targets)
Rename $(ta-targets) to $(supported-ta-targets) in the platform configuration files, in preparation for the next patch.
Suggested-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
9f1eec75 |
| 17-Dec-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
Factor out ta-targets from platform config
Platforms use the same basic pattern again and again:
ta-targets = ta_arm32 ifeq ($(CFG_ARM64_core),y) ta-targets += ta_arm64 endif
Let's move this p
Factor out ta-targets from platform config
Platforms use the same basic pattern again and again:
ta-targets = ta_arm32 ifeq ($(CFG_ARM64_core),y) ta-targets += ta_arm64 endif
Let's move this pattern to core/arch/arm/arm.mk, make it the default, and cleanup the platform configuration files.
Suggested-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
9460285e |
| 04-Jun-2018 |
Jerome Forissier <jerome.forissier@linaro.org> |
plat-*/conf.mk: use $(call force, ...) to set CFG_TEE_CORE_NB_CORE
Except for very special cases (such as virtualization), the number of CPU cores that can enter OP-TEE is a fixed number that depend
plat-*/conf.mk: use $(call force, ...) to set CFG_TEE_CORE_NB_CORE
Except for very special cases (such as virtualization), the number of CPU cores that can enter OP-TEE is a fixed number that depends on the hardware configuration and should not be configurable at build time. Therefore, use $(call force,CFG_TEE_CORE_NB_CORE,<value>) to set the value.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
29e7629e |
| 03-May-2018 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: move CFG_TEE_CORE_NB_CORE to conf.mk for various platforms
Update platforms d02, rcar, sam, hikey, mediatek, poplar, rpi3, sprd, zynqmp and marvell.
These platforms no more defines CFG_ confi
core: move CFG_TEE_CORE_NB_CORE to conf.mk for various platforms
Update platforms d02, rcar, sam, hikey, mediatek, poplar, rpi3, sprd, zynqmp and marvell.
These platforms no more defines CFG_ configuration directives as NB_CORE was the last remaining one.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| #
c9add4ac |
| 23-Nov-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
core: arm32: enable NEON with .fpu directive rather than compile flag
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (QEMU CF
core: arm32: enable NEON with .fpu directive rather than compile flag
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (QEMU CFG_WITH_VFP=y) Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey960 AArch32 {,pager}) Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
cd11e1cb |
| 23-Nov-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
Use -mfpu-neon for assembly files in TEE core only
Some platforms set arm32-platform-aflags += -mfpu-neon, which causes NEON to be selected when building any assembly files. TEE core, user-mode libr
Use -mfpu-neon for assembly files in TEE core only
Some platforms set arm32-platform-aflags += -mfpu-neon, which causes NEON to be selected when building any assembly files. TEE core, user-mode libraries and TAs are all affected by this setting.
This is most likely incorrect because user-mode libraries do not use NEON instructions (only some core files do). And, it does not make much sense to set it by default for TAs either.
So, core_arm32-platform-aflags should be set instead.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|