qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: jrossi@linux.ibm.com
To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org, thuth@redhat.com
Cc: frankja@linux.ibm.com, jrossi@linux.ibm.com
Subject: [PATCH v3 00/19] s390x: Add Full Boot Order Support
Date: Mon,  7 Oct 2024 21:15:33 -0400	[thread overview]
Message-ID: <20241008011552.2645520-1-jrossi@linux.ibm.com> (raw)

From: Jared Rossi <jrossi@linux.ibm.com>

Version 3 fixes ISO IPL and restores the ability to probe for boot devices when
no primary b0ot device has been specified.

Two automated qtests are added, one that tests a cdrom device as the only
fallback device after the primary boot target fails and one that that defines
the seven failing devices before one that succeeds.

Note: Although the qtest with multiple invalid IPL devices passes, it may
generate a log message about zero sized buffers. This message does not appear
to be directly related to the IPLB chaining or loading process, and it also
does not appear to cause any unexpected behavior during IPL. The log message
seems to be triggered when multiple virtio-scsi devices fail to IPL in
succession, but the exact cause is still unclear.

changes v2 -> v3:

- Fix return code mismatch in ISO IPL path
- Introduce a new RC for loading ECKD segments rather than rely on block 0
- Fix bug causing false negative in some SCSI device error cases
- Terminate entire IPL on bad PBT instead of trying next device
- Simplify routine for building IPLB chain
- Restore device probing
- Add qtests
- Minor stylistic clean-ups and comment clarifications

Changes v1 -> v2:

- Use the libc from SLOF and replace sclp_print calls with put/printf
- Merge netboot into the main s390-ccw.img
- Rework pc-bios to return on error instead of panic
- Handle non-archetected IPLB types (QEMU SCSI) from DIAG308
- Remove code jumps and instead restart the IPL using a traditional loop

Jared Rossi (19):
  hw/s390x/ipl: Provide more memory to the s390-ccw.img firmware
  pc-bios/s390-ccw: Use the libc from SLOF and remove sclp prints
  pc-bios/s390-ccw: Link the netboot code into the main s390-ccw.img
    binary
  hw/s390x: Remove the possibility to load the s390-netboot.img binary
  pc-bios/s390-ccw: Merge netboot.mak into the main Makefile
  docs/system/s390x/bootdevices: Update the documentation about network
    booting
  pc-bios/s390-ccw: Remove panics from ISO IPL path
  pc-bios/s390-ccw: Remove panics from ECKD IPL path
  pc-bios/s390-ccw: Remove panics from SCSI IPL path
  pc-bios/s390-ccw: Remove panics from DASD IPL path
  pc-bios/s390-ccw: Remove panics from Netboot IPL path
  pc-bios/s390-ccw: Enable failed IPL to return after error
  include/hw/s390x: Add include files for common IPL structs
  s390x: Add individual loadparm assignment to CCW device
  hw/s390x: Build an IPLB for each boot device
  s390x: Rebuild IPLB for SCSI device directly from DIAG308
  pc-bios/s390x: Enable multi-device boot loop
  docs/system: Update documentation for s390x IPL
  tests/qtest: Add s390x boot order tests to cdrom-test.c

 docs/system/bootindex.rst         |   7 +-
 docs/system/s390x/bootdevices.rst |  29 +-
 pc-bios/s390-ccw/netboot.mak      |  62 -----
 hw/s390x/ccw-device.h             |   2 +
 hw/s390x/ipl.h                    | 123 +--------
 include/hw/s390x/ipl/qipl.h       | 126 +++++++++
 pc-bios/s390-ccw/bootmap.h        |  19 +-
 pc-bios/s390-ccw/cio.h            |   2 +
 pc-bios/s390-ccw/dasd-ipl.h       |   2 +-
 pc-bios/s390-ccw/iplb.h           | 107 ++------
 pc-bios/s390-ccw/libc.h           |  89 ------
 pc-bios/s390-ccw/s390-ccw.h       |  37 +--
 pc-bios/s390-ccw/virtio.h         |   3 +-
 hw/s390x/ccw-device.c             |  46 ++++
 hw/s390x/ipl.c                    | 279 +++++++++----------
 hw/s390x/s390-virtio-ccw.c        |  28 +-
 hw/s390x/sclp.c                   |   3 +-
 pc-bios/s390-ccw/bootmap.c        | 442 ++++++++++++++++++++----------
 pc-bios/s390-ccw/cio.c            |  81 +++---
 pc-bios/s390-ccw/dasd-ipl.c       |  71 ++---
 pc-bios/s390-ccw/jump2ipl.c       |  23 +-
 pc-bios/s390-ccw/libc.c           |  88 ------
 pc-bios/s390-ccw/main.c           | 100 ++++---
 pc-bios/s390-ccw/menu.c           |  51 ++--
 pc-bios/s390-ccw/netmain.c        |  39 ++-
 pc-bios/s390-ccw/sclp.c           |   7 +-
 pc-bios/s390-ccw/virtio-blkdev.c  |  14 +-
 pc-bios/s390-ccw/virtio-net.c     |   7 +-
 pc-bios/s390-ccw/virtio-scsi.c    | 165 +++++++----
 pc-bios/s390-ccw/virtio.c         |  67 +++--
 target/s390x/diag.c               |   9 +-
 tests/qtest/cdrom-test.c          |  24 ++
 pc-bios/meson.build               |   1 -
 pc-bios/s390-ccw/Makefile         |  69 ++++-
 pc-bios/s390-netboot.img          | Bin 67232 -> 0 bytes
 35 files changed, 1150 insertions(+), 1072 deletions(-)
 delete mode 100644 pc-bios/s390-ccw/netboot.mak
 create mode 100644 include/hw/s390x/ipl/qipl.h
 delete mode 100644 pc-bios/s390-ccw/libc.h
 delete mode 100644 pc-bios/s390-ccw/libc.c
 delete mode 100644 pc-bios/s390-netboot.img

