We have one issue with Jetson TX1 PCIe X4 slot as below.
When it’s used extend cable or riser card with PCIe Gen2 add-in card, Jetson TX1 can’t be boot-up into Ubuntu.
If it’s changed to PCIe Gen1 add-in card, it can be boot-up from our testing.
The requests form us and our end customer as list.
Can you help us to get SI report with Jetson TX1 PCIe X4 slot?
Do you have the test pattern commands for our SI measurement with PCIe X4 slot?
Do you have JTAG or debug tool with Jetson TX1 for confirmation?
Please help us to clarify this issue form FAE support.
In theory the Lauterbach Trace32 JTAG debugger works, but I can’t confirm yet (I have one here I’ve been trying to set up for a bit over a week…it probably will work with more effort, but it definitely isn’t “plug-n-play”). See this, look for Trace32:
[url]TRACE32®
We will get back to you on SI measurement info.
Meanwhile, can you please answer the following queries?
→ What type of Gen-2 PCIe add-on card are you connecting? what is its width? (I understand slot is x4, but is the width of the card also x4?)
→ Is it getting enumerated if connected without cable extension or raiser card?
Connecting extension cable seems to violate the PCIe spec defined routing length requirements.
With raiser card, Can you please connect a Gen-1 only device and see if that gets enumerated properly? This would give us some clue.
Additional info: Spread spectrum is enabled on the Jetson PCIe. A riser card isn’t really a remote PCIe node, but like a remote node, spread spectrum greatly reduces the available length extensions can reach. SS is really intended in this case to reduce RF noise created, and is a challenge for PCIe physical trace limitations.
What do those screen shots represent?Are these screenshots taken with/without riser card cable inserted?
=> You can check folder name taken with ubuntu version and the figures name taken with/without riser card inserted.
If kernel versions are same, whether it is 14.04 or 16.04 in the user space shouldn’t matter. Can we ask them for the output of ‘uname –a’ in both cases. Also, it would be good to know which packages (rel-23.2 / 24.2 Etc…) they flashed to get 14.04 and 16.04 respectively.
Does Intel LAN card come up on 14.04 if raiser card is not connected?
=> Ubuntu 14.04, rel-r24.1, but we re-built kernel to disable SSC function:
→ Linux tegra-ubuntu 3.10.96+ #3 SMP PREEMPT Wed Aug 31 15:25:33 CST 2016 aarch64 aarch64 aarch64 GNU/Linux
Ubuntu 16.04, rel-r24.2:
→ Linux tegra-ubuntu 3.10.96-tegra #1 SMP PREEMPT Thu Sep 8 13:48:54 PDT 2016 aarch64 aarch64 aarch64 GNU/Linux
Does this card come up in Gen-2 on 14.04 & 16.04 if raiser card is removed? If yes, I think, as our syseng folks predicted, it is something to do with routing length violations at higher speeds.
=> Yes, it can be boot-up with PEX8732 card when plug in PCIe X4 slot without riser card on Jetson TX1.
We need PCIe sigtest report with PCIe X4 slot, not layout routing guide.
And we want to make sure disable SSC(spread spectrum clock) on TX1.
Please help us to confirm the code from our SW RD as below.
I’m yet to get PCIe sigtest report for x4 slot from our engineering team. I’ll update as soon as I receive it.
Regarding, disabling Spread Spectrum, your understanding in #13 is correct. Set USE_PLLE_SS to ‘0’ to disable SS for PLL-E (which is the source of PCIe REFCLK)
Can you provide power sequence of Jetson TX1 by our customer’s request?
We needs this information to design power ON/OFF sequence on their system.
Please help us to get the datasheet ASAP.
Thanks.
I’m facing the same question.
As you advised of #13 and #14,disabled the SSC, I tried, but i can’t get any more pcie info still, so can you received any info from your engineering team ?
I tried use a wireless card with PCIe 1x on my Jetson Tx1, but when lspci -vvv,there is nothing show to me. and even i tried diabled the SSC, it has no affect.By the way, the wireless card is worked on my ubuntu normally .
There tried to disable PCIe SSC which only disable Kernel codes seems no influence.
Follow Spec 5.2.17 flag PLLE_SSCBYP found out uboot source code.
To mask clock.c “PLLE_SS_CNTL_SSCINC” relation codes that SSC seems be disabled (follow Source code changed:
to show change points).
But can’t be sured those way are correct and will no make any side event .
Hope the nVidia TX1 experts suggest us which best way for disable PCIe SSC.
#if 0 // mask PLLE_SSCBYP flag to disable PCIe Spread Spectrum Clock(SSC)
value = readl(NV_PA_CLK_RST_BASE + PLLE_SS_CNTL);
value &= ~PLLE_SS_CNTL_SSCINC(0xff);
value |= PLLE_SS_CNTL_SSCINC(1);
value &= ~PLLE_SS_CNTL_SSCINCINTR(0x3f);
value |= PLLE_SS_CNTL_SSCINCINTR(0x23);
value &= ~PLLE_SS_CNTL_SSCMAX(0x1fff);
value |= PLLE_SS_CNTL_SSCMAX(0x21);
value &= ~PLLE_SS_CNTL_SSCINVERT;
value &= ~PLLE_SS_CNTL_SSCCENTER;
value &= ~PLLE_SS_CNTL_BYPASS_SS;
value &= ~PLLE_SS_CNTL_SSCBYP;
writel(value, NV_PA_CLK_RST_BASE + PLLE_SS_CNTL);