u-boot-arm.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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@sysgo.de>
  6. *
  7. * (C) Copyright 2002
  8. * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
  9. * Alex Zuepke <azu@sysgo.de>
  10. */
  11. #ifndef _U_BOOT_ARM_H_
  12. #define _U_BOOT_ARM_H_ 1
  13. #ifndef __ASSEMBLY__
  14. /* for the following variables, see start.S */
  15. extern ulong IRQ_STACK_START; /* top of IRQ stack */
  16. extern ulong FIQ_STACK_START; /* top of FIQ stack */
  17. extern ulong _datarel_start_ofs;
  18. extern ulong _datarelrolocal_start_ofs;
  19. extern ulong _datarellocal_start_ofs;
  20. extern ulong _datarelro_start_ofs;
  21. extern ulong IRQ_STACK_START_IN; /* 8 bytes in IRQ stack */
  22. void s_init(void);
  23. /* cpu/.../cpu.c */
  24. int cleanup_before_linux(void);
  25. /* Set up ARMv7 MMU, caches and TLBs */
  26. void cpu_init_cp15(void);
  27. /* cpu/.../arch/cpu.c */
  28. int arch_misc_init(void);
  29. /* board/.../... */
  30. int board_init(void);
  31. /* calls to c from vectors.S */
  32. struct pt_regs;
  33. void bad_mode(void);
  34. void do_undefined_instruction(struct pt_regs *pt_regs);
  35. void do_software_interrupt(struct pt_regs *pt_regs);
  36. void do_prefetch_abort(struct pt_regs *pt_regs);
  37. void do_data_abort(struct pt_regs *pt_regs);
  38. void do_not_used(struct pt_regs *pt_regs);
  39. #ifdef CONFIG_ARM64
  40. void do_fiq(struct pt_regs *pt_regs, unsigned int esr);
  41. void do_irq(struct pt_regs *pt_regs, unsigned int esr);
  42. #else
  43. void do_fiq(struct pt_regs *pt_regs);
  44. void do_irq(struct pt_regs *pt_regswq);
  45. #endif
  46. void reset_misc(void);
  47. #endif /* __ASSEMBLY__ */
  48. #endif /* _U_BOOT_ARM_H_ */