* [U-Boot] [PATCH v3 0/8] dm: pci: tegra: Convert Tegra PCI to driver model @ 2015-11-12 16:57 Simon Glass 2015-11-13 16:41 ` Stephen Warren 0 siblings, 1 reply; 4+ messages in thread From: Simon Glass @ 2015-11-12 16:57 UTC (permalink / raw) To: u-boot This series converts all Tegra boards to use driver model for PCI. The net effect should be no change in functionality. A few additional features are added to make this possible: - Helper functions to support accessing 8- and 16-bit values within a 32-bit word - Fixing a build error for CONFIG_CMD_PCI_ENUM - Decoding the PCI ranges property such that configuration ranges are ignored - Supporting bus-master devices on boards where RAM does not start at 0 This series is tested on beaver. It is available at u-boot-dm/tegra-working. Changes in v3: - Rebase onto tegra/master Changes in v2: - Update commit message to explain that the feature is not important - Drop the feature from tegra boards - Rename 'addr' to 'size' - Correct logic for use of gd->pci_ram_top - Update commit message to mention future work - Use the device_is_on_pci_bus() API - Leave pci_skip_dev() at the bottom of the file to reduce the diff size Simon Glass (8): dm: tegra: pci: Move CONFIG_PCI_TEGRA to Kconfig dm: pci: Avoid a driver model build error with CONFIG_CMD_PCI_ENUM dm: pci: Set up the SDRAM mapping correctly dm: pci: Support decoding ranges with duplicate entries dm: pci: Add functions to emulate 8- and 16-bit access dm: pci: Add a function to get the controller for a bus dm: pci: Add a function to find the regions for a PCI bus dm: tegra: pci: Convert tegra boards to driver model for PCI arch/arm/mach-tegra/Kconfig | 2 + common/cmd_pci.c | 4 + configs/apalis_t30_defconfig | 1 + configs/beaver_defconfig | 1 + configs/cardhu_defconfig | 1 + configs/jetson-tk1_defconfig | 1 + configs/trimslice_defconfig | 1 + drivers/pci/Kconfig | 10 + drivers/pci/pci-uclass.c | 105 +++++++++- drivers/pci/pci_tegra.c | 468 ++++++++++++++----------------------------- include/configs/apalis_t30.h | 2 - include/configs/beaver.h | 2 - include/configs/cardhu.h | 2 - include/configs/jetson-tk1.h | 2 - include/configs/trimslice.h | 2 - include/fdtdec.h | 4 - include/pci.h | 51 +++++ lib/fdtdec.c | 4 - 18 files changed, 317 insertions(+), 346 deletions(-) -- 2.6.0.rc2.230.g3dd15c0 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH v3 0/8] dm: pci: tegra: Convert Tegra PCI to driver model 2015-11-12 16:57 [U-Boot] [PATCH v3 0/8] dm: pci: tegra: Convert Tegra PCI to driver model Simon Glass @ 2015-11-13 16:41 ` Stephen Warren 2015-11-13 18:14 ` Simon Glass 0 siblings, 1 reply; 4+ messages in thread From: Stephen Warren @ 2015-11-13 16:41 UTC (permalink / raw) To: u-boot On 11/12/2015 09:57 AM, Simon Glass wrote: > This series converts all Tegra boards to use driver model for PCI. The net > effect should be no change in functionality. I applied this series on top of current u-boot/master. On Jetson TK1 (T124), I see the following errors when U-Boot starts: > Net: ERROR: tegra-pcie: failed to power on PHY: -110 > > at /home/swarren/shared/git_wa/tegra-uboot-flasher/u-boot/drivers/pci/pci_tegra.c:685/tegra_pcie_enable_controller() > ERROR: tegra-pcie: failed to enable controller > at /home/swarren/shared/git_wa/tegra-uboot-flasher/u-boot/drivers/pci/pci_tegra.c:997/pci_tegra_probe() > No ethernet found. I assume you can investigate that without issue, since you have that board. On Jetson TX1 (T210), you need to squash the following into the final commit of the series: > diff --git a/drivers/pci/pci_tegra.c b/drivers/pci/pci_tegra.c > index ecd4313501c4..f88bd0d2858b 100644 > --- a/drivers/pci/pci_tegra.c > +++ b/drivers/pci/pci_tegra.c > @@ -1022,6 +1022,7 @@ static const struct udevice_id pci_tegra_ids[] = { > { .compatible = "nvidia,tegra20-pcie", .data = TEGRA20_PCIE }, > { .compatible = "nvidia,tegra30-pcie", .data = TEGRA30_PCIE }, > { .compatible = "nvidia,tegra124-pcie", .data = TEGRA124_PCIE }, > + { .compatible = "nvidia,tegra210-pcie", .data = TEGRA210_PCIE }, > { } > }; and even with that fix, PCIe now doesn't work: > Net: RTL8169#0 > Warning: RTL8169#0 using MAC address from net device > > Hit any key to stop autoboot: 0 > Tegra210 (P2371-2180) # dhcp zImage > pci_hose_bus_to_phys: invalid physical address > pci_hose_bus_to_phys: invalid physical address > pci_hose_bus_to_phys: invalid physical address > pci_hose_bus_to_phys: invalid physical address > pci_hose_bus_to_phys: invalid physical address > pci_hose_bus_to_phys: invalid physical address > BOOTP broadcast 1 > pci_hose_bus_to_phys: invalid physical address > BOOTP broadcast 2 > pci_hose_bus_to_phys: invalid physical address > BOOTP broadcast 3 > pci_hose_bus_to_phys: invalid physical address ... Perhaps there's some obvious mistake somewhere you can find by code inspection. Otherwise, let me know if you need me to debug that. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH v3 0/8] dm: pci: tegra: Convert Tegra PCI to driver model 2015-11-13 16:41 ` Stephen Warren @ 2015-11-13 18:14 ` Simon Glass 2015-11-14 4:19 ` Simon Glass 0 siblings, 1 reply; 4+ messages in thread From: Simon Glass @ 2015-11-13 18:14 UTC (permalink / raw) To: u-boot Hi Stephen, On 13 November 2015 at 09:41, Stephen Warren <swarren@wwwdotorg.org> wrote: > On 11/12/2015 09:57 AM, Simon Glass wrote: >> >> This series converts all Tegra boards to use driver model for PCI. The net >> effect should be no change in functionality. > > > I applied this series on top of current u-boot/master. > > On Jetson TK1 (T124), I see the following errors when U-Boot starts: > >> Net: ERROR: tegra-pcie: failed to power on PHY: -110 >> >> at >> /home/swarren/shared/git_wa/tegra-uboot-flasher/u-boot/drivers/pci/pci_tegra.c:685/tegra_pcie_enable_controller() >> ERROR: tegra-pcie: failed to enable controller >> at >> /home/swarren/shared/git_wa/tegra-uboot-flasher/u-boot/drivers/pci/pci_tegra.c:997/pci_tegra_probe() >> No ethernet found. > > > I assume you can investigate that without issue, since you have that board. It had a problem with the PMIC (I overwrote the contents) so I suspect I get that error always. But I'll try it. > > On Jetson TX1 (T210), you need to squash the following into the final commit > of the series: > >> diff --git a/drivers/pci/pci_tegra.c b/drivers/pci/pci_tegra.c >> index ecd4313501c4..f88bd0d2858b 100644 >> --- a/drivers/pci/pci_tegra.c >> +++ b/drivers/pci/pci_tegra.c >> @@ -1022,6 +1022,7 @@ static const struct udevice_id pci_tegra_ids[] = { >> { .compatible = "nvidia,tegra20-pcie", .data = TEGRA20_PCIE }, >> { .compatible = "nvidia,tegra30-pcie", .data = TEGRA30_PCIE }, >> { .compatible = "nvidia,tegra124-pcie", .data = TEGRA124_PCIE }, >> + { .compatible = "nvidia,tegra210-pcie", .data = TEGRA210_PCIE }, >> { } >> }; > > > and even with that fix, PCIe now doesn't work: > >> Net: RTL8169#0 >> Warning: RTL8169#0 using MAC address from net device >> >> Hit any key to stop autoboot: 0 >> Tegra210 (P2371-2180) # dhcp zImage >> pci_hose_bus_to_phys: invalid physical address >> pci_hose_bus_to_phys: invalid physical address >> pci_hose_bus_to_phys: invalid physical address >> pci_hose_bus_to_phys: invalid physical address >> pci_hose_bus_to_phys: invalid physical address >> pci_hose_bus_to_phys: invalid physical address >> BOOTP broadcast 1 >> pci_hose_bus_to_phys: invalid physical address >> BOOTP broadcast 2 >> pci_hose_bus_to_phys: invalid physical address >> BOOTP broadcast 3 >> pci_hose_bus_to_phys: invalid physical address > > ... > > Perhaps there's some obvious mistake somewhere you can find by code > inspection. Otherwise, let me know if you need me to debug that. I'll take a look and let you know if I get stuck. Regards, Simon ^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH v3 0/8] dm: pci: tegra: Convert Tegra PCI to driver model 2015-11-13 18:14 ` Simon Glass @ 2015-11-14 4:19 ` Simon Glass 0 siblings, 0 replies; 4+ messages in thread From: Simon Glass @ 2015-11-14 4:19 UTC (permalink / raw) To: u-boot Hi Stephen, On 13 November 2015 at 11:14, Simon Glass <sjg@chromium.org> wrote: > Hi Stephen, > > On 13 November 2015 at 09:41, Stephen Warren <swarren@wwwdotorg.org> wrote: >> On 11/12/2015 09:57 AM, Simon Glass wrote: >>> >>> This series converts all Tegra boards to use driver model for PCI. The net >>> effect should be no change in functionality. >> >> >> I applied this series on top of current u-boot/master. >> >> On Jetson TK1 (T124), I see the following errors when U-Boot starts: >> >>> Net: ERROR: tegra-pcie: failed to power on PHY: -110 >>> >>> at >>> /home/swarren/shared/git_wa/tegra-uboot-flasher/u-boot/drivers/pci/pci_tegra.c:685/tegra_pcie_enable_controller() >>> ERROR: tegra-pcie: failed to enable controller >>> at >>> /home/swarren/shared/git_wa/tegra-uboot-flasher/u-boot/drivers/pci/pci_tegra.c:997/pci_tegra_probe() >>> No ethernet found. >> >> >> I assume you can investigate that without issue, since you have that board. > > It had a problem with the PMIC (I overwrote the contents) so I suspect > I get that error always. But I'll try it. Yes, Jetson doesn't work for me, but I found the problem and tested it on Beaver. It was a merge conflict. I'll send v4 when I finish build testing. > >> >> On Jetson TX1 (T210), you need to squash the following into the final commit >> of the series: >> >>> diff --git a/drivers/pci/pci_tegra.c b/drivers/pci/pci_tegra.c >>> index ecd4313501c4..f88bd0d2858b 100644 >>> --- a/drivers/pci/pci_tegra.c >>> +++ b/drivers/pci/pci_tegra.c >>> @@ -1022,6 +1022,7 @@ static const struct udevice_id pci_tegra_ids[] = { >>> { .compatible = "nvidia,tegra20-pcie", .data = TEGRA20_PCIE }, >>> { .compatible = "nvidia,tegra30-pcie", .data = TEGRA30_PCIE }, >>> { .compatible = "nvidia,tegra124-pcie", .data = TEGRA124_PCIE }, >>> + { .compatible = "nvidia,tegra210-pcie", .data = TEGRA210_PCIE }, >>> { } >>> }; >> >> >> and even with that fix, PCIe now doesn't work: >> >>> Net: RTL8169#0 >>> Warning: RTL8169#0 using MAC address from net device >>> >>> Hit any key to stop autoboot: 0 >>> Tegra210 (P2371-2180) # dhcp zImage >>> pci_hose_bus_to_phys: invalid physical address >>> pci_hose_bus_to_phys: invalid physical address >>> pci_hose_bus_to_phys: invalid physical address >>> pci_hose_bus_to_phys: invalid physical address >>> pci_hose_bus_to_phys: invalid physical address >>> pci_hose_bus_to_phys: invalid physical address >>> BOOTP broadcast 1 >>> pci_hose_bus_to_phys: invalid physical address >>> BOOTP broadcast 2 >>> pci_hose_bus_to_phys: invalid physical address >>> BOOTP broadcast 3 >>> pci_hose_bus_to_phys: invalid physical address >> >> ... >> >> Perhaps there's some obvious mistake somewhere you can find by code >> inspection. Otherwise, let me know if you need me to debug that. > > I'll take a look and let you know if I get stuck. > > Regards, > Simon Regards, Simon ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-11-14 4:19 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-11-12 16:57 [U-Boot] [PATCH v3 0/8] dm: pci: tegra: Convert Tegra PCI to driver model Simon Glass 2015-11-13 16:41 ` Stephen Warren 2015-11-13 18:14 ` Simon Glass 2015-11-14 4:19 ` Simon Glass
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox