qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>,
	qemu-devel@nongnu.org, Cornelia Huck <cohuck@redhat.com>
Cc: Alexander Graf <agraf@suse.de>,
	Farhan Ali <alifm@linux.vnet.ibm.com>,
	David Hildenbrand <david@redhat.com>,
	Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>,
	Alexey Kardashevskiy <aik@ozlabs.ru>
Subject: Re: [Qemu-devel] [PATCH v4 00/11] Implement network booting in the s390-ccw BIOS
Date: Wed, 12 Jul 2017 12:53:23 +0200	[thread overview]
Message-ID: <d81c6ea2-beb1-12bf-c19b-eb8180f26a59@redhat.com> (raw)
In-Reply-To: <2efa5d82-3cb2-ef8a-53b0-54a630637d98@de.ibm.com>

On 12.07.2017 10:33, Christian Borntraeger wrote:
> On 07/11/2017 03:56 PM, Thomas Huth wrote:
>> 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.
>>
>> 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     |  51 ++++++
>>  pc-bios/s390-ccw/netmain.c       | 362 +++++++++++++++++++++++++++++++++++++++
>>  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, 1011 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
>>
> 
> Was going to apply but then I updated the slof thing but building fails. Not sure yet why.
> 
> In file included from /home/cborntra/REPOS/qemu/roms/SLOF/lib/libc/ctype/isdigit.c:13:0:
> /home/cborntra/REPOS/qemu/roms/SLOF/lib/libc/ctype/isdigit.c:15:17: error: expected ‘)’ before ‘ch’
>  int isdigit(int ch)

What a bummer! Sorry, I've only cross-compiled the s390-ccw BIOS so far,
and that worked fine (since s390x machines are a little bit hard to get
here), but seems like there is still something ugly going on when you
build the code natively ... likely somethings wrong in the Makefile ...
I'll try to figure it out ...

 Thomas

  reply	other threads:[~2017-07-12 10:53 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-11 13:56 [Qemu-devel] [PATCH v4 00/11] Implement network booting in the s390-ccw BIOS Thomas Huth
2017-07-11 13:56 ` [Qemu-devel] [PATCH v4 01/11] pc-bios/s390-ccw: Move libc functions to separate header Thomas Huth
2017-07-11 13:56 ` [Qemu-devel] [PATCH v4 02/11] pc-bios/s390-ccw: Move ebc2asc to sclp.c Thomas Huth
2017-07-11 13:56 ` [Qemu-devel] [PATCH v4 03/11] pc-bios/s390-ccw: Move virtio-block related functions into a separate file Thomas Huth
2017-07-11 13:56 ` [Qemu-devel] [PATCH v4 04/11] pc-bios/s390-ccw: Add a write() function for stdio Thomas Huth
2017-07-11 13:56 ` [Qemu-devel] [PATCH v4 05/11] pc-bios/s390-ccw: Move byteswap functions to a separate header Thomas Huth
2017-07-11 13:56 ` [Qemu-devel] [PATCH v4 06/11] pc-bios/s390-ccw: Remove unused structs from virtio.h Thomas Huth
2017-07-11 14:16   ` Cornelia Huck
2017-07-11 13:56 ` [Qemu-devel] [PATCH v4 07/11] pc-bios/s390-ccw: Add code for virtio feature negotiation Thomas Huth
2017-07-11 14:23   ` Cornelia Huck
2017-07-12  6:56     ` Thomas Huth
2017-07-11 13:56 ` [Qemu-devel] [PATCH v4 08/11] roms/SLOF: Update submodule to latest status Thomas Huth
2017-07-11 13:56 ` [Qemu-devel] [PATCH v4 09/11] pc-bios/s390-ccw: Add core files for the network bootloading program Thomas Huth
2017-07-11 14:30   ` Cornelia Huck
2017-07-11 13:56 ` [Qemu-devel] [PATCH v4 10/11] pc-bios/s390-ccw: Add virtio-net driver code Thomas Huth
2017-07-11 14:32   ` Cornelia Huck
2017-07-11 13:56 ` [Qemu-devel] [PATCH v4 11/11] pc-bios/s390-ccw: Link libnet into the netboot image and do the TFTP load Thomas Huth
2017-07-11 14:33   ` Cornelia Huck
2017-07-11 14:59 ` [Qemu-devel] [PATCH v4 00/11] Implement network booting in the s390-ccw BIOS no-reply
2017-07-12  8:33 ` Christian Borntraeger
2017-07-12 10:53   ` Thomas Huth [this message]
2017-07-12 11:08     ` Viktor Mihajlovski

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=d81c6ea2-beb1-12bf-c19b-eb8180f26a59@redhat.com \
    --to=thuth@redhat.com \
    --cc=agraf@suse.de \
    --cc=aik@ozlabs.ru \
    --cc=alifm@linux.vnet.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=mihajlov@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    /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).