root/arch/s390/include/uapi/asm/ipl.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 */
   8 struct 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 
  19 /* IPL Parameter Block header */
  20 struct ipl_pb_hdr {
  21         __u32 len;
  22         __u8  pbt;
  23 } __packed;
  24 
  25 /* IPL Parameter Block types */
  26 enum ipl_pbt {
  27         IPL_PBT_FCP = 0,
  28         IPL_PBT_SCP_DATA = 1,
  29         IPL_PBT_CCW = 2,
  30 };
  31 
  32 /* IPL Parameter Block 0 with common fields */
  33 struct ipl_pb0_common {
  34         __u32 len;
  35         __u8  pbt;
  36         __u8  flags;
  37         __u8  reserved1[2];
  38         __u8  loadparm[8];
  39         __u8  reserved2[84];
  40 } __packed;
  41 
  42 #define IPL_PB0_FLAG_LOADPARM   0x80
  43 
  44 /* IPL Parameter Block 0 for FCP */
  45 struct ipl_pb0_fcp {
  46         __u32 len;
  47         __u8  pbt;
  48         __u8  reserved1[3];
  49         __u8  loadparm[8];
  50         __u8  reserved2[304];
  51         __u8  opt;
  52         __u8  reserved3[3];
  53         __u8  cssid;
  54         __u8  reserved4[1];
  55         __u16 devno;
  56         __u8  reserved5[4];
  57         __u64 wwpn;
  58         __u64 lun;
  59         __u32 bootprog;
  60         __u8  reserved6[12];
  61         __u64 br_lba;
  62         __u32 scp_data_len;
  63         __u8  reserved7[260];
  64         __u8  scp_data[];
  65 } __packed;
  66 
  67 #define IPL_PB0_FCP_OPT_IPL     0x10
  68 #define IPL_PB0_FCP_OPT_DUMP    0x20
  69 
  70 /* IPL Parameter Block 0 for CCW */
  71 struct ipl_pb0_ccw {
  72         __u32 len;
  73         __u8  pbt;
  74         __u8  flags;
  75         __u8  reserved1[2];
  76         __u8  loadparm[8];
  77         __u8  reserved2[84];
  78         __u16 reserved3 : 13;
  79         __u8  ssid : 3;
  80         __u16 devno;
  81         __u8  vm_flags;
  82         __u8  reserved4[3];
  83         __u32 vm_parm_len;
  84         __u8  nss_name[8];
  85         __u8  vm_parm[64];
  86         __u8  reserved5[8];
  87 } __packed;
  88 
  89 #define IPL_PB0_CCW_VM_FLAG_NSS         0x80
  90 #define IPL_PB0_CCW_VM_FLAG_VP          0x40
  91 
  92 /* IPL Parameter Block 1 for additional SCP data */
  93 struct ipl_pb1_scp_data {
  94         __u32 len;
  95         __u8  pbt;
  96         __u8  scp_data[];
  97 } __packed;
  98 
  99 /* IPL Report List header */
 100 struct ipl_rl_hdr {
 101         __u32 len;
 102         __u8  flags;
 103         __u8  reserved1[2];
 104         __u8  version;
 105         __u8  reserved2[8];
 106 } __packed;
 107 
 108 /* IPL Report Block header */
 109 struct ipl_rb_hdr {
 110         __u32 len;
 111         __u8  rbt;
 112         __u8  reserved1[11];
 113 } __packed;
 114 
 115 /* IPL Report Block types */
 116 enum ipl_rbt {
 117         IPL_RBT_CERTIFICATES = 1,
 118         IPL_RBT_COMPONENTS = 2,
 119 };
 120 
 121 /* IPL Report Block for the certificate list */
 122 struct ipl_rb_certificate_entry {
 123         __u64 addr;
 124         __u64 len;
 125 } __packed;
 126 
 127 struct ipl_rb_certificates {
 128         __u32 len;
 129         __u8  rbt;
 130         __u8  reserved1[11];
 131         struct ipl_rb_certificate_entry entries[];
 132 } __packed;
 133 
 134 /* IPL Report Block for the component list */
 135 struct ipl_rb_component_entry {
 136         __u64 addr;
 137         __u64 len;
 138         __u8  flags;
 139         __u8  reserved1[5];
 140         __u16 certificate_index;
 141         __u8  reserved2[8];
 142 };
 143 
 144 #define IPL_RB_COMPONENT_FLAG_SIGNED    0x80
 145 #define IPL_RB_COMPONENT_FLAG_VERIFIED  0x40
 146 
 147 struct ipl_rb_components {
 148         __u32 len;
 149         __u8  rbt;
 150         __u8  reserved1[11];
 151         struct ipl_rb_component_entry entries[];
 152 } __packed;
 153 
 154 #endif

/* [<][>][^][v][top][bottom][index][help] */