diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-12 00:55:47 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-12 00:55:47 -0400 |
commit | e86908614f2c7fec401827e5cefd7a6ea9407f85 (patch) | |
tree | fcb5d9e52422b37bdaf0e647126ebdfc1680f162 /include/asm-ppc/page.h | |
parent | 547307420931344a868275bd7ea7a30f117a15a9 (diff) | |
parent | 9b4b8feb962f4b3e74768b7205f1f8f6cce87238 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (408 commits)
[POWERPC] Add memchr() to the bootwrapper
[POWERPC] Implement logging of unhandled signals
[POWERPC] Add legacy serial support for OPB with flattened device tree
[POWERPC] Use 1TB segments
[POWERPC] XilinxFB: Allow fixed framebuffer base address
[POWERPC] XilinxFB: Add support for custom screen resolution
[POWERPC] XilinxFB: Use pdata to pass around framebuffer parameters
[POWERPC] PCI: Add 64-bit physical address support to setup_indirect_pci
[POWERPC] 4xx: Kilauea defconfig file
[POWERPC] 4xx: Kilauea DTS
[POWERPC] 4xx: Add AMCC Kilauea eval board support to platforms/40x
[POWERPC] 4xx: Add AMCC 405EX support to cputable.c
[POWERPC] Adjust TASK_SIZE on ppc32 systems to 3GB that are capable
[POWERPC] Use PAGE_OFFSET to tell if an address is user/kernel in SW TLB handlers
[POWERPC] 85xx: Enable FP emulation in MPC8560 ADS defconfig
[POWERPC] 85xx: Killed <asm/mpc85xx.h>
[POWERPC] 85xx: Add cpm nodes for 8541/8555 CDS
[POWERPC] 85xx: Convert mpc8560ads to the new CPM binding.
[POWERPC] mpc8272ads: Remove muram from the CPM reg property.
[POWERPC] Make clockevents work on PPC601 processors
...
Fixed up conflict in Documentation/powerpc/booting-without-of.txt manually.
Diffstat (limited to 'include/asm-ppc/page.h')
-rw-r--r-- | include/asm-ppc/page.h | 44 |
1 files changed, 2 insertions, 42 deletions
diff --git a/include/asm-ppc/page.h b/include/asm-ppc/page.h index fe95c8258cf9..ad4c5a1bc9d6 100644 --- a/include/asm-ppc/page.h +++ b/include/asm-ppc/page.h | |||
@@ -97,62 +97,22 @@ extern void clear_user_page(void *page, unsigned long vaddr, struct page *pg); | |||
97 | extern void copy_user_page(void *to, void *from, unsigned long vaddr, | 97 | extern void copy_user_page(void *to, void *from, unsigned long vaddr, |
98 | struct page *pg); | 98 | struct page *pg); |
99 | 99 | ||
100 | #ifndef CONFIG_APUS | ||
101 | #define PPC_MEMSTART 0 | 100 | #define PPC_MEMSTART 0 |
102 | #define PPC_PGSTART 0 | ||
103 | #define PPC_MEMOFFSET PAGE_OFFSET | 101 | #define PPC_MEMOFFSET PAGE_OFFSET |
104 | #else | ||
105 | extern unsigned long ppc_memstart; | ||
106 | extern unsigned long ppc_pgstart; | ||
107 | extern unsigned long ppc_memoffset; | ||
108 | #define PPC_MEMSTART ppc_memstart | ||
109 | #define PPC_PGSTART ppc_pgstart | ||
110 | #define PPC_MEMOFFSET ppc_memoffset | ||
111 | #endif | ||
112 | 102 | ||
113 | #if defined(CONFIG_APUS) && !defined(MODULE) | ||
114 | /* map phys->virtual and virtual->phys for RAM pages */ | ||
115 | static inline unsigned long ___pa(unsigned long v) | ||
116 | { | ||
117 | unsigned long p; | ||
118 | asm volatile ("1: addis %0, %1, %2;" | ||
119 | ".section \".vtop_fixup\",\"aw\";" | ||
120 | ".align 1;" | ||
121 | ".long 1b;" | ||
122 | ".previous;" | ||
123 | : "=r" (p) | ||
124 | : "b" (v), "K" (((-PAGE_OFFSET) >> 16) & 0xffff)); | ||
125 | |||
126 | return p; | ||
127 | } | ||
128 | static inline void* ___va(unsigned long p) | ||
129 | { | ||
130 | unsigned long v; | ||
131 | asm volatile ("1: addis %0, %1, %2;" | ||
132 | ".section \".ptov_fixup\",\"aw\";" | ||
133 | ".align 1;" | ||
134 | ".long 1b;" | ||
135 | ".previous;" | ||
136 | : "=r" (v) | ||
137 | : "b" (p), "K" (((PAGE_OFFSET) >> 16) & 0xffff)); | ||
138 | |||
139 | return (void*) v; | ||
140 | } | ||
141 | #else | ||
142 | #define ___pa(vaddr) ((vaddr)-PPC_MEMOFFSET) | 103 | #define ___pa(vaddr) ((vaddr)-PPC_MEMOFFSET) |
143 | #define ___va(paddr) ((paddr)+PPC_MEMOFFSET) | 104 | #define ___va(paddr) ((paddr)+PPC_MEMOFFSET) |
144 | #endif | ||
145 | 105 | ||
146 | extern int page_is_ram(unsigned long pfn); | 106 | extern int page_is_ram(unsigned long pfn); |
147 | 107 | ||
148 | #define __pa(x) ___pa((unsigned long)(x)) | 108 | #define __pa(x) ___pa((unsigned long)(x)) |
149 | #define __va(x) ((void *)(___va((unsigned long)(x)))) | 109 | #define __va(x) ((void *)(___va((unsigned long)(x)))) |
150 | 110 | ||
151 | #define ARCH_PFN_OFFSET (PPC_PGSTART) | 111 | #define ARCH_PFN_OFFSET 0 |
152 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) | 112 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) |
153 | #define page_to_virt(page) __va(page_to_pfn(page) << PAGE_SHIFT) | 113 | #define page_to_virt(page) __va(page_to_pfn(page) << PAGE_SHIFT) |
154 | 114 | ||
155 | #define pfn_valid(pfn) (((pfn) - PPC_PGSTART) < max_mapnr) | 115 | #define pfn_valid(pfn) ((pfn) < max_mapnr) |
156 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) | 116 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) |
157 | 117 | ||
158 | /* Pure 2^n version of get_order */ | 118 | /* Pure 2^n version of get_order */ |