qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v5 00/11] Implement network booting in the s390-ccw BIOS
@ 2017-07-12 12:49 Thomas Huth
  2017-07-12 12:49 ` [Qemu-devel] [PATCH v5 01/11] pc-bios/s390-ccw: Move libc functions to separate header Thomas Huth
                   ` (13 more replies)
  0 siblings, 14 replies; 17+ messages in thread
From: Thomas Huth @ 2017-07-12 12:49 UTC (permalink / raw)
  To: qemu-devel, Christian Borntraeger, Cornelia Huck
  Cc: Alexander Graf, Farhan Ali, David Hildenbrand, Viktor Mihajlovski

It's already possible to do a network boot of an s390x guest with an
external netboot image based on a Linux installation, but it would
be much more convenient if the s390-ccw firmware supported network
booting right out of the box, without the need to assemble such an
external image first.

This patch series now introduces a s390-netboot.img that can be used
for network booting via DHCP and TFTP by re-using the networking stack
from the SLOF firmware (see https://github.com/aik/SLOF/ for details),
and adds a driver for virtio-net-ccw devices.

The code can only be built if the roms/SLOF submodule has been checked
out (there is a sanity check for this in the Makefile). Once it has
been built, you can download a combined kernel + initrd image via TFTP
by starting QEMU for example with:

 qemu-system-s390x ... -device virtio-net,netdev=n1,bootindex=1 \
       -netdev user,id=n1,tftp=/path/to/tftp,bootfile=kernel.img

Note that this version does not support downloading via config
files (i.e. pxelinux config files or .INS config files) yet. This
will be added later.

v5:
 - Fixed problem when compiling the code natively on a s390x machine
   (do not try to re-use the Makefile.inc files from SLOF, and define
   our own rules instead)
 - Fixed typos that Cornelia discovered while reviewing v4

v4:
 - Cosmetic clean-ups according to the review feedback from v3
 - Fixed bug in the find_dev() function (spotted by Cornelia in v3)
 - Added an additional patch to remove some unused structs from
   virtio.h

v3:
 - Adressed the review feedback from v2
 - The last remaining SLOF patch has now been merged (big thanks to
   Alexey!), so not sending this as RFC anymore - it is ready now for
   integration, I think.

v2:
 - Put the network boot loader into a separate s390-netboot.img
   binary instead of linking it directly into the s390-ccw firmware.
 - Use the SLOF sources from the roms/SLOF/ submodule instead of
   copying them into the pc-bios/s390-ccw folder
 - Removed the .INS config file loading code for now - only support
   combined kernel + initrd images in this initial implementation.

Thomas Huth (11):
  pc-bios/s390-ccw: Move libc functions to separate header
  pc-bios/s390-ccw: Move ebc2asc to sclp.c
  pc-bios/s390-ccw: Move virtio-block related functions into a separate
    file
  pc-bios/s390-ccw: Add a write() function for stdio
  pc-bios/s390-ccw: Move byteswap functions to a separate header
  pc-bios/s390-ccw: Remove unused structs from virtio.h
  pc-bios/s390-ccw: Add code for virtio feature negotiation
  roms/SLOF: Update submodule to latest status
  pc-bios/s390-ccw: Add core files for the network bootloading program
  pc-bios/s390-ccw: Add virtio-net driver code
  pc-bios/s390-ccw: Link libnet into the netboot image and do the TFTP
    load

 pc-bios/s390-ccw/Makefile        |  13 +-
 pc-bios/s390-ccw/bootmap.c       |   2 +
 pc-bios/s390-ccw/bootmap.h       |  26 ---
 pc-bios/s390-ccw/bswap.h         |  30 ++++
 pc-bios/s390-ccw/libc.h          |  45 +++++
 pc-bios/s390-ccw/main.c          |  14 +-
 pc-bios/s390-ccw/netboot.mak     |  59 +++++++
 pc-bios/s390-ccw/netmain.c       | 361 +++++++++++++++++++++++++++++++++++++++
 pc-bios/s390-ccw/s390-ccw.h      |  33 +---
 pc-bios/s390-ccw/sclp.c          |  37 ++--
 pc-bios/s390-ccw/virtio-blkdev.c | 296 ++++++++++++++++++++++++++++++++
 pc-bios/s390-ccw/virtio-net.c    | 135 +++++++++++++++
 pc-bios/s390-ccw/virtio-scsi.c   |   1 +
 pc-bios/s390-ccw/virtio.c        | 306 ++++-----------------------------
 pc-bios/s390-ccw/virtio.h        |  46 ++---
 roms/SLOF                        |   2 +-
 16 files changed, 1018 insertions(+), 388 deletions(-)
 create mode 100644 pc-bios/s390-ccw/bswap.h
 create mode 100644 pc-bios/s390-ccw/libc.h
 create mode 100644 pc-bios/s390-ccw/netboot.mak
 create mode 100644 pc-bios/s390-ccw/netmain.c
 create mode 100644 pc-bios/s390-ccw/virtio-blkdev.c
 create mode 100644 pc-bios/s390-ccw/virtio-net.c

-- 
1.8.3.1

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

end of thread, other threads:[~2017-07-13 13:36 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-12 12:49 [Qemu-devel] [PATCH v5 00/11] Implement network booting in the s390-ccw BIOS Thomas Huth
2017-07-12 12:49 ` [Qemu-devel] [PATCH v5 01/11] pc-bios/s390-ccw: Move libc functions to separate header Thomas Huth
2017-07-12 12:49 ` [Qemu-devel] [PATCH v5 02/11] pc-bios/s390-ccw: Move ebc2asc to sclp.c Thomas Huth
2017-07-12 12:49 ` [Qemu-devel] [PATCH v5 03/11] pc-bios/s390-ccw: Move virtio-block related functions into a separate file Thomas Huth
2017-07-12 12:49 ` [Qemu-devel] [PATCH v5 04/11] pc-bios/s390-ccw: Add a write() function for stdio Thomas Huth
2017-07-12 12:49 ` [Qemu-devel] [PATCH v5 05/11] pc-bios/s390-ccw: Move byteswap functions to a separate header Thomas Huth
2017-07-12 12:49 ` [Qemu-devel] [PATCH v5 06/11] pc-bios/s390-ccw: Remove unused structs from virtio.h Thomas Huth
2017-07-12 12:49 ` [Qemu-devel] [PATCH v5 07/11] pc-bios/s390-ccw: Add code for virtio feature negotiation Thomas Huth
2017-07-12 12:49 ` [Qemu-devel] [PATCH v5 08/11] roms/SLOF: Update submodule to latest status Thomas Huth
2017-07-12 12:49 ` [Qemu-devel] [PATCH v5 09/11] pc-bios/s390-ccw: Add core files for the network bootloading program Thomas Huth
2017-07-12 12:49 ` [Qemu-devel] [PATCH v5 10/11] pc-bios/s390-ccw: Add virtio-net driver code Thomas Huth
2017-07-12 12:49 ` [Qemu-devel] [PATCH v5 11/11] pc-bios/s390-ccw: Link libnet into the netboot image and do the TFTP load Thomas Huth
2017-07-12 13:00 ` [Qemu-devel] [PATCH v5 00/11] Implement network booting in the s390-ccw BIOS Christian Borntraeger
2017-07-12 13:04   ` Thomas Huth
2017-07-12 13:23     ` Cornelia Huck
2017-07-12 13:42 ` no-reply
2017-07-13 13:36 ` Viktor Mihajlovski

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).