xref: /openbmc/u-boot/arch/arm/include/asm/u-boot-arm.h (revision 606f3a74e62db197bda104d1c472be9614957ee2)
1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
2819833afSPeter Tyser /*
3819833afSPeter Tyser  * (C) Copyright 2002
4819833afSPeter Tyser  * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
5819833afSPeter Tyser  * Marius Groeger <mgroeger@sysgo.de>
6819833afSPeter Tyser  *
7819833afSPeter Tyser  * (C) Copyright 2002
8819833afSPeter Tyser  * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
9819833afSPeter Tyser  * Alex Zuepke <azu@sysgo.de>
10819833afSPeter Tyser  */
11819833afSPeter Tyser 
12819833afSPeter Tyser #ifndef _U_BOOT_ARM_H_
13819833afSPeter Tyser #define _U_BOOT_ARM_H_	1
14819833afSPeter Tyser 
15ac6a6bd6SSimon Glass #ifndef __ASSEMBLY__
16ac6a6bd6SSimon Glass 
17819833afSPeter Tyser /* for the following variables, see start.S */
18819833afSPeter Tyser extern ulong IRQ_STACK_START;	/* top of IRQ stack */
19819833afSPeter Tyser extern ulong FIQ_STACK_START;	/* top of FIQ stack */
2092d5ecbaSAlbert Aribaud extern ulong _datarel_start_ofs;
2192d5ecbaSAlbert Aribaud extern ulong _datarelrolocal_start_ofs;
2292d5ecbaSAlbert Aribaud extern ulong _datarellocal_start_ofs;
2392d5ecbaSAlbert Aribaud extern ulong _datarelro_start_ofs;
24f1d2b313SHeiko Schocher extern ulong IRQ_STACK_START_IN;	/* 8 bytes in IRQ stack */
25819833afSPeter Tyser 
26819833afSPeter Tyser /* cpu/.../cpu.c */
27819833afSPeter Tyser int	cleanup_before_linux(void);
28819833afSPeter Tyser 
2980433c9aSSimon Glass /* Set up ARMv7 MMU, caches and TLBs */
3080433c9aSSimon Glass void	cpu_init_cp15(void);
3180433c9aSSimon Glass 
32819833afSPeter Tyser /* cpu/.../arch/cpu.c */
33819833afSPeter Tyser int	arch_misc_init(void);
34819833afSPeter Tyser 
35819833afSPeter Tyser /* board/.../... */
36819833afSPeter Tyser int	board_init(void);
37819833afSPeter Tyser 
3849c4bc3aSJeroen Hofstee /* calls to c from vectors.S */
39c45300b0SSimon Glass struct pt_regs;
40c45300b0SSimon Glass 
4149c4bc3aSJeroen Hofstee void bad_mode(void);
4249c4bc3aSJeroen Hofstee void do_undefined_instruction(struct pt_regs *pt_regs);
4349c4bc3aSJeroen Hofstee void do_software_interrupt(struct pt_regs *pt_regs);
4449c4bc3aSJeroen Hofstee void do_prefetch_abort(struct pt_regs *pt_regs);
4549c4bc3aSJeroen Hofstee void do_data_abort(struct pt_regs *pt_regs);
4649c4bc3aSJeroen Hofstee void do_not_used(struct pt_regs *pt_regs);
4749c4bc3aSJeroen Hofstee #ifdef CONFIG_ARM64
4849c4bc3aSJeroen Hofstee void do_fiq(struct pt_regs *pt_regs, unsigned int esr);
4949c4bc3aSJeroen Hofstee void do_irq(struct pt_regs *pt_regs, unsigned int esr);
5049c4bc3aSJeroen Hofstee #else
5149c4bc3aSJeroen Hofstee void do_fiq(struct pt_regs *pt_regs);
5249c4bc3aSJeroen Hofstee void do_irq(struct pt_regs *pt_regswq);
5349c4bc3aSJeroen Hofstee #endif
5449c4bc3aSJeroen Hofstee 
55ac6a6bd6SSimon Glass #endif /* __ASSEMBLY__ */
56ac6a6bd6SSimon Glass 
57819833afSPeter Tyser #endif	/* _U_BOOT_ARM_H_ */
58