diff options
Diffstat (limited to 'arch/s390/include/asm/setup.h')
-rw-r--r-- | arch/s390/include/asm/setup.h | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/arch/s390/include/asm/setup.h b/arch/s390/include/asm/setup.h new file mode 100644 index 000000000000..2bd9faeb3919 --- /dev/null +++ b/arch/s390/include/asm/setup.h | |||
@@ -0,0 +1,140 @@ | |||
1 | /* | ||
2 | * include/asm-s390/setup.h | ||
3 | * | ||
4 | * S390 version | ||
5 | * Copyright IBM Corp. 1999,2006 | ||
6 | */ | ||
7 | |||
8 | #ifndef _ASM_S390_SETUP_H | ||
9 | #define _ASM_S390_SETUP_H | ||
10 | |||
11 | #define COMMAND_LINE_SIZE 1024 | ||
12 | |||
13 | #define ARCH_COMMAND_LINE_SIZE 896 | ||
14 | |||
15 | #ifdef __KERNEL__ | ||
16 | |||
17 | #include <asm/types.h> | ||
18 | |||
19 | #define PARMAREA 0x10400 | ||
20 | #define MEMORY_CHUNKS 256 | ||
21 | |||
22 | #ifndef __ASSEMBLY__ | ||
23 | |||
24 | #ifndef __s390x__ | ||
25 | #define IPL_DEVICE (*(unsigned long *) (0x10404)) | ||
26 | #define INITRD_START (*(unsigned long *) (0x1040C)) | ||
27 | #define INITRD_SIZE (*(unsigned long *) (0x10414)) | ||
28 | #else /* __s390x__ */ | ||
29 | #define IPL_DEVICE (*(unsigned long *) (0x10400)) | ||
30 | #define INITRD_START (*(unsigned long *) (0x10408)) | ||
31 | #define INITRD_SIZE (*(unsigned long *) (0x10410)) | ||
32 | #endif /* __s390x__ */ | ||
33 | #define COMMAND_LINE ((char *) (0x10480)) | ||
34 | |||
35 | #define CHUNK_READ_WRITE 0 | ||
36 | #define CHUNK_READ_ONLY 1 | ||
37 | |||
38 | struct mem_chunk { | ||
39 | unsigned long addr; | ||
40 | unsigned long size; | ||
41 | int type; | ||
42 | }; | ||
43 | |||
44 | extern struct mem_chunk memory_chunk[]; | ||
45 | extern unsigned long real_memory_size; | ||
46 | |||
47 | void detect_memory_layout(struct mem_chunk chunk[]); | ||
48 | |||
49 | #ifdef CONFIG_S390_SWITCH_AMODE | ||
50 | extern unsigned int switch_amode; | ||
51 | #else | ||
52 | #define switch_amode (0) | ||
53 | #endif | ||
54 | |||
55 | #ifdef CONFIG_S390_EXEC_PROTECT | ||
56 | extern unsigned int s390_noexec; | ||
57 | #else | ||
58 | #define s390_noexec (0) | ||
59 | #endif | ||
60 | |||
61 | /* | ||
62 | * Machine features detected in head.S | ||
63 | */ | ||
64 | extern unsigned long machine_flags; | ||
65 | |||
66 | #define MACHINE_FLAG_VM (1UL << 0) | ||
67 | #define MACHINE_FLAG_IEEE (1UL << 1) | ||
68 | #define MACHINE_FLAG_CSP (1UL << 3) | ||
69 | #define MACHINE_FLAG_MVPG (1UL << 4) | ||
70 | #define MACHINE_FLAG_DIAG44 (1UL << 5) | ||
71 | #define MACHINE_FLAG_IDTE (1UL << 6) | ||
72 | #define MACHINE_FLAG_DIAG9C (1UL << 7) | ||
73 | #define MACHINE_FLAG_MVCOS (1UL << 8) | ||
74 | #define MACHINE_FLAG_KVM (1UL << 9) | ||
75 | #define MACHINE_FLAG_HPAGE (1UL << 10) | ||
76 | #define MACHINE_FLAG_PFMF (1UL << 11) | ||
77 | |||
78 | #define MACHINE_IS_VM (machine_flags & MACHINE_FLAG_VM) | ||
79 | #define MACHINE_IS_KVM (machine_flags & MACHINE_FLAG_KVM) | ||
80 | #define MACHINE_HAS_DIAG9C (machine_flags & MACHINE_FLAG_DIAG9C) | ||
81 | |||
82 | #ifndef __s390x__ | ||
83 | #define MACHINE_HAS_IEEE (machine_flags & MACHINE_FLAG_IEEE) | ||
84 | #define MACHINE_HAS_CSP (machine_flags & MACHINE_FLAG_CSP) | ||
85 | #define MACHINE_HAS_IDTE (0) | ||
86 | #define MACHINE_HAS_DIAG44 (1) | ||
87 | #define MACHINE_HAS_MVPG (machine_flags & MACHINE_FLAG_MVPG) | ||
88 | #define MACHINE_HAS_MVCOS (0) | ||
89 | #define MACHINE_HAS_HPAGE (0) | ||
90 | #define MACHINE_HAS_PFMF (0) | ||
91 | #else /* __s390x__ */ | ||
92 | #define MACHINE_HAS_IEEE (1) | ||
93 | #define MACHINE_HAS_CSP (1) | ||
94 | #define MACHINE_HAS_IDTE (machine_flags & MACHINE_FLAG_IDTE) | ||
95 | #define MACHINE_HAS_DIAG44 (machine_flags & MACHINE_FLAG_DIAG44) | ||
96 | #define MACHINE_HAS_MVPG (1) | ||
97 | #define MACHINE_HAS_MVCOS (machine_flags & MACHINE_FLAG_MVCOS) | ||
98 | #define MACHINE_HAS_HPAGE (machine_flags & MACHINE_FLAG_HPAGE) | ||
99 | #define MACHINE_HAS_PFMF (machine_flags & MACHINE_FLAG_PFMF) | ||
100 | #endif /* __s390x__ */ | ||
101 | |||
102 | #define ZFCPDUMP_HSA_SIZE (32UL<<20) | ||
103 | |||
104 | /* | ||
105 | * Console mode. Override with conmode= | ||
106 | */ | ||
107 | extern unsigned int console_mode; | ||
108 | extern unsigned int console_devno; | ||
109 | extern unsigned int console_irq; | ||
110 | |||
111 | extern char vmhalt_cmd[]; | ||
112 | extern char vmpoff_cmd[]; | ||
113 | |||
114 | #define CONSOLE_IS_UNDEFINED (console_mode == 0) | ||
115 | #define CONSOLE_IS_SCLP (console_mode == 1) | ||
116 | #define CONSOLE_IS_3215 (console_mode == 2) | ||
117 | #define CONSOLE_IS_3270 (console_mode == 3) | ||
118 | #define SET_CONSOLE_SCLP do { console_mode = 1; } while (0) | ||
119 | #define SET_CONSOLE_3215 do { console_mode = 2; } while (0) | ||
120 | #define SET_CONSOLE_3270 do { console_mode = 3; } while (0) | ||
121 | |||
122 | #define NSS_NAME_SIZE 8 | ||
123 | extern char kernel_nss_name[]; | ||
124 | |||
125 | #else /* __ASSEMBLY__ */ | ||
126 | |||
127 | #ifndef __s390x__ | ||
128 | #define IPL_DEVICE 0x10404 | ||
129 | #define INITRD_START 0x1040C | ||
130 | #define INITRD_SIZE 0x10414 | ||
131 | #else /* __s390x__ */ | ||
132 | #define IPL_DEVICE 0x10400 | ||
133 | #define INITRD_START 0x10408 | ||
134 | #define INITRD_SIZE 0x10410 | ||
135 | #endif /* __s390x__ */ | ||
136 | #define COMMAND_LINE 0x10480 | ||
137 | |||
138 | #endif /* __ASSEMBLY__ */ | ||
139 | #endif /* __KERNEL__ */ | ||
140 | #endif /* _ASM_S390_SETUP_H */ | ||