Skip to contentSkip to conversation

ARM: tegra: add PCIe-related pins to the Jetson TK1 pinmux tables

PATCH New Stephen Warren 4 participants 8 messages Aug 22, 2014 – Aug 27, 2014

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: tegra: add PCIe-related pins to the Jetson TK1 pinmux tables

From: Stephen Warren <[email protected]>

This pinmux tables currently omit any configuration for PCIe clk_req, wake, and rst pins, which in turn causes intermittent failures in U-Boot's PCIe support. Import an updated version of the pinmux tables which rectifies this.

(While I'm still hoping to remove the pinmux tables from DTs for Tegra124+ devices, while they're still here, they may as well be complete and correct).

---
 arch/arm/boot/dts/tegra124-jetson-tk1.dts | 35 +++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
arch/arm/boot/dts/tegra124-jetson-tk1.dts +35 -0
index 6c0253198e09..cdefaaa15ac6 100644
@@ -1251,6 +1251,41 @@
 				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
 			};
+			pex_l0_rst_n_pdd1 {
+				nvidia,pins = "pex_l0_rst_n_pdd1";
+				nvidia,function = "pe0";
+				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+				nvidia,tristate = <TEGRA_PIN_DISABLE>;
+				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+			};
+			pex_l0_clkreq_n_pdd2 {
+				nvidia,pins = "pex_l0_clkreq_n_pdd2";
+				nvidia,function = "pe0";
+				nvidia,pull = <TEGRA_PIN_PULL_UP>;
+				nvidia,tristate = <TEGRA_PIN_DISABLE>;
+				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+			};
+			pex_wake_n_pdd3 {
+				nvidia,pins = "pex_wake_n_pdd3";
+				nvidia,function = "pe";
+				nvidia,pull = <TEGRA_PIN_PULL_UP>;
+				nvidia,tristate = <TEGRA_PIN_DISABLE>;
+				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+			};
+			pex_l1_rst_n_pdd5 {
+				nvidia,pins = "pex_l1_rst_n_pdd5";
+				nvidia,function = "pe1";
+				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+				nvidia,tristate = <TEGRA_PIN_DISABLE>;
+				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+			};
+			pex_l1_clkreq_n_pdd6 {
+				nvidia,pins = "pex_l1_clkreq_n_pdd6";
+				nvidia,function = "pe1";
+				nvidia,pull = <TEGRA_PIN_PULL_UP>;
+				nvidia,tristate = <TEGRA_PIN_DISABLE>;
+				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+			};
 			clk3_out_pee0 {
 				nvidia,pins = "clk3_out_pee0";
 				nvidia,function = "extperiph3";
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/1 ARM: tegra: add PCIe-related pins to the Jetson TK1 pinmux tables

Hi Stephen,

Am 22.08.2014 23:18, schrieb Stephen Warren:

Quoted 7 lines

From: Stephen Warren <[email protected]>

This pinmux tables currently omit any configuration for PCIe clk_req, wake, and rst pins, which in turn causes intermittent failures in U-Boot's PCIe support. Import an updated version of the pinmux tables which rectifies this.

Quoted 8 lines

(While I'm still hoping to remove the pinmux tables from DTs for Tegra124+ devices, while they're still here, they may as well be complete and correct).

---
 arch/arm/boot/dts/tegra124-jetson-tk1.dts | 35 +++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

I've tested this patch on both -rc1 and yesterday's torvalds/linux.git with tegra_defconfig: Both with or without this patch I get empty lspci output.

There doesn't seem to be a tegra/linux.git for-next branch based on -rc1 yet - are patches from other subsystem trees needed to get the on-board Ethernet detected or maybe some config option?

Or did you test PCIe via the on-board slot?

I used U-Boot v2014.07, in case it matters.

Thanks,
Andreas

Signature · 2 lines
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg
#2 lore raw

PATCH 1/1 ARM: tegra: add PCIe-related pins to the Jetson TK1 pinmux tables

Quoted 19 lines · Andreas F?rber

Hi Stephen,

Am 22.08.2014 23:18, schrieb Stephen Warren:

Quoted 7 lines

From: Stephen Warren <[email protected]>

This pinmux tables currently omit any configuration for PCIe clk_req, wake, and rst pins, which in turn causes intermittent failures in U-Boot's PCIe support. Import an updated version of the pinmux tables which rectifies this.

Quoted 8 lines

(While I'm still hoping to remove the pinmux tables from DTs for Tegra124+ devices, while they're still here, they may as well be complete and correct).

---
  arch/arm/boot/dts/tegra124-jetson-tk1.dts | 35 +++++++++++++++++++++++++++++++
  1 file changed, 35 insertions(+)
Quoted 7 lines

I've tested this patch on both -rc1 and yesterday's torvalds/linux.git with tegra_defconfig: Both with or without this patch I get empty lspci output.

There doesn't seem to be a tegra/linux.git for-next branch based on -rc1 yet - are patches from other subsystem trees needed to get the on-board Ethernet detected or maybe some config option?

git://gitorious.org/thierryreding/linux.git staging/pci

Quoted 8 lines

Or did you test PCIe via the on-board slot?

I used U-Boot v2014.07, in case it matters.

Thanks,
Andreas

Cheers,
Mikko

#3 lore raw

PATCH 1/1 ARM: tegra: add PCIe-related pins to the Jetson TK1 pinmux tables

.. and apparently the device tree patches are in staging/tegra.

Quoted 46 lines · Mikko Perttunen
Quoted 20 lines · Andreas F?rber

Hi Stephen,

Am 22.08.2014 23:18, schrieb Stephen Warren:

Quoted 11 lines

From: Stephen Warren <[email protected]>

This pinmux tables currently omit any configuration for PCIe clk_req, wake, and rst pins, which in turn causes intermittent failures in U-Boot's PCIe support. Import an updated version of the pinmux tables which rectifies this.

(While I'm still hoping to remove the pinmux tables from DTs for Tegra124+ devices, while they're still here, they may as well be complete and correct).

Quoted 5 lines
---
  arch/arm/boot/dts/tegra124-jetson-tk1.dts | 35
+++++++++++++++++++++++++++++++
  1 file changed, 35 insertions(+)
Quoted 7 lines

I've tested this patch on both -rc1 and yesterday's torvalds/linux.git with tegra_defconfig: Both with or without this patch I get empty lspci output.

There doesn't seem to be a tegra/linux.git for-next branch based on -rc1 yet - are patches from other subsystem trees needed to get the on-board Ethernet detected or maybe some config option?

git://gitorious.org/thierryreding/linux.git staging/pci

Quoted 8 lines

Or did you test PCIe via the on-board slot?

I used U-Boot v2014.07, in case it matters.

Thanks,
Andreas

Cheers,
Mikko
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

#4 lore raw

PATCH 1/1 ARM: tegra: add PCIe-related pins to the Jetson TK1 pinmux tables

Am 25.08.2014 14:10, schrieb Mikko Perttunen:

Quoted 24 lines · Mikko Perttunen
Quoted 23 lines · Andreas F?rber
Quoted 22 lines

Am 22.08.2014 23:18, schrieb Stephen Warren:

Quoted 11 lines

From: Stephen Warren <[email protected]>

This pinmux tables currently omit any configuration for PCIe clk_req, wake, and rst pins, which in turn causes intermittent failures in U-Boot's PCIe support. Import an updated version of the pinmux tables which rectifies this.

(While I'm still hoping to remove the pinmux tables from DTs for Tegra124+ devices, while they're still here, they may as well be complete and correct).

Quoted 5 lines
---
  arch/arm/boot/dts/tegra124-jetson-tk1.dts | 35
+++++++++++++++++++++++++++++++
  1 file changed, 35 insertions(+)

I've tested this patch on both -rc1 and yesterday's torvalds/linux.git with tegra_defconfig: Both with or without this patch I get empty lspci output.

Quoted 7 lines
Quoted 5 lines
Quoted 3 lines

There doesn't seem to be a tegra/linux.git for-next branch based on -rc1 yet - are patches from other subsystem trees needed to get the on-board Ethernet detected or maybe some config option?

git://gitorious.org/thierryreding/linux.git staging/pci

.. and apparently the device tree patches are in staging/tegra.

Thanks for the URLs. I tested yesterday's staging/master, but booting from SD seemed broked, sdhci-tegra probe kept deferring. Is that a known issue?

PCI bus was getting detected okay before that point though.

Regards,
Andreas

Signature · 2 lines
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg
#5 lore raw

PATCH 1/1 ARM: tegra: add PCIe-related pins to the Jetson TK1 pinmux tables

Quoted 29 lines · Andreas F?rber

Am 25.08.2014 14:10, schrieb Mikko Perttunen:

Quoted 28 lines · Mikko Perttunen
Quoted 27 lines · Andreas F?rber
Quoted 25 lines

Am 22.08.2014 23:18, schrieb Stephen Warren:

Quoted 11 lines

From: Stephen Warren <[email protected]>

This pinmux tables currently omit any configuration for PCIe clk_req, wake, and rst pins, which in turn causes intermittent failures in U-Boot's PCIe support. Import an updated version of the pinmux tables which rectifies this.

(While I'm still hoping to remove the pinmux tables from DTs for Tegra124+ devices, while they're still here, they may as well be complete and correct).

Quoted 5 lines
---
  arch/arm/boot/dts/tegra124-jetson-tk1.dts | 35
+++++++++++++++++++++++++++++++
  1 file changed, 35 insertions(+)

I've tested this patch on both -rc1 and yesterday's torvalds/linux.git with tegra_defconfig: Both with or without this patch I get empty lspci output.

There doesn't seem to be a tegra/linux.git for-next branch based on -rc1 yet - are patches from other subsystem trees needed to get the on-board Ethernet detected or maybe some config option?

Quoted 7 lines
Quoted 3 lines
Quoted 1 line

git://gitorious.org/thierryreding/linux.git staging/pci

.. and apparently the device tree patches are in staging/tegra.

Thanks for the URLs. I tested yesterday's staging/master, but booting from SD seemed broked, sdhci-tegra probe kept deferring. Is that a known issue?

Yes, this is a known issue. The root is that currently there's no way to allow deferred probing if an IOMMU hasn't been probed, so a driver needs to continue without IOMMU support even if the IOMMU would come up later in the boot process. The staging/iommu branch contains a patch to fix it but it looks as if that won't be merged.

I've since removed the code that registers the Tegra SMMU with the code that I introduced but haven't removed the registry patch yet, which will cause the SMMU never to show up and therefore indefinitely deferring probe. You can easily solve this by removing the iommus property from the sdhci nodes in DTS or by removing the calls to iommu_attach() and iommu_detach() from the SDHCI driver (reverting "mmc: sdhci-tegra: Add IOMMU support").

I'll see if I can find the time today to fix up the branches.

Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140827/1849b2aa/attachment.sig>

#6 lore raw

PATCH 1/1 ARM: tegra: add PCIe-related pins to the Jetson TK1 pinmux tables

Am 27.08.2014 07:52, schrieb Thierry Reding:

Quoted 52 lines · Andreas F?rber
Quoted 29 lines

Am 25.08.2014 14:10, schrieb Mikko Perttunen:

Quoted 28 lines · Mikko Perttunen
Quoted 27 lines · Andreas F?rber
Quoted 25 lines

Am 22.08.2014 23:18, schrieb Stephen Warren:

Quoted 11 lines

From: Stephen Warren <[email protected]>

This pinmux tables currently omit any configuration for PCIe clk_req, wake, and rst pins, which in turn causes intermittent failures in U-Boot's PCIe support. Import an updated version of the pinmux tables which rectifies this.

(While I'm still hoping to remove the pinmux tables from DTs for Tegra124+ devices, while they're still here, they may as well be complete and correct).

Quoted 5 lines
---
  arch/arm/boot/dts/tegra124-jetson-tk1.dts | 35
+++++++++++++++++++++++++++++++
  1 file changed, 35 insertions(+)

I've tested this patch on both -rc1 and yesterday's torvalds/linux.git with tegra_defconfig: Both with or without this patch I get empty lspci output.

There doesn't seem to be a tegra/linux.git for-next branch based on -rc1 yet - are patches from other subsystem trees needed to get the on-board Ethernet detected or maybe some config option?

Quoted 7 lines
Quoted 3 lines
Quoted 1 line

git://gitorious.org/thierryreding/linux.git staging/pci

.. and apparently the device tree patches are in staging/tegra.

Thanks for the URLs. I tested yesterday's staging/master, but booting from SD seemed broked, sdhci-tegra probe kept deferring. Is that a known issue?

Yes, this is a known issue. The root is that currently there's no way to allow deferred probing if an IOMMU hasn't been probed, so a driver needs to continue without IOMMU support even if the IOMMU would come up later in the boot process. The staging/iommu branch contains a patch to fix it but it looks as if that won't be merged.

I've since removed the code that registers the Tegra SMMU with the code that I introduced but haven't removed the registry patch yet, which will cause the SMMU never to show up and therefore indefinitely deferring probe. You can easily solve this by removing the iommus property from the sdhci nodes in DTS or by removing the calls to iommu_attach() and iommu_detach() from the SDHCI driver (reverting "mmc: sdhci-tegra: Add IOMMU support").

Quoted 1 line

I'll see if I can find the time today to fix up the branches.

No hurry! I switched to testing the newly updated for-next branch, which works fine so far (been using a USB Ethernet adapter).

Thanks,
Andreas

Signature · 10 lines
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140827/fef1992e/attachment-0001.sig>
author Applied
#7 lore raw

PATCH 1/1 ARM: tegra: add PCIe-related pins to the Jetson TK1 pinmux tables

In reply to Stephen Warren
Quoted 10 lines · Stephen Warren

From: Stephen Warren <[email protected]>

This pinmux tables currently omit any configuration for PCIe clk_req, wake, and rst pins, which in turn causes intermittent failures in U-Boot's PCIe support. Import an updated version of the pinmux tables which rectifies this.

(While I'm still hoping to remove the pinmux tables from DTs for Tegra124+ devices, while they're still here, they may as well be complete and correct).

I've applied this to Tegra's for-3.18/dt branch.