1
2
3
4
5
6
7#include <common.h>
8#include <linux/compiler.h>
9#include <efi_loader.h>
10
11DECLARE_GLOBAL_DATA_PTR;
12
13int interrupt_init(void)
14{
15 return 0;
16}
17
18void enable_interrupts(void)
19{
20 return;
21}
22
23int disable_interrupts(void)
24{
25 return 0;
26}
27
28void show_regs(struct pt_regs *regs)
29{
30 int i;
31
32 if (gd->flags & GD_FLG_RELOC)
33 printf("elr: %016lx lr : %016lx (reloc)\n",
34 regs->elr - gd->reloc_off,
35 regs->regs[30] - gd->reloc_off);
36 printf("elr: %016lx lr : %016lx\n", regs->elr, regs->regs[30]);
37
38 for (i = 0; i < 29; i += 2)
39 printf("x%-2d: %016lx x%-2d: %016lx\n",
40 i, regs->regs[i], i+1, regs->regs[i+1]);
41 printf("\n");
42}
43
44
45
46
47void do_bad_sync(struct pt_regs *pt_regs, unsigned int esr)
48{
49 efi_restore_gd();
50 printf("Bad mode in \"Synchronous Abort\" handler, esr 0x%08x\n", esr);
51 show_regs(pt_regs);
52 panic("Resetting CPU ...\n");
53}
54
55
56
57
58void do_bad_irq(struct pt_regs *pt_regs, unsigned int esr)
59{
60 efi_restore_gd();
61 printf("Bad mode in \"Irq\" handler, esr 0x%08x\n", esr);
62 show_regs(pt_regs);
63 panic("Resetting CPU ...\n");
64}
65
66
67
68
69void do_bad_fiq(struct pt_regs *pt_regs, unsigned int esr)
70{
71 efi_restore_gd();
72 printf("Bad mode in \"Fiq\" handler, esr 0x%08x\n", esr);
73 show_regs(pt_regs);
74 panic("Resetting CPU ...\n");
75}
76
77
78
79
80void do_bad_error(struct pt_regs *pt_regs, unsigned int esr)
81{
82 efi_restore_gd();
83 printf("Bad mode in \"Error\" handler, esr 0x%08x\n", esr);
84 show_regs(pt_regs);
85 panic("Resetting CPU ...\n");
86}
87
88
89
90
91void do_sync(struct pt_regs *pt_regs, unsigned int esr)
92{
93 efi_restore_gd();
94 printf("\"Synchronous Abort\" handler, esr 0x%08x\n", esr);
95 show_regs(pt_regs);
96 panic("Resetting CPU ...\n");
97}
98
99
100
101
102void do_irq(struct pt_regs *pt_regs, unsigned int esr)
103{
104 efi_restore_gd();
105 printf("\"Irq\" handler, esr 0x%08x\n", esr);
106 show_regs(pt_regs);
107 panic("Resetting CPU ...\n");
108}
109
110
111
112
113void do_fiq(struct pt_regs *pt_regs, unsigned int esr)
114{
115 efi_restore_gd();
116 printf("\"Fiq\" handler, esr 0x%08x\n", esr);
117 show_regs(pt_regs);
118 panic("Resetting CPU ...\n");
119}
120
121
122
123
124
125
126
127void __weak do_error(struct pt_regs *pt_regs, unsigned int esr)
128{
129 efi_restore_gd();
130 printf("\"Error\" handler, esr 0x%08x\n", esr);
131 show_regs(pt_regs);
132 panic("Resetting CPU ...\n");
133}
134