Blame view

kernel/linux-imx6_3.14.28/arch/parisc/kernel/pa7300lc.c 1.07 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
  /*
   *   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
  ", smp_processor_id());
  
  	show_regs(regs);
  
  	hpa = cpu_hpa();
  	printk(KERN_WARNING
  		"MIOC_CONTROL %08x
  " "MIOC_STATUS  %08x
  "
  		"MDERRADD     %08x
  " "DMAERR       %08x
  "
  		"DIOERR       %08x
  " "HIDMAMEM     %08x
  ",
  		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;
  }