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 22void 23marvel_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 53void 54marvel_register_error_handlers(void) 55{ 56 ev7_register_error_handlers(); 57} 58

