From: "Michael S. Tsirkin" <mst@redhat.com>
To: "Cédric Le Goater" <clg@kaod.org>
Cc: Leandro Lupori <leandro.lupori@eldorado.org.br>,
qemu-devel@nongnu.org, qemu-ppc@nongnu.org,
Frederic Barrat <fbarrat@linux.ibm.com>,
alfredo.junior@eldorado.org.br
Subject: Re: [PATCH 1/3] ppc/pnv: Tune the POWER9 PCIe Host bridge model
Date: Sun, 28 Nov 2021 16:51:26 -0500 [thread overview]
Message-ID: <20211128165114-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <988a5133-e1a1-829d-452a-0e1dd72a0098@kaod.org>
On Fri, Nov 26, 2021 at 06:08:30PM +0100, Cédric Le Goater wrote:
> [ Adding Alfredo the thread ]
>
> On 11/26/21 10:09, Cédric Le Goater wrote:
> > On 11/16/21 18:01, Frederic Barrat wrote:
> > > The PHB v4 found on POWER9 doesn't request any LSI, so let's clear the
> > > Interrupt Pin register in the config space so that the model matches
> > > the hardware.
> > >
> > > If we don't, then we inherit from the default pcie root bridge, which
> > > requests a LSI. And because we don't map it correctly in the device
> > > tree, all PHBs allocate the same bogus hw interrupt. We end up with
> > > inconsistent interrupt controller (xive) data. The problem goes away
> > > if we don't allocate the LSI in the first place.
> > >
> > > Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com>
> > > ---
> > > hw/pci-host/pnv_phb4.c | 5 ++++-
> > > 1 file changed, 4 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
> > > index 5c375a9f28..1659d55b4f 100644
> > > --- a/hw/pci-host/pnv_phb4.c
> > > +++ b/hw/pci-host/pnv_phb4.c
> > > @@ -1234,10 +1234,13 @@ static void pnv_phb4_reset(DeviceState *dev)
> > > PCIDevice *root_dev = PCI_DEVICE(&phb->root);
> > > /*
> > > - * Configure PCI device id at reset using a property.
> > > + * Configure the PCI device at reset:
> > > + * - set the Vendor and Device ID to for the root bridge
> > > + * - no LSI
> > > */
> > > pci_config_set_vendor_id(root_dev->config, PCI_VENDOR_ID_IBM);
> > > pci_config_set_device_id(root_dev->config, phb->device_id);
> > > + pci_config_set_interrupt_pin(root_dev->config, 0);
> > > }
> > > static const char *pnv_phb4_root_bus_path(PCIHostState *host_bridge,
> > >
> >
> > FYI, I am seeing an issue with FreeBSD when booting from iso :
> >
> > https://download.freebsd.org/ftp/snapshots/powerpc/powerpc64/ISO-IMAGES/14.0/FreeBSD-14.0-CURRENT-powerpc-powerpc64-20211028-4827bf76bce-250301-disc1.iso.xz
> >
> > Thanks,
> >
> > C.
> >
> > SIGTERM received, booting...
> > KDB: debugger backends: ddb
> > KDB: current backend: ddb
> > ---<<BOOT>>---
> > Copyright (c) 1992-2021 The FreeBSD Project.
> > Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
> > The Regents of the University of California. All rights reserved.
> > FreeBSD is a registered trademark of The FreeBSD Foundation.
> > FreeBSD 14.0-CURRENT #0 main-n250301-4827bf76bce: Thu Oct 28 06:53:58 UTC 2021
> > root@releng1.nyi.freebsd.org:/usr/obj/usr/src/powerpc.powerpc64/sys/GENERIC64 powerpc
> > FreeBSD clang version 12.0.1 (git@github.com:llvm/llvm-project.git llvmorg-12.0.1-0-gfed41342a82f)
> > WARNING: WITNESS option enabled, expect reduced performance.
> > VT: init without driver.
> > ofw_initrd: initrd loaded at 0x28000000-0x28c7928c
> > cpu0: IBM POWER9 revision 2.0, 1000.00 MHz
> > cpu0: Features dc007182<PPC32,PPC64,ALTIVEC,FPU,MMU,SMT,ISNOOP,ARCH205,ARCH206,VSX,TRUELE>
> > cpu0: Features2 bee00000<ARCH207,DSCR,ISEL,TAR,VCRYPTO,ARCH300,IEEE128,DARN>
> > real memory = 1014484992 (967 MB)
> > avail memory = 117903360 (112 MB)
> > random: registering fast source PowerISA DARN random number generator
> > random: fast provider: "PowerISA DARN random number generator"
> > arc4random: WARNING: initial seeding bypassed the cryptographic random device because it was not yet seeded and the knob 'bypass_before_seeding' was enabled.
> > random: entropy device external interface
> > kbd0 at kbdmux0
> > ofwbus0: <Open Firmware Device Tree> on nexus0
> > opal0: <OPAL Abstraction Firmware> irq 1048560,1048561,1048562,1048563,1048564,1048565,1048566,1048567,1048568,1048569,1048570,1048571,1048572,1048573 on ofwbus0
> > opal0: registered as a time-of-day clock, resolution 0.002000s
> > simplebus0: <Flattened device tree simple bus> mem 0x6030000000000-0x60300ffffffff on ofwbus0
> > pcib0: <OPAL Host-PCI bridge> mem 0x600c3c0000000-0x600c3c0000fff,0x600c300000000-0x600c30fffffff on ofwbus0
> > pci0: <OFW PCI bus> numa-domain 0 on pcib0
> > qemu-system-ppc64: ../hw/pci/pci.c:1487: pci_irq_handler: Assertion `0 <= irq_num && irq_num < PCI_NUM_PINS' failed.
> >
Frederic?
--
MST
next prev parent reply other threads:[~2021-11-28 21:53 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-16 17:01 [PATCH 0/3] Fix irq allocation of PCI host bridge on powernv Frederic Barrat
2021-11-16 17:01 ` [PATCH 1/3] ppc/pnv: Tune the POWER9 PCIe Host bridge model Frederic Barrat
2021-11-18 14:45 ` Cédric Le Goater
2021-11-26 9:09 ` Cédric Le Goater
2021-11-26 17:08 ` Cédric Le Goater
2021-11-28 21:51 ` Michael S. Tsirkin [this message]
2021-11-29 14:40 ` Frederic Barrat
2021-11-16 17:01 ` [PATCH 2/3] pci: Export the pci_intx() function Frederic Barrat
2021-11-18 14:45 ` Cédric Le Goater
2021-11-16 17:01 ` [PATCH 3/3] pcie_aer: Don't trigger a LSI if none are defined Frederic Barrat
2021-11-18 14:46 ` Cédric Le Goater
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=20211128165114-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=alfredo.junior@eldorado.org.br \
--cc=clg@kaod.org \
--cc=fbarrat@linux.ibm.com \
--cc=leandro.lupori@eldorado.org.br \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@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 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.