47 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * linux/arch/unicore32/include/asm/memblock.h
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Code specific to PKUnity SoC and UniCore ISA
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Copyright (C) 2001-2010 GUAN Xue-tao
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * This program is free software; you can redistribute it and/or modify
							 | 
						||
| 
								 | 
							
								 * it under the terms of the GNU General Public License version 2 as
							 | 
						||
| 
								 | 
							
								 * published by the Free Software Foundation.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef __UNICORE_MEMBLOCK_H__
							 | 
						||
| 
								 | 
							
								#define __UNICORE_MEMBLOCK_H__
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Memory map description
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								# define NR_BANKS 8
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								struct membank {
							 | 
						||
| 
								 | 
							
									unsigned long start;
							 | 
						||
| 
								 | 
							
									unsigned long size;
							 | 
						||
| 
								 | 
							
									unsigned int highmem;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								struct meminfo {
							 | 
						||
| 
								 | 
							
									int nr_banks;
							 | 
						||
| 
								 | 
							
									struct membank bank[NR_BANKS];
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								extern struct meminfo meminfo;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define for_each_bank(iter, mi)				\
							 | 
						||
| 
								 | 
							
									for (iter = 0; iter < (mi)->nr_banks; iter++)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define bank_pfn_start(bank)	__phys_to_pfn((bank)->start)
							 | 
						||
| 
								 | 
							
								#define bank_pfn_end(bank)	__phys_to_pfn((bank)->start + (bank)->size)
							 | 
						||
| 
								 | 
							
								#define bank_pfn_size(bank)	((bank)->size >> PAGE_SHIFT)
							 | 
						||
| 
								 | 
							
								#define bank_phys_start(bank)	((bank)->start)
							 | 
						||
| 
								 | 
							
								#define bank_phys_end(bank)	((bank)->start + (bank)->size)
							 | 
						||
| 
								 | 
							
								#define bank_phys_size(bank)	((bank)->size)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								extern void uc32_memblock_init(struct meminfo *);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 |