[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAHTX3dJ-x2ewDWjbSp0kOwJ5N0XtKa98gFOAKD_AiYeyJp4RYA@mail.gmail.com>
Date: Mon, 10 Dec 2012 08:36:40 +0100
From: Michal Simek <monstr@...str.eu>
To: Arnd Bergmann <arnd@...db.de>
Cc: Bjorn Helgaas <bhelgaas@...gle.com>,
LKML <linux-kernel@...r.kernel.org>,
linux-arm <linux-arm-kernel@...ts.infradead.org>,
Olof Johansson <olof@...om.net>, linux-arch@...r.kernel.org,
devicetree-discuss@...ts.ozlabs.org,
Grant Likely <grant.likely@...retlab.ca>,
John Linn <John.Linn@...inx.com>,
John Williams <jwilliams@...inx.com>, linux-pci@...r.kernel.org
Subject: Re: Sharing PCIE driver between Microblaze and Arm zynq
2012/12/7 Arnd Bergmann <arnd@...db.de>:
> On Friday 07 December 2012, Michal Simek wrote:
>> On 12/06/2012 10:27 PM, Bjorn Helgaas wrote:
>> > [+cc linux-pci]
>> >
>> > On Thu, Dec 6, 2012 at 7:23 AM, Michal Simek <michal.simek@...inx.com> wrote:
>> >> Hi guys,
>> >>
>> >> I have a question regarding to sharing generic OF pcie driver between
>> >> two architectures MB and ARM Zynq.
>> >> Is drivers/pci/pcie location good for it?
>> >> Make no sense to have the same driver in two locations.
>> >
>> > I think you're talking about a PCI host bridge driver. It would
>> > definitely be nice to move toward a generic, shared driver. Host
>> > bridge drivers are responsible for enumerating the PCI hierarchy below
>> > the bridge. Enumeration is not really PCIe-specific, so I wouldn't
>> > put it in drivers/pci/pcie.
>>
>> Not a PCI expert, just trying to find out the proper location for this shared driver.
>
> I'd suggest creating a drivers/pci/host directory. We will have more of
> these in the future. AFAIK, there is no fully generic (architecture
> independent) way to interface a PCI host driver to the PCI subsystem,
> but I think we are getting closer to that. You are probably fairly
> free to modify the microblaze architecture specific code though if needed.
yep.
>> >> Is using readl/writel IO functions in this driver the best option
>> >> which we can have?
>> >> Or is there any other recommendation?
>> >
>> > I'm not really a driver person, but if you're writing a new driver,
>> > wouldn't you use the iomap interfaces (ioremap(), ioread32(), etc)
>> > rather than readl()?
>>
>> That driver exists but it is not in mainline and it is better to directly
>> add it to proper location with correct io functions.
>> The question is if ioread/iowrite functions are correct one.
>> PowerPC io-defs.h suggests that readl/writel should be used for PCI.
>
> ioread32/iowrite32 are defined to behave the same way readl/writel regarding
> addressing modes and barriers, but also allow operating on __iomem pointers
> that were returned from ioport_map(). You probably don't need that.
>
> Some architectures like powerpc have their own accessors for on-chip MMIO
> areas, but ARM does not. The PowerPC rule is that you must use either
> readl/writel or ioread32/iowrite32 to access devices connected to a PCI
> bus, but you would not necessarily do that for the PCI host controller
> itself on PowerPC.
ok.
Thanks,
Michal
--
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists