xref: /openbmc/linux/arch/arm/include/asm/setup.h (revision bc000245)
1 /*
2  *  linux/include/asm/setup.h
3  *
4  *  Copyright (C) 1997-1999 Russell King
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  *  Structure passed to kernel to tell it about the
11  *  hardware it's running on.  See Documentation/arm/Setup
12  *  for more info.
13  */
14 #ifndef __ASMARM_SETUP_H
15 #define __ASMARM_SETUP_H
16 
17 #include <uapi/asm/setup.h>
18 
19 
20 #define __tag __used __attribute__((__section__(".taglist.init")))
21 #define __tagtable(tag, fn) \
22 static const struct tagtable __tagtable_##fn __tag = { tag, fn }
23 
24 /*
25  * Memory map description
26  */
27 #define NR_BANKS	CONFIG_ARM_NR_BANKS
28 
29 struct membank {
30 	phys_addr_t start;
31 	phys_addr_t size;
32 	unsigned int highmem;
33 };
34 
35 struct meminfo {
36 	int nr_banks;
37 	struct membank bank[NR_BANKS];
38 };
39 
40 extern struct meminfo meminfo;
41 
42 #define for_each_bank(iter,mi)				\
43 	for (iter = 0; iter < (mi)->nr_banks; iter++)
44 
45 #define bank_pfn_start(bank)	__phys_to_pfn((bank)->start)
46 #define bank_pfn_end(bank)	__phys_to_pfn((bank)->start + (bank)->size)
47 #define bank_pfn_size(bank)	((bank)->size >> PAGE_SHIFT)
48 #define bank_phys_start(bank)	(bank)->start
49 #define bank_phys_end(bank)	((bank)->start + (bank)->size)
50 #define bank_phys_size(bank)	(bank)->size
51 
52 extern int arm_add_memory(u64 start, u64 size);
53 extern void early_print(const char *str, ...);
54 extern void dump_machine_table(void);
55 
56 #endif
57