All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	"Ian.Campbell@citrix.com" <Ian.Campbell@citrix.com>,
	linaro-acpi@lists.linaro.org,
	Claudio Fontana <claudio.fontana@huawei.com>,
	QEMU Developers <qemu-devel@nongnu.org>,
	"stefano.stabellini@citrix.com" <stefano.stabellini@citrix.com>,
	"tech@virtualopensystems.com" <tech@virtualopensystems.com>,
	Parth Dixit <parth.dixit@linaro.org>,
	Christoffer Dall <christoffer.dall@linaro.org>
Subject: Re: [Qemu-devel] [Linaro-acpi] [RFC PATCH 0/7] hw/arm/virt: Dynamic ACPI v5.1 table generation
Date: Wed, 12 Nov 2014 17:13:48 +0100	[thread overview]
Message-ID: <4532823.qiucXlCzCt@wuerfel> (raw)
In-Reply-To: <5463850E.7020703@redhat.com>

On Wednesday 12 November 2014 17:04:30 Paolo Bonzini wrote:
> On 12/11/2014 16:57, Arnd Bergmann wrote:
> > > > It seems to me like complicated stuff like that definitely belongs
> > > > in the UEFI/bootloader blob, though. I'd rather QEMU just modelled
> > > > the hardware and let the guest (or the firmware, which is guest
> > > > code from QEMU's point of view) set it up however it wants.
> > > 
> > > It definitely doesn't belong in QEMU!
> > 
> > The easiest option would probably be not make all PCI devices have
> > fixed BARs and not even allow them to be changed. I believe this is
> > what kvmtool does, but I can see how supporting both modes is much
> > harder than either one.
> 
> kvmtool does not have firmware; it starts the kernel directly, so it
> does all the setup that usually is done by the firmware.  It implements
> a couple real-mode interfaces that Linux uses when booting, but nothing
> of this deals with PCI.
> 
> x86 QEMU always runs firmware.  Even if you specify -kernel, the
> firmware does all the usual initialization and then boots from a small
> ROM.  The ROM contains the bootloader, so it loads and starts the kernel.

Ok, I see.

> > How does it work on x86 with qemu?
> 
> Same as real hardware.  Firmware (SeaBIOS or OVMF) builds the memory
> map, decides where in the free space the BARs go, and programs the PCI
> devices accordingly.
> 
> kvmtool is the special one here.  Xen, VMware, Hyper-V all do the same
> as QEMU.

Right. I guess embedded ARM images in qemu are a third way then, because
these don't have a guest firmware but also don't set up the hardware
the way that kvmtool does.

Claudio's request to do this differently on arm64 seems absolutely
reasonable to me, but I guess that implies having UEFI or something
like it that does the PCI scan. Not sure what the best default for
"qemu -kernel image" should be though if you don't explicitly pass
a firmware image.

	Arnd

  reply	other threads:[~2014-11-12 16:14 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-30 17:43 [Qemu-devel] [RFC PATCH 0/7] hw/arm/virt: Dynamic ACPI v5.1 table generation Alexander Spyridakis
2014-10-30 17:43 ` [Qemu-devel] [RFC PATCH 1/7] hw/i386: Move ACPI header definitions in an arch-independent location Alexander Spyridakis
2014-10-30 17:44 ` [Qemu-devel] [RFC PATCH 2/7] hw/arm/virt-acpi: Basic skeleton for dynamic generation of ACPI tables Alexander Spyridakis
2014-10-30 17:46   ` Peter Maydell
2014-10-30 17:52 ` [Qemu-devel] [RFC PATCH 0/7] hw/arm/virt: Dynamic ACPI v5.1 table generation Peter Maydell
2014-10-30 18:02   ` [Qemu-devel] [Linaro-acpi] " Mark Rutland
2014-11-05  9:58     ` Claudio Fontana
2014-11-06 12:44       ` Peter Maydell
2014-11-06 12:57         ` Igor Mammedov
2014-11-06 13:33         ` Alexander Spyridakis
2014-11-06 13:52           ` Peter Maydell
2014-11-11 15:29           ` Mark Rutland
2014-11-11 16:31             ` Christoffer Dall
2014-11-11 16:48               ` Mark Rutland
2014-11-11 21:33                 ` Christoffer Dall
2014-11-12 10:38                   ` Mark Rutland
2014-11-12 10:44                     ` Christoffer Dall
2014-11-12 10:55                       ` Julien Grall
2014-11-12 11:07                       ` Mark Rutland
2014-11-12 11:38                         ` Graeme Gregory
2014-11-12 11:52                     ` Paolo Bonzini
2014-11-12 12:04                       ` Mark Rutland
2014-11-12 12:12                         ` Paolo Bonzini
2014-11-12 13:27                         ` Peter Maydell
2014-11-12 13:32                           ` Paolo Bonzini
2014-11-12 15:01                           ` Claudio Fontana
2014-11-12 15:32                             ` Arnd Bergmann
2014-11-12 15:39                               ` Peter Maydell
2014-11-12 15:52                                 ` Paolo Bonzini
2014-11-12 15:57                                   ` Arnd Bergmann
2014-11-12 16:04                                     ` Paolo Bonzini
2014-11-12 16:13                                       ` Arnd Bergmann [this message]
2014-11-12 16:25                                         ` Paolo Bonzini
2014-11-12 17:33                                           ` Peter Maydell
2014-11-13  8:32                                           ` Gerd Hoffmann
2014-11-13  8:14                             ` Gerd Hoffmann
2014-11-13  8:10                           ` Gerd Hoffmann
2014-11-13 18:16                             ` Al Stone
2014-11-13 19:22                               ` Paolo Bonzini
2014-11-14  7:54                               ` Gerd Hoffmann
2014-11-12  9:08             ` Claudio Fontana
2014-11-12 10:56               ` Mark Rutland
2014-11-12 11:15                 ` Arnd Bergmann
2014-11-12 11:34                   ` Christoffer Dall
2014-11-12 11:48                     ` Paolo Bonzini
2014-11-12 12:18                       ` Mark Rutland
2014-11-12 12:27                         ` Paolo Bonzini
2014-11-12 12:40                           ` Christoffer Dall
2014-11-12 13:08                           ` Arnd Bergmann
2014-11-12 13:27                             ` Paolo Bonzini
2014-11-12 13:41                           ` Mark Rutland
2014-11-12 13:59                             ` Paolo Bonzini
2014-11-12 14:10                               ` Mark Rutland
2014-11-12 14:46                                 ` Paolo Bonzini
2014-11-12 13:03                     ` Arnd Bergmann
2014-11-12 13:35                       ` Christoffer Dall
2014-11-12 11:55                   ` Mark Rutland
2014-11-12 18:10               ` Peter Maydell
2014-11-13  9:57                 ` Claudio Fontana
2014-11-17 17:52                   ` Peter Maydell
2014-11-06  6:53     ` Hanjun Guo
2014-11-06 13:30       ` Mark Rutland
2014-11-06 13:33         ` Arnd Bergmann
2014-11-06 15:57       ` Paolo Bonzini
2014-11-06 16:18         ` Igor Mammedov
2014-11-06 16:27           ` Paolo Bonzini
2014-11-07  8:31         ` Hanjun Guo
2015-03-09 12:12   ` Leif Lindholm
2015-03-09 12:28     ` Peter Maydell
2015-03-09 12:47       ` Shannon Zhao
2015-03-09 14:50       ` Leif Lindholm

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=4532823.qiucXlCzCt@wuerfel \
    --to=arnd@arndb.de \
    --cc=Ian.Campbell@citrix.com \
    --cc=christoffer.dall@linaro.org \
    --cc=claudio.fontana@huawei.com \
    --cc=linaro-acpi@lists.linaro.org \
    --cc=parth.dixit@linaro.org \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefano.stabellini@citrix.com \
    --cc=tech@virtualopensystems.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.