From: Alexander Graf <agraf@suse.de>
To: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>,
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 13:35:47 +0200 [thread overview]
Message-ID: <51767213.4050005@suse.de> (raw)
In-Reply-To: <20130423105858.45feae1d@gondolin>
On 04/23/2013 10:58 AM, Cornelia Huck wrote:
> On Mon, 22 Apr 2013 21:18:11 +0200
> Alexander Graf<agraf@suse.de> 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);
> You want to do a stsch() loop here, not a tsch() loop :)
What does stsch buy us over tsch?
> As a bonus, you can exit the loop on cc == 3.
>
> r = stsch(blk_schid,&schib);
> if (r == 3) {
> break;
> }
>
>> + if (r != 3) {
> if (schib.pmcw.dnv) {
>
>> + if (virtio_is_blk(blk_schid)) {
>> + found = true;
>> + break;
>> + }
>> + }
>> + }
>> +
>> + if (!found) {
>> + virtio_panic("No virtio-blk device found!\n");
>> + }
>> +
>> + virtio_setup_block(blk_schid);
> The virtio_is_blk() and virtio_setup_block() functions should go into a
> preceding patch, no?
The code doesn't get compiled before the end of the series anyway, so
ordering might be slightly off :)
Alex
next prev parent reply other threads:[~2013-04-23 11:35 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
2013-04-23 8:58 ` Cornelia Huck
2013-04-23 11:35 ` Alexander Graf [this message]
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=51767213.4050005@suse.de \
--to=agraf@suse.de \
--cc=borntraeger@de.ibm.com \
--cc=cornelia.huck@de.ibm.com \
--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.