Home | History | Annotate | Download | only in asm
      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 (at) sysgo.de>
      6  *
      7  * (C) Copyright 2002
      8  * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
      9  * Alex Zuepke <azu (at) 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 */
     18 extern ulong IRQ_STACK_START;	/* top of IRQ stack */
     19 extern ulong FIQ_STACK_START;	/* top of FIQ stack */
     20 extern ulong _datarel_start_ofs;
     21 extern ulong _datarelrolocal_start_ofs;
     22 extern ulong _datarellocal_start_ofs;
     23 extern ulong _datarelro_start_ofs;
     24 extern ulong IRQ_STACK_START_IN;	/* 8 bytes in IRQ stack */
     25 
     26 /* cpu/.../cpu.c */
     27 int	cpu_init(void);
     28 int	cleanup_before_linux(void);
     29 
     30 /* Set up ARMv7 MMU, caches and TLBs */
     31 void	cpu_init_cp15(void);
     32 
     33 /* cpu/.../arch/cpu.c */
     34 int	arch_cpu_init(void);
     35 int	arch_misc_init(void);
     36 int	arch_early_init_r(void);
     37 
     38 /* board/.../... */
     39 int	board_init(void);
     40 
     41 /* cpu/.../interrupt.c */
     42 int	arch_interrupt_init	(void);
     43 void	reset_timer_masked	(void);
     44 ulong	get_timer_masked	(void);
     45 void	udelay_masked		(unsigned long usec);
     46 
     47 /* calls to c from vectors.S */
     48 struct pt_regs;
     49 
     50 void bad_mode(void);
     51 void do_undefined_instruction(struct pt_regs *pt_regs);
     52 void do_software_interrupt(struct pt_regs *pt_regs);
     53 void do_prefetch_abort(struct pt_regs *pt_regs);
     54 void do_data_abort(struct pt_regs *pt_regs);
     55 void do_not_used(struct pt_regs *pt_regs);
     56 #ifdef CONFIG_ARM64
     57 void do_fiq(struct pt_regs *pt_regs, unsigned int esr);
     58 void do_irq(struct pt_regs *pt_regs, unsigned int esr);
     59 #else
     60 void do_fiq(struct pt_regs *pt_regs);
     61 void do_irq(struct pt_regs *pt_regswq);
     62 #endif
     63 
     64 #endif /* __ASSEMBLY__ */
     65 
     66 #endif	/* _U_BOOT_ARM_H_ */
     67