Rev 212 | Rev 239 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 212 | Rev 238 | ||
---|---|---|---|
1 | #include <cpu.h> |
1 | #include <cpu.h> |
2 | #include <print.h> |
2 | #include <print.h> |
3 | #include <panic.h> |
3 | #include <panic.h> |
- | 4 | #include <arch/types.h> |
|
4 | 5 | ||
5 | extern int IVT; |
6 | extern int IVT; |
6 | 7 | ||
7 | 8 | ||
8 | 9 | ||
9 | 10 | ||
10 | void cpu_arch_init(void) |
11 | void cpu_arch_init(void) |
11 | { |
12 | { |
12 | 13 | ||
13 | 14 | ||
14 | 15 | ||
15 | int *p=&IVT; |
16 | int *p=&IVT; |
- | 17 | ||
- | 18 | volatile __u64 hlp,hlp2; |
|
16 | 19 | ||
17 | 20 | ||
- | 21 | int psr = 0x2000; |
|
- | 22 | ||
18 | __asm__ ( |
23 | __asm__ volatile ( |
19 | "mov r15 = %0;;" |
24 | "mov r15 = %0;;" |
20 | "mov cr2 = r15;;" |
25 | "mov cr2 = r15;;" |
- | 26 | "mov psr.l = %1;;" |
|
21 | : |
27 | : |
22 | : "r" (p) |
28 | : "r" (p), "r" (psr) |
23 | : "r15" |
29 | : "r15" |
24 | ); |
30 | ); |
25 | 31 | ||
- | 32 | ||
- | 33 | ||
- | 34 | /*Switch register bank of regs r16 .. r31 to 1 It is automaticly cleared on exception*/ |
|
- | 35 | __asm__ volatile ("bsw.1;;"); |
|
- | 36 | ||
- | 37 | ||
26 | } |
38 | } |
27 | 39 | ||
28 | 40 | ||
29 | void gugux_pokus(void); |
41 | void gugux_pokus(void); |
30 | void gugux_pokus(void) |
42 | void gugux_pokus(void) |
31 | { |
43 | { |
32 | panic("\n\nGUGUX Exception\n\n"); |
44 | panic("\n\nGUGUX Exception\n\n"); |
33 | } |
45 | } |
34 | 46 | ||
35 | 47 | ||
36 | 48 | ||
37 | 49 |