xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Daniel Kiper <daniel.kiper@oracle.com>
To: Vladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Cc: "jgross@suse.com" <jgross@suse.com>,
	"grub-devel@gnu.org" <grub-devel@gnu.org>,
	"eric.snowberg@oracle.com" <eric.snowberg@oracle.com>,
	"arvidjaar@gmail.com" <arvidjaar@gmail.com>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"cardoe@cardoe.com" <cardoe@cardoe.com>,
	"pgnet.dev@gmail.com" <pgnet.dev@gmail.com>,
	"roy.franz@linaro.org" <roy.franz@linaro.org>,
	"ning.sun@intel.com" <ning.sun@intel.com>,
	"david.vrabel@citrix.com" <david.vrabel@citrix.com>,
	"jbeulich@suse.com" <jbeulich@suse.com>,
	"stefano.stabellini@eu.citrix.com"
	<stefano.stabellini@eu.citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"qiaowei.ren@intel.com" <qiaowei.ren@intel.com>,
	"richard.l.maliszewski@intel.com"
	<richard.l.maliszewski@intel.com>,
	"gang.wei@intel.com" <gang.wei@intel.com>,
	"fu.wei@linaro.org" <fu.wei@linaro.org>,
	"seth.goldberg@oracle.com" <seth>
Subject: Re: [GRUB2 PATCH v3 4/4] multiboot2: Add support for relocatable images
Date: Mon, 14 Mar 2016 12:38:30 +0100	[thread overview]
Message-ID: <20160314113830.GQ3500__17318.7077431523$1457955659$gmane$org@olila.local.net-space.pl> (raw)
In-Reply-To: <CAEaD8JN7AsoaG+cAdxbRbLN8BgDMS0W5JDU9UpFok081tyxx2A@mail.gmail.com>

On Fri, Mar 11, 2016 at 05:13:19PM +0100, Vladimir 'phcoder' Serbinenko wrote:
> > > > +  if (relocatable)
> > > > +    {
> > > > +      if (base_addr > min_addr)
> > > > +       grub_multiboot_payload_eip += base_addr - min_addr;
> > > > +      else
> > > > +       grub_multiboot_payload_eip -= min_addr - base_addr;
> > > > +    }
> > > > +
> > > >
> > > Why is it relative to min_addr? Sounds like it should be just an offset
> >
> > Ugh... IIRC, it has meaning but I forgot what. I will check it.
> > However, this means that I must put comment here.
> >
>
> Is it possible that you have confused link address and minimal loading address?

Yep, you are right. Fortunately it is quite easy to fix and probably do not
require any changes in Xen image.

> How is entry usually specified in ELF?

IIRC, there is no such thing per se. However, I think that
we should calculate link base address using following formula:

link_base_addr = ~0;

for (i = 0; i < ehdr->e_phnum; i++)
  link_base_addr = min(link_base_addr, phdr(i)->p_paddr);

> How do you suggest it should be done in mb headers?

I think that we can use multiboot_header_tag_address.load_addr
as link_base_addr.

Daniel

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2016-03-14 11:39 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-02 16:51 [GRUB2 PATCH v3 0/4] multiboot2: Add two extensions Daniel Kiper
2016-03-02 16:51 ` [GRUB2 PATCH v3 1/4] i386/relocator: Add grub_relocator64_efi relocator Daniel Kiper
2016-03-10 20:23   ` Vladimir 'phcoder' Serbinenko
2016-03-11 13:23     ` Daniel Kiper
2016-03-11 15:41       ` Vladimir 'phcoder' Serbinenko
2016-03-11 15:42       ` Vladimir 'phcoder' Serbinenko
2016-03-11 16:40         ` Daniel Kiper
2016-03-02 16:51 ` [GRUB2 PATCH v3 2/4] multiboot2: Add tags used to pass ImageHandle to loaded image Daniel Kiper
2016-03-10 20:26   ` Vladimir 'phcoder' Serbinenko
2016-03-11 13:27     ` Daniel Kiper
2016-03-11 15:39       ` Vladimir 'phcoder' Serbinenko
2016-03-02 16:51 ` [GRUB2 PATCH v3 3/4] multiboot2: Do not pass memory maps to image if EFI boot services are enabled Daniel Kiper
2016-03-10 20:28   ` Vladimir 'phcoder' Serbinenko
2016-03-11 13:30     ` Daniel Kiper
2016-03-02 16:51 ` [GRUB2 PATCH v3 4/4] multiboot2: Add support for relocatable images Daniel Kiper
2016-03-04  6:51   ` Juergen Gross
2016-03-10 20:42     ` Vladimir 'phcoder' Serbinenko
2016-03-10 20:41   ` Vladimir 'phcoder' Serbinenko
2016-03-11 16:06     ` Daniel Kiper
2016-03-11 16:13       ` Vladimir 'phcoder' Serbinenko
2016-03-14 11:38         ` Daniel Kiper [this message]
2016-03-10 20:44   ` Vladimir 'phcoder' Serbinenko
2016-03-11 16:23     ` Daniel Kiper
2016-03-09 10:48 ` [GRUB2 PATCH v3 0/4] multiboot2: Add two extensions Daniel Kiper
2016-03-11 12:27   ` Vladimir 'phcoder' Serbinenko
2016-03-11 13:14     ` Daniel Kiper
2016-03-11 15:44       ` Vladimir 'phcoder' Serbinenko
2016-03-11 16:32         ` Daniel Kiper
2016-03-11 17:33           ` Vladimir 'phcoder' Serbinenko
2016-03-11 17:49             ` Daniel Kiper

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='20160314113830.GQ3500__17318.7077431523$1457955659$gmane$org@olila.local.net-space.pl' \
    --to=daniel.kiper@oracle.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=arvidjaar@gmail.com \
    --cc=cardoe@cardoe.com \
    --cc=david.vrabel@citrix.com \
    --cc=eric.snowberg@oracle.com \
    --cc=fu.wei@linaro.org \
    --cc=gang.wei@intel.com \
    --cc=grub-devel@gnu.org \
    --cc=jbeulich@suse.com \
    --cc=jgross@suse.com \
    --cc=ning.sun@intel.com \
    --cc=pgnet.dev@gmail.com \
    --cc=phcoder@gmail.com \
    --cc=qiaowei.ren@intel.com \
    --cc=richard.l.maliszewski@intel.com \
    --cc=roy.franz@linaro.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xenproject.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).