-- 
2.45.1



             reply	other threads:[~2024-10-08  1:16 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-08  1:15 jrossi [this message]
2024-10-08  1:15 ` [PATCH v3 01/19] hw/s390x/ipl: Provide more memory to the s390-ccw.img firmware jrossi
2024-10-08  1:15 ` [PATCH v3 02/19] pc-bios/s390-ccw: Use the libc from SLOF and remove sclp prints jrossi
2024-10-08  1:15 ` [PATCH v3 03/19] pc-bios/s390-ccw: Link the netboot code into the main s390-ccw.img binary jrossi
2024-10-08  1:15 ` [PATCH v3 04/19] hw/s390x: Remove the possibility to load the s390-netboot.img binary jrossi
2024-10-08  1:15 ` [PATCH v3 05/19] pc-bios/s390-ccw: Merge netboot.mak into the main Makefile jrossi
2024-10-08  1:15 ` [PATCH v3 06/19] docs/system/s390x/bootdevices: Update the documentation about network booting jrossi
2024-10-08  1:15 ` [PATCH v3 07/19] pc-bios/s390-ccw: Remove panics from ISO IPL path jrossi
2024-10-09  9:46   ` Thomas Huth
2024-10-10  1:38     ` Jared Rossi
2024-10-08  1:15 ` [PATCH v3 08/19] pc-bios/s390-ccw: Remove panics from ECKD " jrossi
2024-10-09 10:53   ` Thomas Huth
2024-10-10  1:37     ` Jared Rossi
2024-10-10  5:45       ` Thomas Huth
2024-10-08  1:15 ` [PATCH v3 09/19] pc-bios/s390-ccw: Remove panics from SCSI " jrossi
2024-10-09 11:18   ` Thomas Huth
2024-10-10  1:37     ` Jared Rossi
2024-10-08  1:15 ` [PATCH v3 10/19] pc-bios/s390-ccw: Remove panics from DASD " jrossi
2024-10-08  1:15 ` [PATCH v3 11/19] pc-bios/s390-ccw: Remove panics from Netboot " jrossi
2024-10-09 11:35   ` Thomas Huth
2024-10-10  1:37     ` Jared Rossi
2024-10-08  1:15 ` [PATCH v3 12/19] pc-bios/s390-ccw: Enable failed IPL to return after error jrossi
2024-10-09 12:12   ` Thomas Huth
2024-10-08  1:15 ` [PATCH v3 13/19] include/hw/s390x: Add include files for common IPL structs jrossi
2024-10-08  1:15 ` [PATCH v3 14/19] s390x: Add individual loadparm assignment to CCW device jrossi
2024-10-08  1:15 ` [PATCH v3 15/19] hw/s390x: Build an IPLB for each boot device jrossi
2024-10-09 12:27   ` Thomas Huth
2024-10-08  1:15 ` [PATCH v3 16/19] s390x: Rebuild IPLB for SCSI device directly from DIAG308 jrossi
2024-10-08  1:15 ` [PATCH v3 17/19] pc-bios/s390x: Enable multi-device boot loop jrossi
2024-10-08 18:27   ` Jared Rossi
2024-10-08  1:15 ` [PATCH v3 18/19] docs/system: Update documentation for s390x IPL jrossi
2024-10-09 12:39   ` Thomas Huth
2024-10-08  1:15 ` [PATCH v3 19/19] tests/qtest: Add s390x boot order tests to cdrom-test.c jrossi
2024-10-09 12:48   ` Thomas Huth
2024-10-10  1:37     ` Jared Rossi
2024-10-10  5:46       ` Thomas Huth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241008011552.2645520-1-jrossi@linux.ibm.com \
    --to=jrossi@linux.ibm.com \
    --cc=frankja@linux.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).