From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> To: linux-pci@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>, Arnd Bergmann <arnd@arndb.de>, Will Deacon <will.deacon@arm.com>, Bjorn Helgaas <bhelgaas@google.com>, Russell King <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>, Pratyush Anand <pratyush.anand@gmail.com>, Jingoo Han <jingoohan1@gmail.com>, Mingkai Hu <mingkai.hu@freescale.com>, John Garry <john.garry@huawei.com>, Tanmay Inamdar <tinamdar@apm.com>, Murali Karicheri <m-karicheri2@ti.com>, Bharat Kumar Gogada <bharat.kumar.gogada@xilinx.com>, Ray Jui <rjui@broadcom.com>, Wenrui Li <wenrui.li@rock-chips.com>, Shawn Lin <shawn.lin@rock-chips.com>, Minghuan Lian <minghuan.Lian@freescale.com>, Jon Mason <jonmason@broadcom.com>, Gabriele Paoloni <gabriele.paoloni@huawei.com>, Thomas Petazzoni <thomas.petazzoni@free-electrons.com>, Joao Pinto <Joao.Pinto@synopsys.com>, Thierry Reding <thierry.reding@gmail.com>, Michal Simek <michal.simek@xilinx.com>, Stanimir Varbanov <svarbanov@mm-sol.com>, Zhou Wang <wangzhou1@hisilicon.com>, Roy Zang <tie-fei.zang@freescale.com>, "Luis R. Rodriguez" <mcgrof@kernel.org> Subject: [PATCH v2 03/22] asm-generic/pgtable.h: introduce pgprot_nonposted remap attribute Date: Mon, 27 Mar 2017 10:49:31 +0100 [thread overview] Message-ID: <20170327094954.7162-4-lorenzo.pieralisi@arm.com> (raw) In-Reply-To: <20170327094954.7162-1-lorenzo.pieralisi@arm.com> According to the PCI local bus specifications (Revision 3.0, 3.2.5), I/O Address space transactions are non-posted. On architectures where I/O space is implemented through a chunk of memory mapped space mapped to PCI address space (ie IA64/ARM/ARM64) the memory mapping for the region backing I/O Address Space transactions determines the I/O transactions attributes (before the transactions actually reaches the PCI bus where it is handled according to the PCI specifications). The kernel lacks a pgprot_* attribute to map memory with type generating non-posted writes transactions, which therefore needs to be added. Add a pgprot_nonposted mapping prot to create a memory mapping for memory areas requiring non-posted write transactions; make it default to pgprot_noncached (which should provide a sane default behaviour) but still allowing architectures on which pgprot_noncached results in posted write transactions to override the prot with an arch specific implementation that guarantees non-posted writes transactions. Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Will Deacon <will.deacon@arm.com> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Russell King <linux@armlinux.org.uk> Cc: Catalin Marinas <catalin.marinas@arm.com> --- include/asm-generic/pgtable.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h index 1fad160..2070172 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h @@ -399,6 +399,10 @@ static inline int pud_same(pud_t pud_a, pud_t pud_b) #define pgprot_device pgprot_noncached #endif +#ifndef pgprot_nonposted +#define pgprot_nonposted pgprot_noncached +#endif + #ifndef pgprot_modify #define pgprot_modify pgprot_modify static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot) -- 2.10.0
WARNING: multiple messages have this Message-ID (diff)
From: lorenzo.pieralisi@arm.com (Lorenzo Pieralisi) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 03/22] asm-generic/pgtable.h: introduce pgprot_nonposted remap attribute Date: Mon, 27 Mar 2017 10:49:31 +0100 [thread overview] Message-ID: <20170327094954.7162-4-lorenzo.pieralisi@arm.com> (raw) In-Reply-To: <20170327094954.7162-1-lorenzo.pieralisi@arm.com> According to the PCI local bus specifications (Revision 3.0, 3.2.5), I/O Address space transactions are non-posted. On architectures where I/O space is implemented through a chunk of memory mapped space mapped to PCI address space (ie IA64/ARM/ARM64) the memory mapping for the region backing I/O Address Space transactions determines the I/O transactions attributes (before the transactions actually reaches the PCI bus where it is handled according to the PCI specifications). The kernel lacks a pgprot_* attribute to map memory with type generating non-posted writes transactions, which therefore needs to be added. Add a pgprot_nonposted mapping prot to create a memory mapping for memory areas requiring non-posted write transactions; make it default to pgprot_noncached (which should provide a sane default behaviour) but still allowing architectures on which pgprot_noncached results in posted write transactions to override the prot with an arch specific implementation that guarantees non-posted writes transactions. Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Will Deacon <will.deacon@arm.com> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Russell King <linux@armlinux.org.uk> Cc: Catalin Marinas <catalin.marinas@arm.com> --- include/asm-generic/pgtable.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h index 1fad160..2070172 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h @@ -399,6 +399,10 @@ static inline int pud_same(pud_t pud_a, pud_t pud_b) #define pgprot_device pgprot_noncached #endif +#ifndef pgprot_nonposted +#define pgprot_nonposted pgprot_noncached +#endif + #ifndef pgprot_modify #define pgprot_modify pgprot_modify static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot) -- 2.10.0
next prev parent reply other threads:[~2017-03-27 9:51 UTC|newest] Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-03-27 9:49 [PATCH v2 00/22] PCI: fix config and I/O Address space memory mappings Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 01/22] PCI: remove __weak tag from pci_remap_iospace() Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 02/22] asm-generic/io.h: add ioremap_nopost remap interface Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-28 1:41 ` Bjorn Helgaas 2017-03-28 1:41 ` Bjorn Helgaas 2017-03-28 1:41 ` Bjorn Helgaas 2017-03-28 14:45 ` Lorenzo Pieralisi 2017-03-28 14:45 ` Lorenzo Pieralisi 2017-03-30 16:47 ` Bjorn Helgaas 2017-03-30 16:47 ` Bjorn Helgaas 2017-03-30 16:47 ` Bjorn Helgaas 2017-04-05 10:58 ` Russell King - ARM Linux 2017-04-05 10:58 ` Russell King - ARM Linux 2017-04-05 12:38 ` Lorenzo Pieralisi 2017-04-05 12:38 ` Lorenzo Pieralisi 2017-04-06 10:26 ` Lorenzo Pieralisi 2017-04-06 10:26 ` Lorenzo Pieralisi 2017-04-06 10:47 ` Russell King - ARM Linux 2017-04-06 10:47 ` Russell King - ARM Linux 2017-04-10 14:30 ` Lorenzo Pieralisi 2017-04-10 14:30 ` Lorenzo Pieralisi 2017-04-06 10:53 ` Luis R. Rodriguez 2017-04-06 10:53 ` Luis R. Rodriguez 2017-04-06 11:38 ` Lorenzo Pieralisi 2017-04-06 11:38 ` Lorenzo Pieralisi 2017-04-06 11:59 ` Luis R. Rodriguez 2017-04-06 11:59 ` Luis R. Rodriguez 2017-04-06 13:07 ` Russell King - ARM Linux 2017-04-06 13:07 ` Russell King - ARM Linux 2017-04-06 16:21 ` Lorenzo Pieralisi 2017-04-06 16:21 ` Lorenzo Pieralisi 2017-04-06 16:40 ` Russell King - ARM Linux 2017-04-06 16:40 ` Russell King - ARM Linux 2017-04-06 17:09 ` Lorenzo Pieralisi 2017-04-06 17:09 ` Lorenzo Pieralisi 2017-04-06 17:19 ` Russell King - ARM Linux 2017-04-06 17:19 ` Russell King - ARM Linux 2017-04-06 12:11 ` Russell King - ARM Linux 2017-04-06 12:11 ` Russell King - ARM Linux 2017-04-06 12:25 ` Luis R. Rodriguez 2017-04-06 12:25 ` Luis R. Rodriguez 2017-03-27 9:49 ` Lorenzo Pieralisi [this message] 2017-03-27 9:49 ` [PATCH v2 03/22] asm-generic/pgtable.h: introduce pgprot_nonposted remap attribute Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 04/22] PCI: fix pci_remap_iospace() " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 05/22] ARM64: implement ioremap_nopost() interface Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-30 16:19 ` Will Deacon 2017-03-30 16:19 ` Will Deacon 2017-03-30 16:19 ` Will Deacon 2017-03-27 9:49 ` [PATCH v2 06/22] ARM: " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-31 11:08 ` Lorenzo Pieralisi 2017-03-31 11:08 ` Lorenzo Pieralisi 2017-03-31 11:08 ` Lorenzo Pieralisi 2017-04-05 10:21 ` Lorenzo Pieralisi 2017-04-05 10:21 ` Lorenzo Pieralisi 2017-04-05 10:21 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 07/22] PCI: ECAM: use ioremap_nopost() to map config region Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-30 16:20 ` Will Deacon 2017-03-30 16:20 ` Will Deacon 2017-03-30 16:20 ` Will Deacon 2017-03-27 9:49 ` [PATCH v2 08/22] lib: implement Devres ioremap_nopost() interface Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-28 1:41 ` Bjorn Helgaas 2017-03-28 1:41 ` Bjorn Helgaas 2017-03-28 1:41 ` Bjorn Helgaas 2017-03-28 14:50 ` Lorenzo Pieralisi 2017-03-28 14:50 ` Lorenzo Pieralisi 2017-03-28 15:55 ` Tejun Heo 2017-03-28 15:55 ` Tejun Heo 2017-03-27 9:49 ` [PATCH v2 09/22] PCI: xilinx: update PCI config space remap function Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 10/22] PCI: xilinx-nwl: " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 11/22] PCI: spear13xx: " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 12/22] PCI: rockchip: " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 13/22] PCI: qcom: " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 14/22] PCI: iproc-platform: " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 15/22] PCI: hisi: " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 16/22] PCI: designware: " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 17/22] PCI: armada8k: " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 18/22] PCI: xgene: " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 19/22] PCI: tegra: " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 20/22] PCI: layerscape: " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 21/22] PCI: keystone-dw: " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9:49 ` [PATCH v2 22/22] PCI: versatile: " Lorenzo Pieralisi 2017-03-27 9:49 ` Lorenzo Pieralisi 2017-03-27 9: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=20170327094954.7162-4-lorenzo.pieralisi@arm.com \ --to=lorenzo.pieralisi@arm.com \ --cc=Joao.Pinto@synopsys.com \ --cc=arnd@arndb.de \ --cc=bharat.kumar.gogada@xilinx.com \ --cc=bhelgaas@google.com \ --cc=catalin.marinas@arm.com \ --cc=gabriele.paoloni@huawei.com \ --cc=jingoohan1@gmail.com \ --cc=john.garry@huawei.com \ --cc=jonmason@broadcom.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=m-karicheri2@ti.com \ --cc=mcgrof@kernel.org \ --cc=michal.simek@xilinx.com \ --cc=minghuan.Lian@freescale.com \ --cc=mingkai.hu@freescale.com \ --cc=pratyush.anand@gmail.com \ --cc=rjui@broadcom.com \ --cc=shawn.lin@rock-chips.com \ --cc=svarbanov@mm-sol.com \ --cc=thierry.reding@gmail.com \ --cc=thomas.petazzoni@free-electrons.com \ --cc=tie-fei.zang@freescale.com \ --cc=tinamdar@apm.com \ --cc=wangzhou1@hisilicon.com \ --cc=wenrui.li@rock-chips.com \ --cc=will.deacon@arm.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: linkBe 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.