Merged in dcabecinhas/nuttx/remove_redundant_coloring (pull request #275)
Remove redundant interrupt stack coloring and OABI code Approved-by: Gregory Nutt
This commit is contained in:
commit
f0c1c83389
@ -159,16 +159,6 @@ void up_irqinitialize(void)
|
||||
(void)getreg32(A1X_INTC_IRQ_PEND(i)); /* Reading status clears pending interrupts */
|
||||
}
|
||||
|
||||
/* Colorize the interrupt stack for debug purposes */
|
||||
|
||||
#if defined(CONFIG_STACK_COLORATION) && CONFIG_ARCH_INTERRUPTSTACK > 3
|
||||
{
|
||||
size_t intstack_size = (CONFIG_ARCH_INTERRUPTSTACK & ~3);
|
||||
up_stack_color((FAR void *)((uintptr_t)&g_intstackbase - intstack_size),
|
||||
intstack_size);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Set the interrupt base address to zero. We do not use the vectored
|
||||
* interrupts.
|
||||
*/
|
||||
|
@ -66,22 +66,11 @@
|
||||
# define HAVE_KERNEL_HEAP 1
|
||||
#endif
|
||||
|
||||
/* ARM requires at least a 4-byte stack alignment. For use with EABI and
|
||||
* floating point, the stack must be aligned to 8-byte addresses.
|
||||
/* For use with EABI and floating point, the stack must be aligned to 8-byte
|
||||
* addresses.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_STACK_ALIGNMENT
|
||||
|
||||
/* The symbol __ARM_EABI__ is defined by GCC if EABI is being used. If you
|
||||
* are not using GCC, make sure that CONFIG_STACK_ALIGNMENT is set correctly!
|
||||
*/
|
||||
|
||||
# ifdef __ARM_EABI__
|
||||
# define CONFIG_STACK_ALIGNMENT 8
|
||||
# else
|
||||
# define CONFIG_STACK_ALIGNMENT 4
|
||||
# endif
|
||||
#endif
|
||||
#define CONFIG_STACK_ALIGNMENT 8
|
||||
|
||||
/* Stack alignment macros */
|
||||
|
||||
@ -233,9 +222,9 @@ int up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype)
|
||||
|
||||
top_of_stack = (uint32_t)tcb->stack_alloc_ptr + stack_size - 4;
|
||||
|
||||
/* The ARM stack must be aligned; 4 byte alignment for OABI and
|
||||
* 8-byte alignment for EABI. If necessary top_of_stack must be
|
||||
* rounded down to the next boundary
|
||||
/* The ARM stack must be aligned to 8-byte alignment for EABI.
|
||||
* If necessary top_of_stack must be rounded down to the next
|
||||
* boundary
|
||||
*/
|
||||
|
||||
top_of_stack = STACK_ALIGN_DOWN(top_of_stack);
|
||||
|
@ -53,22 +53,11 @@
|
||||
* Pre-processor Macros
|
||||
****************************************************************************/
|
||||
|
||||
/* ARM requires at least a 4-byte stack alignment. For use with EABI and
|
||||
* floating point, the stack must be aligned to 8-byte addresses.
|
||||
/* For use with EABI and floating point, the stack must be aligned to 8-byte
|
||||
* addresses.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_STACK_ALIGNMENT
|
||||
|
||||
/* The symbol __ARM_EABI__ is defined by GCC if EABI is being used. If you
|
||||
* are not using GCC, make sure that CONFIG_STACK_ALIGNMENT is set correctly!
|
||||
*/
|
||||
|
||||
# ifdef __ARM_EABI__
|
||||
# define CONFIG_STACK_ALIGNMENT 8
|
||||
# else
|
||||
# define CONFIG_STACK_ALIGNMENT 4
|
||||
# endif
|
||||
#endif
|
||||
#define CONFIG_STACK_ALIGNMENT 8
|
||||
|
||||
/* Stack alignment macros */
|
||||
|
||||
|
@ -56,22 +56,11 @@
|
||||
* Pre-processor Macros
|
||||
****************************************************************************/
|
||||
|
||||
/* ARM requires at least a 4-byte stack alignment. For use with EABI and
|
||||
* floating point, the stack must be aligned to 8-byte addresses.
|
||||
/* For use with EABI and floating point, the stack must be aligned to 8-byte
|
||||
* addresses.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_STACK_ALIGNMENT
|
||||
|
||||
/* The symbol __ARM_EABI__ is defined by GCC if EABI is being used. If you
|
||||
* are not using GCC, make sure that CONFIG_STACK_ALIGNMENT is set correctly!
|
||||
*/
|
||||
|
||||
# ifdef __ARM_EABI__
|
||||
# define CONFIG_STACK_ALIGNMENT 8
|
||||
# else
|
||||
# define CONFIG_STACK_ALIGNMENT 4
|
||||
# endif
|
||||
#endif
|
||||
#define CONFIG_STACK_ALIGNMENT 8
|
||||
|
||||
/* Stack alignment macros */
|
||||
|
||||
@ -143,9 +132,9 @@ int up_use_stack(struct tcb_s *tcb, void *stack, size_t stack_size)
|
||||
|
||||
top_of_stack = (uint32_t)tcb->stack_alloc_ptr + stack_size - 4;
|
||||
|
||||
/* The ARM stack must be aligned; 4 byte alignment for OABI and 8-byte
|
||||
* alignment for EABI. If necessary top_of_stack must be rounded down
|
||||
* to the next boundary
|
||||
/* The ARM stack must be aligned to 8-byte alignment for EABI.
|
||||
* If necessary top_of_stack must be rounded down to the next
|
||||
* boundary
|
||||
*/
|
||||
|
||||
top_of_stack = STACK_ALIGN_DOWN(top_of_stack);
|
||||
|
@ -56,22 +56,11 @@
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/* ARM requires at least a 4-byte stack alignment. For use with EABI and
|
||||
* floating point, the stack must be aligned to 8-byte addresses.
|
||||
/* For use with EABI and floating point, the stack must be aligned to 8-byte
|
||||
* addresses.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_STACK_ALIGNMENT
|
||||
|
||||
/* The symbol __ARM_EABI__ is defined by GCC if EABI is being used. If you
|
||||
* are not using GCC, make sure that CONFIG_STACK_ALIGNMENT is set correctly!
|
||||
*/
|
||||
|
||||
# ifdef __ARM_EABI__
|
||||
# define CONFIG_STACK_ALIGNMENT 8
|
||||
# else
|
||||
# define CONFIG_STACK_ALIGNMENT 4
|
||||
# endif
|
||||
#endif
|
||||
#define CONFIG_STACK_ALIGNMENT 8
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
|
@ -319,16 +319,6 @@ void up_irqinitialize(void)
|
||||
putreg32(0xffffffff, NVIC_IRQ_CLEAR(i));
|
||||
}
|
||||
|
||||
#if defined(CONFIG_STACK_COLORATION) && CONFIG_ARCH_INTERRUPTSTACK > 3
|
||||
/* Colorize the interrupt stack for debug purposes */
|
||||
|
||||
{
|
||||
size_t intstack_size = (CONFIG_ARCH_INTERRUPTSTACK & ~3);
|
||||
up_stack_color((FAR void *)((uintptr_t)&g_intstackbase - intstack_size),
|
||||
intstack_size);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Make sure that we are using the correct vector table. The default
|
||||
* vector address is 0x0000:0000 but if we are executing code that is
|
||||
* positioned in SRAM or in external FLASH, then we may need to reset
|
||||
|
@ -93,16 +93,6 @@ void up_irqinitialize(void)
|
||||
* access to the GIC.
|
||||
*/
|
||||
|
||||
/* Colorize the interrupt stack for debug purposes */
|
||||
|
||||
#if defined(CONFIG_STACK_COLORATION) && CONFIG_ARCH_INTERRUPTSTACK > 3
|
||||
{
|
||||
size_t intstack_size = (CONFIG_ARCH_INTERRUPTSTACK & ~3);
|
||||
up_stack_color((FAR void *)((uintptr_t)&g_intstackbase - intstack_size),
|
||||
intstack_size);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Initialize the Generic Interrupt Controller (GIC) for CPU0 */
|
||||
|
||||
arm_gic0_initialize(); /* Initialization unique to CPU0 */
|
||||
|
@ -385,16 +385,6 @@ void up_irqinitialize(void)
|
||||
putreg32(0, regaddr);
|
||||
}
|
||||
|
||||
/* Colorize the interrupt stack for debug purposes */
|
||||
|
||||
#if defined(CONFIG_STACK_COLORATION) && CONFIG_ARCH_INTERRUPTSTACK > 3
|
||||
{
|
||||
size_t intstack_size = (CONFIG_ARCH_INTERRUPTSTACK & ~3);
|
||||
up_stack_color((FAR void *)((uintptr_t)&g_intstackbase - intstack_size),
|
||||
intstack_size);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Make sure that we are using the correct vector table. The default
|
||||
* vector address is 0x0000:0000 but if we are executing code that is
|
||||
* positioned in SRAM or in external FLASH, then we may need to reset
|
||||
|
@ -431,16 +431,6 @@ void up_irqinitialize(void)
|
||||
* access to the AIC.
|
||||
*/
|
||||
|
||||
/* Colorize the interrupt stack for debug purposes */
|
||||
|
||||
#if defined(CONFIG_STACK_COLORATION) && CONFIG_ARCH_INTERRUPTSTACK > 3
|
||||
{
|
||||
size_t intstack_size = (CONFIG_ARCH_INTERRUPTSTACK & ~3);
|
||||
up_stack_color((FAR void *)((uintptr_t)&g_intstackbase - intstack_size),
|
||||
intstack_size);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Redirect all interrupts to the AIC if so configured */
|
||||
|
||||
sam_aic_redirection();
|
||||
|
@ -381,16 +381,6 @@ void up_irqinitialize(void)
|
||||
putreg32(0, regaddr);
|
||||
}
|
||||
|
||||
/* Colorize the interrupt stack for debug purposes */
|
||||
|
||||
#if defined(CONFIG_STACK_COLORATION) && CONFIG_ARCH_INTERRUPTSTACK > 3
|
||||
{
|
||||
size_t intstack_size = (CONFIG_ARCH_INTERRUPTSTACK & ~3);
|
||||
up_stack_color((FAR void *)((uintptr_t)&g_intstackbase - intstack_size),
|
||||
intstack_size);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Make sure that we are using the correct vector table. The default
|
||||
* vector address is 0x0000:0000 but if we are executing code that is
|
||||
* positioned in SRAM or in external FLASH, then we may need to reset
|
||||
|
@ -310,16 +310,6 @@ void up_irqinitialize(void)
|
||||
putreg32(0xffffffff, NVIC_IRQ_CLEAR(i));
|
||||
}
|
||||
|
||||
/* Colorize the interrupt stack for debug purposes */
|
||||
|
||||
#if defined(CONFIG_STACK_COLORATION) && CONFIG_ARCH_INTERRUPTSTACK > 3
|
||||
{
|
||||
size_t intstack_size = (CONFIG_ARCH_INTERRUPTSTACK & ~3);
|
||||
up_stack_color((FAR void *)((uintptr_t)&g_intstackbase - intstack_size),
|
||||
intstack_size);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* The standard location for the vector table is at the beginning of FLASH
|
||||
* at address 0x0800:0000. If we are using the STMicro DFU bootloader, then
|
||||
* the vector table will be offset to a different location in FLASH and we
|
||||
|
@ -415,16 +415,6 @@ void up_irqinitialize(void)
|
||||
putreg32(0, regaddr);
|
||||
}
|
||||
|
||||
/* Colorize the interrupt stack for debug purposes */
|
||||
|
||||
#if defined(CONFIG_STACK_COLORATION) && CONFIG_ARCH_INTERRUPTSTACK > 3
|
||||
{
|
||||
size_t intstack_size = (CONFIG_ARCH_INTERRUPTSTACK & ~3);
|
||||
up_stack_color((FAR void *)((uintptr_t)&g_intstackbase - intstack_size),
|
||||
intstack_size);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Make sure that we are using the correct vector table. The default
|
||||
* vector address is 0x0000:0000 but if we are executing code that is
|
||||
* positioned in SRAM or in external FLASH, then we may need to reset
|
||||
|
@ -304,16 +304,6 @@ void up_irqinitialize(void)
|
||||
putreg32(0xffffffff, NVIC_IRQ_CLEAR(i));
|
||||
}
|
||||
|
||||
/* Colorize the interrupt stack for debug purposes */
|
||||
|
||||
#if defined(CONFIG_STACK_COLORATION) && CONFIG_ARCH_INTERRUPTSTACK > 3
|
||||
{
|
||||
size_t intstack_size = (CONFIG_ARCH_INTERRUPTSTACK & ~3);
|
||||
up_stack_color((FAR void *)((uintptr_t)&g_intstackbase - intstack_size),
|
||||
intstack_size);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* The standard location for the vector table is at the beginning of FLASH
|
||||
* at address 0x0800:0000. If we are using the STMicro DFU bootloader, then
|
||||
* the vector table will be offset to a different location in FLASH and we
|
||||
|
@ -115,14 +115,6 @@ void up_irqinitialize(void)
|
||||
FAR uintptr_t *vimram;
|
||||
int i;
|
||||
|
||||
/* Colorize the interrupt stack for debug purposes */
|
||||
|
||||
#if defined(CONFIG_STACK_COLORATION) && CONFIG_ARCH_INTERRUPTSTACK > 3
|
||||
size_t intstack_size = (CONFIG_ARCH_INTERRUPTSTACK & ~3);
|
||||
up_stack_color((FAR void *)((uintptr_t)&g_intstackbase - intstack_size),
|
||||
intstack_size);
|
||||
#endif
|
||||
|
||||
/* Initialize VIM RAM vectors. These vectors are not used in the current
|
||||
* interrupt handler logic.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user