* [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