iMX6Q FEC: transmit queue 0 timed out

Holger Schurig holgerschurig at gmail.com
Mon Jun 2 06:15:21 PDT 2014


Transmit clocking and pinmux?  Do you mean ENET_TX_EN?  Yep, that's
set. Somehow barebox can send, it's just Linux that doesn't want to do
it. Note that ENET_TX_CLK is not muxed, as it is for MII, not for
RMII.

In case I confuse what you meant, here are excerpts from my DTS:

&fec {
   pinctrl-names = "default";
   pinctrl-0 = <&pinctrl_fec>;
   phy-mode = "rmii";
   phy-reset-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
   status = "okay";
};

...

pinctrl_fec: fecgrp {
   fsl,pins = <
      MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x1b030
      MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x1b030
      MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN   0x1b030
      MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1b030
      MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1b030
      MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER   0x1b030
      MX6QDL_PAD_ENET_MDIO__ENET_MDIO     0x0B850
      MX6QDL_PAD_ENET_MDC__ENET_MDC       0x1b030
      MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN  0x1b030
      MX6QDL_PAD_GPIO_16__ENET_REF_CLK    0x1b030
      >;
};


Or did you mean the clocks internal to the CPU?  So far I didn't
really care for them, because I thought that the clocking framework in
conjunction with the device tree takes care of that. Hmm, in the
refernce manual, chapter 23.3 they talk about mac0_txmem_clk, which
isn't in that list. If I read the manual correct, this is enabled by
enet_clk_enable, so let's look into CCGR1:

/ # devmem 0x20C406c
0xF0FCFC00
                                      ...
Hmm, the first 'C' from the right contains bits 10-11 (CCM_CCGR1.CG5)
and they are both set, so enet_clk_enable is also on.



More information about the linux-arm-kernel mailing list