1819833afSPeter Tyser /* 2819833afSPeter Tyser * (C) Copyright 2002 3819833afSPeter Tyser * Sysgo Real-Time Solutions, GmbH <www.elinos.com> 4819833afSPeter Tyser * Marius Groeger <mgroeger@sysgo.de> 5819833afSPeter Tyser * 6819833afSPeter Tyser * (C) Copyright 2002 7819833afSPeter Tyser * Sysgo Real-Time Solutions, GmbH <www.elinos.com> 8819833afSPeter Tyser * Alex Zuepke <azu@sysgo.de> 9819833afSPeter Tyser * 10819833afSPeter Tyser * See file CREDITS for list of people who contributed to this 11819833afSPeter Tyser * project. 12819833afSPeter Tyser * 13819833afSPeter Tyser * This program is free software; you can redistribute it and/or 14819833afSPeter Tyser * modify it under the terms of the GNU General Public License as 15819833afSPeter Tyser * published by the Free Software Foundation; either version 2 of 16819833afSPeter Tyser * the License, or (at your option) any later version. 17819833afSPeter Tyser * 18819833afSPeter Tyser * This program is distributed in the hope that it will be useful, 19819833afSPeter Tyser * but WITHOUT ANY WARRANTY; without even the implied warranty of 20819833afSPeter Tyser * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21819833afSPeter Tyser * GNU General Public License for more details. 22819833afSPeter Tyser * 23819833afSPeter Tyser * You should have received a copy of the GNU General Public License 24819833afSPeter Tyser * along with this program; if not, write to the Free Software 25819833afSPeter Tyser * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 26819833afSPeter Tyser * MA 02111-1307 USA 27819833afSPeter Tyser */ 28819833afSPeter Tyser 29819833afSPeter Tyser #ifndef _U_BOOT_ARM_H_ 30819833afSPeter Tyser #define _U_BOOT_ARM_H_ 1 31819833afSPeter Tyser 32819833afSPeter Tyser /* for the following variables, see start.S */ 3392d5ecbaSAlbert Aribaud extern ulong _bss_start_ofs; /* BSS start relative to _start */ 3492d5ecbaSAlbert Aribaud extern ulong _bss_end_ofs; /* BSS end relative to _start */ 35f326cbbaSPo-Yu Chuang extern ulong _end_ofs; /* end of image relative to _start */ 36819833afSPeter Tyser extern ulong IRQ_STACK_START; /* top of IRQ stack */ 37819833afSPeter Tyser extern ulong FIQ_STACK_START; /* top of FIQ stack */ 38f1d2b313SHeiko Schocher extern ulong _TEXT_BASE; /* code start */ 3992d5ecbaSAlbert Aribaud extern ulong _datarel_start_ofs; 4092d5ecbaSAlbert Aribaud extern ulong _datarelrolocal_start_ofs; 4192d5ecbaSAlbert Aribaud extern ulong _datarellocal_start_ofs; 4292d5ecbaSAlbert Aribaud extern ulong _datarelro_start_ofs; 43f1d2b313SHeiko Schocher extern ulong IRQ_STACK_START_IN; /* 8 bytes in IRQ stack */ 44819833afSPeter Tyser 45819833afSPeter Tyser /* cpu/.../cpu.c */ 46819833afSPeter Tyser int cpu_init(void); 47819833afSPeter Tyser int cleanup_before_linux(void); 48819833afSPeter Tyser 4980433c9aSSimon Glass /* Set up ARMv7 MMU, caches and TLBs */ 5080433c9aSSimon Glass void cpu_init_cp15(void); 5180433c9aSSimon Glass 52819833afSPeter Tyser /* cpu/.../arch/cpu.c */ 53819833afSPeter Tyser int arch_cpu_init(void); 54819833afSPeter Tyser int arch_misc_init(void); 55*d519b4bcSFabio Estevam int arch_early_init_r(void); 56819833afSPeter Tyser 57819833afSPeter Tyser /* board/.../... */ 58819833afSPeter Tyser int board_init(void); 59819833afSPeter Tyser int dram_init (void); 60f1d2b313SHeiko Schocher void dram_init_banksize (void); 61819833afSPeter Tyser void setup_serial_tag (struct tag **params); 62819833afSPeter Tyser void setup_revision_tag (struct tag **params); 63819833afSPeter Tyser 64819833afSPeter Tyser /* cpu/.../interrupt.c */ 65819833afSPeter Tyser int arch_interrupt_init (void); 66819833afSPeter Tyser void reset_timer_masked (void); 67819833afSPeter Tyser ulong get_timer_masked (void); 68819833afSPeter Tyser void udelay_masked (unsigned long usec); 69819833afSPeter Tyser 70819833afSPeter Tyser #endif /* _U_BOOT_ARM_H_ */ 71