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