From: catalin.marinas@arm•com (Catalin Marinas)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH v8 9/9] pci: Remap I/O bus resources into CPU space with pci_remap_iospace()
Date: Mon, 14 Jul 2014 17:54:43 +0100 [thread overview]
Message-ID: <20140714165443.GI1112@arm.com> (raw)
In-Reply-To: <1404240214-9804-10-git-send-email-Liviu.Dudau@arm.com>
On Tue, Jul 01, 2014 at 07:43:34PM +0100, Liviu Dudau wrote:
> Introduce a default implementation for remapping PCI bus I/O resources
> onto the CPU address space. Architectures with special needs may
> provide their own version, but most should be able to use this one.
[...]
> +/**
> + * pci_remap_iospace - Remap the memory mapped I/O space
> + * @res: Resource describing the I/O space
> + * @phys_addr: physical address where the range will be mapped.
> + *
> + * Remap the memory mapped I/O space described by the @res
> + * into the CPU physical address space. Only architectures
> + * that have memory mapped IO defined (and hence PCI_IOBASE)
> + * should call this function.
> + */
> +int __weak pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr)
> +{
> + int err = -ENODEV;
> +
> +#ifdef PCI_IOBASE
> + if (!(res->flags & IORESOURCE_IO))
> + return -EINVAL;
> +
> + if (res->end > IO_SPACE_LIMIT)
> + return -EINVAL;
> +
> + err = ioremap_page_range(res->start + (unsigned long)PCI_IOBASE,
> + res->end + 1 + (unsigned long)PCI_IOBASE,
> + phys_addr, __pgprot(PROT_DEVICE_nGnRE));
Except that PROT_DEVICE_nGnRE is arm64 only. I think that's a function
that should remain arch specific.
--
Catalin
next prev parent reply other threads:[~2014-07-14 16:54 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-01 18:43 [PATCH v8 0/9] Support for creating generic PCI host bridges from DT Liviu Dudau
2014-07-01 18:43 ` [PATCH v8 1/9] Fix ioport_map() for !CONFIG_GENERIC_IOMAP cases Liviu Dudau
2014-07-01 18:43 ` [PATCH v8 2/9] pci: Export find_pci_host_bridge() function Liviu Dudau
2014-07-02 18:06 ` Tanmay Inamdar
2014-07-02 19:12 ` Arnd Bergmann
2014-07-02 20:43 ` Tanmay Inamdar
2014-07-03 9:53 ` Liviu Dudau
2014-07-03 10:26 ` Arnd Bergmann
2014-07-07 23:27 ` Bjorn Helgaas
2014-07-08 10:42 ` Liviu Dudau
2014-07-01 18:43 ` [PATCH v8 3/9] pci: Introduce pci_register_io_range() helper function Liviu Dudau
2014-07-01 19:36 ` Arnd Bergmann
2014-07-01 20:45 ` Liviu Dudau
2014-07-02 12:30 ` Arnd Bergmann
2014-07-02 14:23 ` Liviu Dudau
2014-07-02 14:58 ` Arnd Bergmann
2014-07-02 11:22 ` Will Deacon
2014-07-02 16:00 ` Liviu Dudau
2014-07-02 12:38 ` Arnd Bergmann
2014-07-02 13:20 ` Liviu Dudau
2014-07-08 0:14 ` Bjorn Helgaas
2014-07-08 7:00 ` Arnd Bergmann
2014-07-08 21:29 ` Bjorn Helgaas
2014-07-08 22:45 ` Liviu Dudau
2014-07-09 6:32 ` Arnd Bergmann
2014-07-09 9:13 ` Liviu Dudau
2014-07-09 6:20 ` Arnd Bergmann
2014-07-09 9:14 ` Liviu Dudau
2014-07-09 15:21 ` Bjorn Helgaas
2014-07-08 10:40 ` Liviu Dudau
2014-07-08 14:14 ` Arnd Bergmann
2014-07-09 8:59 ` Liviu Dudau
2014-07-01 18:43 ` [PATCH v8 4/9] pci: OF: Fix the conversion of IO ranges into IO resources Liviu Dudau
2014-07-05 19:25 ` Rob Herring
2014-07-05 20:46 ` Arnd Bergmann
2014-07-07 11:11 ` Liviu Dudau
2014-07-07 21:22 ` Arnd Bergmann
2014-07-08 10:03 ` Liviu Dudau
2014-07-09 8:31 ` Arnd Bergmann
2014-07-09 9:27 ` Liviu Dudau
2014-07-16 14:35 ` Rob Herring
2014-07-16 14:47 ` Liviu Dudau
2014-07-16 14:47 ` Arnd Bergmann
2014-07-01 18:43 ` [PATCH v8 5/9] pci: Create pci_host_bridge before its associated bus in pci_create_root_bus Liviu Dudau
2014-07-01 18:43 ` [PATCH v8 6/9] pci: Introduce a domain number for pci_host_bridge Liviu Dudau
2014-07-08 0:59 ` Bjorn Helgaas
2014-07-08 10:46 ` Liviu Dudau
2014-07-08 18:41 ` Bjorn Helgaas
2014-07-08 22:48 ` Liviu Dudau
2014-07-09 15:10 ` Bjorn Helgaas
2014-07-10 9:47 ` Liviu Dudau
2014-07-10 22:36 ` Bjorn Helgaas
2014-07-11 9:30 ` Liviu Dudau
2014-07-11 14:11 ` Catalin Marinas
2014-07-11 15:08 ` Liviu Dudau
2014-07-11 16:09 ` Catalin Marinas
2014-07-11 17:02 ` Bjorn Helgaas
2014-07-11 18:02 ` Catalin Marinas
2014-07-14 16:39 ` Catalin Marinas
2014-07-22 3:15 ` Bjorn Helgaas
2014-07-25 15:42 ` Catalin Marinas
2014-07-01 18:43 ` [PATCH v8 7/9] pci: of: Parse and map the IRQ when adding the PCI device Liviu Dudau
2014-07-02 11:17 ` Will Deacon
2014-07-05 19:04 ` Rob Herring
2014-07-01 18:43 ` [PATCH v8 8/9] pci: Add support for creating a generic host_bridge from device tree Liviu Dudau
2014-07-01 20:50 ` [RESEND] " Liviu Dudau
2014-07-01 21:04 ` Liviu Dudau
2014-07-02 11:22 ` Will Deacon
2014-07-02 17:23 ` Liviu Dudau
2014-07-02 17:31 ` Will Deacon
2014-07-02 19:09 ` Arnd Bergmann
2014-07-08 1:01 ` Bjorn Helgaas
2014-07-08 10:29 ` Liviu Dudau
2014-07-08 21:33 ` Bjorn Helgaas
2014-07-08 22:27 ` Liviu Dudau
2014-07-08 22:37 ` Bjorn Helgaas
2014-07-08 22:57 ` Liviu Dudau
2014-07-09 6:47 ` Arnd Bergmann
2014-07-11 7:43 ` Jingoo Han
2014-07-11 9:08 ` Liviu Dudau
2014-07-01 18:43 ` [PATCH v8 9/9] pci: Remap I/O bus resources into CPU space with pci_remap_iospace() Liviu Dudau
2014-07-14 16:54 ` Catalin Marinas [this message]
2014-07-14 16:56 ` Liviu Dudau
2014-07-14 18:15 ` Arnd Bergmann
2014-07-15 0:14 ` Liviu Dudau
2014-07-15 9:09 ` Catalin Marinas
2014-07-06 15:23 ` [PATCH v8 0/9] Support for creating generic PCI host bridges from DT Rob Herring
2014-07-07 11:12 ` Liviu Dudau
2014-07-08 17:18 ` Liviu Dudau
2014-07-11 0:44 ` Tanmay Inamdar
2014-07-11 7:33 ` Jingoo Han
2014-07-11 9:11 ` Liviu Dudau
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=20140714165443.GI1112@arm.com \
--to=catalin.marinas@arm$(echo .)com \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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