Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d29af5b7 authored by Martin Schwidefsky's avatar Martin Schwidefsky
Browse files

s390/ipl: add definitions for the IPL report block



To transport the information required for secure boot a new IPL report
will be created at boot time. It will be written to memory right after
the IPL parameter block. To work with the IPL report a couple of
additional structure definitions are added the the uapi/ipl.h header.

Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 5f1207fb
Loading
Loading
Loading
Loading
+61 −1
Original line number Diff line number Diff line
@@ -7,10 +7,15 @@
/* IPL Parameter List header */
struct ipl_pl_hdr {
	__u32 len;
	__u8  reserved1[3];
	__u8  flags;
	__u8  reserved1[2];
	__u8  version;
} __packed;

#define IPL_PL_FLAG_IPLPS	0x80
#define IPL_PL_FLAG_SIPL	0x40
#define IPL_PL_FLAG_IPLSR	0x20

/* IPL Parameter Block header */
struct ipl_pb_hdr {
	__u32 len;
@@ -91,4 +96,59 @@ struct ipl_pb1_scp_data {
	__u8  scp_data[];
} __packed;

/* IPL Report List header */
struct ipl_rl_hdr {
	__u32 len;
	__u8  flags;
	__u8  reserved1[2];
	__u8  version;
	__u8  reserved2[8];
} __packed;

/* IPL Report Block header */
struct ipl_rb_hdr {
	__u32 len;
	__u8  rbt;
	__u8  reserved1[11];
} __packed;

/* IPL Report Block types */
enum ipl_rbt {
	IPL_RBT_CERTIFICATES = 1,
	IPL_RBT_COMPONENTS = 2,
};

/* IPL Report Block for the certificate list */
struct ipl_rb_certificate_entry {
	__u64 addr;
	__u64 len;
} __packed;

struct ipl_rb_certificates {
	__u32 len;
	__u8  rbt;
	__u8  reserved1[11];
	struct ipl_rb_certificate_entry entries[];
} __packed;

/* IPL Report Block for the component list */
struct ipl_rb_component_entry {
	__u64 addr;
	__u64 len;
	__u8  flags;
	__u8  reserved1[5];
	__u16 certificate_index;
	__u8  reserved2[8];
};

#define IPL_RB_COMPONENT_FLAG_SIGNED	0x80
#define IPL_RB_COMPONENT_FLAG_VERIFIED	0x40

struct ipl_rb_components {
	__u32 len;
	__u8  rbt;
	__u8  reserved1[11];
	struct ipl_rb_component_entry entries[];
} __packed;

#endif