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
Cc: Alexander Graf <agraf@suse.de>,
	Farhan Ali <alifm@linux.vnet.ibm.com>,
	David Hildenbrand <david@redhat.com>,
	Jens Freimann <jfreiman@redhat.com>,
	Eric Farman <farman@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] [RFC PATCH 00/14] Implement network booting directly into the s390-ccw BIOS
Date: Wed, 28 Jun 2017 10:59:17 +0200	[thread overview]
Message-ID: <1aed85a7-fd8a-0623-2841-1a19f533957e@redhat.com> (raw)
In-Reply-To: <235dac52-673a-6b00-bacf-175dcff82933@de.ibm.com>

On 28.06.2017 09:43, Christian Borntraeger wrote:
> Interesting work, thanks for giving it a ry.
> 
> On 06/27/2017 01:48 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 network booting via DHCP and TFTP
>> directly into the s390-ccw firmware 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.
> 
> What is the licensing situation with SLOF?

All its code is licensed under the 3-Clause BSD License:

 https://github.com/aik/SLOF/blob/master/LICENSE

AFAIK it should be fine to use such code in GPL-ed sources like the
s390-ccw firmware, shouldn't it?

>> - Is it OK to require loading an .INS file first? Or does anybody
>>   have a better idea how to load multiple files (kernel, initrd,
>>   etc. ...)?
> 
> I agree with Viktor that supporting a pxelinux config file is probably the
> better way, since this is what all exisiting servers admins understand. For
> the time being Linux will be the most relevant guest and requiring changes in
> management infrastructure will certainly make things very hard.

I have to say, the more I read about pxelinux, the more I think we
should *not* directly support this in the firmware. pxelinux is clearly
a secondary stage bootloader, with a rather complex config file, and
features like config file name guessing via MAC-address or IP-address
... if we really want to support that on s390x, too, I think it should
stay in a external binary instead, and not directly incorporated into
the s390-ccw firmware (so that users finally have the choice whether
they want to use pxelinux-style config files or grub2 or something
different one day).

I guess the .INS file parsing in firmware was already a bad idea... all
other typical firmware implementations can also only load one file - and
if you need to load multiple files, you've got to use a secondary stage
bootloader like pxelinux, yaboot or grub2. So if we agree to add network
booting directly into the s390-ccw firmware, I think we should do the
same here and only support loading of one file (without an additional
config file). But then the question is, of course, whether it makes
sense to add that support to the firmware at all, or whether we should
simply continue with the current "s390-netboot.img" secondary-loader
approach...

>> - The code from SLOF uses a different coding style (TABs instead
>>   of space) ... is it OK to keep that coding style here so we
>>   can share patches between SLOF and s390-ccw more easily?
> 
> Is it possible to enhance SLOF and then link to the existing SLOF code?

I already submitted some of the clean-up patches to the SLOF mailing
list, and Alexey has merged them now, e.g.:

 https://github.com/aik/SLOF/commit/140c3f39db4ce4c0

And as I already mentioned in my reply to David, it should theoretically
be possible to use the code from the roms/SLOF submodule in QEMU ...
but then we've got to deal with sudden changes in the SLOF repository
which might cause unwanted problems in the s390-ccw firmware. I guess we
could give it a try (the libc code is very, very stable in SLOF, and the
libnet code also changes only very seldomly) - of course only if we
really decide that we want to have TFTP support directly in the
firmware. If we rather want to continue with the s390-netboot.img
approach instead, I have got to reconsider whether I continue with my
efforts by putting that stuff into an external binary, or whether it
makes more sense to look into porting pxelinux, grub2 or petitboot
instead...

 Thomas

  reply	other threads:[~2017-06-28  8:59 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-27 11:48 [Qemu-devel] [RFC PATCH 00/14] Implement network booting directly into the s390-ccw BIOS Thomas Huth
2017-06-27 11:48 ` [Qemu-devel] [RFC PATCH 01/14] pc-bios/s390-ccw: Add the libc from the SLOF firmware Thomas Huth
2017-06-27 15:32   ` David Hildenbrand
2017-06-27 22:14     ` Thomas Huth
2017-06-27 11:48 ` [Qemu-devel] [RFC PATCH 02/14] pc-bios/s390-ccw: Start using the libc from SLOF Thomas Huth
2017-06-27 11:48 ` [Qemu-devel] [RFC PATCH 03/14] pc-bios/s390-ccw: Add a write() function for stdio Thomas Huth
2017-06-27 11:48 ` [Qemu-devel] [RFC PATCH 04/14] pc-bios/s390-ccw: Add implementation of sbrk() Thomas Huth
2017-06-27 11:48 ` [Qemu-devel] [RFC PATCH 05/14] pc-bios/s390-ccw: Add the TFTP network loading stack from SLOF Thomas Huth
2017-06-27 11:48 ` [Qemu-devel] [RFC PATCH 06/14] libnet: Remove remainders of netsave code Thomas Huth
2017-06-27 11:48 ` [Qemu-devel] [RFC PATCH 07/14] libnet: Rework error message printing Thomas Huth
2017-06-27 11:48 ` [Qemu-devel] [RFC PATCH 08/14] libnet: Refactor some code of netload() into a separate function Thomas Huth
2017-06-27 11:48 ` [Qemu-devel] [RFC PATCH 09/14] pc-bios/s390-ccw: Make the basic libnet code compilable Thomas Huth
2017-06-27 11:48 ` [Qemu-devel] [RFC PATCH 10/14] pc-bios/s390-ccw: Add timer code for the libnet Thomas Huth
2017-06-27 11:48 ` [Qemu-devel] [RFC PATCH 11/14] pc-bios/s390-ccw: Add virtio-net driver code Thomas Huth
2017-06-27 11:48 ` [Qemu-devel] [RFC PATCH 12/14] pc-bios/s390-ccw: Load file via an intermediate .INS file Thomas Huth
2017-06-27 11:48 ` [Qemu-devel] [RFC PATCH 13/14] pc-bios/s390-ccw: Allow loading to address 0 Thomas Huth
2017-06-27 11:48 ` [Qemu-devel] [RFC PATCH 14/14] pc-bios/s390-ccw: Wire up the netload code Thomas Huth
2017-06-27 15:41 ` [Qemu-devel] [RFC PATCH 00/14] Implement network booting directly into the s390-ccw BIOS David Hildenbrand
2017-06-27 15:50 ` Viktor Mihajlovski
2017-06-27 21:40   ` Thomas Huth
2017-06-28  7:28     ` Viktor Mihajlovski
2017-06-28  8:02       ` Thomas Huth
2017-06-28 10:56         ` Thomas Huth
2017-06-28 15:02           ` Viktor Mihajlovski
2017-06-29  7:58             ` Thomas Huth
2017-06-29  8:10               ` Viktor Mihajlovski
2017-06-27 16:50 ` Farhan Ali
2017-06-28  7:34   ` Thomas Huth
2017-06-27 21:15 ` Alexander Graf
2017-06-27 21:56   ` Thomas Huth
2017-06-28  8:06     ` Gerd Hoffmann
2017-06-28  7:43 ` Christian Borntraeger
2017-06-28  8:59   ` Thomas Huth [this message]
2017-06-29  8:17     ` Thomas Huth
2017-06-29  8:39       ` Christian Borntraeger

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=1aed85a7-fd8a-0623-2841-1a19f533957e@redhat.com \
    --to=thuth@redhat.com \
    --cc=agraf@suse.de \
    --cc=alifm@linux.vnet.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=david@redhat.com \
    --cc=farman@linux.vnet.ibm.com \
    --cc=jfreiman@redhat.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).