From: Frank Blaschka <blaschka@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org, cornelia.huck@de.ibm.com,
borntraeger@de.ibm.com, agraf@suse.de, mst@redhat.com
Cc: MIHAJLOV@de.ibm.com, Frank Blaschka <blaschka@linux.vnet.ibm.com>,
fiuczy@linux.vnet.ibm.com
Subject: [Qemu-devel] [PATCH 0/2 RFC] Extend s390 pci representation in qemu V2
Date: Tue, 10 Mar 2015 14:03:32 +0100 [thread overview]
Message-ID: <1425992614-8938-1-git-send-email-blaschka@linux.vnet.ibm.com> (raw)
For a better understanding of the following patch here is
some general information about how PCI is implemented on the s390
platform. The physical structure of the pci system (bridge, bus, slot)
is not shown to the OS. Instead a firmware and I/O configuration
layer abstracts each PCI card to a bare PCI function.
In essence, the fw layer provides a simple enumeration of the
individual devices, which the s390 pci implementation in the Linux
kernel translates into individual pci domains.
HW layer | FW layer | Linux kernel
| |
(opaque) | function 1 | 0001:00:00.0
| function 2 | 0002:00:00.0
| function 3 | 0003:00:00.0
In qemu we have following problems:
(1) We have to represent this s390 specific topology information,
respectively the lack thereof
(2) We have/want to use common qemu PCI infrastructure
The initial implementation did not honor (1) much and tried to derive s390
specific configuration attributes from attributes of qemu pci devices. It
turns out that this is not flexible enough and is not sufficient to support
s390 specific configurations.
Here is some nice characterization about the nature of the s390 host bridge
(by Alexander Graf).
"Conceptually your PCI bridge is not a sysbus device, since it doesn't
live on a flat MMIO + legacy IRQ routing bus. Instead, it lives on its
own thing that handles MMIO and IRQs via special backdoor interfaces."
The proposed solution is an outcome of a previous discussion here on the
qemu-devel mailing list.
The s390 patch tries to better model the pci infrastructure by
extending the s390 pci host bridge. Major changes are:
1) add configuration attributes (in reality provided by firmware layer) to
the host bridge.
2) restrict pci bus of the bridge to just one slot
3) make a s390 host bridge hot plugable
Frank Blaschka (2):
pci: detangle Sysbus PCI bridge from PCIBus
s390x/pci: rework pci infrastructure modeling
hw/pci/pci.c | 24 ++++---
hw/s390x/s390-pci-bus.c | 174 ++++++++++++++++++++++++++-------------------
hw/s390x/s390-pci-bus.h | 24 ++++++-
hw/s390x/s390-pci-inst.c | 2 +-
hw/s390x/s390-virtio-ccw.c | 4 +-
5 files changed, 144 insertions(+), 84 deletions(-)
--
2.1.4
next reply other threads:[~2015-03-10 13:03 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-10 13:03 Frank Blaschka [this message]
2015-03-10 13:03 ` [Qemu-devel] [PATCH 1/2 RFC] pci: detangle Sysbus PCI bridge from PCIBus Frank Blaschka
2015-03-10 13:03 ` [Qemu-devel] [PATCH 2/2 RFC] s390x/pci: rework pci infrastructure modeling Frank Blaschka
2015-03-10 14:26 ` Michael S. Tsirkin
2015-03-11 14:38 ` Frank Blaschka
2015-03-11 14:57 ` Michael S. Tsirkin
2015-03-12 8:46 ` Frank Blaschka
2015-03-12 9:26 ` Michael S. Tsirkin
2015-03-11 17:42 ` Michael S. Tsirkin
2015-03-12 9:54 ` Frank Blaschka
2015-03-12 10:03 ` Michael S. Tsirkin
2015-03-12 10:50 ` Frank Blaschka
2015-03-12 13:16 ` Frank Blaschka
2015-03-12 14:59 ` Alexander Graf
2015-03-12 15:22 ` Michael S. Tsirkin
2015-03-17 7:11 ` Alexander Graf
2015-03-17 12:15 ` Frank Blaschka
2015-03-12 15:18 ` 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=1425992614-8938-1-git-send-email-blaschka@linux.vnet.ibm.com \
--to=blaschka@linux.vnet.ibm.com \
--cc=MIHAJLOV@de.ibm.com \
--cc=agraf@suse.de \
--cc=borntraeger@de.ibm.com \
--cc=cornelia.huck@de.ibm.com \
--cc=fiuczy@linux.vnet.ibm.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.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).