• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/s390/include/asm/
1/*
2 *  include/asm-s390/setup.h
3 *
4 *  S390 version
5 *    Copyright IBM Corp. 1999,2010
6 */
7
8#ifndef _ASM_S390_SETUP_H
9#define _ASM_S390_SETUP_H
10
11#define COMMAND_LINE_SIZE	4096
12
13#define ARCH_COMMAND_LINE_SIZE	896
14
15#ifdef __KERNEL__
16
17#define PARMAREA		0x10400
18#define MEMORY_CHUNKS		256
19
20#ifndef __ASSEMBLY__
21
22#include <asm/lowcore.h>
23#include <asm/types.h>
24
25#ifndef __s390x__
26#define IPL_DEVICE        (*(unsigned long *)  (0x10404))
27#define INITRD_START      (*(unsigned long *)  (0x1040C))
28#define INITRD_SIZE       (*(unsigned long *)  (0x10414))
29#else /* __s390x__ */
30#define IPL_DEVICE        (*(unsigned long *)  (0x10400))
31#define INITRD_START      (*(unsigned long *)  (0x10408))
32#define INITRD_SIZE       (*(unsigned long *)  (0x10410))
33#endif /* __s390x__ */
34#define COMMAND_LINE      ((char *)            (0x10480))
35
36#define CHUNK_READ_WRITE 0
37#define CHUNK_READ_ONLY  1
38
39struct mem_chunk {
40	unsigned long addr;
41	unsigned long size;
42	int type;
43};
44
45extern struct mem_chunk memory_chunk[];
46extern unsigned long real_memory_size;
47extern int memory_end_set;
48extern unsigned long memory_end;
49
50void detect_memory_layout(struct mem_chunk chunk[]);
51
52#define PRIMARY_SPACE_MODE	0
53#define ACCESS_REGISTER_MODE	1
54#define SECONDARY_SPACE_MODE	2
55#define HOME_SPACE_MODE		3
56
57extern unsigned int user_mode;
58
59/*
60 * Machine features detected in head.S
61 */
62
63#define MACHINE_FLAG_VM		(1UL << 0)
64#define MACHINE_FLAG_IEEE	(1UL << 1)
65#define MACHINE_FLAG_CSP	(1UL << 3)
66#define MACHINE_FLAG_MVPG	(1UL << 4)
67#define MACHINE_FLAG_DIAG44	(1UL << 5)
68#define MACHINE_FLAG_IDTE	(1UL << 6)
69#define MACHINE_FLAG_DIAG9C	(1UL << 7)
70#define MACHINE_FLAG_MVCOS	(1UL << 8)
71#define MACHINE_FLAG_KVM	(1UL << 9)
72#define MACHINE_FLAG_HPAGE	(1UL << 10)
73#define MACHINE_FLAG_PFMF	(1UL << 11)
74#define MACHINE_FLAG_LPAR	(1UL << 12)
75#define MACHINE_FLAG_SPP	(1UL << 13)
76
77#define MACHINE_IS_VM		(S390_lowcore.machine_flags & MACHINE_FLAG_VM)
78#define MACHINE_IS_KVM		(S390_lowcore.machine_flags & MACHINE_FLAG_KVM)
79#define MACHINE_IS_LPAR		(S390_lowcore.machine_flags & MACHINE_FLAG_LPAR)
80
81#define MACHINE_HAS_DIAG9C	(S390_lowcore.machine_flags & MACHINE_FLAG_DIAG9C)
82
83#ifndef __s390x__
84#define MACHINE_HAS_IEEE	(S390_lowcore.machine_flags & MACHINE_FLAG_IEEE)
85#define MACHINE_HAS_CSP		(S390_lowcore.machine_flags & MACHINE_FLAG_CSP)
86#define MACHINE_HAS_IDTE	(0)
87#define MACHINE_HAS_DIAG44	(1)
88#define MACHINE_HAS_MVPG	(S390_lowcore.machine_flags & MACHINE_FLAG_MVPG)
89#define MACHINE_HAS_MVCOS	(0)
90#define MACHINE_HAS_HPAGE	(0)
91#define MACHINE_HAS_PFMF	(0)
92#define MACHINE_HAS_SPP		(0)
93#else /* __s390x__ */
94#define MACHINE_HAS_IEEE	(1)
95#define MACHINE_HAS_CSP		(1)
96#define MACHINE_HAS_IDTE	(S390_lowcore.machine_flags & MACHINE_FLAG_IDTE)
97#define MACHINE_HAS_DIAG44	(S390_lowcore.machine_flags & MACHINE_FLAG_DIAG44)
98#define MACHINE_HAS_MVPG	(1)
99#define MACHINE_HAS_MVCOS	(S390_lowcore.machine_flags & MACHINE_FLAG_MVCOS)
100#define MACHINE_HAS_HPAGE	(S390_lowcore.machine_flags & MACHINE_FLAG_HPAGE)
101#define MACHINE_HAS_PFMF	(S390_lowcore.machine_flags & MACHINE_FLAG_PFMF)
102#define MACHINE_HAS_SPP		(S390_lowcore.machine_flags & MACHINE_FLAG_SPP)
103#endif /* __s390x__ */
104
105#define ZFCPDUMP_HSA_SIZE	(32UL<<20)
106
107/*
108 * Console mode. Override with conmode=
109 */
110extern unsigned int console_mode;
111extern unsigned int console_devno;
112extern unsigned int console_irq;
113
114extern char vmhalt_cmd[];
115extern char vmpoff_cmd[];
116
117#define CONSOLE_IS_UNDEFINED	(console_mode == 0)
118#define CONSOLE_IS_SCLP		(console_mode == 1)
119#define CONSOLE_IS_3215		(console_mode == 2)
120#define CONSOLE_IS_3270		(console_mode == 3)
121#define SET_CONSOLE_SCLP	do { console_mode = 1; } while (0)
122#define SET_CONSOLE_3215	do { console_mode = 2; } while (0)
123#define SET_CONSOLE_3270	do { console_mode = 3; } while (0)
124
125#define NSS_NAME_SIZE	8
126extern char kernel_nss_name[];
127
128#else /* __ASSEMBLY__ */
129
130#ifndef __s390x__
131#define IPL_DEVICE        0x10404
132#define INITRD_START      0x1040C
133#define INITRD_SIZE       0x10414
134#else /* __s390x__ */
135#define IPL_DEVICE        0x10400
136#define INITRD_START      0x10408
137#define INITRD_SIZE       0x10410
138#endif /* __s390x__ */
139#define COMMAND_LINE      0x10480
140
141#endif /* __ASSEMBLY__ */
142#endif /* __KERNEL__ */
143#endif /* _ASM_S390_SETUP_H */
144