import of upstream 2.4.34.4 from kernel.org
[linux-2.4.git] / arch / alpha / kernel / err_marvel.c
1 /*
2  *      linux/arch/alpha/kernel/err_marvel.c
3  *
4  *      Copyright (C) 2001 Jeff Wiedemeier (Compaq Computer Corporation)
5  *
6  */
7
8 #include <linux/init.h>
9 #include <linux/pci.h>
10 #include <linux/sched.h>
11
12 #include <asm/io.h>
13 #include <asm/console.h>
14 #include <asm/core_marvel.h>
15 #include <asm/hwrpb.h>
16 #include <asm/smp.h>
17
18 #include "err_impl.h"
19 #include "proto.h"
20
21
22 void
23 marvel_machine_check(u64 vector, u64 la_ptr, struct pt_regs *regs)
24 {
25         struct el_subpacket *el_ptr = (struct el_subpacket *)la_ptr;
26
27         /*
28          * Sync the processor
29          */
30         mb();
31         draina();
32
33         el_process_subpacket(el_ptr);
34
35         switch(vector) {
36         case SCB_Q_SYSEVENT:
37                 printk(KERN_CRIT "MARVEL SYSEVENT %ld\n", vector);
38                 break;
39         case SCB_Q_SYSMCHK:
40         case SCB_Q_SYSERR:
41                 printk(KERN_CRIT "MARVEL SYSMCHK/ERR %ld\n", vector);
42                 break;
43         default:
44                 /* Don't know it - pass it up.  */
45                 return ev7_machine_check(vector, la_ptr, regs);
46         }       
47
48         /* Release the logout frame.  */
49         wrmces(0x7);
50         mb();
51 }
52
53 void
54 marvel_register_error_handlers(void)
55 {
56         ev7_register_error_handlers();
57 }