diff options
author | Olof Johansson <olof@lixom.net> | 2005-09-19 23:45:41 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-09-21 05:21:06 -0400 |
commit | c707ffcf3a44914f30e5f2fd53089ad5586c9e42 (patch) | |
tree | 5a5d95c903d0440adcdd638b74be78fe51b42612 /arch | |
parent | a21ead3239c6a7a1220b45df0a7b537882afff16 (diff) |
[PATCH] ppc64: Updated Olof iommu updates 1/3
Split out the implementation-specific parts of include/asm-ppc64/iommu.h
to separate include files (tce.h and dart.h respectively).
The generic iommu code really doesn't care about the underlying
implementation, and the TCE and DART stuff is completely different.
Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ppc64/kernel/iSeries_iommu.c | 1 | ||||
-rw-r--r-- | arch/ppc64/kernel/iSeries_vio.c | 1 | ||||
-rw-r--r-- | arch/ppc64/kernel/pSeries_iommu.c | 1 | ||||
-rw-r--r-- | arch/ppc64/kernel/pSeries_vio.c | 1 | ||||
-rw-r--r-- | arch/ppc64/kernel/u3_iommu.c | 29 |
5 files changed, 5 insertions, 28 deletions
diff --git a/arch/ppc64/kernel/iSeries_iommu.c b/arch/ppc64/kernel/iSeries_iommu.c index f8ff1bb054dc..287db32d9867 100644 --- a/arch/ppc64/kernel/iSeries_iommu.c +++ b/arch/ppc64/kernel/iSeries_iommu.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <linux/list.h> | 30 | #include <linux/list.h> |
31 | 31 | ||
32 | #include <asm/iommu.h> | 32 | #include <asm/iommu.h> |
33 | #include <asm/tce.h> | ||
33 | #include <asm/machdep.h> | 34 | #include <asm/machdep.h> |
34 | #include <asm/iSeries/HvCallXm.h> | 35 | #include <asm/iSeries/HvCallXm.h> |
35 | #include <asm/iSeries/iSeries_pci.h> | 36 | #include <asm/iSeries/iSeries_pci.h> |
diff --git a/arch/ppc64/kernel/iSeries_vio.c b/arch/ppc64/kernel/iSeries_vio.c index 6b754b0c8344..c0f7d2e9153f 100644 --- a/arch/ppc64/kernel/iSeries_vio.c +++ b/arch/ppc64/kernel/iSeries_vio.c | |||
@@ -14,6 +14,7 @@ | |||
14 | 14 | ||
15 | #include <asm/vio.h> | 15 | #include <asm/vio.h> |
16 | #include <asm/iommu.h> | 16 | #include <asm/iommu.h> |
17 | #include <asm/tce.h> | ||
17 | #include <asm/abs_addr.h> | 18 | #include <asm/abs_addr.h> |
18 | #include <asm/page.h> | 19 | #include <asm/page.h> |
19 | #include <asm/iSeries/vio.h> | 20 | #include <asm/iSeries/vio.h> |
diff --git a/arch/ppc64/kernel/pSeries_iommu.c b/arch/ppc64/kernel/pSeries_iommu.c index f0fd7fbd6531..7f7947c3e12f 100644 --- a/arch/ppc64/kernel/pSeries_iommu.c +++ b/arch/ppc64/kernel/pSeries_iommu.c | |||
@@ -46,6 +46,7 @@ | |||
46 | #include <asm/pSeries_reconfig.h> | 46 | #include <asm/pSeries_reconfig.h> |
47 | #include <asm/systemcfg.h> | 47 | #include <asm/systemcfg.h> |
48 | #include <asm/firmware.h> | 48 | #include <asm/firmware.h> |
49 | #include <asm/tce.h> | ||
49 | #include "pci.h" | 50 | #include "pci.h" |
50 | 51 | ||
51 | #define DBG(fmt...) | 52 | #define DBG(fmt...) |
diff --git a/arch/ppc64/kernel/pSeries_vio.c b/arch/ppc64/kernel/pSeries_vio.c index e0ae06f58f86..866379b80c09 100644 --- a/arch/ppc64/kernel/pSeries_vio.c +++ b/arch/ppc64/kernel/pSeries_vio.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <asm/prom.h> | 22 | #include <asm/prom.h> |
23 | #include <asm/vio.h> | 23 | #include <asm/vio.h> |
24 | #include <asm/hvcall.h> | 24 | #include <asm/hvcall.h> |
25 | #include <asm/tce.h> | ||
25 | 26 | ||
26 | extern struct subsystem devices_subsys; /* needed for vio_find_name() */ | 27 | extern struct subsystem devices_subsys; /* needed for vio_find_name() */ |
27 | 28 | ||
diff --git a/arch/ppc64/kernel/u3_iommu.c b/arch/ppc64/kernel/u3_iommu.c index 41ea09cb9ac7..115cbdf3b13b 100644 --- a/arch/ppc64/kernel/u3_iommu.c +++ b/arch/ppc64/kernel/u3_iommu.c | |||
@@ -44,39 +44,12 @@ | |||
44 | #include <asm/abs_addr.h> | 44 | #include <asm/abs_addr.h> |
45 | #include <asm/cacheflush.h> | 45 | #include <asm/cacheflush.h> |
46 | #include <asm/lmb.h> | 46 | #include <asm/lmb.h> |
47 | #include <asm/dart.h> | ||
47 | 48 | ||
48 | #include "pci.h" | 49 | #include "pci.h" |
49 | 50 | ||
50 | extern int iommu_force_on; | 51 | extern int iommu_force_on; |
51 | 52 | ||
52 | /* physical base of DART registers */ | ||
53 | #define DART_BASE 0xf8033000UL | ||
54 | |||
55 | /* Offset from base to control register */ | ||
56 | #define DARTCNTL 0 | ||
57 | /* Offset from base to exception register */ | ||
58 | #define DARTEXCP 0x10 | ||
59 | /* Offset from base to TLB tag registers */ | ||
60 | #define DARTTAG 0x1000 | ||
61 | |||
62 | |||
63 | /* Control Register fields */ | ||
64 | |||
65 | /* base address of table (pfn) */ | ||
66 | #define DARTCNTL_BASE_MASK 0xfffff | ||
67 | #define DARTCNTL_BASE_SHIFT 12 | ||
68 | |||
69 | #define DARTCNTL_FLUSHTLB 0x400 | ||
70 | #define DARTCNTL_ENABLE 0x200 | ||
71 | |||
72 | /* size of table in pages */ | ||
73 | #define DARTCNTL_SIZE_MASK 0x1ff | ||
74 | #define DARTCNTL_SIZE_SHIFT 0 | ||
75 | |||
76 | /* DART table fields */ | ||
77 | #define DARTMAP_VALID 0x80000000 | ||
78 | #define DARTMAP_RPNMASK 0x00ffffff | ||
79 | |||
80 | /* Physical base address and size of the DART table */ | 53 | /* Physical base address and size of the DART table */ |
81 | unsigned long dart_tablebase; /* exported to htab_initialize */ | 54 | unsigned long dart_tablebase; /* exported to htab_initialize */ |
82 | static unsigned long dart_tablesize; | 55 | static unsigned long dart_tablesize; |