All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 00/16] s390: vfio-ccw dasd ipl support
@ 2019-03-01 18:59 Jason J. Herne
  2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 01/16] s390 vfio-ccw: Add bootindex property and IPLB data Jason J. Herne
                   ` (28 more replies)
  0 siblings, 29 replies; 71+ messages in thread
From: Jason J. Herne @ 2019-03-01 18:59 UTC (permalink / raw)
  To: qemu-devel, qemu-s390x, cohuck, pasic, alifm, borntraeger

This is to support booting from vfio-ccw dasd devices. We basically implement
the real hardware ipl procedure. This allows for booting Linux guests on
vfio-ccw devices.

vfio-ccw's channel program prefetch algorithm complicates ipl because most ipl
channel programs dynamically modify themselves. Details on the ipl process and
how we worked around this issue can be found in docs/devel/s390-dasd-ipl.txt.

Note to Connie: In the v2 review you mentioned some issues with the error
handling code involving printing of the eckd dasd sense data. I've addressed
those concerns in a new patch just to make those changes clearly stand out from
the rest of the code. I can squash them into patches 10, 11, and 15 if you
prefer that to having it as a separate patch.

Changelog
==========
v3
01/16: s390 vfio-ccw: Add bootindex property and IPLB data
- Refactored s390_get_ccw_device() to return device type
- Made VFIOCCWDevice private
- Fixed copyright date
- ipl.c: Remove unneeded cast
- Add new file to maintainers

05/16: s390-bios: Factor finding boot device out of virtio code path
- main.c: Remove redundant condition from assert statement

06/16: s390-bios: Clean up cio.h
- Switch formating of bit fields to make checkpatch happy

07/16: s390-bios: Decouple channel i/o logic from virtio
- Fixed copyright statement
- Remove unneeded include in virtio-blkdev.c

08/16: s390-bios: Map low core memory
- Removed packed attribute from psw structs, added static size asserts
- Fix copyright date

09/16: s390-bios: ptr2u32 and u32toptr
- Move new functions out of stdlib.h and into helper.h

10/16: s390-bios: Support for running format-0/1 channel programs
- Rework do_cio (create __do_cio) to avoid possible infinite recursion in error
  cases.
- Switch formating of bit fields to make checkpatch happy
- cio.c: Include helper.c for new pointer conversion functions
- cio.c: Rename sense_data_eckd_dasd to SenseDataEckdDasd

11/16: s390-bios: cio error handling
- Only print dasd sense data if we have a dasd device, or on initial query of
  control unit type
- Fixed ccw casting

12/16: s390-bios: Refactor virtio to run channel programs via cio
- Include helper.c for new pointer conversion functions

15/16: s390-bios: Support booting from real dasd device
- dasd-ipl.c: Fix sizeof's
- s390-dasd-ipl.c: Fix section "How this all pertains to QEMU" to detail
  vfio-ccw driver's role.
- s390-dasd-ipl.c: Replace all instances of Qemu with QEMU
- Added docs/devel/s390-dasd-ipl.txt to MAINTAINERS
- s390-dasd-ipl.c: Include helper.c for new pointer conversion functions

Jason J. Herne (16):
  s390 vfio-ccw: Add bootindex property and IPLB data
  s390-bios: decouple cio setup from virtio
  s390-bios: decouple common boot logic from virtio
  s390-bios: Extend find_dev() for non-virtio devices
  s390-bios: Factor finding boot device out of virtio code path
  s390-bios: Clean up cio.h
  s390-bios: Decouple channel i/o logic from virtio
  s390-bios: Map low core memory
  s390-bios: ptr2u32 and u32toptr
  s390-bios: Support for running format-0/1 channel programs
  s390-bios: cio error handling
  s390-bios: Refactor virtio to run channel programs via cio
  s390-bios: Use control unit type to determine boot method
  s390-bios: Add channel command codes/structs needed for dasd-ipl
  s390-bios: Support booting from real dasd device
  s390-bios: dasd-ipl: Use control unit type to customize error data

 MAINTAINERS                  |   2 +
 docs/devel/s390-dasd-ipl.txt | 133 ++++++++++++++
 hw/s390x/ipl.c               |  39 +++-
 hw/s390x/s390-ccw.c          |   9 +
 hw/vfio/ccw.c                |   2 +-
 include/hw/s390x/s390-ccw.h  |   1 +
 include/hw/s390x/vfio-ccw.h  |  28 +++
 pc-bios/s390-ccw/Makefile    |   2 +-
 pc-bios/s390-ccw/cio.c       | 418 +++++++++++++++++++++++++++++++++++++++++++
 pc-bios/s390-ccw/cio.h       | 307 +++++++++++++++++++++++--------
 pc-bios/s390-ccw/dasd-ipl.c  | 250 ++++++++++++++++++++++++++
 pc-bios/s390-ccw/dasd-ipl.h  |  16 ++
 pc-bios/s390-ccw/helper.h    |  16 ++
 pc-bios/s390-ccw/libc.h      |  11 ++
 pc-bios/s390-ccw/main.c      | 159 ++++++++++------
 pc-bios/s390-ccw/netboot.mak |   2 +-
 pc-bios/s390-ccw/netmain.c   |   1 +
 pc-bios/s390-ccw/s390-arch.h | 115 ++++++++++++
 pc-bios/s390-ccw/s390-ccw.h  |  10 +-
 pc-bios/s390-ccw/start.S     |  31 ++++
 pc-bios/s390-ccw/virtio.c    |  74 +++-----
 tests/boot-serial-test.c     |   2 +-
 22 files changed, 1422 insertions(+), 206 deletions(-)
 create mode 100644 docs/devel/s390-dasd-ipl.txt
 create mode 100644 include/hw/s390x/vfio-ccw.h
 create mode 100644 pc-bios/s390-ccw/cio.c
 create mode 100644 pc-bios/s390-ccw/dasd-ipl.c
 create mode 100644 pc-bios/s390-ccw/dasd-ipl.h
 create mode 100644 pc-bios/s390-ccw/helper.h
 create mode 100644 pc-bios/s390-ccw/s390-arch.h

--
2.7.4

^ permalink raw reply	[flat|nested] 71+ messages in thread

end of thread, other threads:[~2019-03-08  9:21 UTC | newest]

Thread overview: 71+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-01 18:59 [Qemu-devel] [PATCH v3 00/16] s390: vfio-ccw dasd ipl support Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 01/16] s390 vfio-ccw: Add bootindex property and IPLB data Jason J. Herne
2019-03-04 13:40   ` Cornelia Huck
2019-03-06 14:55     ` Jason J. Herne
2019-03-06 15:27       ` Cornelia Huck
2019-03-06 16:28         ` Jason J. Herne
2019-03-06 17:31           ` Cornelia Huck
2019-03-04 16:09   ` Farhan Ali
2019-03-06 15:16     ` Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 02/16] s390-bios: decouple cio setup from virtio Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 03/16] s390-bios: decouple common boot logic " Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 04/16] s390-bios: Extend find_dev() for non-virtio devices Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 05/16] s390-bios: Factor finding boot device out of virtio code path Jason J. Herne
2019-03-04 17:07   ` Cornelia Huck
2019-03-04 19:26     ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2019-03-05  8:38       ` Cornelia Huck
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 06/16] s390-bios: Clean up cio.h Jason J. Herne
2019-03-04 17:23   ` Cornelia Huck
2019-03-05  5:51   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2019-03-06 18:42     ` Jason J. Herne
2019-03-07  8:08       ` Cornelia Huck
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 07/16] s390-bios: Decouple channel i/o logic from virtio Jason J. Herne
2019-03-04 17:28   ` Cornelia Huck
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 08/16] s390-bios: Map low core memory Jason J. Herne
2019-03-04 17:46   ` Cornelia Huck
2019-03-05  6:27   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2019-03-06 19:28     ` Jason J. Herne
2019-03-07  8:11       ` Cornelia Huck
2019-03-06 19:42     ` Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 09/16] s390-bios: ptr2u32 and u32toptr Jason J. Herne
2019-03-05  7:22   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2019-03-07 14:11     ` Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 10/16] s390-bios: Support for running format-0/1 channel programs Jason J. Herne
2019-03-04 18:25   ` Cornelia Huck
2019-03-07 19:25     ` Jason J. Herne
2019-03-08  9:19       ` Cornelia Huck
2019-03-05  7:32   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 11/16] s390-bios: cio error handling Jason J. Herne
2019-03-04 18:35   ` Cornelia Huck
2019-03-07 19:31     ` Jason J. Herne
2019-03-08  9:21       ` Cornelia Huck
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 12/16] s390-bios: Refactor virtio to run channel programs via cio Jason J. Herne
2019-03-05 12:30   ` Cornelia Huck
2019-03-07 15:09     ` Jason J. Herne
2019-03-07 15:37       ` Cornelia Huck
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 13/16] s390-bios: Use control unit type to determine boot method Jason J. Herne
2019-03-05 12:27   ` Cornelia Huck
2019-03-07 16:27     ` Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 14/16] s390-bios: Add channel command codes/structs needed for dasd-ipl Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 15/16] s390-bios: Support booting from real dasd device Jason J. Herne
2019-03-05 13:03   ` Cornelia Huck
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 16/16] s390-bios: dasd-ipl: Use control unit type to customize error data Jason J. Herne
2019-03-04 17:02   ` [Qemu-devel] [qemu-s390x] " Eric Farman
2019-03-07 14:38     ` Jason J. Herne
2019-03-07 18:15       ` Eric Farman
2019-03-07 18:26         ` Jason J. Herne
2019-03-04 17:51   ` [Qemu-devel] " Cornelia Huck
2019-03-01 21:26 ` [Qemu-devel] [PATCH v3 00/16] s390: vfio-ccw dasd ipl support no-reply
2019-03-01 21:30 ` no-reply
2019-03-01 21:35 ` no-reply
2019-03-01 21:38 ` no-reply
2019-03-01 21:45 ` no-reply
2019-03-01 21:49 ` no-reply
2019-03-04 16:24 ` Cornelia Huck
2019-03-04 17:53   ` Christian Borntraeger
2019-03-04 17:28 ` no-reply
2019-03-04 17:51 ` no-reply
2019-03-05  5:55 ` no-reply
2019-03-05  7:30 ` no-reply
2019-03-05  8:42 ` no-reply
2019-03-05 13:08 ` no-reply

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.