[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [qemu-s390x] [PATCH v6 06/12] s390-ccw: parse and set boot menu opti
From: |
Thomas Huth |
Subject: |
Re: [qemu-s390x] [PATCH v6 06/12] s390-ccw: parse and set boot menu options |
Date: |
Fri, 16 Feb 2018 17:20:06 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
On 15.02.2018 23:54, Collin L. Walling wrote:
> Set boot menu options for an s390 guest and store them in
> the iplb. These options are set via the QEMU command line
> option:
>
> -boot menu=on|off[,splash-time=X]
>
> or via the libvirt domain xml:
>
> <os>
> <bootmenu enable='yes|no' timeout='X'/>
> </os>
>
> Where X represents some positive integer representing
> milliseconds.
>
> Any value set for loadparm will override all boot menu options.
> If loadparm=PROMPT, then the menu will be enabled without a
> timeout.
>
> The absence of any boot options on the command line will flag
> to later use the zipl boot loader values.
>
> Signed-off-by: Collin L. Walling <address@hidden>
> Reviewed-by: Janosch Frank <address@hidden>
> Reviewed-by: Thomas Huth <address@hidden>
> ---
> hw/s390x/ipl.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
> hw/s390x/ipl.h | 9 +++++++--
> pc-bios/s390-ccw/iplb.h | 6 ++++--
> 3 files changed, 59 insertions(+), 4 deletions(-)
[....]
> diff --git a/hw/s390x/ipl.h b/hw/s390x/ipl.h
> index cab8a97..7c3cab8 100644
> --- a/hw/s390x/ipl.h
> +++ b/hw/s390x/ipl.h
> @@ -60,10 +60,15 @@ typedef struct IplBlockQemuScsi IplBlockQemuScsi;
>
> #define QIPL_ADDRESS 0xcc
>
> +#define BOOT_MENU_FLAG_CMD_OPTS 0x80
> +#define BOOT_MENU_FLAG_ZIPL_OPTS 0x40
> +
> struct QemuIplParameters {
> - uint8_t reserved1[4];
> + uint8_t boot_menu_flags;
> + uint8_t reserved1;
> + uint32_t boot_menu_timeout;
> uint64_t netboot_start_addr;
The netboot_start_addr field is now never aligned anymore, neither on
the host side, nor in guest memory. Not a big problem since the struct
is declared with "QEMU_PACKED", but still ... it's always nicer to try
to align fields to their natural boundaries. So maybe move
boot_menu_flags and reserved1 after netboot_start_addr ?
> - uint8_t reserved2[16];
> + uint8_t reserved2[14];
> } QEMU_PACKED;
> typedef struct QemuIplParameters QemuIplParameters;
Thomas
- Re: [qemu-s390x] [PATCH v6 02/12] s390-ccw: refactor eckd_block_num to use CHS, (continued)
[qemu-s390x] [PATCH v6 06/12] s390-ccw: parse and set boot menu options, Collin L. Walling, 2018/02/15
- Re: [qemu-s390x] [PATCH v6 06/12] s390-ccw: parse and set boot menu options,
Thomas Huth <=
[qemu-s390x] [PATCH v6 09/12] s390-ccw: print zipl boot menu, Collin L. Walling, 2018/02/15
[qemu-s390x] [PATCH v6 03/12] s390-ccw: refactor IPL structs, Collin L. Walling, 2018/02/15
[qemu-s390x] [PATCH v6 05/12] s390-ccw: move auxiliary IPL data to separate location, Collin L. Walling, 2018/02/15
[qemu-s390x] [PATCH v6 07/12] s390-ccw: set up interactive boot menu parameters, Collin L. Walling, 2018/02/15
[qemu-s390x] [PATCH v6 10/12] s390-ccw: read user input for boot index via the SCLP console, Collin L. Walling, 2018/02/15