1 /* 2 * linux/arch/parisc/kernel/pa7300lc.c 3 * - PA7300LC-specific functions 4 * 5 * Copyright (C) 2000 Philipp Rumpf */ 6 7 #include <linux/sched.h> 8 #include <linux/smp.h> 9 #include <linux/kernel.h> 10 #include <asm/io.h> 11 #include <asm/ptrace.h> 12 #include <asm/machdep.h> 13 14 /* CPU register indices */ 15 16 #define MIOC_STATUS 0xf040 17 #define MIOC_CONTROL 0xf080 18 #define MDERRADD 0xf0e0 19 #define DMAERR 0xf0e8 20 #define DIOERR 0xf0ec 21 #define HIDMAMEM 0xf0f4 22 23 /* this returns the HPA of the CPU it was called on */ cpu_hpa(void)24static u32 cpu_hpa(void) 25 { 26 return 0xfffb0000; 27 } 28 pa7300lc_lpmc(int code,struct pt_regs * regs)29static void pa7300lc_lpmc(int code, struct pt_regs *regs) 30 { 31 u32 hpa; 32 printk(KERN_WARNING "LPMC on CPU %d\n", smp_processor_id()); 33 34 show_regs(regs); 35 36 hpa = cpu_hpa(); 37 printk(KERN_WARNING 38 "MIOC_CONTROL %08x\n" "MIOC_STATUS %08x\n" 39 "MDERRADD %08x\n" "DMAERR %08x\n" 40 "DIOERR %08x\n" "HIDMAMEM %08x\n", 41 gsc_readl(hpa+MIOC_CONTROL), gsc_readl(hpa+MIOC_STATUS), 42 gsc_readl(hpa+MDERRADD), gsc_readl(hpa+DMAERR), 43 gsc_readl(hpa+DIOERR), gsc_readl(hpa+HIDMAMEM)); 44 } 45 pa7300lc_init(void)46void pa7300lc_init(void) 47 { 48 cpu_lpmc = pa7300lc_lpmc; 49 } 50