diff options
author | Paul Mackerras <paulus@samba.org> | 2006-10-04 01:02:27 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-10-04 01:02:27 -0400 |
commit | c730f5b621afa33e9f4939da9078669162ebff4e (patch) | |
tree | ac78a2cea0fbf365ef659c26ab192e263debb544 /arch/powerpc/mm | |
parent | 0a730ae59960165ae50de3284fb50316d1755d98 (diff) | |
parent | 80a544cebca5f28397020332e21e04d639a18943 (diff) |
Merge branch 'master' of git://oak/home/sfr/kernels/iseries/work
Diffstat (limited to 'arch/powerpc/mm')
-rw-r--r-- | arch/powerpc/mm/pgtable_64.c | 29 | ||||
-rw-r--r-- | arch/powerpc/mm/slb_low.S | 3 |
2 files changed, 10 insertions, 22 deletions
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c index b1da03165496..ac64f4aaa509 100644 --- a/arch/powerpc/mm/pgtable_64.c +++ b/arch/powerpc/mm/pgtable_64.c | |||
@@ -63,32 +63,13 @@ | |||
63 | #include <asm/iommu.h> | 63 | #include <asm/iommu.h> |
64 | #include <asm/abs_addr.h> | 64 | #include <asm/abs_addr.h> |
65 | #include <asm/vdso.h> | 65 | #include <asm/vdso.h> |
66 | #include <asm/firmware.h> | ||
66 | 67 | ||
67 | #include "mmu_decl.h" | 68 | #include "mmu_decl.h" |
68 | 69 | ||
69 | unsigned long ioremap_bot = IMALLOC_BASE; | 70 | unsigned long ioremap_bot = IMALLOC_BASE; |
70 | static unsigned long phbs_io_bot = PHBS_IO_BASE; | 71 | static unsigned long phbs_io_bot = PHBS_IO_BASE; |
71 | 72 | ||
72 | #ifdef CONFIG_PPC_ISERIES | ||
73 | |||
74 | void __iomem *ioremap(unsigned long addr, unsigned long size) | ||
75 | { | ||
76 | return (void __iomem *)addr; | ||
77 | } | ||
78 | |||
79 | extern void __iomem *__ioremap(unsigned long addr, unsigned long size, | ||
80 | unsigned long flags) | ||
81 | { | ||
82 | return (void __iomem *)addr; | ||
83 | } | ||
84 | |||
85 | void iounmap(volatile void __iomem *addr) | ||
86 | { | ||
87 | return; | ||
88 | } | ||
89 | |||
90 | #else | ||
91 | |||
92 | /* | 73 | /* |
93 | * map_io_page currently only called by __ioremap | 74 | * map_io_page currently only called by __ioremap |
94 | * map_io_page adds an entry to the ioremap page table | 75 | * map_io_page adds an entry to the ioremap page table |
@@ -161,6 +142,9 @@ void __iomem * __ioremap(unsigned long addr, unsigned long size, | |||
161 | unsigned long pa, ea; | 142 | unsigned long pa, ea; |
162 | void __iomem *ret; | 143 | void __iomem *ret; |
163 | 144 | ||
145 | if (firmware_has_feature(FW_FEATURE_ISERIES)) | ||
146 | return (void __iomem *)addr; | ||
147 | |||
164 | /* | 148 | /* |
165 | * Choose an address to map it to. | 149 | * Choose an address to map it to. |
166 | * Once the imalloc system is running, we use it. | 150 | * Once the imalloc system is running, we use it. |
@@ -255,6 +239,9 @@ void iounmap(volatile void __iomem *token) | |||
255 | { | 239 | { |
256 | void *addr; | 240 | void *addr; |
257 | 241 | ||
242 | if (firmware_has_feature(FW_FEATURE_ISERIES)) | ||
243 | return; | ||
244 | |||
258 | if (!mem_init_done) | 245 | if (!mem_init_done) |
259 | return; | 246 | return; |
260 | 247 | ||
@@ -315,8 +302,6 @@ int iounmap_explicit(volatile void __iomem *start, unsigned long size) | |||
315 | return 0; | 302 | return 0; |
316 | } | 303 | } |
317 | 304 | ||
318 | #endif | ||
319 | |||
320 | EXPORT_SYMBOL(ioremap); | 305 | EXPORT_SYMBOL(ioremap); |
321 | EXPORT_SYMBOL(__ioremap); | 306 | EXPORT_SYMBOL(__ioremap); |
322 | EXPORT_SYMBOL(iounmap); | 307 | EXPORT_SYMBOL(iounmap); |
diff --git a/arch/powerpc/mm/slb_low.S b/arch/powerpc/mm/slb_low.S index dbc1abbde038..b10e4707d7c1 100644 --- a/arch/powerpc/mm/slb_low.S +++ b/arch/powerpc/mm/slb_low.S | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <asm/page.h> | 21 | #include <asm/page.h> |
22 | #include <asm/mmu.h> | 22 | #include <asm/mmu.h> |
23 | #include <asm/pgtable.h> | 23 | #include <asm/pgtable.h> |
24 | #include <asm/firmware.h> | ||
24 | 25 | ||
25 | /* void slb_allocate_realmode(unsigned long ea); | 26 | /* void slb_allocate_realmode(unsigned long ea); |
26 | * | 27 | * |
@@ -183,6 +184,7 @@ slb_finish_load: | |||
183 | * dont have any LRU information to help us choose a slot. | 184 | * dont have any LRU information to help us choose a slot. |
184 | */ | 185 | */ |
185 | #ifdef CONFIG_PPC_ISERIES | 186 | #ifdef CONFIG_PPC_ISERIES |
187 | BEGIN_FW_FTR_SECTION | ||
186 | /* | 188 | /* |
187 | * On iSeries, the "bolted" stack segment can be cast out on | 189 | * On iSeries, the "bolted" stack segment can be cast out on |
188 | * shared processor switch so we need to check for a miss on | 190 | * shared processor switch so we need to check for a miss on |
@@ -194,6 +196,7 @@ slb_finish_load: | |||
194 | li r10,SLB_NUM_BOLTED-1 /* Stack goes in last bolted slot */ | 196 | li r10,SLB_NUM_BOLTED-1 /* Stack goes in last bolted slot */ |
195 | cmpld r9,r3 | 197 | cmpld r9,r3 |
196 | beq 3f | 198 | beq 3f |
199 | END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES) | ||
197 | #endif /* CONFIG_PPC_ISERIES */ | 200 | #endif /* CONFIG_PPC_ISERIES */ |
198 | 201 | ||
199 | ld r10,PACASTABRR(r13) | 202 | ld r10,PACASTABRR(r13) |