nuttx/arch/arm/src/common
Masayuki Ishikawa dad5a79bf3 arch: arm: Fix interrupt stack handlings for SMP
Summary:
- Modify arm_intstack_base() to return "top" of the IRQ stack for the current CPU
- This change fixes IRQ stack dump information for ARM SMP
- Add arm_intstack_alloc() to return "bottom" of the IRQ stack for the current CPU
- Also, these functions are now implemented in xxx_irq.c (imx/cxd56/lc823450)
- up_color_intstack() and up_check_intstack() now call arm_intstack_alloc()
- These semantics are now consistent with non-SMP case
- up_color_intstack() now initializes whole IRQ stack region for SMP
- Adjust IRQ stack top address for each CPU (e.g. -8)
- Fix setintstack to handle in case of NCPUS=1 (cxd56, lc823450)
- Adjust INTSTACK_SIZE to 8 bytes alignment (cxd56, lc823450)
- Refactor setintstack for lc823450
- Remove old IRQ stack coloring code from up_irqinitialize() (lc823450)
- Introduce g_cpu_intstack_top for lc823450
- Refactor header files

Impact:
- Affects imx6/cxd56xx/lc823450 SMP with interrupt stack enabled

Testing:
- Tested with sabre-6quad:smp (with QEMU, NCPUS=1 and 4)
- Tested with spresense:wifi_smp (NCPUS=1 and 2)
- Tested with lc823450-xgevk:rndis (NCPUS=1 and 2)

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-10-21 11:49:45 +08:00
..
arm_allocateheap.c arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
arm_arch.h arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
arm_checkstack.c arch: arm: Fix interrupt stack handlings for SMP 2020-10-21 11:49:45 +08:00
arm_createstack.c ARM stack fix: Same boundary calculation in do_stackcheck and stack_color. 2020-10-12 10:52:33 -07:00
arm_etherstub.c arch/arm, board/arm: Rename all up_* functions to arm_* 2020-05-01 18:28:13 +01:00
arm_exit.c libc/stdio: Allocate file_struct dynamically 2020-09-11 17:58:17 +08:00
arm_hostfs.c Change all files come from Xiaomi/Pinecone to Apache License 2.0 2020-08-22 17:37:21 -06:00
arm_idle.c arch/: Trivial typos, mostly "their is" to "there is" 2020-09-09 14:09:43 -04:00
arm_initialize.c arch: arm: Fix interrupt stack handlings for SMP 2020-10-21 11:49:45 +08:00
arm_internal.h arch/arm: Add ARCH_ARMV6M Kconfig to prepare the support of CortexM0+ 2020-09-22 23:05:29 +01:00
arm_interruptcontext.c Update arch/arm/src/common/arm_interruptcontext.c 2020-09-30 08:32:25 -06:00
arm_lowputs.c arch/arm, board/arm: Rename all up_* functions to arm_* 2020-05-01 18:28:13 +01:00
arm_lwl_console.c arch/arm: Rename all up_*.c files to arm_*.c 2020-05-01 02:11:01 +01:00
arm_mdelay.c arch/arm: Rename all up_*.c files to arm_*.c 2020-05-01 02:11:01 +01:00
arm_modifyreg8.c arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
arm_modifyreg16.c arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
arm_modifyreg32.c arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
arm_pthread_start.c Refine __KERNEL__ and CONFIG_BUILD_xxx usage in the code base 2020-05-01 10:43:47 -03:00
arm_puts.c arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
arm_releasestack.c Refine __KERNEL__ and CONFIG_BUILD_xxx usage in the code base 2020-05-01 10:43:47 -03:00
arm_semi_syslog.c Change all files come from Xiaomi/Pinecone to Apache License 2.0 2020-08-22 17:37:21 -06:00
arm_stackframe.c arch/stackframe: fix heap buffer overflow 2020-06-15 07:19:41 -06:00
arm_task_start.c Refine __KERNEL__ and CONFIG_BUILD_xxx usage in the code base 2020-05-01 10:43:47 -03:00
arm_udelay.c arch/arm: Rename all up_*.c files to arm_*.c 2020-05-01 02:11:01 +01:00
arm_usestack.c ARM stack fix: Same boundary calculation in do_stackcheck and stack_color. 2020-10-12 10:52:33 -07:00
arm_vfork.c arch/arm: Add ARCH_ARMV6M Kconfig to prepare the support of CortexM0+ 2020-09-22 23:05:29 +01:00
arm_vfork.h arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
README_lwl_console.txt arch/arm: Rename all up_*.c files to arm_*.c 2020-05-01 02:11:01 +01:00