123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // SPDX-License-Identifier: GPL-2.0
- /*
- * linux/arch/parisc/kernel/pa7300lc.c
- * - PA7300LC-specific functions
- *
- * Copyright (C) 2000 Philipp Rumpf */
- #include <linux/sched.h>
- #include <linux/sched/debug.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;
- }
|