Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
pa7300lc.c
Go to the documentation of this file.
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 */
24 static u32 cpu_hpa(void)
25 {
26  return 0xfffb0000;
27 }
28 
29 static 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();
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 
46 void pa7300lc_init(void)
47 {
48  cpu_lpmc = pa7300lc_lpmc;
49 }