Hi Petr, On Sat, Sep 22, 2018 at 11:06 PM, Petr Cvek <petrcvekcz@xxxxxxxxx> wrote: > Hello, > > I'm trying to play with mt7628 PCIe (and it's old driver mt7620), but > the system keeps freezing. It is probably because of bus master access > of my PCIe cards but I don't see any memory access controls for PCIe <-> > RAM in the datasheet. The same problem is with MSI. It seems the root > complex supports MSI (it has an MSI capability field), but there isn't > any mention in the MT7628 datasheet too. As it seems the MT7628 PCIe is > based on MT7621 PCIe, I went for an MT7621 datasheet, but sadly in the > datasheet the PCIe section is missing completely. AFAIK, MT7628 should be covered with mt7620 driver. The source code is in arch/mips/pci/pci-mt7620.c. For initialization in really depends on the "ralink_soc" variable exported in arch/mips/ralink/prom.c. You have to figure out why and where is really freezing. Does a clean kernel boots and success on setting up PCI? A 'dmesg' would be helpful. > > Does anybody have a working MT7621/28 bus master setup or a more > completed datasheet? I would like to get some information for fixing the > mt7620 PCIe driver. It is possible the MSI/bus master is controlled by > the undocumented bridge registers (in the pci-mt7621 they controls the > manual oscillator settings, I've found a link quality register at > 0x101490c4) or in a PCI config space of the root complex (around 0x700 > offset). If you have a working SoC with MSI/bus mastering (= mem access > from card), can you send me the dump of there spaces? The datasheet for the mt7620 contains information about PCI registers. Linux initializes the pci topology but master bit of command registers for endpoints is disabled and is mission of final card driver to enable it in order to allow memory accessing to the card. Hope this helps. > > Thanks > > best regards, > Petr Best regards, Sergio Paracuellos