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