|  | /* | 
|  | *  linux/include/asm/setup.h | 
|  | * | 
|  | *  Copyright (C) 1997-1999 Russell King | 
|  | * | 
|  | * 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. | 
|  | * | 
|  | *  Structure passed to kernel to tell it about the | 
|  | *  hardware it's running on.  See Documentation/arm/Setup | 
|  | *  for more info. | 
|  | */ | 
|  | #ifndef __ASMARM_SETUP_H | 
|  | #define __ASMARM_SETUP_H | 
|  |  | 
|  | #include <uapi/asm/setup.h> | 
|  |  | 
|  |  | 
|  | #define __tag __used __attribute__((__section__(".taglist.init"))) | 
|  | #define __tagtable(tag, fn) \ | 
|  | static const struct tagtable __tagtable_##fn __tag = { tag, fn } | 
|  |  | 
|  | /* | 
|  | * Memory map description | 
|  | */ | 
|  | #define NR_BANKS	CONFIG_ARM_NR_BANKS | 
|  |  | 
|  | struct membank { | 
|  | phys_addr_t start; | 
|  | phys_addr_t 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 int arm_add_memory(phys_addr_t start, phys_addr_t size); | 
|  | extern void early_print(const char *str, ...); | 
|  | extern void dump_machine_table(void); | 
|  |  | 
|  | #endif |