| #
3513f961 |
| 03-Sep-2020 |
Jerome Forissier <jerome@forissier.org> |
arm32: fold UNWIND(.fnstart/.fnend) into the FUNC macros
This change applies to arm32 assembler sources.
Instead of using UNWIND(.fnstart) after FUNC or LOCAL_FUNC and UNWIND(.fnend) before END_FUN
arm32: fold UNWIND(.fnstart/.fnend) into the FUNC macros
This change applies to arm32 assembler sources.
Instead of using UNWIND(.fnstart) after FUNC or LOCAL_FUNC and UNWIND(.fnend) before END_FUNC, let's fold these statements into the FUNC macros.
The .fnstart/.fnend directives mark the start and end of a function with an unwind table entry (.ARM.exidx) and therefore a function without them has no entry and cannot be unwound. This means that a stack dump (on abort or panic) would stop when reaching such a function.
As a result of this patch, a small number of functions now have an entry in the unwind table when they had none before (the functions which were using FUNC or LOCAL_FUNC but had no .fnstart/.fnend). It was almost always a bug and this pacth only increases the size of the .ARM.exidx section by a few bytes (tested on QEMU).
Signed-off-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
827be46c |
| 03-Sep-2020 |
Jerome Forissier <jerome@forissier.org> |
arm32: move the UNWIND() macro to <asm.S>
All the users of the UNWIND() macro include <asm.S> already, which is therefore a good place to define this macro. Let's move it from <kernel/unwind.h> to <
arm32: move the UNWIND() macro to <asm.S>
All the users of the UNWIND() macro include <asm.S> already, which is therefore a good place to define this macro. Let's move it from <kernel/unwind.h> to <asm.S>, remove a couple of duplicates in assembler files, and drop the useless includes.
Signed-off-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
f9044cdb |
| 02-Apr-2018 |
Peng Fan <peng.fan@nxp.com> |
core: arm: imx: handle errata 845369
Under very rare timing circumstances, a data corruption might occur on a dirty cache line that is evicted from the L1 Data Cache due to another cache line being
core: arm: imx: handle errata 845369
Under very rare timing circumstances, a data corruption might occur on a dirty cache line that is evicted from the L1 Data Cache due to another cache line being entirely written. Configurations affected: This erratum affects configurations with either: - One processor if the ACP is present - Two or more processors
This erratum can be worked round by setting bit[22] of the undocumented Diagnostic Control Register to 1. This register is encoded as CP15 c15 0 c0 1. The bit can be written in Secure state only, with the following. Read/Modify/Write code sequence: MRC p15,0,rt,c15,c0,1 ORR rt,rt,#0x00400000 MCR p15,0,rt,c15,c0,1
Signed-off-by: Peng Fan <peng.fan@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Rouven Czerwinski <r.czerwinski@pengutronix.de>
show more ...
|
| #
0eac5b57 |
| 02-Apr-2018 |
Peng Fan <peng.fan@nxp.com> |
core: arm: imx: a9: tune ACTLR
Tune ACTLR. To SLL, the value is 0xE at runtime. To others, the value should be 0x4F at runtime. Bit3 will be enabled when enable L2.
The SMP bit for i.MX6SLL needs t
core: arm: imx: a9: tune ACTLR
Tune ACTLR. To SLL, the value is 0xE at runtime. To others, the value should be 0x4F at runtime. Bit3 will be enabled when enable L2.
The SMP bit for i.MX6SLL needs to be make ldrex/strex instruction work properly.
Signed-off-by: Peng Fan <peng.fan@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Rouven Czerwinski <r.czerwinski@pengutronix.de>
show more ...
|
| #
43852166 |
| 10-Mar-2018 |
Peng Fan <peng.fan@nxp.com> |
core: arm: imx: cleanup license
Cleanup license header to only have "SPDX-License-Identifier: BSD-2-Clause"
Signed-off-by: Peng Fan <peng.fan@nxp.com> Acked-by: Etienne Carriere <etienne.carriere@s
core: arm: imx: cleanup license
Cleanup license header to only have "SPDX-License-Identifier: BSD-2-Clause"
Signed-off-by: Peng Fan <peng.fan@nxp.com> Acked-by: Etienne Carriere <etienne.carriere@st.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
1bb92983 |
| 15-Dec-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
Add SPDX license identifiers
Adds one SPDX-License-Identifier line [1] to each source files that contains license text.
Generated by [2]: spdxify.py --add-spdx optee_os/
The scancode tool [3] wa
Add SPDX license identifiers
Adds one SPDX-License-Identifier line [1] to each source files that contains license text.
Generated by [2]: spdxify.py --add-spdx optee_os/
The scancode tool [3] was used to double check the license matching code in the Python script. All the licenses detected by scancode are either detected by spdxify.py, or have no SPDX identifier, or are false matches.
Link: [1] https://spdx.org/licenses/ Link: [2] https://github.com/jforissier/misc/blob/f7b56c8/spdxify.py Link: [3] https://github.com/nexB/scancode-toolkit Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| #
03b03fae |
| 24-Apr-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
plat-imx: use the mov_imm macro instead of movw/movt
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wikla
plat-imx: use the mov_imm macro instead of movw/movt
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
4cd864c0 |
| 27-Mar-2017 |
Peng Fan <peng.fan@nxp.com> |
core: arm: imx: correct PCR settings
According to Cortex A9 TRM, bit[10:8] of PCR is max_clk_latency: Samples the value present on the MAXCLKLATENCY pins on exit from reset. This value reflects an i
core: arm: imx: correct PCR settings
According to Cortex A9 TRM, bit[10:8] of PCR is max_clk_latency: Samples the value present on the MAXCLKLATENCY pins on exit from reset. This value reflects an implementation-specific parameter. ARM strongly recommends that the software does not modify it.
So change the value to 0 is not wise, correct it.
Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
240e7809 |
| 09-Nov-2016 |
yanyan-wrs <yan.yan@windriver.com> |
core: arm: re-factor plat-imx6
Signed-off-by: Yan Yan <yan.yan@windriver.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
|
| #
cee96842 |
| 09-Nov-2016 |
yanyan-wrs <yan.yan@windriver.com> |
core: arm: add generic secondary core boot function
Signed-off-by: Yan Yan <yan.yan@windriver.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wikla
core: arm: add generic secondary core boot function
Signed-off-by: Yan Yan <yan.yan@windriver.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
85fe04ff |
| 06-Dec-2016 |
Peng Fan <peng.fan@nxp.com> |
core: arm: add more cp15 register access macros
Add more cp15 register access macros.
Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
|
| #
dd2561c4 |
| 16-Nov-2016 |
Peng Fan <peng.fan@nxp.com> |
core: imx: switch to use c code for PL310
1. Add a new file imx_pl310.c for arm_cl2_config and arm_cl2_enable.
2. For i.MX6Q, CFG_PL310 is defined and arm_cl2_config is implemented. In arm_cl2_c
core: imx: switch to use c code for PL310
1. Add a new file imx_pl310.c for arm_cl2_config and arm_cl2_enable.
2. For i.MX6Q, CFG_PL310 is defined and arm_cl2_config is implemented. In arm_cl2_config, all ways are invalidated, but it does not follow the rules to wait all ways to be invalidated. So In the following call to inval_cache_vrange, arm_cl2_cleaninvbypa will trigger SLVERR.
This is because the first invalidation operation not finished in background, and another invalidation is issued to PL310. So switch to use arm_cl2_invbyway which will wait until invalidation finished.
Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
8b572859 |
| 11-Oct-2016 |
Etienne Carriere <etienne.carriere@linaro.org> |
plat-stm/plat-imx: fix SCR initialization
Secure Configuration Register shall be initialized for all cores.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander
plat-stm/plat-imx: fix SCR initialization
Secure Configuration Register shall be initialized for all cores.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
6d96f208 |
| 19-Aug-2016 |
yanyan-wrs <yan.yan@windriver.com> |
Add the i.MX6 Quad SABRE board support (PLATFORM=imx)
Signed-off-by: Yan Yan <yan.yan@windriver.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.for
Add the i.MX6 Quad SABRE board support (PLATFORM=imx)
Signed-off-by: Yan Yan <yan.yan@windriver.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Peng Fan <peng.fan@nxp.com>
show more ...
|