Hi all,
I have exactly the same behavior with imx8mm, try to use internal clk for PCIe. kernel 5.10.
[ 1.652640] imx6q-pcie 33800000.pcie: supply epdev_on not found, using dummy regulator
[ 1.667816] imx6q-pcie 33800000.pcie: PLL REF_CLK is used!.
[ 1.674263] imx6q-pcie 33800000.pcie: PCIe PLL locked after 20 us.
[ 1.683330] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
[ 1.690581] imx6q-pcie 33800000.pcie: IO 0x001ff80000..0x001ff8ffff -> 0x0000000000
[ 1.707443] imx6q-pcie 33800000.pcie: MEM 0x0018000000..0x001fefffff -> 0x0018000000
[ 1.715803] imx6q-pcie 33800000.pcie: invalid resource
[ 2.730995] imx6q-pcie 33800000.pcie: Phy link never came up
[ 2.736699] imx6q-pcie 33800000.pcie: failed to initialize host
[ 2.742628] imx6q-pcie 33800000.pcie: unable to add pcie port.
what I have in devtree:
pcie0_refclk: pcie0-refclk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <100000000>;
};
.............
pinctrl_pcie0: pcie0grp {
fsl,pins = <
MX8MM_IOMUXC_I2C4_SCL_PCIE1_CLKREQ_B 0x61
MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3 0x41 /* AF9 WAKE */
MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5 0x41 /* AGF8 PERST */
>;
};
............
&pcie0{
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pcie0>;
reset-gpio = <&gpio5 5 GPIO_ACTIVE_LOW>;
clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>,
<&clk IMX8MM_CLK_PCIE1_AUX>,
<&clk IMX8MM_CLK_PCIE1_PHY>,
<&pcie0_refclk>;
clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
assigned-clocks = <&clk IMX8MM_CLK_PCIE1_AUX>,
<&clk IMX8MM_CLK_PCIE1_PHY>,
<&clk IMX8MM_CLK_PCIE1_CTRL>;
assigned-clock-rates = <10000000>, <100000000>, <250000000>;
assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_50M>,
<&clk IMX8MM_SYS_PLL2_100M>,
<&clk IMX8MM_SYS_PLL2_250M>;
ext_osc = <0>;
status = "okay";
};
Same with the measuring. I can see the clock for about 2 seconds and then it stops.
Is there any new hints for that?