public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gerd Hoffmann" <kraxel@redhat.com>
To: devel@edk2.groups.io, marcin.juszkiewicz@linaro.org
Cc: Ard Biesheuvel <ardb@kernel.org>,
	 Leif Lindholm <quic_llindhol@quicinc.com>,
	Graeme Gregory <graeme@xora.org.uk>, Ray Ni <ray.ni@intel.com>
Subject: Re: [edk2-devel] [PATCH edk2-platforms v2 0/3] SbsaQemu: support multiple PCI Express buses
Date: Tue, 4 Jun 2024 14:06:54 +0200	[thread overview]
Message-ID: <qegh5srhmfzccwsxonvbgaiw5j7lqt3tfkbqngr4r5gaetnu6x@ohcxru5aiqi6> (raw)
In-Reply-To: <64916d39-c895-48a5-af9a-655c57233300@linaro.org>

On Tue, Jun 04, 2024 at 09:23:30AM GMT, Marcin Juszkiewicz wrote:
> W dniu 28.05.2024 o 16:31, Ard Biesheuvel pisze:
> > I would expect each host bridge to have its own separate resource
> > windows for config space, buses and MMIO regions.

That isn't how qemu pxb-pcie host bridge works on x86 though.  It does
*not* create a separate pci domain and resources such as bus numbers are
shared.

> OK. I have to admit that I never checked how physical NUMA system handles
> PCI Express. The code in patches was done by comparing with other QEMU
> targets.

It's probably not that easy.  On x86 initialization works like this:

 (1) the firmware sets up bridge windows and pci bars.
 (2) qemu generates acpi tables with matching _CRS ranges.
 (3) the firmware downloads and installs the acpi tables.

On arm qemu does the resource allocation for the root bridge windows and
communicates them to the firmware via FDT, so stealing ideas from x86
probably isn't going to work very well.

I think one option would be to have the firmware split the ranges it
got and distribute them across the root bridges, program the root
windows accordingly, generate acpi tables accordingly.

Going for a separate pci domain with separate ecam and separate bus
namespace and separate mmio ressources should be possible too, but that
most likely will need a bunch of changes on the qemu side.

HTH & take care,
  Gerd



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#119445): https://edk2.groups.io/g/devel/message/119445
Mute This Topic: https://groups.io/mt/106345969/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



      reply	other threads:[~2024-06-04 12:07 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-28 10:31 [edk2-devel] [PATCH edk2-platforms v2 0/3] SbsaQemu: support multiple PCI Express buses Marcin Juszkiewicz
2024-05-28 10:31 ` [edk2-devel] [PATCH edk2-platforms v2 1/3] SbsaQemu: scan for PCIe buses Marcin Juszkiewicz
2024-05-28 10:31 ` [edk2-devel] [PATCH edk2-platforms v2 2/3] SbsaQemu: describe PCIe buses in SSDT tables Marcin Juszkiewicz
2024-05-28 10:31 ` [edk2-devel] [PATCH edk2-platforms v2 3/3] SbsaQemu: generate MCFG table Marcin Juszkiewicz
2024-05-28 14:31 ` [edk2-devel] [PATCH edk2-platforms v2 0/3] SbsaQemu: support multiple PCI Express buses Ard Biesheuvel
2024-06-04  7:23   ` Marcin Juszkiewicz
2024-06-04 12:06     ` Gerd Hoffmann [this message]

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-list 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=qegh5srhmfzccwsxonvbgaiw5j7lqt3tfkbqngr4r5gaetnu6x@ohcxru5aiqi6 \
    --to=devel@edk2.groups.io \
    /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