From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-devel@nongnu.org,
"Daniel Henrique Barboza" <danielhb413@gmail.com>,
"Marcin Juszkiewicz" <marcin.juszkiewicz@linaro.org>,
"Bin Meng" <bmeng.cn@gmail.com>,
"Alistair Francis" <alistair.francis@wdc.com>,
"Harsh Prateek Bora" <harshpb@linux.ibm.com>,
"Zhao Liu" <zhao1.liu@intel.com>,
"Daniel P . Berrangé" <berrange@redhat.com>,
"Daniel Henrique Barboza" <dbarboza@ventanamicro.com>,
"Liu Zhiwei" <zhiwei_liu@linux.alibaba.com>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
qemu-arm@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>,
"Nicholas Piggin" <npiggin@gmail.com>,
"Leif Lindholm" <quic_llindhol@quicinc.com>,
qemu-riscv@nongnu.org, "Weiwei Li" <liwei1518@gmail.com>,
"Radoslaw Biernacki" <rad@semihalf.com>,
"Thomas Huth" <thuth@redhat.com>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Eduardo Habkost" <eduardo@habkost.net>,
qemu-ppc@nongnu.org, "Laurent Vivier" <lvivier@redhat.com>,
"Alexander Gordeev" <agordeev@redhat.com>
Subject: Re: [PATCH-for-10.0 0/8] hw/boards: Remove legacy MachineClass::pci_allow_0_address flag
Date: Mon, 25 Nov 2024 15:49:53 +0100 [thread overview]
Message-ID: <748eb21d-4b73-4d2a-8058-b3a79d4fb802@linaro.org> (raw)
In-Reply-To: <CAFEAcA9vS-9u282Jr+_QaGZT6vD4cpmh0wjuYPQSPLZQw30e4Q@mail.gmail.com>
On 25/11/24 15:14, Peter Maydell wrote:
> On Mon, 25 Nov 2024 at 14:06, Philippe Mathieu-Daudé <philmd@linaro.org> wrote:
>>
>> This series aims to remove a legacy field from
>> MachineClass.
>>
>> Rather than a global exposed to all machines,
>> use a pci-bus specific flag on each machine
>> requiering it.
>
> Should this be a property of the PCI controller, rather
> than on the PCI bus? Presumably on the machines that
> don't allow a 0 PCI BAR address this happens because the
> PCI controller refuses to map BARs at that address.
>
> TBH the commit message for e402463073 suggests to me
> that "allow address zero" should be the default and
> either specific machines should forbid it or else we
> should figure out what goes wrong with them, if the
> problem is caused by some bug in QEMU. The commit message's
> mention of "fix PCI memory priorities" suggests to me
> that this is a QEMU bug, and that it ought to be possible
> to have the machine set up such that you *can* map the
> BAR at address 0, it's merely invisible to the guest because
> some other machine devices have higher priority and are
> visible "on top" of it instead.
You are probably right, the following comment ...:
pcibus_t pci_bar_address(PCIDevice *d,
int reg, uint8_t type, pcibus_t size)
{
...
/* NOTE: we do not support wrapping */
/* XXX: as we cannot support really dynamic
mappings, we handle specific values as invalid
mappings. */
if (last_addr <= new_addr || last_addr == PCI_BAR_UNMAPPED ||
(!allow_0_address && new_addr == 0)) {
return PCI_BAR_UNMAPPED;
}
... is from 20 years ago at the beginning of PCI in QEMU, commit
0ac32c8375 ("PCI interrupt support - PCI BIOS interrupt remapping
- more accurate memory mapping - 'info pci' monitor command") which
suggest the implementation is incomplete here.
next prev parent reply other threads:[~2024-11-25 14:50 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-25 14:05 [PATCH-for-10.0 0/8] hw/boards: Remove legacy MachineClass::pci_allow_0_address flag Philippe Mathieu-Daudé
2024-11-25 14:05 ` [PATCH-for-10.0 1/8] hw/pci/pci_bus: Introduce PCIBusFlags::PCI_BUS_IO_ADDR0_ALLOWED Philippe Mathieu-Daudé
2024-11-25 14:05 ` [PATCH-for-10.0 2/8] hw/ppc/spapr_pci: Set PCI_BUS_IO_ADDR0_ALLOWED flag in host bridge Philippe Mathieu-Daudé
2024-11-25 14:05 ` [PATCH-for-10.0 3/8] hw/pci-host/gpex: Allow machines to set PCI_BUS_IO_ADDR0_ALLOWED flag Philippe Mathieu-Daudé
2024-11-25 14:34 ` Peter Maydell
2024-11-25 14:05 ` [PATCH-for-10.0 4/8] hw/arm/virt: Set PCI_BUS_IO_ADDR0_ALLOWED flag on GPEX host bridge Philippe Mathieu-Daudé
2024-11-25 14:05 ` [PATCH-for-10.0 5/8] hw/arm/sbsa-ref: " Philippe Mathieu-Daudé
2024-11-25 14:05 ` [PATCH-for-10.0 6/8] hw/riscv/virt: Remove pointless GPEX_HOST() cast Philippe Mathieu-Daudé
2024-11-25 14:20 ` Thomas Huth
2024-11-25 14:05 ` [PATCH-for-10.0 7/8] hw/riscv/virt: Set PCI_BUS_IO_ADDR0_ALLOWED flag on GPEX host bridge Philippe Mathieu-Daudé
2024-11-25 14:05 ` [PATCH-for-10.0 8/8] hw/pci/pci: Remove legacy MachineClass::pci_allow_0_address flag Philippe Mathieu-Daudé
2024-11-25 14:14 ` [PATCH-for-10.0 0/8] hw/boards: " Peter Maydell
2024-11-25 14:49 ` Philippe Mathieu-Daudé [this message]
2024-11-25 16:38 ` Peter Maydell
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=748eb21d-4b73-4d2a-8058-b3a79d4fb802@linaro.org \
--to=philmd@linaro.org \
--cc=agordeev@redhat.com \
--cc=alistair.francis@wdc.com \
--cc=berrange@redhat.com \
--cc=bmeng.cn@gmail.com \
--cc=danielhb413@gmail.com \
--cc=dbarboza@ventanamicro.com \
--cc=eduardo@habkost.net \
--cc=harshpb@linux.ibm.com \
--cc=liwei1518@gmail.com \
--cc=lvivier@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=marcin.juszkiewicz@linaro.org \
--cc=mst@redhat.com \
--cc=npiggin@gmail.com \
--cc=palmer@dabbelt.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=quic_llindhol@quicinc.com \
--cc=rad@semihalf.com \
--cc=thuth@redhat.com \
--cc=wangyanan55@huawei.com \
--cc=zhao1.liu@intel.com \
--cc=zhiwei_liu@linux.alibaba.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.