sof: Align interrupt stacks

Xtensa ABI requires the stack to always be aligned to a multiple of 16
bytes. This commit aligns the stacks used for interrupt handling.

Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
This commit is contained in:
Paul Olaru 2019-11-20 17:44:41 +02:00 committed by Daniel Baluta
parent a25d50eb64
commit 9b5dc8c6ef
1 changed files with 6 additions and 5 deletions

View File

@ -9,6 +9,7 @@
#define __XTOS_XTOS_STRUCTS_H__ #define __XTOS_XTOS_STRUCTS_H__
#include "xtos-internal.h" #include "xtos-internal.h"
#include <sof/common.h>
#include <sof/lib/memory.h> #include <sof/lib/memory.h>
#include <config.h> #include <config.h>
#include <xtensa/xtruntime-frames.h> #include <xtensa/xtruntime-frames.h>
@ -29,19 +30,19 @@ struct xtos_core_data {
struct XtosInterruptStructure xtos_int_data; struct XtosInterruptStructure xtos_int_data;
#endif #endif
#if CONFIG_INTERRUPT_LEVEL_1 #if CONFIG_INTERRUPT_LEVEL_1
uint8_t xtos_stack_for_interrupt_1[SOF_STACK_SIZE]; uint8_t xtos_stack_for_interrupt_1[SOF_STACK_SIZE] __aligned(16);
#endif #endif
#if CONFIG_INTERRUPT_LEVEL_2 #if CONFIG_INTERRUPT_LEVEL_2
uint8_t xtos_stack_for_interrupt_2[SOF_STACK_SIZE]; uint8_t xtos_stack_for_interrupt_2[SOF_STACK_SIZE] __aligned(16);
#endif #endif
#if CONFIG_INTERRUPT_LEVEL_3 #if CONFIG_INTERRUPT_LEVEL_3
uint8_t xtos_stack_for_interrupt_3[SOF_STACK_SIZE]; uint8_t xtos_stack_for_interrupt_3[SOF_STACK_SIZE] __aligned(16);
#endif #endif
#if CONFIG_INTERRUPT_LEVEL_4 #if CONFIG_INTERRUPT_LEVEL_4
uint8_t xtos_stack_for_interrupt_4[SOF_STACK_SIZE]; uint8_t xtos_stack_for_interrupt_4[SOF_STACK_SIZE] __aligned(16);
#endif #endif
#if CONFIG_INTERRUPT_LEVEL_5 #if CONFIG_INTERRUPT_LEVEL_5
uint8_t xtos_stack_for_interrupt_5[SOF_STACK_SIZE]; uint8_t xtos_stack_for_interrupt_5[SOF_STACK_SIZE] __aligned(16);
#endif #endif
xtos_task_context xtos_interrupt_ctx; xtos_task_context xtos_interrupt_ctx;
uintptr_t xtos_saved_sp; uintptr_t xtos_saved_sp;