mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	 4ee7084eb1
			
		
	
	
		4ee7084eb1
		
	
	
	
	
		
			
			This rearranges a bit of code, and adds support for 36-bit physical addressing for configs that use a hashed page table. The 36b physical support is not enabled by default on any config - it must be explicitly enabled via the config system. This patch *only* expands the page table code to accomodate large physical addresses on 32-bit systems and enables the PHYS_64BIT config option for 86xx. It does *not* allow you to boot a board with more than about 3.5GB of RAM - for that, SWIOTLB support is also required (and coming soon). Signed-off-by: Becky Bruce <becky.bruce@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
		
			
				
	
	
		
			44 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _ASM_POWERPC_PAGE_32_H
 | |
| #define _ASM_POWERPC_PAGE_32_H
 | |
| 
 | |
| #if defined(CONFIG_PHYSICAL_ALIGN) && (CONFIG_PHYSICAL_START != 0)
 | |
| #if (CONFIG_PHYSICAL_START % CONFIG_PHYSICAL_ALIGN) != 0
 | |
| #error "CONFIG_PHYSICAL_START must be a multiple of CONFIG_PHYSICAL_ALIGN"
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #define VM_DATA_DEFAULT_FLAGS	VM_DATA_DEFAULT_FLAGS32
 | |
| 
 | |
| #ifdef CONFIG_NOT_COHERENT_CACHE
 | |
| #define ARCH_KMALLOC_MINALIGN	L1_CACHE_BYTES
 | |
| #endif
 | |
| 
 | |
| #ifdef CONFIG_PTE_64BIT
 | |
| #define PTE_FLAGS_OFFSET	4	/* offset of PTE flags, in bytes */
 | |
| #else
 | |
| #define PTE_FLAGS_OFFSET	0
 | |
| #endif
 | |
| 
 | |
| #ifndef __ASSEMBLY__
 | |
| /*
 | |
|  * The basic type of a PTE - 64 bits for those CPUs with > 32 bit
 | |
|  * physical addressing.
 | |
|  */
 | |
| #ifdef CONFIG_PTE_64BIT
 | |
| typedef unsigned long long pte_basic_t;
 | |
| #define PTE_SHIFT	(PAGE_SHIFT - 3)	/* 512 ptes per page */
 | |
| #else
 | |
| typedef unsigned long pte_basic_t;
 | |
| #define PTE_SHIFT	(PAGE_SHIFT - 2)	/* 1024 ptes per page */
 | |
| #endif
 | |
| 
 | |
| struct page;
 | |
| extern void clear_pages(void *page, int order);
 | |
| static inline void clear_page(void *page) { clear_pages(page, 0); }
 | |
| extern void copy_page(void *to, void *from);
 | |
| 
 | |
| #include <asm-generic/page.h>
 | |
| 
 | |
| #endif /* __ASSEMBLY__ */
 | |
| 
 | |
| #endif /* _ASM_POWERPC_PAGE_32_H */
 |