xref: /rk3399_rockchip-uboot/arch/arm/include/asm/u-boot-arm.h (revision b7b8410a8fee9eda7b062a86a07dda0b97c49f8a)
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  *
101a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
11819833afSPeter Tyser  */
12819833afSPeter Tyser 
13819833afSPeter Tyser #ifndef _U_BOOT_ARM_H_
14819833afSPeter Tyser #define _U_BOOT_ARM_H_	1
15819833afSPeter Tyser 
16819833afSPeter Tyser /* for the following variables, see start.S */
17819833afSPeter Tyser extern ulong IRQ_STACK_START;	/* top of IRQ stack */
18819833afSPeter Tyser extern ulong FIQ_STACK_START;	/* top of FIQ stack */
1992d5ecbaSAlbert Aribaud extern ulong _datarel_start_ofs;
2092d5ecbaSAlbert Aribaud extern ulong _datarelrolocal_start_ofs;
2192d5ecbaSAlbert Aribaud extern ulong _datarellocal_start_ofs;
2292d5ecbaSAlbert Aribaud extern ulong _datarelro_start_ofs;
23f1d2b313SHeiko Schocher extern ulong IRQ_STACK_START_IN;	/* 8 bytes in IRQ stack */
24819833afSPeter Tyser 
25819833afSPeter Tyser /* cpu/.../cpu.c */
26819833afSPeter Tyser int	cpu_init(void);
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_cpu_init(void);
34819833afSPeter Tyser int	arch_misc_init(void);
35d519b4bcSFabio Estevam int	arch_early_init_r(void);
36819833afSPeter Tyser 
37819833afSPeter Tyser /* board/.../... */
38819833afSPeter Tyser int	board_init(void);
39f1d2b313SHeiko Schocher void	dram_init_banksize (void);
40*b7b8410aSAlexander Graf void	board_quiesce_devices(void);
41819833afSPeter Tyser 
42819833afSPeter Tyser /* cpu/.../interrupt.c */
43819833afSPeter Tyser int	arch_interrupt_init	(void);
44819833afSPeter Tyser void	reset_timer_masked	(void);
45819833afSPeter Tyser ulong	get_timer_masked	(void);
46819833afSPeter Tyser void	udelay_masked		(unsigned long usec);
47819833afSPeter Tyser 
4849c4bc3aSJeroen Hofstee /* calls to c from vectors.S */
4949c4bc3aSJeroen Hofstee void bad_mode(void);
5049c4bc3aSJeroen Hofstee void do_undefined_instruction(struct pt_regs *pt_regs);
5149c4bc3aSJeroen Hofstee void do_software_interrupt(struct pt_regs *pt_regs);
5249c4bc3aSJeroen Hofstee void do_prefetch_abort(struct pt_regs *pt_regs);
5349c4bc3aSJeroen Hofstee void do_data_abort(struct pt_regs *pt_regs);
5449c4bc3aSJeroen Hofstee void do_not_used(struct pt_regs *pt_regs);
5549c4bc3aSJeroen Hofstee #ifdef CONFIG_ARM64
5649c4bc3aSJeroen Hofstee void do_fiq(struct pt_regs *pt_regs, unsigned int esr);
5749c4bc3aSJeroen Hofstee void do_irq(struct pt_regs *pt_regs, unsigned int esr);
5849c4bc3aSJeroen Hofstee #else
5949c4bc3aSJeroen Hofstee void do_fiq(struct pt_regs *pt_regs);
6049c4bc3aSJeroen Hofstee void do_irq(struct pt_regs *pt_regswq);
6149c4bc3aSJeroen Hofstee #endif
6249c4bc3aSJeroen Hofstee 
63819833afSPeter Tyser #endif	/* _U_BOOT_ARM_H_ */
64