1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /*
- * linux/arch/parisc/kernel/pa7300lc.c
- * - PA7300LC-specific functions
- *
- * Copyright (C) 2000 Philipp Rumpf */
- #include <linux/sched.h>
- #include <linux/smp.h>
- #include <linux/kernel.h>
- #include <asm/io.h>
- #include <asm/ptrace.h>
- #include <asm/machdep.h>
- /* CPU register indices */
- #define MIOC_STATUS 0xf040
- #define MIOC_CONTROL 0xf080
- #define MDERRADD 0xf0e0
- #define DMAERR 0xf0e8
- #define DIOERR 0xf0ec
- #define HIDMAMEM 0xf0f4
- /* this returns the HPA of the CPU it was called on */
- static u32 cpu_hpa(void)
- {
- return 0xfffb0000;
- }
- static void pa7300lc_lpmc(int code, struct pt_regs *regs)
- {
- u32 hpa;
- printk(KERN_WARNING "LPMC on CPU %d\n", smp_processor_id());
- show_regs(regs);
- hpa = cpu_hpa();
- printk(KERN_WARNING
- "MIOC_CONTROL %08x\n" "MIOC_STATUS %08x\n"
- "MDERRADD %08x\n" "DMAERR %08x\n"
- "DIOERR %08x\n" "HIDMAMEM %08x\n",
- gsc_readl(hpa+MIOC_CONTROL), gsc_readl(hpa+MIOC_STATUS),
- gsc_readl(hpa+MDERRADD), gsc_readl(hpa+DMAERR),
- gsc_readl(hpa+DIOERR), gsc_readl(hpa+HIDMAMEM));
- }
- void pa7300lc_init(void)
- {
- cpu_lpmc = pa7300lc_lpmc;
- }
|