From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Lior Amsalem <alior@marvell.com>, Andrew Lunn <andrew@lunn.ch>,
Jason Cooper <jason@lakedaemon.net>,
Arnd Bergmann <arnd@arndb.de>,
Stephen Warren <swarren@wwwdotorg.org>,
linux-pci@vger.kernel.org,
Thierry Reding <thierry.reding@avionic-design.de>,
Eran Ben-Avi <benavi@marvell.com>,
Nadav Haklai <nadavh@marvell.com>,
Maen Suleiman <maen@marvell.com>,
Shadi Ammouri <shadi@marvell.com>,
Gregory Clement <gregory.clement@free-electrons.com>,
Tawfik Bayouk <tawfik@marvell.com>,
Bjorn Helgaas <bhelgaas@google.com>,
linux-arm-kernel@lists.infradead.org,
Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Subject: Re: [PATCH v2 19/27] pci: PCIe driver for Marvell Armada 370/XP systems
Date: Thu, 31 Jan 2013 15:30:41 +0100 [thread overview]
Message-ID: <20130131153041.35fa3b60@skate> (raw)
In-Reply-To: <20130130154602.GL23505@n2100.arm.linux.org.uk>
Dear Russell King - ARM Linux,
On Wed, 30 Jan 2013 15:46:02 +0000, Russell King - ARM Linux wrote:
> +resource_size_t pcibios_window_alignment(struct pci_bus *bus,
> + unsigned long type)
> +{
> + struct pci_sys_data *sys = bus->sysdata;
> +
> + /* Ignore downstream buses */
> + if (!bus->parent) {
> + if (type & IORESOURCE_MEM)
> + return sys->win_align_mem;
> + if (type & IORESOURCE_IO)
> + return sys->win_align_io;
> + }
> + return 1;
> +}
> +
Unfortunately, this doesn't work as is for me: the if (!bus->parent)
prevents the thing from being effective. Here my lspci output:
# /usr/sbin/lspci
00:00.0 Host bridge: Marvell Technology Group Ltd. Device 102d
00:01.0 PCI bridge: Marvell Technology Group Ltd. Device 1092
00:02.0 PCI bridge: Marvell Technology Group Ltd. Device 1092
00:03.0 PCI bridge: Marvell Technology Group Ltd. Device 1092
00:04.0 PCI bridge: Marvell Technology Group Ltd. Device 1092
00:05.0 PCI bridge: Marvell Technology Group Ltd. Device 1092
00:06.0 PCI bridge: Marvell Technology Group Ltd. Device 1092
03:00.0 SCSI storage controller: Marvell Technology Group Ltd. 88SX7042 PCI-e 4-port SATA-II (rev 02)
05:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)
And the function pcibios_window_alignment() only gets called for bus 1,
2, 3, 4, 5, 6 and never for bus 0. And therefore, the !bus->parent test
is always false. So, if I keep your implementation, I have the following
addresses assigned to my bridges:
pci 0000:00:03.0: PCI bridge to [bus 03]
pci 0000:00:03.0: bridge window [io 0xc0000000-0xc0000fff]
pci 0000:00:03.0: bridge window [mem 0xc1000000-0xc10fffff]
pci 0000:00:03.0: bridge window [mem 0xc1100000-0xc11fffff pref]
pci 0000:00:05.0: PCI bridge to [bus 05]
pci 0000:00:05.0: bridge window [io 0xc0001000-0xc0001fff]
pci 0000:00:05.0: bridge window [mem 0xc1200000-0xc12fffff]
pci 0000:00:05.0: bridge window [mem 0xc1300000-0xc13fffff pref]
Notice how the io window of the second bridge starts 4K after the io
window of the first bridge. Which cannot work on Marvell SoC, due to
the 64KB alignment.
If, however, I remove the !bus->parent test, the I/O addresses
correctly take into account the 64K requirement:
pci 0000:00:03.0: PCI bridge to [bus 03]
pci 0000:00:03.0: bridge window [io 0xc0000000-0xc000ffff]
pci 0000:00:03.0: bridge window [mem 0xc1000000-0xc10fffff]
pci 0000:00:03.0: bridge window [mem 0xc1100000-0xc11fffff pref]
pci 0000:00:05.0: PCI bridge to [bus 05]
pci 0000:00:05.0: bridge window [io 0xc0010000-0xc001ffff]
pci 0000:00:05.0: bridge window [mem 0xc1200000-0xc12fffff]
pci 0000:00:05.0: bridge window [mem 0xc1300000-0xc13fffff pref]
Any idea?
Thanks,
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
next prev parent reply other threads:[~2013-01-31 14:30 UTC|newest]
Thread overview: 217+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-28 18:56 [PATCH v2] PCIe support for the Armada 370 and Armada XP SoCs Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 01/27] of/pci: Provide support for parsing PCI DT ranges property Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 02/27] of/pci: Add of_pci_get_devfn() function Thomas Petazzoni
2013-01-28 22:00 ` Stephen Warren
2013-01-28 22:16 ` Thierry Reding
2013-01-29 10:04 ` Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 03/27] of/pci: Add of_pci_parse_bus_range() function Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 04/27] ARM: pci: Allow passing per-controller private data Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 05/27] arm: pci: add a align_resource hook Thomas Petazzoni
2013-01-29 15:12 ` Thomas Petazzoni
2013-01-29 15:15 ` Russell King - ARM Linux
2013-01-29 15:23 ` Thomas Petazzoni
2013-01-29 15:25 ` Russell King - ARM Linux
2013-01-29 15:28 ` Thomas Petazzoni
2013-01-29 15:58 ` Russell King - ARM Linux
2013-01-29 16:20 ` Thomas Petazzoni
2013-01-29 16:45 ` Arnd Bergmann
2013-01-29 17:09 ` Thomas Petazzoni
2013-01-29 20:15 ` Arnd Bergmann
2013-01-29 20:33 ` Thomas Petazzoni
2013-01-29 21:59 ` Thomas Petazzoni
2013-01-29 22:17 ` Stephen Warren
2013-01-30 4:49 ` Jason Gunthorpe
2013-01-29 22:54 ` Arnd Bergmann
2013-01-30 4:21 ` Jason Gunthorpe
2013-01-30 9:55 ` Arnd Bergmann
2013-01-30 11:47 ` Thomas Petazzoni
2013-01-30 16:17 ` Arnd Bergmann
2013-01-30 16:38 ` Thomas Petazzoni
2013-01-30 20:48 ` Bjorn Helgaas
2013-01-30 21:06 ` Jason Gunthorpe
2013-01-30 4:56 ` Jason Gunthorpe
2013-01-30 8:19 ` Thomas Petazzoni
2013-01-30 9:46 ` Arnd Bergmann
2013-01-30 9:54 ` Thomas Petazzoni
2013-01-30 10:03 ` Arnd Bergmann
2013-01-30 11:42 ` Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 06/27] lib: devres: don't enclose pcim_*() functions in CONFIG_HAS_IOPORT Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 07/27] PCI: Add software-emulated host bridge Thomas Petazzoni
2013-01-28 20:18 ` Arnd Bergmann
2013-01-28 22:03 ` Stephen Warren
2013-01-28 22:09 ` Jason Gunthorpe
2013-01-28 22:18 ` Thomas Petazzoni
2013-01-28 22:23 ` Jason Gunthorpe
2013-01-28 22:30 ` Thomas Petazzoni
2013-01-28 22:51 ` Jason Gunthorpe
2013-01-29 10:01 ` Thomas Petazzoni
2013-01-29 17:42 ` Jason Gunthorpe
2013-01-29 17:43 ` Thomas Petazzoni
2013-01-29 2:40 ` Bjorn Helgaas
2013-01-29 6:16 ` Jason Gunthorpe
2013-01-28 22:09 ` Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 08/27] pci: implement an emulated PCI-to-PCI bridge Thomas Petazzoni
2013-01-28 19:35 ` Jason Gunthorpe
2013-01-28 19:39 ` Thomas Petazzoni
2013-01-28 19:55 ` Jason Gunthorpe
2013-01-28 22:06 ` Stephen Warren
2013-01-28 22:16 ` Jason Gunthorpe
2013-01-29 22:35 ` Bjorn Helgaas
2013-01-29 23:06 ` Arnd Bergmann
2013-01-30 4:12 ` Jason Gunthorpe
2013-01-28 18:56 ` [PATCH v2 09/27] pci: infrastructure to add drivers in drivers/pci/host Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 10/27] arm: mvebu: fix address-cells in mpic DT node Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 11/27] clk: mvebu: create parent-child relation for PCIe clocks on Armada 370 Thomas Petazzoni
2013-01-28 22:08 ` Stephen Warren
2013-01-28 22:21 ` Thomas Petazzoni
2013-01-28 22:27 ` Stephen Warren
2013-01-28 22:44 ` Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 12/27] clk: mvebu: add more PCIe clocks for Armada XP Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 13/27] arm: plat-orion: introduce WIN_CTRL_ENABLE in address mapping code Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 14/27] arm: plat-orion: refactor the orion_disable_wins() function Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 15/27] arm: plat-orion: introduce orion_{alloc,free}_cpu_win() functions Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 16/27] arm: mvebu: add functions to alloc/free PCIe decoding windows Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 17/27] arm: plat-orion: make common PCIe code usable on mvebu Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 18/27] arm: plat-orion: add more flexible PCI configuration space read/write functions Thomas Petazzoni
2013-01-28 19:51 ` Jason Gunthorpe
2013-01-29 8:40 ` Thomas Petazzoni
2013-01-29 17:40 ` Jason Gunthorpe
2013-01-28 18:56 ` [PATCH v2 19/27] pci: PCIe driver for Marvell Armada 370/XP systems Thomas Petazzoni
2013-01-28 22:21 ` Stephen Warren
2013-01-29 8:41 ` Thomas Petazzoni
2013-01-29 9:20 ` Thierry Reding
2013-01-29 9:21 ` Thomas Petazzoni
2013-02-07 10:24 ` Thomas Petazzoni
2013-02-07 15:46 ` Bjorn Helgaas
2013-02-07 16:00 ` Thomas Petazzoni
2013-02-07 18:08 ` Bjorn Helgaas
2013-02-07 18:15 ` Jason Gunthorpe
2013-02-07 18:30 ` Bjorn Helgaas
2013-02-07 18:43 ` Thierry Reding
2013-01-29 19:47 ` Stephen Warren
2013-01-29 3:29 ` Bjorn Helgaas
2013-01-29 5:55 ` Jason Gunthorpe
2013-01-29 8:00 ` Thomas Petazzoni
2013-01-29 17:47 ` Bjorn Helgaas
2013-01-29 18:14 ` Thomas Petazzoni
2013-01-29 18:41 ` Jason Gunthorpe
2013-01-29 19:07 ` Bjorn Helgaas
2013-01-29 19:18 ` Jason Gunthorpe
2013-01-29 19:38 ` Bjorn Helgaas
2013-01-29 22:27 ` Bjorn Helgaas
2013-01-30 4:24 ` Jason Gunthorpe
2013-01-30 9:35 ` Thomas Petazzoni
2013-01-30 18:52 ` Bjorn Helgaas
2013-01-30 22:28 ` Thomas Petazzoni
2013-01-30 23:10 ` Jason Gunthorpe
2013-01-30 23:48 ` Bjorn Helgaas
2013-01-31 16:04 ` Thomas Petazzoni
2013-01-31 16:30 ` Bjorn Helgaas
2013-01-31 16:33 ` Thomas Petazzoni
2013-01-31 17:03 ` Bjorn Helgaas
2013-01-31 16:42 ` Russell King - ARM Linux
2013-01-29 13:22 ` Andrew Murray
2013-01-29 13:45 ` Thomas Petazzoni
2013-01-29 14:05 ` Andrew Murray
2013-01-29 14:20 ` Thierry Reding
2013-01-29 14:29 ` Thomas Petazzoni
2013-01-29 15:02 ` Thierry Reding
2013-01-29 15:08 ` Andrew Murray
2013-01-29 15:10 ` Thomas Petazzoni
2013-02-07 14:37 ` Thomas Petazzoni
2013-02-07 15:51 ` Andrew Murray
2013-02-07 16:19 ` Thomas Petazzoni
2013-02-07 16:40 ` Thomas Petazzoni
2013-02-07 16:53 ` Andrew Murray
2013-02-07 17:14 ` Thomas Petazzoni
2013-02-07 17:29 ` Andrew Murray
2013-02-07 17:37 ` Thomas Petazzoni
2013-02-07 18:21 ` Jason Gunthorpe
2013-02-07 23:25 ` Arnd Bergmann
2013-02-08 0:44 ` Jason Gunthorpe
2013-02-09 22:23 ` Arnd Bergmann
2013-02-12 19:26 ` Jason Gunthorpe
2013-02-07 18:30 ` Andrew Murray
2013-02-07 23:27 ` Arnd Bergmann
2013-01-30 11:32 ` Russell King - ARM Linux
2013-01-30 11:37 ` Thomas Petazzoni
2013-01-30 12:03 ` Thierry Reding
2013-01-30 13:07 ` Thomas Petazzoni
2013-01-30 15:08 ` Russell King - ARM Linux
2013-01-30 15:19 ` Russell King - ARM Linux
2013-01-30 15:36 ` Thomas Petazzoni
2013-01-30 15:46 ` Russell King - ARM Linux
2013-01-31 14:30 ` Thomas Petazzoni [this message]
2013-01-31 14:50 ` Russell King - ARM Linux
2013-01-31 14:57 ` Thomas Petazzoni
2013-01-31 15:08 ` Russell King - ARM Linux
2013-01-31 15:22 ` Thomas Petazzoni
2013-01-31 15:36 ` Russell King - ARM Linux
2013-01-31 15:47 ` Thomas Petazzoni
2013-01-31 15:48 ` Russell King - ARM Linux
2013-01-31 16:18 ` Arnd Bergmann
2013-01-31 18:02 ` Jason Gunthorpe
2013-01-31 20:46 ` Arnd Bergmann
2013-01-31 22:44 ` Jason Gunthorpe
2013-02-01 11:30 ` Arnd Bergmann
2013-02-01 19:52 ` Jason Gunthorpe
2013-02-06 16:51 ` Thomas Petazzoni
2013-02-06 17:09 ` Jason Gunthorpe
2013-02-06 17:18 ` Thomas Petazzoni
2013-02-06 17:50 ` Jason Gunthorpe
2013-02-06 18:02 ` Thomas Petazzoni
2013-02-06 18:22 ` Stephen Warren
2013-02-06 18:39 ` Jason Gunthorpe
2013-02-06 18:42 ` Thomas Petazzoni
2013-02-06 22:04 ` Arnd Bergmann
2013-02-07 15:50 ` Giving special alignment/size constraints to the Linux PCI core? Thomas Petazzoni
2013-02-07 23:33 ` Arnd Bergmann
2013-02-08 4:21 ` Bjorn Helgaas
2013-02-08 8:14 ` Thomas Petazzoni
2013-02-12 16:00 ` Arnd Bergmann
2013-02-12 18:41 ` Jason Gunthorpe
2013-02-12 19:02 ` Arnd Bergmann
2013-02-12 19:38 ` Jason Gunthorpe
2013-02-12 23:05 ` Arnd Bergmann
2013-02-13 0:32 ` Jason Gunthorpe
2013-02-13 18:53 ` Arnd Bergmann
2013-02-13 19:12 ` Jason Gunthorpe
2013-02-13 19:51 ` Thomas Petazzoni
2013-02-13 21:10 ` Arnd Bergmann
2013-02-13 21:20 ` Yinghai Lu
2013-02-13 22:24 ` Arnd Bergmann
2013-02-13 21:02 ` Yinghai Lu
2013-01-31 7:10 ` [PATCH v2 19/27] pci: PCIe driver for Marvell Armada 370/XP systems Thierry Reding
2013-02-01 0:34 ` Stephen Warren
2013-02-01 1:41 ` Jason Gunthorpe
2013-02-01 2:21 ` Stephen Warren
2013-02-01 3:51 ` Jason Gunthorpe
2013-02-01 9:03 ` Thomas Petazzoni
2013-02-01 16:07 ` Arnd Bergmann
2013-02-01 16:26 ` Russell King - ARM Linux
2013-02-01 17:45 ` Arnd Bergmann
2013-02-01 19:58 ` Jason Gunthorpe
2013-02-01 8:46 ` Thomas Petazzoni
2013-02-01 16:02 ` Arnd Bergmann
2013-02-01 17:57 ` Stephen Warren
2013-02-01 19:39 ` Jason Gunthorpe
2013-02-01 20:30 ` Stephen Warren
2013-01-28 18:56 ` [PATCH v2 20/27] arm: mvebu: PCIe support is now available on mvebu Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 21/27] arm: mvebu: add PCIe Device Tree informations for Armada 370 Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 22/27] arm: mvebu: add PCIe Device Tree informations for Armada XP Thomas Petazzoni
2013-02-06 22:41 ` Arnd Bergmann
2013-02-06 23:07 ` Thomas Petazzoni
2013-02-07 8:04 ` Arnd Bergmann
2013-02-07 8:45 ` Thomas Petazzoni
2013-02-07 9:09 ` Arnd Bergmann
2013-02-07 1:05 ` Jason Gunthorpe
2013-02-07 7:28 ` Thierry Reding
2013-02-07 17:49 ` Jason Gunthorpe
2013-02-07 8:24 ` Arnd Bergmann
2013-02-07 17:00 ` Jason Gunthorpe
2013-02-07 23:44 ` Arnd Bergmann
2013-01-28 18:56 ` [PATCH v2 23/27] arm: mvebu: PCIe Device Tree informations for OpenBlocks AX3-4 Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 24/27] arm: mvebu: PCIe Device Tree informations for Armada XP DB Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 25/27] arm: mvebu: PCIe Device Tree informations for Armada 370 Mirabox Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 26/27] arm: mvebu: PCIe Device Tree informations for Armada 370 DB Thomas Petazzoni
2013-01-28 18:56 ` [PATCH v2 27/27] arm: mvebu: update defconfig with PCI and USB support 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=20130131153041.35fa3b60@skate \
--to=thomas.petazzoni@free-electrons.com \
--cc=alior@marvell.com \
--cc=andrew@lunn.ch \
--cc=arnd@arndb.de \
--cc=benavi@marvell.com \
--cc=bhelgaas@google.com \
--cc=gregory.clement@free-electrons.com \
--cc=jason@lakedaemon.net \
--cc=jgunthorpe@obsidianresearch.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=maen@marvell.com \
--cc=nadavh@marvell.com \
--cc=shadi@marvell.com \
--cc=swarren@wwwdotorg.org \
--cc=tawfik@marvell.com \
--cc=thierry.reding@avionic-design.de \
/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).