168145d4cSAndreas Bießmann /* 209c2b8f3SAndreas Bießmann * Copyright (c) 2015 Andreas Bießmann <andreas@biessmann.org> 368145d4cSAndreas Bießmann * 468145d4cSAndreas Bießmann * Copyright (c) 2011 The Chromium OS Authors. 568145d4cSAndreas Bießmann * (C) Copyright 2002-2006 668145d4cSAndreas Bießmann * Wolfgang Denk, DENX Software Engineering, wd@denx.de. 768145d4cSAndreas Bießmann * 868145d4cSAndreas Bießmann * (C) Copyright 2002 968145d4cSAndreas Bießmann * Sysgo Real-Time Solutions, GmbH <www.elinos.com> 1068145d4cSAndreas Bießmann * Marius Groeger <mgroeger@sysgo.de> 1168145d4cSAndreas Bießmann * 1268145d4cSAndreas Bießmann * SPDX-License-Identifier: GPL-2.0+ 1368145d4cSAndreas Bießmann */ 1468145d4cSAndreas Bießmann #include <common.h> 1568145d4cSAndreas Bießmann 1668145d4cSAndreas Bießmann DECLARE_GLOBAL_DATA_PTR; 1768145d4cSAndreas Bießmann arch_reserve_stacks(void)1868145d4cSAndreas Bießmannint arch_reserve_stacks(void) 1968145d4cSAndreas Bießmann { 2068145d4cSAndreas Bießmann #ifdef CONFIG_SPL_BUILD 2168145d4cSAndreas Bießmann gd->start_addr_sp -= 128; /* leave 32 words for abort-stack */ 2268145d4cSAndreas Bießmann gd->irq_sp = gd->start_addr_sp; 2368145d4cSAndreas Bießmann #else 2468145d4cSAndreas Bießmann /* setup stack pointer for exceptions */ 2568145d4cSAndreas Bießmann gd->irq_sp = gd->start_addr_sp; 2668145d4cSAndreas Bießmann 2768145d4cSAndreas Bießmann # if !defined(CONFIG_ARM64) 28*7cef7918SJoseph Chen #if CONFIG_IS_ENABLED(IRQ) 29fa40f8a0SJoseph Chen #ifndef CONFIG_IRQ_STACK_SIZE 30fa40f8a0SJoseph Chen #define CONFIG_IRQ_STACK_SIZE 8192 31fa40f8a0SJoseph Chen #endif 32fa40f8a0SJoseph Chen gd->start_addr_sp -= CONFIG_IRQ_STACK_SIZE; 33fa40f8a0SJoseph Chen 34fa40f8a0SJoseph Chen #else 3568145d4cSAndreas Bießmann /* leave 3 words for abort-stack, plus 1 for alignment */ 3668145d4cSAndreas Bießmann gd->start_addr_sp -= 16; 3768145d4cSAndreas Bießmann #endif 3868145d4cSAndreas Bießmann # endif 39fa40f8a0SJoseph Chen #endif 4068145d4cSAndreas Bießmann 4168145d4cSAndreas Bießmann return 0; 4268145d4cSAndreas Bießmann } 43