From: thomas.petazzoni@free-electrons.com (Thomas Petazzoni)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/3] ARM: implement workaround for Cortex-A9/PL310/PCIe deadlock
Date: Thu, 3 Apr 2014 16:07:27 +0200 [thread overview]
Message-ID: <20140403160727.17b3558b@skate> (raw)
In-Reply-To: <1395677872-32741-1-git-send-email-thomas.petazzoni@free-electrons.com>
Russell, Will, Catalin,
Any comments about the proposed patches? These are important for the
recent Armada 375/38x platforms and I'm sure will require a bit of
discussion. Moreover, one of the patch affects the L2 cache driver that
Russell is currently working on, so it would be nice if we could get
the discussion going soon.
Thanks a lot!
Thomas
On Mon, 24 Mar 2014 17:17:49 +0100, Thomas Petazzoni wrote:
> Russell, Will, Catalin,
>
> This patch series adresses a problem that affects the newer Marvell
> Armada 375 and 38x SOCs, based on Cortex-A9+PL310, combined with the
> Marvell PCIe hardware unit. When the hardware I/O coherency is
> enabled, the combination of Cortex-A9/PL310/Marvell PCIe hardware unit
> will quickly cause a deadlock when the PCIe bus is stressed.
>
> The workaround for this problem has been suggested by ARM, and
> consists in two things:
>
> (1) Map the PCIe regions as strongly-ordered
>
> (2) Disable the outer cache sync of the PL310 when hardware I/O
> coherency is used, since it is unneeded and causes the deadlock.
>
> The following three patches address the problem in the following way:
>
> * PATCH 1/3 adds the necessary infrastructure to allow PCIe I/O
> regions to be mapped as strongly-ordered.
>
> * PATCH 2/3 extends the l2x0 cache driver to be able to pass the
> information on whether hardware I/O coherency is used or not, and
> in the former case, disable the outer_cache_sync operation.
>
> * PATCH 3/3 uses both of the added infrastructures, as well as the
> existing infrastructure to customize the behavior of ioremap() on a
> per-platform basis, to implement the workaround for the Armada 375
> and 38x SOCs.
>
> Patches 1/3 and 2/3 apply on 3.14-rc1. Patch 3/3 applies on top of the
> '[PATCH 00/10] ARM: mvebu: Hardware coherency support for Armada 375
> and 38x' patch set. But for now, I'm mainly interested in hearing
> about patches 1/3 and 2/3.
>
> Please let me know what you think about the proposed solution.
>
> Thanks!
>
> Thomas
>
> Thomas Petazzoni (3):
> ARM: mm: allow sub-architectures to override PCI I/O memory type
> ARM: mm: add support for HW coherent systems in PL310
> ARM: mvebu: implement L2/PCIe deadlock workaround
>
> arch/arm/include/asm/hardware/cache-l2x0.h | 1 +
> arch/arm/include/asm/io.h | 6 ++++++
> arch/arm/mach-mvebu/board-v7.c | 31 +++++++++++++++++++++++++++++-
> arch/arm/mm/cache-l2x0.c | 22 ++++++++++++++++++++-
> arch/arm/mm/ioremap.c | 9 ++++++++-
> 5 files changed, 66 insertions(+), 3 deletions(-)
>
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
next prev parent reply other threads:[~2014-04-03 14:07 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-24 16:17 [PATCH 0/3] ARM: implement workaround for Cortex-A9/PL310/PCIe deadlock Thomas Petazzoni
2014-03-24 16:17 ` [PATCH 1/3] ARM: mm: allow sub-architectures to override PCI I/O memory type Thomas Petazzoni
2014-03-24 16:17 ` [PATCH 2/3] ARM: mm: add support for HW coherent systems in PL310 Thomas Petazzoni
2014-04-08 17:24 ` Catalin Marinas
2014-04-08 18:12 ` Thomas Petazzoni
2014-04-09 11:15 ` Catalin Marinas
2014-04-09 14:06 ` Catalin Marinas
2014-05-06 10:07 ` Thomas Petazzoni
2014-03-24 16:17 ` [PATCH 3/3] ARM: mvebu: implement L2/PCIe deadlock workaround Thomas Petazzoni
2014-04-03 14:07 ` Thomas Petazzoni [this message]
2014-04-03 14:15 ` [PATCH 0/3] ARM: implement workaround for Cortex-A9/PL310/PCIe deadlock Russell King - ARM Linux
2014-04-07 9:10 ` Thomas Petazzoni
2014-04-07 12:13 ` Catalin Marinas
2014-04-14 16:59 ` Will Deacon
2014-04-14 18:39 ` Thomas Petazzoni
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=20140403160727.17b3558b@skate \
--to=thomas.petazzoni@free-electrons.com \
--cc=linux-arm-kernel@lists.infradead.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).