From: Christian Borntraeger <borntraeger@de.ibm.com>
To: Alexander Graf <agraf@suse.de>
Cc: qemu-devel@nongnu.org, Dominik Dingel <dingel@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] [PATCH 05/12] S390: ccw firmware: Add main program
Date: Tue, 23 Apr 2013 10:43:26 +0200 [thread overview]
Message-ID: <517649AE.20709@de.ibm.com> (raw)
In-Reply-To: <1366658298-9275-6-git-send-email-agraf@suse.de>
On 22/04/13 21:18, Alexander Graf wrote:
> This C file is the main driving piece of the s390 ccw firmware. It
> provides a search for a workable block device, sets it as the default
> to boot off of and boots from it.
>
> Signed-off-by: Alexander Graf <agraf@suse.de>
> ---
> pc-bios/s390-ccw/main.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 56 insertions(+), 0 deletions(-)
> create mode 100644 pc-bios/s390-ccw/main.c
>
> diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c
> new file mode 100644
> index 0000000..0913aac
> --- /dev/null
> +++ b/pc-bios/s390-ccw/main.c
> @@ -0,0 +1,56 @@
> +/*
> + * S390 virtio-ccw loading program
> + *
> + * Copyright (c) 2013 Alexander Graf <agraf@suse.de>
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2 or (at
> + * your option) any later version. See the COPYING file in the top-level
> + * directory.
> + */
> +
> +#include "s390-ccw.h"
> +
> +struct subchannel_id blk_schid;
> +char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
> +
> +void virtio_panic(const char *string)
> +{
> + sclp_print(string);
> + while (1) { }
> +}
> +
> +static void virtio_setup(void)
> +{
> + struct irb irb;
> + int i;
> + int r;
> + bool found = false;
> +
> + blk_schid.one = 1;
> +
> + for (i = 0; i < 0x10000; i++) {
> + blk_schid.sch_no = i;
> + r = tsch(blk_schid, &irb);
> + if (r != 3) {
> + if (virtio_is_blk(blk_schid)) {
> + found = true;
> + break;
> + }
> + }
> + }
> +
> + if (!found) {
> + virtio_panic("No virtio-blk device found!\n");
> + }
> +
> + virtio_setup_block(blk_schid);
> +}
> +
> +int main(void)
> +{
> + sclp_setup();
The sclp patch should probably be moved before this one...
> + virtio_setup();
> + if (zipl_load() < 0)
...as well as the bootmap loader
> + sclp_print("Failed to load OS from hard disk\n");
> + while (1) { }
This would waste host cpus spinning, no?
Please do a disabled wait. The easiest way might be a short assember routine:
.globl disabled_wait
disabled_wait:
larl %r1,disabled_wait_psw
lpswe 0(%r1)
.align 8
disabled_wait_psw:
.quad 0x0002000180000000,0x0000000000000000
next prev parent reply other threads:[~2013-04-23 8:43 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-22 19:18 [Qemu-devel] [PATCH 00/12] S390: Add virtio-ccw firmware Alexander Graf
2013-04-22 19:18 ` [Qemu-devel] [PATCH 01/12] S390: Make IPL reset address dynamic Alexander Graf
2013-04-22 19:18 ` [Qemu-devel] [PATCH 02/12] S390: IPL: Support ELF firmware Alexander Graf
2013-04-22 19:18 ` [Qemu-devel] [PATCH 03/12] S390: IPL: Use different firmware for different machines Alexander Graf
2013-04-22 19:18 ` [Qemu-devel] [PATCH 04/12] S390: ccw firmware: Add start assembly Alexander Graf
2013-04-22 19:18 ` [Qemu-devel] [PATCH 05/12] S390: ccw firmware: Add main program Alexander Graf
2013-04-23 8:43 ` Christian Borntraeger [this message]
2013-04-23 8:58 ` Cornelia Huck
2013-04-23 11:35 ` Alexander Graf
2013-04-23 11:51 ` Cornelia Huck
2013-04-22 19:18 ` [Qemu-devel] [PATCH 06/12] S390: ccw firmware: Add sclp output Alexander Graf
2013-04-22 19:18 ` [Qemu-devel] [PATCH 07/12] S390: ccw firmware: Add virtio device drivers Alexander Graf
2013-04-23 11:24 ` Cornelia Huck
2013-04-22 19:18 ` [Qemu-devel] [PATCH 08/12] S390: ccw firmware: Add glue header Alexander Graf
2013-04-22 19:18 ` [Qemu-devel] [PATCH 09/12] S390: ccw firmware: Add bootmap interpreter Alexander Graf
2013-04-22 19:18 ` [Qemu-devel] [PATCH 10/12] S390: ccw firmware: Add Makefile Alexander Graf
2013-04-23 10:31 ` Christian Borntraeger
2013-04-22 19:18 ` [Qemu-devel] [PATCH 11/12] S390: ccw firmware: Add compiled blob Alexander Graf
2013-04-22 19:18 ` [Qemu-devel] [PATCH 12/12] S390: CCW: Use new, working firmware by default Alexander Graf
2013-04-23 9:20 ` [Qemu-devel] [PATCH 00/12] S390: Add virtio-ccw firmware Christian Borntraeger
2013-04-23 11:38 ` Alexander Graf
2013-04-23 11:23 ` [Qemu-devel] [PATCH 0/4] updates for s390-ccw.img Christian Borntraeger
2013-04-23 11:23 ` [Qemu-devel] [PATCH 1/4] s390-ccw.img: replace while loop with a disabled wait on s390 bios Christian Borntraeger
2013-04-23 11:23 ` [Qemu-devel] [PATCH 2/4] s390-ccw.img: build s390-ccw rom on s3900 system by default Christian Borntraeger
2013-04-23 11:23 ` [Qemu-devel] [PATCH 3/4] s390-ccw.img: Fix compile warning in s390 ccw virtio code Christian Borntraeger
2013-04-23 11:31 ` Alexander Graf
2013-04-23 11:45 ` Christian Borntraeger
2013-04-26 6:38 ` Alexander Graf
2013-04-23 11:23 ` [Qemu-devel] [PATCH 4/4] s390-ccw.img: Take care of the elf->img transition Christian Borntraeger
2013-04-23 11:33 ` [Qemu-devel] [PATCH 0/4] updates for s390-ccw.img Alexander Graf
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=517649AE.20709@de.ibm.com \
--to=borntraeger@de.ibm.com \
--cc=agraf@suse.de \
--cc=dingel@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 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.