All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: qemu-devel@nongnu.org
Cc: Christian Borntraeger <borntraeger@de.ibm.com>,
	Dominik Dingel <dingel@linux.vnet.ibm.com>
Subject: [Qemu-devel] [PATCH 01/12] S390: Make IPL reset address dynamic
Date: Mon, 22 Apr 2013 21:18:07 +0200	[thread overview]
Message-ID: <1366658298-9275-2-git-send-email-agraf@suse.de> (raw)
In-Reply-To: <1366658298-9275-1-git-send-email-agraf@suse.de>

We can have different load addresses for different blobs we boot with.
Make the reset IP dynamic, so that we can handle things more flexibly.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/s390x/ipl.c |   22 +++++++++++-----------
 1 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
index 206d552..c43dfcd 100644
--- a/hw/s390x/ipl.c
+++ b/hw/s390x/ipl.c
@@ -48,8 +48,9 @@ typedef struct S390IPLClass {
 typedef struct S390IPLState {
     /*< private >*/
     SysBusDevice parent_obj;
-    /*< public >*/
+    uint64_t start_addr;
 
+    /*< public >*/
     char *kernel;
     char *initrd;
     char *cmdline;
@@ -82,6 +83,7 @@ static int s390_ipl_init(SysBusDevice *dev)
 
         bios_filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
         bios_size = load_image_targphys(bios_filename, ZIPL_IMAGE_START, 4096);
+        ipl->start_addr = ZIPL_IMAGE_START;
         g_free(bios_filename);
 
         if ((long)bios_size < 0) {
@@ -104,6 +106,13 @@ static int s390_ipl_init(SysBusDevice *dev)
         }
         /* we have to overwrite values in the kernel image, which are "rom" */
         strcpy(rom_ptr(KERN_PARM_AREA), ipl->cmdline);
+
+        /*
+         * we can not rely on the ELF entry point, since up to 3.2 this
+         * value was 0x800 (the SALIPL loader) and it wont work. For
+         * all (Linux) cases 0x10000 (KERN_IMAGE_START) should be fine.
+         */
+        ipl->start_addr = KERN_IMAGE_START;
     }
     if (ipl->initrd) {
         ram_addr_t initrd_offset, initrd_size;
@@ -138,16 +147,7 @@ static void s390_ipl_reset(DeviceState *dev)
 {
     S390IPLState *ipl = S390_IPL(dev);
 
-    if (ipl->kernel) {
-        /*
-         * we can not rely on the ELF entry point, since up to 3.2 this
-         * value was 0x800 (the SALIPL loader) and it wont work. For
-         * all (Linux) cases 0x10000 (KERN_IMAGE_START) should be fine.
-         */
-        return s390_ipl_cpu(KERN_IMAGE_START);
-    } else {
-        return s390_ipl_cpu(ZIPL_IMAGE_START);
-    }
+    s390_ipl_cpu(ipl->start_addr);
 }
 
 static void s390_ipl_class_init(ObjectClass *klass, void *data)
-- 
1.6.0.2

  reply	other threads:[~2013-04-22 19:19 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 ` Alexander Graf [this message]
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
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=1366658298-9275-2-git-send-email-agraf@suse.de \
    --to=agraf@suse.de \
    --cc=borntraeger@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.