PCI Express

pc2005
 
Posts: 5
Joined: Wed Sep 05, 2018 3:46 am

PCI Express

Sat Sep 08, 2018 3:11 am

Hello,

Has anybody been able to use PCI Express on Vocore 2? I've tried it recently on my board I bought from the indiegogo campaign and I'm unable to get the LinkUp Status in 0x10142050 register (page 423 of MT7628AK datasheet).

The board is connected as follows:
  • Vocore 2 board
  • FH19SC FFC connector
  • 10cm long FFC cable
  • some generic FFC connector with interconnection to USB connector
  • 0.6m USB superspeed cable
  • PCIe power extender with independent power

The driver I'm using a standard kernel driver originating from openwrt or I'm using just a direct register access by devmem for observing the LinkUp Status register.

It may be possible my connection setup is too noisy, but when I'm using the same PCIe port extender connected by a longer (2m) usb cable to a manually made express card in my notebook, everything works. It seems to me it can only be a problem with FFC stuff, interconnection with USB connector or something with vocore itself. My ideas are: a much weaker transmitter than in notebook - BTW what is the longest FFC cable allowed? or an incomplete register documentation - at least in the kernel driver there are lines like:
Code: Select all
   /* voodoo from the SDK driver */
   pcie_m32(~0xff, 0x5, RALINK_PCIEPHY_P0_CTL_OFFSET);

.. and RALINK_PCIEPHY_P0_CTL_OFFSET isn't documented anywhere (maybe the PCIe link can be disabled by some LnkCtl in the PCI configuration space?)

BTW it seems there aren't DC coupling capacitors on the vocore, are the not required?

Anyway it will be probably some problem I overlooked but: Thanks for any help ;-)

Vonger
 
Posts: 679
Joined: Sun Oct 19, 2014 6:00 am

Re: PCI Express

Sat Sep 08, 2018 1:58 pm

PCIe need a special FPC cable... because on vocore2 we did not left space for 100ohm resistor which is necessary for PCIe.

pc2005
 
Posts: 5
Joined: Wed Sep 05, 2018 3:46 am

Re: PCI Express

Sun Sep 09, 2018 12:19 am

Thanks for answering,

I suppose it is one termination resistor between receiver pair. Weird, I thought every PCIe device is required to have the termination resistors on the chip, but I've put some (at the other end of 10cm cable), and it is still not working. Do you have schematics?

Vonger
 
Posts: 679
Joined: Sun Oct 19, 2014 6:00 am

Re: PCI Express

Mon Sep 10, 2018 10:32 am

pc2005 wrote:Thanks for answering,

I suppose it is one termination resistor between receiver pair. Weird, I thought every PCIe device is required to have the termination resistors on the chip, but I've put some (at the other end of 10cm cable), and it is still not working. Do you have schematics?


Sorry, my mistake, it needs two caps at TX+/TX- 100nF, not resistors. Please also check vocore2 sch.
So if you customize FPC cable, please put two 100nF caps near PCIe TX(in middle of the two lines, it is necessary!), that will make it perfect working. also make sure FPC impedance match 100ohm, especially for PCIe CLK lines

This is PCIe hardware design require. I should add a note to the documentation.
If you have any question design this part, feel free to email our support you can get quick answer. :)

Vonger
 
Posts: 679
Joined: Sun Oct 19, 2014 6:00 am

Re: PCI Express

Mon Sep 10, 2018 11:02 am

also new version of vocore2 is using MT7628NN, removed PCIe, because it is hard to use(need customized FPC) and almost nobody use it...You are the second one ask about it :)
if further you need the one with PCIe, please email us.

pc2005
 
Posts: 5
Joined: Wed Sep 05, 2018 3:46 am

Re: PCI Express

Sat Sep 15, 2018 7:16 pm

Hi,
I think the hardware connection is fine now. There seemed to be a inefficient connection in connector on vocore, it was conductive, but probably higher impedance for PCIe signals (those FH19 are so tiny and there is almost no space around - sadly I've managed to destroy one board by soldering it by hand :-/ - some vertical FFC connector without movable mechanical parts would be great :-D ).

I've managed to solve it by finding an undocumented register at 0x101490c4 which seems to correlate with a link quality.

There is a further software problem, some time after initialization (and always after link drop) the host will overwrite its PCI config space registers so a continual operation as PCI host is limited.

pc2005
 
Posts: 5
Joined: Wed Sep 05, 2018 3:46 am

Re: PCI Express

Sat Sep 15, 2018 7:18 pm

Vonger wrote:also new version of vocore2 is using MT7628NN, removed PCIe, because it is hard to use(need customized FPC) and almost nobody use it...You are the second one ask about it :)
if further you need the one with PCIe, please email us.

Good to know, but I have no use for a new board until I manage to fix the PCIe host functionality.

brainstorm
 
Posts: 1
Joined: Thu Oct 04, 2018 11:03 pm

Re: PCI Express

Thu Oct 04, 2018 11:07 pm

@pc2005, did you manage to solve the software PCIe host issues? I'm considering on soldering the header and trying it out, but from what I gather from this post it's still not working that well? Which exact peripheral are you testing it with?

pc2005
 
Posts: 5
Joined: Wed Sep 05, 2018 3:46 am

Re: PCI Express

Thu Oct 11, 2018 3:57 pm

@brainstorm
Yes I did yesterday. It works in vanilla linux subsystem, but you need to patch some registers in the kernel driver. And the documentation is not so much helpful. You need AC capacitors 100-200nF on TX lines (RX line should have them on the card). I didn't manage to establish the link without termination resistors on RX pins and suprisingly on clock pins.

I did use this schematics on both pairs: neg - 50 ohms - gnd - 50 ohms - pos .. as in PCIe specs

The link is not so much stable, but I have pretty long cables and multiple wire changes in path. So use as short cables as possible. The soldering of the connector on vocore is _really_ hard. Maybe consider direct flex soldering.

If you configure the SoC wrong it will freeze and you need to power cycle it (access to the reserved 0x1014Axxx region, bad configuration of bus master...).

I will probably make some webpage post about PCIe in a few weeks. Same is for patching the vanilla kernel.

P.S./offtopic Are you using qemu for testing the rootfs? It seems in my version the network emulation is broken (on malta mips system).

Return to VoCore2/Lite/Ultimate

Who is online

Users browsing this forum: No registered users and 3 guests