How to access pcie cfg registers through DBI

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

How to access pcie cfg registers through DBI

2,503件の閲覧回数
jianminlv
Contributor I

We are designing a product based on sabresd. After we select 396/352 boot, kernel is dead at "readl(dbi_base)" of imx_pcie_regions_setup() in pcie.c.how to deal with it?? Anybody can help me, thanks very much!!

ラベル(1)
0 件の賞賛
返信
2 返答(返信)

1,840件の閲覧回数
jamesbone
NXP TechSupport
NXP TechSupport

Configure the LNK_CAP (offset 0xc) of 0x70 PCI Express Capabilities, can keep the PCIe in GEN1 mode.
You can make a reference to the chapter " PCI Standard Capability Structures Register Maps " of imx6 RM DOC too.

Here are the codes used to keep the PCIe always in GEN1 mode.
@@ -714,6 +714,13 @@ static int __devinit imx_pcie_pltfm_probe(struct platform_device *pdev)
         imx_pcie_regions_setup(dbi_base);

+       /*
+        * Force to GEN1
+        */
+       writel(((readl(dbi_base + LNK_CAP) & 0xfffffff0) | 0x1),
+                       dbi_base + LNK_CAP);
+

*****

1,840件の閲覧回数
jianminlv
Contributor I

Hi,jamesbone

Thanks very much! The problem has been resolved, and the reason is power to pcie is not stable. After re-welding related resistances, accesing to registers of pcie is ok!

0 件の賞賛
返信