From: Gerd Hoffmann <kraxel@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
"Ian.Campbell@citrix.com" <Ian.Campbell@citrix.com>,
"linaro-acpi@lists.linaro.org" <linaro-acpi@lists.linaro.org>,
Alexander Spyridakis <a.spyridakis@virtualopensystems.com>,
Julien Grall <julien.grall@linaro.org>,
Claudio Fontana <claudio.fontana@huawei.com>,
QEMU Developers <qemu-devel@nongnu.org>,
Leif Lindholm <leif.lindholm@linaro.org>,
"stefano.stabellini@citrix.com" <stefano.stabellini@citrix.com>,
"grant.likely@linaro.org" <grant.likely@linaro.org>,
Paolo Bonzini <pbonzini@redhat.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: Thu, 13 Nov 2014 09:10:26 +0100 [thread overview]
Message-ID: <1415866226.25539.1.camel@nilsson.home.kraxel.org> (raw)
In-Reply-To: <CAFEAcA_3JSKQ31sQHR31bUXJQGjZ7e8d-GGTiuR-a1yzwxHing@mail.gmail.com>
Hi,
> My understanding from an IRC conversation yesterday was that at
> least some of these ACPI blobs contain data which has to be constructed
> at the point it is requested (ie is not fixed at the point when
> QEMU starts up), because OVMF will do:
> * startup
> * prod some parts of the hardware to configure it
> * request ACPI tables via fw_cfg
> and the ACPI tables have to reflect the statu of the hardware
> after OVMF's poking, not before.
It is this:
[root@fedora ~]# cat /proc/ioports
[ ... ]
0600-063f : 0000:00:01.3
0600-0603 : ACPI PM1a_EVT_BLK
0604-0605 : ACPI PM1a_CNT_BLK
0608-060b : ACPI PM_TMR
0700-070f : 0000:00:01.3
0700-0707 : piix4_smbus
[ ... ]
[root@fedora ~]# lspci -vs1.3
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
Subsystem: Red Hat, Inc Qemu virtual machine
Flags: medium devsel, IRQ 9
Kernel driver in use: piix4_smbus
Kernel modules: i2c_piix4
A bunch of acpi registers are in a hidden pci bar of the piix4 acpi
device (likewise on q35). The firmware must map this somewhere, and
this must be done pretty early because the firmware uses the acpi pm
timer for timekeeping.
The acpi tables have references to the apci registers, so the acpi table
content must match the actual register location.
[ q35 only: similar issue with the pci mmconfig xbar ]
So there are three options to solve that:
(1) Use a fixed address. Doable, but takes away some flexibility.
(2) Have qemu define the address locations. Has some nasty
initialization order issues. Also would require (a) a
paravirtual interface or (b) a acpi table parser in the
firmware.
(3) Have firmware define the address location. This is what we
did on x86. No paravirt interface needed, the firmware simply
programs the registers as it likes, and qemu adapts the acpi
tables accordingly.
> It wasn't entirely clear to me whether this applies equally
> to the ARM UEFI setup as to x86 + OVMF,
I think on arm doing (2) is alot easier as DT provides a nice way to
pass addresses from qemu to firmware/guest.
cheers,
Gerd
next prev parent reply other threads:[~2014-11-13 8:11 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
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 [this message]
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=1415866226.25539.1.camel@nilsson.home.kraxel.org \
--to=kraxel@redhat.com \
--cc=Ian.Campbell@citrix.com \
--cc=a.spyridakis@virtualopensystems.com \
--cc=christoffer.dall@linaro.org \
--cc=claudio.fontana@huawei.com \
--cc=grant.likely@linaro.org \
--cc=julien.grall@linaro.org \
--cc=leif.lindholm@linaro.org \
--cc=linaro-acpi@lists.linaro.org \
--cc=mark.rutland@arm.com \
--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 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).