From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Petazzoni Subject: Re: [PATCH v0 06/10] arm: orion5x: Add DT-based support for Netgear WNR854T Date: Mon, 18 Jul 2016 11:44:24 +0200 Message-ID: <20160718114424.14a28889@free-electrons.com> References: <1468679348-10522-1-git-send-email-jm@lentin.co.uk> <4290281.AD5Bhg23o6@wuerfel> <6404488.GyOP57DJrV@wuerfel> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <6404488.GyOP57DJrV@wuerfel> Sender: netdev-owner@vger.kernel.org To: Arnd Bergmann Cc: Jamie Lentin , Andrew Lunn , Florian Fainelli , Jason Cooper , devicetree@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Gregory Clement , Imre Kaloz , linux-arm-kernel@lists.infradead.org, Sebastian Hesselbarth List-Id: devicetree@vger.kernel.org Hello, On Sun, 17 Jul 2016 22:41:35 +0200, Arnd Bergmann wrote: > I would assume that the PCIe port should work out of the box with the driver Unfortunately, no. The PCIe on Orion5x requires a workaround for reading/writing the PCI configuration space. Instead of doing MMIO accesses to PCIE_CONF_ADDR_OFF / PCIE_CONF_DATA_OFF, you must map a MBus window, which provides a memory-mapped view of the PCI configuration space. Definitely not impossible to implement, but the driver doesn't work as-is. > We also don't seem to need any MBUS window setup for the I/O and > memory spaces, which greatly simplifies the driver compared to the > pci-mvebu one, it would be a fairly straightforward implementation > based on pci-host-generic.c (which unfortunately just got way > more complicated and might need to go on a diet). MBus windows are needed. See: mvebu_mbus_add_window_remap_by_id(ORION_MBUS_PCI_IO_TARGET, ORION_MBUS_PCI_IO_ATTR, ORION5X_PCI_IO_PHYS_BASE, ORION5X_PCI_IO_SIZE, ORION5X_PCI_IO_BUS_BASE); mvebu_mbus_add_window_by_id(ORION_MBUS_PCI_MEM_TARGET, ORION_MBUS_PCI_MEM_ATTR, ORION5X_PCI_MEM_PHYS_BASE, ORION5X_PCI_MEM_SIZE); in orion5x_setup_wins(). Note that we already have some Orion5x converted to DT, and that use PCI: board-rd88f5182.c is an example. So we could very well take Jamie patches as-is, and move later to a DT-representation for PCI/PCIe. Best regards, Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com