aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-s390/setup.h
diff options
context:
space:
mode:
authorMichael Holzheu <holzheu@de.ibm.com>2006-09-20 09:58:49 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2006-09-20 09:58:49 -0400
commitff6b8ea68f4b7353f88b97024f28127e2148aa00 (patch)
tree67ebb74cbbc042d99325ff33c3f80e4b3e0a1c42 /include/asm-s390/setup.h
parent331c982d4a6b43cdc0d056956a1cae8a7d6237bf (diff)
[S390] ipl/dump on panic.
It is now possible to specify a ccw/fcp dump device which is used to automatically create a system dump in case of a kernel panic. The dump device can be configured under /sys/firmware/dump. In addition it is now possible to specify a ccw/fcp device which is used for the next reboot of Linux. The reipl device can be configured under /sys/firmware/reipl. Signed-off-by: Michael Holzheu <holzheu@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'include/asm-s390/setup.h')
-rw-r--r--include/asm-s390/setup.h54
1 files changed, 38 insertions, 16 deletions
diff --git a/include/asm-s390/setup.h b/include/asm-s390/setup.h
index 02c96d57f0cf..4a1126d8439a 100644
--- a/include/asm-s390/setup.h
+++ b/include/asm-s390/setup.h
@@ -68,39 +68,59 @@ extern unsigned int console_irq;
68#define SET_CONSOLE_3215 do { console_mode = 2; } while (0) 68#define SET_CONSOLE_3215 do { console_mode = 2; } while (0)
69#define SET_CONSOLE_3270 do { console_mode = 3; } while (0) 69#define SET_CONSOLE_3270 do { console_mode = 3; } while (0)
70 70
71struct ipl_list_header { 71
72 u32 length; 72struct ipl_list_hdr {
73 u8 reserved[3]; 73 u32 len;
74 u8 reserved1[3];
74 u8 version; 75 u8 version;
76 u32 blk0_len;
77 u8 pbt;
78 u8 flags;
79 u16 reserved2;
75} __attribute__((packed)); 80} __attribute__((packed));
76 81
77struct ipl_block_fcp { 82struct ipl_block_fcp {
78 u32 length; 83 u8 reserved1[313-1];
79 u8 pbt; 84 u8 opt;
80 u8 reserved1[322-1]; 85 u8 reserved2[3];
86 u16 reserved3;
81 u16 devno; 87 u16 devno;
82 u8 reserved2[4]; 88 u8 reserved4[4];
83 u64 wwpn; 89 u64 wwpn;
84 u64 lun; 90 u64 lun;
85 u32 bootprog; 91 u32 bootprog;
86 u8 reserved3[12]; 92 u8 reserved5[12];
87 u64 br_lba; 93 u64 br_lba;
88 u32 scp_data_len; 94 u32 scp_data_len;
89 u8 reserved4[260]; 95 u8 reserved6[260];
90 u8 scp_data[]; 96 u8 scp_data[];
91} __attribute__((packed)); 97} __attribute__((packed));
92 98
99struct ipl_block_ccw {
100 u8 load_param[8];
101 u8 reserved1[84];
102 u8 reserved2[2];
103 u16 devno;
104 u8 vm_flags;
105 u8 reserved3[3];
106 u32 vm_parm_len;
107} __attribute__((packed));
108
93struct ipl_parameter_block { 109struct ipl_parameter_block {
110 struct ipl_list_hdr hdr;
94 union { 111 union {
95 u32 length; 112 struct ipl_block_fcp fcp;
96 struct ipl_list_header header; 113 struct ipl_block_ccw ccw;
97 } hdr; 114 } ipl_info;
98 struct ipl_block_fcp fcp;
99} __attribute__((packed)); 115} __attribute__((packed));
100 116
101#define IPL_MAX_SUPPORTED_VERSION (0) 117#define IPL_PARM_BLK_FCP_LEN (sizeof(struct ipl_list_hdr) + \
118 sizeof(struct ipl_block_fcp))
102 119
103#define IPL_TYPE_FCP (0) 120#define IPL_PARM_BLK_CCW_LEN (sizeof(struct ipl_list_hdr) + \
121 sizeof(struct ipl_block_ccw))
122
123#define IPL_MAX_SUPPORTED_VERSION (0)
104 124
105/* 125/*
106 * IPL validity flags and parameters as detected in head.S 126 * IPL validity flags and parameters as detected in head.S
@@ -108,12 +128,14 @@ struct ipl_parameter_block {
108extern u32 ipl_parameter_flags; 128extern u32 ipl_parameter_flags;
109extern u16 ipl_devno; 129extern u16 ipl_devno;
110 130
131void do_reipl(void);
132
111#define IPL_DEVNO_VALID (ipl_parameter_flags & 1) 133#define IPL_DEVNO_VALID (ipl_parameter_flags & 1)
112#define IPL_PARMBLOCK_VALID (ipl_parameter_flags & 2) 134#define IPL_PARMBLOCK_VALID (ipl_parameter_flags & 2)
113 135
114#define IPL_PARMBLOCK_START ((struct ipl_parameter_block *) \ 136#define IPL_PARMBLOCK_START ((struct ipl_parameter_block *) \
115 IPL_PARMBLOCK_ORIGIN) 137 IPL_PARMBLOCK_ORIGIN)
116#define IPL_PARMBLOCK_SIZE (IPL_PARMBLOCK_START->hdr.length) 138#define IPL_PARMBLOCK_SIZE (IPL_PARMBLOCK_START->hdr.len)
117 139
118#else /* __ASSEMBLY__ */ 140#else /* __ASSEMBLY__ */
119 141