| /* | |
| * 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 |