From: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Andrew Murray <andrew.murray@arm.com>,
Bjorn Helgaas <bhelgaas@google.com>, <linux-pci@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>,
Masami Hiramatsu <masami.hiramatsu@linaro.org>,
Jassi Brar <jaswinder.singh@linaro.org>,
Kishon Vijay Abraham I <kishon@ti.com>
Subject: Re: [PATCH 2/2] PCI: uniphier: Add checking whether PERST# is deasserted
Date: Fri, 22 Nov 2019 20:53:16 +0900 [thread overview]
Message-ID: <20191122205316.297B.4A936039@socionext.com> (raw)
In-Reply-To: <20191121164705.GA14229@e121166-lin.cambridge.arm.com>
Hello Lorenzo,
On Thu, 21 Nov 2019 16:47:05 +0000 <lorenzo.pieralisi@arm.com> wrote:
> On Fri, Nov 08, 2019 at 04:30:27PM +0900, Kunihiko Hayashi wrote:
> > > However, If I understand correctly, doesn't your solution only work some
> > > of the time? What happens if you boot both machines at the same time,
> > > and PERST# isn't asserted prior to the kernel booting?
> >
> > I think it contains an annoying problem.
> >
> > If PERST# isn't toggled prior to the kernel booting, PERST# remains asserted
> > and the RC driver can't access PCI bus.
> >
> > As a result, this patch works and deasserts PERST# (and EP configuration will
> > be lost). So boot sequence needs to include deasserting PERST#.
>
> I am sorry but I have lost you. Can you explain to us why checking
> that PERST# is deasserted guarantees you that:
>
> - The EP has bootstrapped
> - It is safe not to toggle it again (and also skip
> uniphier_pcie_ltssm_enable())
>
> Please provide details of the HW configuration so that we understand
> what's actually supposed to happen and why this patch fixes the
> issue you are facing.
I tried to connect between the following boards, and do pci-epf-test:
- "RC board": UniPhier ld20 board that has DWC RC controller
- "EP board": UniPhier legacy board that has DWC EP controller
This EP has power-on-state configuration, but it's necessary to set
class ID, BAR sizes, etc. after starting up.
In case of that starting up RC board before EP board, the RC driver
can't establish link. So we need to boot EP board first.
- EP/RC: power on both boards
- EP: start up the kernel on EP board
- EP: according to the following guide, configurate pci-epf-test
https://www.kernel.org/doc/html/latest/PCI/endpoint/pci-test-howto.html
- RC: start up the kernel on RC board
At that time, because RC driver toggled PERST#, the EP configuration
values are initialized to the power on state. After that, RC can't
access EP collectly.
I think there is a following solution:
- EP/RC: power on both boards
- RC: [deassert PERST# by boot firmware]
- EP: start up the kernel on EP board
- EP: configurate pci-epf-test
- RC: start up the kernel on RC board [without toggling PERST# by this patch]
Deasserting PERST# before EP configuration avoids the issue, however,
this relies on boot firmware, so I think this isn't enough to solve
the issue.
Thank you,
---
Best Regards,
Kunihiko Hayashi
next prev parent reply other threads:[~2019-11-22 11:53 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-07 4:58 [PATCH 1/2] PCI: uniphier: Set mode register to host mode Kunihiko Hayashi
2019-11-07 4:58 ` [PATCH 2/2] PCI: uniphier: Add checking whether PERST# is deasserted Kunihiko Hayashi
2019-11-07 10:02 ` Andrew Murray
2019-11-07 11:52 ` Kunihiko Hayashi
2019-11-07 12:46 ` Andrew Murray
2019-11-08 7:30 ` Kunihiko Hayashi
2019-11-08 9:59 ` Andrew Murray
2019-11-21 16:47 ` Lorenzo Pieralisi
2019-11-22 11:53 ` Kunihiko Hayashi [this message]
2019-12-04 10:05 ` Kunihiko Hayashi
2019-12-06 6:58 ` Kishon Vijay Abraham I
2019-12-06 8:58 ` Kunihiko Hayashi
2019-12-06 9:01 ` Kishon Vijay Abraham I
2019-12-09 2:35 ` Kunihiko Hayashi
2019-11-07 9:52 ` [PATCH 1/2] PCI: uniphier: Set mode register to host mode Andrew Murray
2019-11-21 16:49 ` Lorenzo Pieralisi
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=20191122205316.297B.4A936039@socionext.com \
--to=hayashi.kunihiko@socionext.com \
--cc=andrew.murray@arm.com \
--cc=bhelgaas@google.com \
--cc=jaswinder.singh@linaro.org \
--cc=kishon@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=masami.hiramatsu@linaro.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).