OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [arch/] [sh64/] [lib/] [panic.c] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/* Panic handler. MUST BE PIC. BE CAREFUL WHAT YOU DO,
2
 * AS THERE ARE NO STATICS AVAILABLE, AND NOWHERE TO GO
3
 * MMU IS OFF!!!!!!!!
4
 */
5
 
6
#include <linux/kernel.h>
7
#include <asm/io.h>
8
#include <asm/registers.h>
9
 
10
/* THIS IS A PHYSICAL ADDRESS */
11
#define HDSP2534_ADDR (0x04002100)
12
 
13
void
14
panic_handler(unsigned long panicPC, unsigned long panicSSR,
15
              unsigned long panicEXPEVT)
16
{
17
        int i;
18
        unsigned nibble;
19
 
20
#ifdef CONFIG_SH_CAYMAN
21
 
22
        while (1) {
23
 
24
                /* This piece of code displays the PC on the LED display */
25
                for (i = 0; i < 8; i++) {
26
                        nibble = ((panicPC >> (i * 4)) & 0xf);
27
 
28
                        ctrl_outb(nibble + ((nibble > 9) ? 55 : 48),
29
                                  HDSP2534_ADDR + 0xe0 + ((7 - i) << 2));
30
                }
31
 
32
                for (i = 0; i < 2500000; i++) {
33
                }               /* poor man's delay */
34
 
35
                for (i = 0; i < 8; i++) {
36
                        nibble = ((panicSSR >> (i * 4)) & 0xf);
37
 
38
                        ctrl_outb(nibble + ((nibble > 9) ? 55 : 48),
39
                                  HDSP2534_ADDR + 0xe0 + ((7 - i) << 2));
40
                }
41
 
42
                for (i = 0; i < 2500000; i++) {
43
                }               /* poor man's delay */
44
 
45
                for (i = 0; i < 8; i++) {
46
                        nibble = ((panicEXPEVT >> (i * 4)) & 0xf);
47
 
48
                        ctrl_outb(nibble + ((nibble > 9) ? 55 : 48),
49
                                  HDSP2534_ADDR + 0xe0 + ((7 - i) << 2));
50
                }
51
 
52
                for (i = 0; i < 2500000; i++) {
53
                }               /* poor man's delay */
54
        }
55
#endif
56
 
57
        /* Never return from the panic handler */
58
        for (;;) ;
59
 
60
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.