1*68145d4cSAndreas Bießmann /* 2*68145d4cSAndreas Bießmann * Copyright (c) 2015 Andreas Bießmann <andreas.devel@googlemail.com> 3*68145d4cSAndreas Bießmann * 4*68145d4cSAndreas Bießmann * Copyright (c) 2011 The Chromium OS Authors. 5*68145d4cSAndreas Bießmann * (C) Copyright 2002-2006 6*68145d4cSAndreas Bießmann * Wolfgang Denk, DENX Software Engineering, wd@denx.de. 7*68145d4cSAndreas Bießmann * 8*68145d4cSAndreas Bießmann * (C) Copyright 2002 9*68145d4cSAndreas Bießmann * Sysgo Real-Time Solutions, GmbH <www.elinos.com> 10*68145d4cSAndreas Bießmann * Marius Groeger <mgroeger@sysgo.de> 11*68145d4cSAndreas Bießmann * 12*68145d4cSAndreas Bießmann * SPDX-License-Identifier: GPL-2.0+ 13*68145d4cSAndreas Bießmann */ 14*68145d4cSAndreas Bießmann #include <common.h> 15*68145d4cSAndreas Bießmann 16*68145d4cSAndreas Bießmann DECLARE_GLOBAL_DATA_PTR; 17*68145d4cSAndreas Bießmann 18*68145d4cSAndreas Bießmann int arch_reserve_stacks(void) 19*68145d4cSAndreas Bießmann { 20*68145d4cSAndreas Bießmann ulong *s; 21*68145d4cSAndreas Bießmann 22*68145d4cSAndreas Bießmann /* setup stack pointer for exceptions */ 23*68145d4cSAndreas Bießmann gd->irq_sp = gd->start_addr_sp; 24*68145d4cSAndreas Bießmann 25*68145d4cSAndreas Bießmann /* Clear initial stack frame */ 26*68145d4cSAndreas Bießmann s = (ulong *)gd->start_addr_sp; 27*68145d4cSAndreas Bießmann *s = 0; /* Terminate back chain */ 28*68145d4cSAndreas Bießmann *++s = 0; /* NULL return address */ 29*68145d4cSAndreas Bießmann 30*68145d4cSAndreas Bießmann return 0; 31*68145d4cSAndreas Bießmann } 32