zephyr/arch
Stephanos Ioannidis bc8524eb82 arch: arm: Rewrite Cortex-R reset vector function.
This commit addresses the following issues:

1. Add a new Kconfig configuration for specifying Dual-redundant Core
   Lock-step (DCLS) processor topology.

2. Register initialisation is only required when Dual-redundant Core
   Lock-step (DCLS) is implemented in hardware. This initialisation is
   required on DCLS only because the architectural registers are in an
   indeterminate state after reset and therefore the initial register
   state of the two parallel executing cores are not guaranteed to be
   identical, which can lead to DCCM detecting it as a hardware fault.
   A conditional compilation check for this hardware configuration
   using the newly added CONFIG_CPU_HAS_DCLS flag has been added.

3. The existing CPU register initialisation code did not take into
   account the banked registers for every execution mode. The new
   implementation ensures that all architectural registers of every
   mode are initialised.

4. Add VFP register initialisation for when floating-point support is
   enabled and the core is configured in DCLS topology. This
   initialisation sequence is required for the same reason given in
   the first issue.

5. Add provision for platform-specific initialisation on Cortex-R
   using PLATFORM_SPECIFIC_INIT config and z_platform_init function.

6. Remove seemingly pointless and inadequately defined STACK_MARGIN.
   Not only does it violate the 8-byte stack alignment rule, it does
   not provide any form of real stack protection.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2020-01-10 10:34:17 +01:00
..
arc arc: remove old macro used for event logger 2020-01-09 11:21:19 -05:00
arm arch: arm: Rewrite Cortex-R reset vector function. 2020-01-10 10:34:17 +01:00
common arch: arm: Move ARM code to AArch32 sub-directory 2019-12-20 11:40:59 -05:00
nios2 global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00
posix POSIX arch: Fix C++ main() linkage issue 2019-12-18 21:53:47 +01:00
riscv riscv: use standard MSTATUS 2020-01-06 13:27:45 -05:00
x86 kconfig: Remove '# hidden' comments on promptless symbols 2020-01-03 11:38:40 +01:00
xtensa xtensa: fix atomic_cas reporting value swapped even when not 2020-01-08 19:57:05 -05:00
CMakeLists.txt
Kconfig arch: arm: Rewrite Cortex-R reset vector function. 2020-01-10 10:34:17 +01:00