1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * (C) Copyright 2002 4 * Sysgo Real-Time Solutions, GmbH <www.elinos.com> 5 * Marius Groeger <mgroeger@sysgo.de> 6 * 7 * (C) Copyright 2002 8 * Sysgo Real-Time Solutions, GmbH <www.elinos.com> 9 * Alex Zuepke <azu@sysgo.de> 10 */ 11 12#ifndef _U_BOOT_ARM_H_ 13#define _U_BOOT_ARM_H_ 1 14 15#ifndef __ASSEMBLY__ 16 17/* for the following variables, see start.S */ 18extern ulong IRQ_STACK_START; /* top of IRQ stack */ 19extern ulong FIQ_STACK_START; /* top of FIQ stack */ 20extern ulong _datarel_start_ofs; 21extern ulong _datarelrolocal_start_ofs; 22extern ulong _datarellocal_start_ofs; 23extern ulong _datarelro_start_ofs; 24extern ulong IRQ_STACK_START_IN; /* 8 bytes in IRQ stack */ 25 26void s_init(void); 27 28/* cpu/.../cpu.c */ 29int cleanup_before_linux(void); 30 31/* Set up ARMv7 MMU, caches and TLBs */ 32void cpu_init_cp15(void); 33 34/* cpu/.../arch/cpu.c */ 35int arch_misc_init(void); 36 37/* board/.../... */ 38int board_init(void); 39 40/* calls to c from vectors.S */ 41struct pt_regs; 42 43void bad_mode(void); 44void do_undefined_instruction(struct pt_regs *pt_regs); 45void do_software_interrupt(struct pt_regs *pt_regs); 46void do_prefetch_abort(struct pt_regs *pt_regs); 47void do_data_abort(struct pt_regs *pt_regs); 48void do_not_used(struct pt_regs *pt_regs); 49void do_fiq(struct pt_regs *pt_regs); 50void do_irq(struct pt_regs *pt_regs); 51 52void reset_misc(void); 53 54#endif /* __ASSEMBLY__ */ 55 56#endif /* _U_BOOT_ARM_H_ */ 57