linux/arch/parisc/kernel/pa7300lc.c
<<
>>
Prefs
   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 */
  24static u32 cpu_hpa(void)
  25{
  26        return 0xfffb0000;
  27}
  28
  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
  46void pa7300lc_init(void)
  47{
  48        cpu_lpmc = pa7300lc_lpmc;
  49}
  50