On 16.02.2018 23:07, Collin L. Walling wrote: [...] > diff --git a/hw/s390x/ipl.h b/hw/s390x/ipl.h > index 74469b1..f632c59 100644 > --- a/hw/s390x/ipl.h > +++ b/hw/s390x/ipl.h > @@ -60,6 +60,9 @@ typedef struct IplBlockQemuScsi IplBlockQemuScsi; > > #define QIPL_ADDRESS 0xcc > > +#define BOOT_MENU_FLAG_CMD_OPTS 0x80 > +#define BOOT_MENU_FLAG_ZIPL_OPTS 0x40 > + > /* > * The QEMU IPL Parameters will be stored 32-bit word aligned. > * Placement of data fields in this area must account for > @@ -67,9 +70,11 @@ typedef struct IplBlockQemuScsi IplBlockQemuScsi; > * The entire structure must not be larger than 28 bytes. > */ > struct QemuIplParameters { > - uint8_t reserved1[4]; > + uint8_t boot_menu_flags; > + uint8_t reserved1[3]; > + uint32_t boot_menu_timeout; > uint64_t netboot_start_addr; > - uint8_t reserved2[16]; > + uint8_t reserved2[12]; > } QEMU_PACKED;Since this has to be touched anyway to re-establish proper > alignment, I could also imagine to define the struct as struct QemuIplParameters { struct { uint32_t flags:8; uint32_t timeout:24; } QEMU_PACKED boot_menu; uint64_t netboot_start_addr; uint8_t reserved2[16]; } QEMU_PACKED; would allow to keep the boot menu stuff together without creating unnecessary holes. It would allow for a timeout value of more than 4 hours. The code to set the boot menu would have to be adapted though to properly deal with the bitfields. > typedef struct QemuIplParameters QemuIplParameters; > > diff --git a/pc-bios/s390-ccw/iplb.h b/pc-bios/s390-ccw/iplb.h > index a23237e..0e39aa0 100644 > --- a/pc-bios/s390-ccw/iplb.h > +++ b/pc-bios/s390-ccw/iplb.h > @@ -81,9 +81,11 @@ extern IplParameterBlock iplb > __attribute__((__aligned__(PAGE_SIZE))); > * The entire structure must not be larger than 28 bytes. > */ > struct QemuIplParameters { > - uint8_t reserved1[4]; > + uint8_t boot_menu_flags; > + uint8_t reserved1[3]; > + uint32_t boot_menu_timeout; > uint64_t netboot_start_addr; > - uint8_t reserved2[16]; > + uint8_t reserved2[12]; > } __attribute__ ((packed)); > typedef struct QemuIplParameters QemuIplParameters; > same here.
-- Regards, Viktor Mihajlovski