qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 00/11] Implement network booting in the s390-


From: Thomas Huth
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
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0

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 via email to

[Prev in Thread] Current Thread [Next in Thread]