zephyr/include
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
..
app_memory kernel: fix k_mem_partition data types 2019-12-12 14:48:42 -08:00
arch arch: arm: Rewrite Cortex-R reset vector function. 2020-01-10 10:34:17 +01:00
audio include: respect line limit in api pointer initialization 2019-12-16 21:14:08 -05:00
bluetooth Bluetooth: GATT: Remove _peer member from bt_gatt_subscribe_params 2020-01-09 19:20:21 +01:00
cmsis_rtos_v1 all: Add 'U' suffix when using unsigned variables 2019-03-28 17:15:58 -05:00
cmsis_rtos_v2 global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00
console console: Remove deprecated function console_register_line_input 2019-09-18 19:14:25 -05:00
crypto cleanup: include/: move misc/util.h to sys/util.h 2019-06-27 22:55:49 -04:00
data treewide: avoid address-of-compound-literal idiom in headers 2019-12-18 21:53:17 +01:00
debug object tracing: Fix the issue that objects lost from trace list 2019-11-14 09:13:56 -05:00
dfu include/dfu: rearrange for standard use of extern "C" in private headers 2019-08-13 18:00:31 +02:00
disk sdhc: rename disk_access_sdhc.c 2019-07-10 11:58:15 -05:00
display subsys/cfb: improve font structure packing 2019-07-31 05:43:50 -04:00
drivers drivers: adc: add LMP90xxx ADC driver with GPIO 2020-01-09 17:27:52 +01:00
dt-bindings drivers: pwm: add support for inverted PWM signals 2020-01-07 18:13:18 +01:00
fs doc: fix misspelling in API doxygen comments 2019-10-29 06:00:14 +01:00
linker x86: consolidate x86_64 architecture, SoC and boards 2019-10-25 17:57:55 -04:00
logging logging: Fix false strdup buffer freeing 2019-12-20 08:49:01 -05:00
mgmt smp: shell: Add support for SMP in new shell. 2019-01-15 17:19:20 -05:00
net net: core: Drop NET_ASSERT_INFO() macro 2020-01-08 14:10:21 +02:00
posix include: posix: time.h: Make CLOCK_REALTIME, etc. compatible with Newlib 2019-10-28 13:04:35 +02:00
power cleanup: include/: move misc/reboot.h to power/reboot.h 2019-06-27 22:55:49 -04:00
random subsys/random: Add cryptographically secure and bulk fill functions 2019-11-05 19:36:42 +01:00
settings doc: fix misspelling in API doxygen comments 2019-10-29 06:00:14 +01:00
shell shell: Remove deprecated macros 2020-01-09 14:38:49 -05:00
stats cleanup: include/: move stats.h to stats/stats.h 2019-06-27 22:55:49 -04:00
storage doc: fix flash_area_get_sectors doc 2019-10-25 16:40:12 -05:00
sys lib: os: make snprintk fns generally available 2020-01-03 10:13:30 +01:00
toolchain toolchain: xcc: use Clang if exists 2020-01-07 17:09:38 +01:00
usb usb: make usb descriptor power options configurable 2019-12-20 19:46:16 -05:00
zephyr include: Remove compat include headers 2019-12-10 08:39:37 -05:00
cache.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
device.h global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00
exc_handle.h kernel: rename z_arch_ to arch_ 2019-11-07 15:21:46 -08:00
fatal.h doc: fix misspelling in API doxygen comments 2019-10-29 06:00:14 +01:00
generated_dts_board.h scripts: dts: Remove deprecated extract_dts_includes.py script 2019-12-09 16:31:42 -05:00
init.h kernel: move test of kernel startup state to more visible location 2020-01-06 13:55:31 -05:00
irq.h irq: add note about irq_lock/unlock access 2020-01-08 08:20:48 -05:00
irq_nextlevel.h include: respect line limit in api pointer initialization 2019-12-16 21:14:08 -05:00
irq_offload.h kernel: sychronize irq_offload() access 2019-11-08 15:16:43 -08:00
kernel.h kernel: move test of kernel startup state to more visible location 2020-01-06 13:55:31 -05:00
kernel_includes.h headers: Refactor kernel and arch headers. 2019-11-06 16:07:32 -08:00
kernel_structs.h kernel/sched: Fix edge case in MetaIRQ preemption of cooperative threads 2019-11-15 13:09:02 +01:00
kernel_version.h doc: add kernel version API to doxygen 2018-12-08 17:24:53 -05:00
ptp_clock.h include: respect line limit in api pointer initialization 2019-12-16 21:14:08 -05:00
sched_priq.h cleanup: include/: move misc/util.h to sys/util.h 2019-06-27 22:55:49 -04:00
shared_irq.h include: respect line limit in api pointer initialization 2019-12-16 21:14:08 -05:00
spinlock.h spinlock: Make SPIN_VALIDATE a Kconfig option. 2019-12-20 19:51:16 -05:00
sw_isr_table.h include: rearrange for standard use of extern "C" in various headers 2019-08-13 18:00:31 +02:00
sys_clock.h sys_clock: Fix typo in SYS_CLOCK_HW_CYCLES_TO_NS64() macro 2019-12-17 13:06:55 -05:00
syscall.h global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00
syscall_handler.h kernel: fix 64-bit issues in syscall_handler.h 2019-12-12 14:48:42 -08:00
timeout_q.h kernel: include: Fix warning when !CONFIG_SYS_CLOCK_EXISTS 2019-11-07 08:22:59 -05:00
toolchain.h toolchain: Fix for off-tree toolchains 2019-10-08 17:09:23 -04:00
wait_q.h headers: Refactor kernel and arch headers. 2019-11-06 16:07:32 -08:00
zephyr.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00