FILE
ipl.h
File preview with syntax highlighting.
linux-6.19.14/arch/s390/include/uapi/asm/ipl.h
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2#ifndef _ASM_S390_UAPI_IPL_H 3#define _ASM_S390_UAPI_IPL_H 4 5#include <linux/types.h> 6 7/* IPL Parameter List header */ 8struct ipl_pl_hdr { 9 __u32 len; 10 __u8 flags; 11 __u8 reserved1[2]; 12 __u8 version; 13} __packed; 14 15#define IPL_PL_FLAG_IPLPS 0x80 16#define IPL_PL_FLAG_SIPL 0x40 17#define IPL_PL_FLAG_IPLSR 0x20 18#define IPL_PL_FLAG_SBP 0x10 19 20/* IPL Parameter Block header */ 21struct ipl_pb_hdr { 22 __u32 len; 23 __u8 pbt; 24} __packed; 25 26/* IPL Parameter Block types */ 27enum ipl_pbt { 28 IPL_PBT_FCP = 0, 29 IPL_PBT_SCP_DATA = 1, 30 IPL_PBT_CCW = 2, 31 IPL_PBT_ECKD = 3, 32 IPL_PBT_NVME = 4, 33}; 34 35/* IPL Parameter Block 0 with common fields */ 36struct ipl_pb0_common { 37 __u32 len; 38 __u8 pbt; 39 __u8 flags; 40 __u8 reserved1[2]; 41 __u8 loadparm[8]; 42 __u8 reserved2[84]; 43} __packed; 44 45#define IPL_PB0_FLAG_LOADPARM 0x80 46 47/* IPL Parameter Block 0 for FCP */ 48struct ipl_pb0_fcp { 49 __u32 len; 50 __u8 pbt; 51 __u8 reserved1[3]; 52 __u8 loadparm[8]; 53 __u8 reserved2[304]; 54 __u8 opt; 55 __u8 reserved3[3]; 56 __u8 cssid; 57 __u8 reserved4[1]; 58 __u16 devno; 59 __u8 reserved5[4]; 60 __u64 wwpn; 61 __u64 lun; 62 __u32 bootprog; 63 __u8 reserved6[12]; 64 __u64 br_lba; 65 __u32 scp_data_len; 66 __u8 reserved7[260]; 67 __u8 scp_data[]; 68} __packed; 69 70#define IPL_PB0_FCP_OPT_IPL 0x10 71#define IPL_PB0_FCP_OPT_DUMP 0x20 72 73/* IPL Parameter Block 0 for NVMe */ 74struct ipl_pb0_nvme { 75 __u32 len; 76 __u8 pbt; 77 __u8 reserved1[3]; 78 __u8 loadparm[8]; 79 __u8 reserved2[304]; 80 __u8 opt; 81 __u8 reserved3[3]; 82 __u32 fid; 83 __u8 reserved4[12]; 84 __u32 nsid; 85 __u8 reserved5[4]; 86 __u32 bootprog; 87 __u8 reserved6[12]; 88 __u64 br_lba; 89 __u32 scp_data_len; 90 __u8 reserved7[260]; 91 __u8 scp_data[]; 92} __packed; 93 94#define IPL_PB0_NVME_OPT_IPL 0x10 95#define IPL_PB0_NVME_OPT_DUMP 0x20 96 97/* IPL Parameter Block 0 for CCW */ 98struct ipl_pb0_ccw { 99 __u32 len; 100 __u8 pbt; 101 __u8 flags; 102 __u8 reserved1[2]; 103 __u8 loadparm[8]; 104 __u8 reserved2[84]; 105 __u16 reserved3 : 13; 106 __u8 ssid : 3; 107 __u16 devno; 108 __u8 vm_flags; 109 __u8 reserved4[3]; 110 __u32 vm_parm_len; 111 __u8 nss_name[8]; 112 __u8 vm_parm[64]; 113 __u8 reserved5[8]; 114} __packed; 115 116/* IPL Parameter Block 0 for ECKD */ 117struct ipl_pb0_eckd { 118 __u32 len; 119 __u8 pbt; 120 __u8 reserved1[3]; 121 __u32 reserved2[78]; 122 __u8 opt; 123 __u8 reserved4[4]; 124 __u8 reserved5:5; 125 __u8 ssid:3; 126 __u16 devno; 127 __u32 reserved6[5]; 128 __u32 bootprog; 129 __u8 reserved7[12]; 130 struct { 131 __u16 cyl; 132 __u8 head; 133 __u8 record; 134 __u32 reserved; 135 } br_chr __packed; 136 __u32 scp_data_len; 137 __u8 reserved8[260]; 138 __u8 scp_data[]; 139} __packed; 140 141#define IPL_PB0_ECKD_OPT_IPL 0x10 142#define IPL_PB0_ECKD_OPT_DUMP 0x20 143 144#define IPL_PB0_CCW_VM_FLAG_NSS 0x80 145#define IPL_PB0_CCW_VM_FLAG_VP 0x40 146 147/* IPL Parameter Block 1 for additional SCP data */ 148struct ipl_pb1_scp_data { 149 __u32 len; 150 __u8 pbt; 151 __u8 scp_data[]; 152} __packed; 153 154/* IPL Report List header */ 155struct ipl_rl_hdr { 156 __u32 len; 157 __u8 flags; 158 __u8 reserved1[2]; 159 __u8 version; 160 __u8 reserved2[8]; 161} __packed; 162 163/* IPL Report Block header */ 164struct ipl_rb_hdr { 165 __u32 len; 166 __u8 rbt; 167 __u8 reserved1[11]; 168} __packed; 169 170/* IPL Report Block types */ 171enum ipl_rbt { 172 IPL_RBT_CERTIFICATES = 1, 173 IPL_RBT_COMPONENTS = 2, 174}; 175 176/* IPL Report Block for the certificate list */ 177struct ipl_rb_certificate_entry { 178 __u64 addr; 179 __u64 len; 180} __packed; 181 182struct ipl_rb_certificates { 183 __u32 len; 184 __u8 rbt; 185 __u8 reserved1[11]; 186 struct ipl_rb_certificate_entry entries[]; 187} __packed; 188 189/* IPL Report Block for the component list */ 190struct ipl_rb_component_entry { 191 __u64 addr; 192 __u64 len; 193 __u8 flags; 194 __u8 reserved1[5]; 195 __u16 certificate_index; 196 __u8 reserved2[8]; 197}; 198 199#define IPL_RB_COMPONENT_FLAG_SIGNED 0x80 200#define IPL_RB_COMPONENT_FLAG_VERIFIED 0x40 201 202struct ipl_rb_components { 203 __u32 len; 204 __u8 rbt; 205 __u8 reserved1[11]; 206 struct ipl_rb_component_entry entries[]; 207} __packed; 208 209#endif
~/
Read-only file preview.