Commit | Line | Data |
---|---|---|
1da177e4 LT |
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(); | |
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 | ||
46 | void pa7300lc_init(void) | |
47 | { | |
48 | cpu_lpmc = pa7300lc_lpmc; | |
49 | } |