We designed a custom board based on imx6Dual, where it connects Intel i210 ethernet controller through PCIexpress.
We are using linux kernel 4.1.15_1.0.0 retrieved from Yocto BSP.
Intel IGB driver correctly identifies i210 component through PCIexpress, but linux hangs randomly (and quickly : ~ 1 to 10secs after the beginning of i210 initialization).
I added printk in every beginning and ending of pcie-imx6.c functions and igb functions, and it appears that it hangs at a read on a register : "value = readl(&hw_addr[reg]);" in "igb_rd32(struct e1000_hw *hw, u32 reg)" in "igb_main.c".
We searched for similar issue on imx6 pcie and it seems that imx6 pcie has some dysfunctions.
I found that PCIe PHY Tx values can be adjusted by IOMUXC_GPR8 register, depending on the hardware, but there is no clue for this. Are these values criticals and can they produce read hang ?
Is there any documentation on PHY Tx adjustements and explanations ?
In advance thank you for your support.
Any suggestions will be appreciated !