Skip to content

Conversation

@evgeniy-paltsev
Copy link
Contributor

@evgeniy-paltsev evgeniy-paltsev commented Aug 15, 2022

CONFIG_ISR_STACK_SIZE and CONFIG_ARC_EXCEPTION_STACK_SIZE are used in arc asembler code without C wrapper on them with following manner:

#define INIT_STACK z_interrupt_stacks
#define INIT_STACK_SIZE CONFIG_ISR_STACK_SIZE

	mov_s sp, INIT_STACK
	add sp, sp, INIT_STACK_SIZE

In result we can get stack unaligned if we have CONFIG_ISR_STACK_SIZE or CONFIG_ARC_EXCEPTION_STACK_SIZE
values unaligned.

There is no point to have unaligned stack size - so let's check against such configurations in compile time.

Fixes: #37704

@evgeniy-paltsev evgeniy-paltsev changed the title ARC: Check that ISR % exception stacks are proper aligned ARC: Check that ISR and exception stacks are proper aligned Aug 15, 2022
@zephyrbot zephyrbot added the area: ARC ARC Architecture label Aug 15, 2022
@evgeniy-paltsev evgeniy-paltsev force-pushed the rff-stack-align-assert-v0 branch from 07fd73c to 0639085 Compare August 15, 2022 13:53
CONFIG_ISR_STACK_SIZE and CONFIG_ARC_EXCEPTION_STACK_SIZE are
used in arc asembler code without C wrapper on them with following
manner:

---------------------------->8----------------------------
/#define INIT_STACK z_interrupt_stacks
/#define INIT_STACK_SIZE CONFIG_ISR_STACK_SIZE

	mov_s sp, INIT_STACK
	add sp, sp, INIT_STACK_SIZE
---------------------------->8----------------------------

In result we can get stack unaligned if we have
CONFIG_ISR_STACK_SIZE or CONFIG_ARC_EXCEPTION_STACK_SIZE
values unaligned. There is no point to have unaligned stack
size - so let's check against such configurations in
compile time.

Signed-off-by: Evgeniy Paltsev <PaltsevEvgeniy@gmail.com>
Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
@fabiobaltieri fabiobaltieri merged commit 961df14 into zephyrproject-rtos:main Aug 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ARC ARC Architecture

Projects

None yet

Development

Successfully merging this pull request may close these issues.

hello world doesn't work on qemu_arc_em when CONFIG_ISR_STACK_SIZE=1048510

6 participants