| /* | |
| * 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(u64 start, u64 size); | |
| extern void early_print(const char *str, ...); | |
| extern void dump_machine_table(void); | |
| #endif |