From: Miles Glenn <milesg@linux.vnet.ibm.com>
To: "Cédric Le Goater" <clg@kaod.org>,
qemu-devel@nongnu.org, qemu-ppc@nongnu.org
Cc: "Nicholas Piggin" <npiggin@gmail.com>,
"Frédéric Barrat" <fbarrat@linux.ibm.com>
Subject: Re: [PATCH v4 05/11] ppc/pnv: Wire up pca9552 GPIO pins for PCIe hotplug power control
Date: Tue, 21 Nov 2023 14:03:19 -0600 [thread overview]
Message-ID: <84600e8239b6aef4915312ab0dd08149f3db4067.camel@linux.vnet.ibm.com> (raw)
In-Reply-To: <85ef1a8b-63c5-4492-9884-f34772a65c28@kaod.org>
On Tue, 2023-11-21 at 19:36 +0100, Cédric Le Goater wrote:
> On 11/21/23 00:51, Glenn Miles wrote:
> > For power10-rainier, a pca9552 device is used for PCIe slot hotplug
> > power control by the Power Hypervisor code. The code expects that
> > some time after it enables power to a PCIe slot by asserting one of
> > the pca9552 GPIO pins 0-4, it should see a "power good" signal
> > asserted
> > on one of pca9552 GPIO pins 5-9.
>
> And this is what OPAL is not doing :
>
>
> https://github.com/open-power/skiboot/blob/master/platforms/astbmc/rainier.c#L65
>
> Correct ?
>
Ah, yes, I believe you are correct!
> > To simulate this behavior, we simply connect the GPIO outputs for
> > pins 0-4 to the GPIO inputs for pins 5-9.
> >
> > Each PCIe slot is assigned 3 GPIO pins on the pca9552 device, for
> > control of up to 5 PCIe slots. The per-slot signal names are:
> >
> > SLOTx_EN.......PHYP uses this as an output to enable
> > slot power. We connect this to the
> > SLOTx_PG pin to simulate a PGOOD signal.
> > SLOTx_PG.......PHYP uses this as in input to detect
> > PGOOD for the slot. For our purposes
> > we just connect this to the SLOTx_EN
> > output.
> > SLOTx_Control..PHYP uses this as an output to prevent
> > a race condition in the real hotplug
> > circuitry, but we can ignore this output
> > for simulation.
> >
> > Signed-off-by: Glenn Miles <milesg@linux.vnet.ibm.com>
> > ---
> >
> > Changes from previous version:
> > - Code moved from pnv_chip_power10_realize to
> > pnv_rainier_i2c_init
> >
> > hw/ppc/pnv.c | 20 ++++++++++++++++++--
> > 1 file changed, 18 insertions(+), 2 deletions(-)
> >
> > diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
> > index 9cefcd0fd6..80d25fc1bd 100644
> > --- a/hw/ppc/pnv.c
> > +++ b/hw/ppc/pnv.c
> > @@ -1898,8 +1898,24 @@ static void
> > pnv_rainier_i2c_init(PnvMachineState *pnv)
> > * Add a PCA9552 I2C device for PCIe hotplug control
> > * to engine 2, bus 1, address 0x63
> > */
> > - i2c_slave_create_simple(chip10->i2c[2].busses[1],
> > - "pca9552", 0x63);
> > + I2CSlave *hotplug = i2c_slave_create_simple(chip10-
> > >i2c[2].busses[1],
> > + "pca9552", 0x63);
>
> hotplug ? why not dev simply ?
>
>
> Thanks,
>
> C.
>
>
Sure, dev is fine. I'll change it.
Thanks,
Glenn
>
> > +
> > + /*
> > + * Connect PCA9552 GPIO pins 0-4 (SLOTx_EN) outputs to
> > GPIO pins 5-9
> > + * (SLOTx_PG) inputs in order to fake the pgood state of
> > PCIe slots
> > + * after hypervisor code sets a SLOTx_EN pin high.
> > + */
> > + qdev_connect_gpio_out(DEVICE(hotplug), 0,
> > + qdev_get_gpio_in(DEVICE(hotplug),
> > 5));
> > + qdev_connect_gpio_out(DEVICE(hotplug), 1,
> > + qdev_get_gpio_in(DEVICE(hotplug),
> > 6));
> > + qdev_connect_gpio_out(DEVICE(hotplug), 2,
> > + qdev_get_gpio_in(DEVICE(hotplug),
> > 7));
> > + qdev_connect_gpio_out(DEVICE(hotplug), 3,
> > + qdev_get_gpio_in(DEVICE(hotplug),
> > 8));
> > + qdev_connect_gpio_out(DEVICE(hotplug), 4,
> > + qdev_get_gpio_in(DEVICE(hotplug),
> > 9));
> > }
> > }
> >
next prev parent reply other threads:[~2023-11-21 20:04 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-20 23:51 [PATCH v4 00/11] Add powernv10 I2C devices and tests Glenn Miles
2023-11-20 23:51 ` [PATCH v4 01/11] misc/pca9552: Fix inverted input status Glenn Miles
2023-11-20 23:51 ` [PATCH v4 02/11] misc/pca9552: Let external devices set pca9552 inputs Glenn Miles
2023-11-20 23:51 ` [PATCH v4 03/11] ppc/pnv: New powernv10-rainier machine type Glenn Miles
2023-11-21 1:33 ` Nicholas Piggin
2023-11-21 7:29 ` Cédric Le Goater
2023-11-21 16:36 ` Miles Glenn
2023-11-21 18:17 ` Cédric Le Goater
2023-11-21 18:26 ` Cédric Le Goater
2023-11-21 18:31 ` Miles Glenn
2023-11-23 1:46 ` Nicholas Piggin
2023-11-21 6:46 ` Cédric Le Goater
2023-11-21 17:58 ` Miles Glenn
2023-11-20 23:51 ` [PATCH v4 04/11] ppc/pnv: Add pca9552 to powernv10-rainier for PCIe hotplug power control Glenn Miles
2023-11-21 6:53 ` Cédric Le Goater
2023-11-20 23:51 ` [PATCH v4 05/11] ppc/pnv: Wire up pca9552 GPIO pins " Glenn Miles
2023-11-21 18:36 ` Cédric Le Goater
2023-11-21 20:03 ` Miles Glenn [this message]
2023-11-22 7:44 ` Cédric Le Goater
2023-11-20 23:51 ` [PATCH v4 06/11] ppc/pnv: PNV I2C engines assigned incorrect XSCOM addresses Glenn Miles
2023-11-21 18:18 ` Cédric Le Goater
2023-11-20 23:51 ` [PATCH v4 07/11] ppc/pnv: Fix PNV I2C invalid status after reset Glenn Miles
2023-11-21 18:19 ` Cédric Le Goater
2023-11-20 23:51 ` [PATCH v4 08/11] ppc/pnv: Use resettable interface to reset child I2C buses Glenn Miles
2023-11-21 18:20 ` Cédric Le Goater
2023-11-20 23:51 ` [PATCH v4 09/11] misc: Add a pca9554 GPIO device model Glenn Miles
2023-11-20 23:51 ` [PATCH v4 10/11] ppc/pnv: Add a pca9554 I2C device to powernv10-rainier Glenn Miles
2023-11-21 18:18 ` Cédric Le Goater
2023-11-20 23:51 ` [PATCH v4 11/11] ppc/pnv: Test pnv i2c master and connected devices Glenn Miles
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=84600e8239b6aef4915312ab0dd08149f3db4067.camel@linux.vnet.ibm.com \
--to=milesg@linux.vnet.ibm.com \
--cc=clg@kaod.org \
--cc=fbarrat@linux.ibm.com \
--cc=npiggin@gmail.com \
--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.