diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-05-08 04:41:59 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-05-08 04:41:59 -0400 |
commit | 7d170b1bc540a1d83098a9f27cf4939e026fda81 (patch) | |
tree | 482234e9271e09bcd630d3d0b8450ab914da2c88 /arch/sh/lib64 | |
parent | ef9f89996e450e9686816b6fc1e34d7b9a65766c (diff) |
sh: Move out cayman-specific panic handler code to its own file.
This moves out the cayman-specific panic handler code to a better
location, and leaves the generic implementation a simple stub that is
still used under emulation.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/lib64')
-rw-r--r-- | arch/sh/lib64/panic.c | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/arch/sh/lib64/panic.c b/arch/sh/lib64/panic.c index da32ba7b5fcc..38c954e04f6a 100644 --- a/arch/sh/lib64/panic.c +++ b/arch/sh/lib64/panic.c | |||
@@ -6,53 +6,10 @@ | |||
6 | * for more details. | 6 | * for more details. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/kernel.h> | ||
10 | #include <asm/io.h> | ||
11 | #include <cpu/registers.h> | ||
12 | |||
13 | /* THIS IS A PHYSICAL ADDRESS */ | ||
14 | #define HDSP2534_ADDR (0x04002100) | ||
15 | |||
16 | #ifdef CONFIG_SH_CAYMAN | ||
17 | |||
18 | static void poor_mans_delay(void) | ||
19 | { | ||
20 | int i; | ||
21 | for (i = 0; i < 2500000; i++) { | ||
22 | } /* poor man's delay */ | ||
23 | } | ||
24 | |||
25 | static void show_value(unsigned long x) | ||
26 | { | ||
27 | int i; | ||
28 | unsigned nibble; | ||
29 | for (i = 0; i < 8; i++) { | ||
30 | nibble = ((x >> (i * 4)) & 0xf); | ||
31 | |||
32 | ctrl_outb(nibble + ((nibble > 9) ? 55 : 48), | ||
33 | HDSP2534_ADDR + 0xe0 + ((7 - i) << 2)); | ||
34 | } | ||
35 | } | ||
36 | |||
37 | #endif | ||
38 | |||
39 | void | 9 | void |
40 | panic_handler(unsigned long panicPC, unsigned long panicSSR, | 10 | panic_handler(unsigned long panicPC, unsigned long panicSSR, |
41 | unsigned long panicEXPEVT) | 11 | unsigned long panicEXPEVT) |
42 | { | 12 | { |
43 | #ifdef CONFIG_SH_CAYMAN | ||
44 | while (1) { | ||
45 | /* This piece of code displays the PC on the LED display */ | ||
46 | show_value(panicPC); | ||
47 | poor_mans_delay(); | ||
48 | show_value(panicSSR); | ||
49 | poor_mans_delay(); | ||
50 | show_value(panicEXPEVT); | ||
51 | poor_mans_delay(); | ||
52 | } | ||
53 | #endif | ||
54 | |||
55 | /* Never return from the panic handler */ | 13 | /* Never return from the panic handler */ |
56 | for (;;) ; | 14 | for (;;) ; |
57 | |||
58 | } | 15 | } |