qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: Kevin O'Connor <kevin@koconnor.net>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	seabios@seabios.org, qemu-devel@nongnu.org,
	"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [SeaBIOS] [PATCH] acpi: hide 64-bit PCI hole for Windows XP
Date: Tue, 13 Aug 2013 08:49:21 +0200	[thread overview]
Message-ID: <1376376561.13193.43.camel@nilsson.home.kraxel.org> (raw)
In-Reply-To: <20130812224228.GA26855@morn.localdomain>

On Mo, 2013-08-12 at 18:42 -0400, Kevin O'Connor wrote:
> On Mon, Aug 12, 2013 at 08:05:08AM +0200, Gerd Hoffmann wrote:
> > We'll need some way to make sure the pmbase (also mmconf xbar) set by
> > the firmware matches the pmbase address filled into the acpi tables by
> > qemu ...
> > 
> > So the options we have are:
> > 
> >   (1) Hardcode the address everywhere.  This is pretty close to the
> >       current state, 0xb000 is hard-coded pretty much everywhere,
> >       basically because older qemu versions had the pmbase register
> >       readonly with 0xb000.  I'd like to move the pmbase somewhere else
> >       long-term, to free the 0xb000-0xbfff window, so I'd like to avoid
> >       that.
> > 
> >   (2) Have qemu pick pmbase/xbar addr.  Doesn't work due to
> >       initialization order issues (especially xbar for coreboot).
> > 
> >   (3) Have firmware pick pmbase/xbar, have fixup instructions for the
> >       addresses in in the loader script, simliar to the fixup
> >       instructions for table-to-table pointers.
> > 
> >   (4) [ new idea by mst ]  Have firmware pick pmbase/xbar, then have
> >       qemu look at the hardware registers programmed by the firmware,
> >       use pmbase/xbar addresses found there there when generating the
> >       tables.
> 
> I don't much like option 3 or 4.
> 
> Although hardcoding (option 1) is ugly, I think that ugliness does not
> justify the complexity of run-time patching (3/4).

Maybe this wasn't clear, but in (4) the table is generated by *qemu*
with the values programmed by the firmware.

> As for option 2 - I don't see why coreboot couldn't read the values
> out of fw_cfg early on for the handful of cases like this.

Because both mmconf xbar and pmbase are special:

The mmconf xbar is setup as one of the first things coreboot does, even
before romstage, then coreboot does the complete pci initialization
using mmconf.

pmbase handling depends on southbridge/mainboard code, but it tends to
be setup early (in romstage) too.  On some boards ram detection needs to
fiddle with pmbase registers.

Setting pmbase at runtime looks doable though, even though we might have
to go for a temporary location for the pmbase in romstage, then move it
to the final place requested by qemu later.  But it needs some
qemu-specific tweaks in shared southbridge code though as picking pmbase
at runtime isn't something which happens on real hardware.  I'd like to
avoid that if possible.

cheers,
  Gerd

  reply	other threads:[~2013-08-13  6:49 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1375167638-4325-1-git-send-email-imammedo@redhat.com>
     [not found] ` <20130731055959.GA31017@redhat.com>
     [not found]   ` <20130731081459.77eba7bb@nial.usersys.redhat.com>
     [not found]     ` <51FFCCF4.706@redhat.com>
     [not found]       ` <20130805181618.GB4244@redhat.com>
     [not found]         ` <911613672.9763982.1375729901921.JavaMail.root@redhat.com>
     [not found]           ` <20130806143901.GA17072@redhat.com>
     [not found]             ` <1243962588.10286037.1375807384073.JavaMail.root@redhat.com>
     [not found]               ` <20130806165820.GB20305@redhat.com>
     [not found]                 ` <5201F763.3030507@redhat.com>
2013-08-08  6:04                   ` [Qemu-devel] [SeaBIOS] [PATCH] acpi: hide 64-bit PCI hole for Windows XP Michael S. Tsirkin
     [not found]                   ` <20130807095019.GA26266@redhat.com>
     [not found]                     ` <5202218C.70005@redhat.com>
     [not found]                       ` <20130807111031.GC3068@redhat.com>
     [not found]                         ` <52023A52.6010208@redhat.com>
     [not found]                           ` <20130807123509.GA10670@redhat.com>
     [not found]                             ` <520257F8.1080501@redhat.com>
     [not found]                               ` <20130807145312.GA14308@redhat.com>
     [not found]                                 ` <52034F73.4040904@redhat.com>
2013-08-08  8:37                                   ` Michael S. Tsirkin
2013-08-08  8:57                                     ` Gerd Hoffmann
2013-08-08  9:52                                       ` Michael S. Tsirkin
2013-08-08 10:21                                         ` Gerd Hoffmann
2013-08-08 14:13                                           ` Michael S. Tsirkin
2013-08-08 14:56                                             ` Gerd Hoffmann
2013-08-09  4:13                                               ` Kevin O'Connor
2013-08-09  6:25                                                 ` Gerd Hoffmann
2013-08-10  3:10                                                   ` Kevin O'Connor
2013-08-12  6:05                                                     ` Gerd Hoffmann
2013-08-12 22:42                                                       ` Kevin O'Connor
2013-08-13  6:49                                                         ` Gerd Hoffmann [this message]
2013-08-14 12:38                                                           ` Kevin O'Connor
2013-08-14 14:52                                                             ` Gerd Hoffmann
2013-08-09  9:45                                                 ` Gerd Hoffmann
2013-08-10  3:30                                                   ` Kevin O'Connor
2013-08-10 15:50                                                     ` Kevin O'Connor
2013-08-09 15:49                                                 ` Michael S. Tsirkin
2013-08-10  3:06                                                   ` Kevin O'Connor
2013-08-12  6:37                                                   ` Gerd Hoffmann
2013-08-12  7:56                                                     ` Michael S. Tsirkin
2013-08-12 13:08                                                   ` Laszlo Ersek
     [not found]                                   ` <20130808082212.GA26837@redhat.com>
     [not found]                                     ` <52035C2F.4040700@redhat.com>
2013-08-08  9:37                                       ` Michael S. Tsirkin

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=1376376561.13193.43.camel@nilsson.home.kraxel.org \
    --to=kraxel@redhat.com \
    --cc=kevin@koconnor.net \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=seabios@seabios.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).