From: David Gibson <david@gibson.dropbear.id.au>
To: Andrew Jones <drjones@redhat.com>
Cc: dgibson@redhat.com, thuth@redhat.com, qemu-devel@nongnu.org,
agraf@suse.de
Subject: Re: [Qemu-devel] [RFC PATCH 2/2] spapr: -kernel: allow linking with specified addr
Date: Mon, 20 Jul 2015 15:01:05 +1000 [thread overview]
Message-ID: <20150720050105.GF19189@voom.fritz.box> (raw)
In-Reply-To: <1437134200-13086-3-git-send-email-drjones@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2093 bytes --]
On Fri, Jul 17, 2015 at 01:56:40PM +0200, Andrew Jones wrote:
> I've started playing with adding ppc support to kvm-unit-tests,
> using spapr for the machine model. I wanted to link the unit test
> at 0x400000 to match qemu's load address, making the unit test
> startup code simpler, but ended up with 0x800000 instead, due to
> how translate_kernel_address works. The translation makes sense
> for how Linux kernels are linked (always at 0xc0000000 or
> 0xc000000000000000), but for the unit test case we need to avoid
> adding the offset.
>
> Signed-off-by: Andrew Jones <drjones@redhat.com>
> ---
> Big RFC because I don't know if the "always at 0xc..." statement
> is 100% true for Linux, nor if this patch would break other stuff...
Yeah, I'm pretty dubious about this too, especially since I don't
entirely grasp what the load_elf() translation function is all about
anyway.
At least 32-bit Linux on powerpc can have a different link offset -
it's actually a config option. I can't see any practical purpose for
a link address that has any bits in the 0xfffffff mask though.
That said, I suspect making your unit test assume a fixed load address
may not be the best idea - qemu or SLOF could change in future to move
things about, so it might be more robust to have your test copy itself
to address it wants to be at before executing.
>
> hw/ppc/spapr.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index c1cbf3387ae0c..4f1548f5168db 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -832,6 +832,9 @@ static void spapr_finalize_fdt(sPAPRMachineState *spapr,
>
> static uint64_t translate_kernel_address(void *opaque, uint64_t addr)
> {
> + if ((addr & 0x0fffffff) == addr) {
> + return addr;
> + }
> return (addr & 0x0fffffff) + KERNEL_LOAD_ADDR;
> }
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2015-07-20 5:01 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-17 11:56 [Qemu-devel] [RFC PATCH 0/2] spapr: changes for kvm-unit-tests Andrew Jones
2015-07-17 11:56 ` [Qemu-devel] [RFC PATCH 1/2] spapr: add dumpdtb support Andrew Jones
2015-07-20 4:02 ` David Gibson
2015-07-20 13:20 ` Andrew Jones
2015-07-17 11:56 ` [Qemu-devel] [RFC PATCH 2/2] spapr: -kernel: allow linking with specified addr Andrew Jones
2015-07-20 5:01 ` David Gibson [this message]
2015-07-20 6:47 ` Thomas Huth
2015-07-20 13:09 ` Andrew Jones
2015-07-21 7:10 ` Thomas Huth
2015-07-21 7:44 ` Andrew Jones
2015-07-21 7:07 ` Andrew Jones
2015-07-20 4:32 ` [Qemu-devel] [RFC PATCH 0/2] spapr: changes for kvm-unit-tests David Gibson
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=20150720050105.GF19189@voom.fritz.box \
--to=david@gibson.dropbear.id.au \
--cc=agraf@suse.de \
--cc=dgibson@redhat.com \
--cc=drjones@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
/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.