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