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