inttable.S 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*++
  2. Copyright (c) 2013 Minoca Corp. All Rights Reserved
  3. Module Name:
  4. inttable.S
  5. Abstract:
  6. This module implements the interrupt jump vector table for ARM processors.
  7. Author:
  8. Evan Green 14-Aug-2013
  9. Environment:
  10. Boot
  11. --*/
  12. ##
  13. ## ---------------------------------------------------------------- Definitions
  14. ##
  15. #include <minoca/kernel/arm.inc>
  16. ##
  17. ## ----------------------------------------------------------------------- Code
  18. ##
  19. ASSEMBLY_FILE_HEADER
  20. ##
  21. ## .global allows this label to be visible to the linker.
  22. ##
  23. .global EfiArmInterruptTable
  24. ##
  25. ## This address must be aligned to a 32 byte address so that it can be set in
  26. ## the VBAR register.
  27. ##
  28. .balign 32
  29. EfiArmInterruptTable:
  30. ldr %pc, EfiArmResetVector
  31. ldr %pc, EfiArmUndefinedInstructionVector
  32. ldr %pc, EfiArmSoftwareInterruptVector
  33. ldr %pc, EfiArmPrefetchAbortVector
  34. ldr %pc, EfiArmDataAbortVector
  35. .word 0
  36. ldr %pc, EfiArmIrqInterruptVector
  37. ldr %pc, EfiArmFiqInterruptVector
  38. EfiArmUndefinedInstructionVector:
  39. .word 0
  40. EfiArmSoftwareInterruptVector:
  41. .word 0
  42. EfiArmPrefetchAbortVector:
  43. .word 0
  44. EfiArmDataAbortVector:
  45. .word 0
  46. EfiArmIrqInterruptVector:
  47. .word 0
  48. EfiArmFiqInterruptVector:
  49. .word 0
  50. EfiArmResetVector:
  51. .word 0