This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DP83TC811S-Q1: The driver code matches the kernel version

Part Number: DP83TC811S-Q1
Other Parts Discussed in Thread: DP83TC811

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/phy/dp83tc811.c

kernel version:3.18.120

error:

[    2.173012] msm_nand_probe: NANDc phys addr 0x7980000, BAM phys addr 0x7984000, BAM IRQ 30
[    2.180882] msm_nand_probe: Allocated DMA buffer at virt_addr 0xcf444000, phys_addr 0x8f444000
[    2.192646] dp83811_init
[    2.194246] dp83811_init,ret=0
[    2.197189] tun: Universal TUN/TAP device driver, 1.6
[    2.202219] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[    2.217739] libphy: emac-mdio: probed
[    2.220868] get_phy_device:===>r(0)phy_id(536912467)
[    2.225845] dp83811_probe
[    2.232261] phy_read_mmd err
[    2.234496] PPP generic driver version 2.4.2"
andt:
[    2.232261] phy_read_mmd err=-95

static inline int phy_read_mmd(struct phy_device *phydev, int devad, u32 regnum)
{
if (!phydev->is_c45)
return -EOPNOTSUPP;///////////////////////////////////////////return here

return mdiobus_read(phydev->bus, phydev->addr,
MII_ADDR_C45 | (devad << 16) | (regnum & 0xffff));
}

when i add  code to support  C45 as fllow:

ethphy0: ethernet-phy@1 {

compatible = "ethernet-phy-ieee802.3-c45";

reg = <0>;

};

It cannot  read phyID,phy_id is 0

3.446179] libphy: emac-mdio: probed
[ 3.452680] get_phy_device:===>r(0)phy_id(0) is_c45=1

I think it is a problem with the phy_read_mmd function, which is inconsistent with the current kernel version.

Can you provide a driver based on the current kernel version

  • Hello,

    We are looking into this issue and will follow up early next week.

    Thank you,

    Nikhil

  • dear nikhil

        any update?

    thanks

  • Hello,

    There is a backport for the older  Kernel version 3.10 here: 

    https://git.ti.com/gitweb?p=ti-analog-linux-kernel/dmurphy-analog.git;a=shortlog;h=refs/heads/dp83811_310_version

    You will need to take the patches from the 3.10.17 tag on that branch. There is a patch to fix the C45 clause. 

    Thank you,

    Nikhil

  • dear  Nikhil

    in py platform :kernel 3.18.120

    The current version phy_read_mmd interface will judge is_c45, does our current IC support this protocol?
    We follow the code that does not support C45 implementation, resulting in a direct return at the entrance of the phy_read_mmd function

    The phy_read_mmd interface is currently available, but it is not applicable to the current dp83811driver,

    I check the branch code you provided, dp83822.c, which only adapts to the phy id of dp83811, but the register definition is different from that of dp83822 and cannot be incorporated

    Please provide a phy_read_mmd and phy_write_mmd interface suitable for the current kernel version

  • dear  Nikhil

    Or how to implement the read and write operations of dp83811 based on the current kernel version interface

    Give the latest dp83811 driver,
    We tried to modify as follows, but found that the write function to write and it  was not successful

    change phy_write_mmd to phy_write_mmd_indirect

    and change phy_read_mmd to phy_read_mmd_indirect.

    thanks

  • dear  nikhil:

    init  log:

    [ 2.431054] dp83811_init
    [ 2.432579] dp83811_init,ret=0
    [ 2.435902] tun: Universal TUN/TAP device driver, 1.6
    [ 2.440628] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
    [ 2.449146] emac_probe:
    [ 2.450806] msm_emac_pinctrl_init:
    [ 2.454138] msm_emac_clk_path_init:
    [ 2.457498] msm_emac_ldo_init:
    [ 2.460714] emac_enable_regulator:
    [ 2.463845] emac_set_voltage:
    [ 2.467392] emac_set_voltage:
    [ 2.470081] emac_set_voltage:
    [ 2.473117] emac_set_voltage:
    [ 2.476417] emac_clks_phase1_init:
    [ 2.483116] emac_clks_phase2_init:
    [ 2.485560] emac_init_adapter:
    [ 2.488516] msm_emac_request_pinctrl_on:
    [ 2.492562] libphy: emac-mdio: probed
    [ 2.496121] emac_mdio_read:addr=0x0,regnum=2
    [ 2.500327] emac_mdio_read reading phy addr 0 phy regnum 0x02
    [ 2.506184] emac_mdio_read:11 reading phy addr 0 phy regnum 0x02
    [ 2.512379] EMAC PHY ADDR 0 PHY RD 0x02 -> 0x2000
    [ 2.516940] emac_mdio_read:addr=0x0,regnum=3
    [ 2.521157] emac_mdio_read reading phy addr 0 phy regnum 0x03
    [ 2.527168] emac_mdio_read:11 reading phy addr 0 phy regnum 0x03
    [ 2.533208] EMAC PHY ADDR 0 PHY RD 0x03 -> 0xa253
    [ 2.537772] get_phy_device:===>r(0)phy_id(536912467) is_c45=0
    [ 2.543934] dp83811_probe
    [ 2.547515] emac_mac_rx_tx_ring_init_all:
    [ 2.550921] emac_pm_resume:
    [ 2.553261] msm_emac_request_pinctrl_on:
    [ 2.559370] emac_mdio_read:addr=0x0,regnum=0
    [ 2.562601] emac_mdio_read reading phy addr 0 phy regnum 0x00
    [ 2.568513] emac_mdio_read:11 reading phy addr 0 phy regnum 0x00
    [ 2.574706] EMAC PHY ADDR 0 PHY RD 0x00 -> 0x2100
    [ 2.579184] emac_mdio_write writing phy addr 0 phy regnum 0x00 val=0x2100
    [ 2.586014] emac_mdio_write:11 writing phy addr 0 phy regnum 0x00 val=0x2100
    [ 2.593147] EMAC PHY ADDR 0 PHY WR 0x00 -> 0x0000
    [ 2.597709] dp83811_resume :
    [ 2.600537] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 2.607505] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 2.614529] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 2.619024] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 2.625835] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 2.632988] EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 2.637549] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 2.644321] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 2.651475] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 2.656047] phy_read_mmd_indirect:prtad=1184, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 2.664630] emac_mdio_read:addr=0x0,regnum=14
    [ 2.668941] emac_mdio_read reading phy addr 0 phy regnum 0x0e
    [ 2.674794] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e
    [ 2.680975] EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000
    [ 2.685752] phy_set_bits_mmd(): set bits mmd...
    [ 2.690038] phy_modify_mmd:regnum=1184, devad=31, phydev->addr=0 mask=0,set=2048
    [ 2.697451] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 2.704218] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 2.711375] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 2.715937] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 2.722677] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 2.729895] EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 2.734425] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 2.741164] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 2.748381] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 2.752888] phy_read_mmd_indirect:prtad=1184, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 2.761506] emac_mdio_read:addr=0x0,regnum=14
    [ 2.765844] emac_mdio_read reading phy addr 0 phy regnum 0x0e
    [ 2.771637] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e
    [ 2.777897] EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000
    [ 2.782393] phy_modify_mmd(): Old[0x1000], New[0x1800].
    [ 2.787636] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 2.794408] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 2.801560] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 2.806128] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 2.812867] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 2.820084] EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 2.824613] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 2.831359] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 2.838576] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 2.843076] phy_write_mmd_indirect:prtad=1184, devad=31, addr=0 func=[emac_mdio_write+0x0/0x228]
    [ 2.851872] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x1800
    [ 2.858644] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x1800
    [ 2.865828] EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 2.870332] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 2.877135] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 2.884321] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 2.888817] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 2.895629] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 2.902780] EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 2.907341] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 2.914112] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 2.921265] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 2.925836] phy_read_mmd_indirect:prtad=1184, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 2.934593] emac_mdio_read:addr=0x0,regnum=14
    [ 2.938730] emac_mdio_read reading phy addr 0 phy regnum 0x0e
    [ 2.944591] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e
    [ 2.950789] EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000
    [ 2.955345] phy_modify_mmd(): New[0x1800].write_after[0x1000],
    [ 2.961214] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 2.968181] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 2.975211] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 2.979700] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 2.986511] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 2.993663] EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 2.998224] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 3.005002] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 3.012154] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 3.016719] phy_read_mmd_indirect:prtad=1184, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 3.025313] emac_mdio_read:addr=0x0,regnum=14
    [ 3.029616] emac_mdio_read reading phy addr 0 phy regnum 0x0e
    [ 3.035468] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e
    [ 3.041669] EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000
    [ 3.046232] dp83811_resume: val1[0x1000], val2[0x1000]...
    [ 3.051859] PPP generic driver version 2.4.2

  • config_before.txt
    [ 1135.461726] dp83tc811_get_reg_val: num is 109, enter
    [ 1135.465996] emac_mdio_read:addr=0x0,regnum=0
    [ 1135.469924] emac_mdio_read:EMAC in suspended state
    [ 1135.584067] dp83tc811_get_reg_val: dp83811-reg[0x0]=0x0
    [ 1135.588276] emac_mdio_read:addr=0x0,regnum=1
    [ 1135.592526] emac_mdio_read:EMAC in suspended state
    [ 1135.704123] dp83tc811_get_reg_val: dp83811-reg[0x1]=0x0
    [ 1135.708432] emac_mdio_read:addr=0x0,regnum=2
    [ 1135.712584] emac_mdio_read:EMAC in suspended state
    [ 1135.824725] dp83tc811_get_reg_val: dp83811-reg[0x2]=0x0
    [ 1135.829066] emac_mdio_read:addr=0x0,regnum=3
    [ 1135.833181] emac_mdio_read:EMAC in suspended state
    [ 1135.945226] dp83tc811_get_reg_val: dp83811-reg[0x3]=0x0
    [ 1135.949439] emac_mdio_read:addr=0x0,regnum=9
    [ 1135.953683] emac_mdio_read:EMAC in suspended state
    [ 1136.064417] dp83tc811_get_reg_val: dp83811-reg[0x9]=0x0
    [ 1136.068633] emac_mdio_read:addr=0x0,regnum=10
    [ 1136.073089] emac_mdio_read:EMAC in suspended state
    [ 1136.185137] dp83tc811_get_reg_val: dp83811-reg[0xa]=0x0
    [ 1136.189351] emac_mdio_read:addr=0x0,regnum=13
    [ 1136.193814] emac_mdio_read:EMAC in suspended state
    [ 1136.304419] dp83tc811_get_reg_val: dp83811-reg[0xd]=0x0
    [ 1136.308637] emac_mdio_read:addr=0x0,regnum=14
    [ 1136.312974] emac_mdio_read:EMAC in suspended state
    [ 1136.424737] dp83tc811_get_reg_val: dp83811-reg[0xe]=0x0
    [ 1136.428950] emac_mdio_read:addr=0x0,regnum=17
    [ 1136.433413] emac_mdio_read:EMAC in suspended state
    [ 1136.545578] dp83tc811_get_reg_val: dp83811-reg[0x11]=0x0
    [ 1136.550181] emac_mdio_read:addr=0x0,regnum=18
    [ 1136.554471] emac_mdio_read:EMAC in suspended state
    [ 1136.665177] dp83tc811_get_reg_val: dp83811-reg[0x12]=0x0
    [ 1136.669475] emac_mdio_read:addr=0x0,regnum=19
    [ 1136.674811] emac_mdio_read:EMAC in suspended state
    [ 1136.784142] dp83tc811_get_reg_val: dp83811-reg[0x13]=0x0
    [ 1136.794422] emac_mdio_read:addr=0x0,regnum=20
    [ 1136.797857] emac_mdio_read:EMAC in suspended state
    [ 1136.904101] dp83tc811_get_reg_val: dp83811-reg[0x14]=0x0
    [ 1136.914327] emac_mdio_read:addr=0x0,regnum=21
    [ 1136.917653] emac_mdio_read:EMAC in suspended state
    [ 1137.025180] dp83tc811_get_reg_val: dp83811-reg[0x15]=0x0
    [ 1137.030026] emac_mdio_read:addr=0x0,regnum=22
    [ 1137.033810] emac_mdio_read:EMAC in suspended state
    [ 1137.144218] dp83tc811_get_reg_val: dp83811-reg[0x16]=0x0
    [ 1137.148519] emac_mdio_read:addr=0x0,regnum=23
    [ 1137.152856] emac_mdio_read:EMAC in suspended state
    [ 1137.264733] dp83tc811_get_reg_val: dp83811-reg[0x17]=0x0
    [ 1137.269030] emac_mdio_read:addr=0x0,regnum=24
    [ 1137.273368] emac_mdio_read:EMAC in suspended state
    [ 1137.385687] dp83tc811_get_reg_val: dp83811-reg[0x18]=0x0
    [ 1137.389986] emac_mdio_read:addr=0x0,regnum=27
    [ 1137.394527] emac_mdio_read:EMAC in suspended state
    [ 1137.504190] dp83tc811_get_reg_val: dp83811-reg[0x1b]=0x0
    [ 1137.508488] emac_mdio_read:addr=0x0,regnum=28
    [ 1137.512955] emac_mdio_read:EMAC in suspended state
    [ 1137.625144] dp83tc811_get_reg_val: dp83811-reg[0x1c]=0x0
    [ 1137.629443] emac_mdio_read:addr=0x0,regnum=30
    [ 1137.633779] emac_mdio_read:EMAC in suspended state
    [ 1137.744737] dp83tc811_get_reg_val: dp83811-reg[0x1e]=0x0
    [ 1137.749163] emac_mdio_read:addr=0x0,regnum=31
    [ 1137.753366] emac_mdio_read:EMAC in suspended state
    [ 1137.864745] dp83tc811_get_reg_val: dp83811-reg[0x1f]=0x0
    [ 1137.869043] emac_mdio_write:EMAC in suspended state
    [ 1137.873901] emac_mdio_write:EMAC in suspended state
    [ 1137.878868] emac_mdio_write:EMAC in suspended state
    [ 1137.883637] phy_read_mmd_indirect:prtad=307, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1137.892179] emac_mdio_read:addr=0x0,regnum=14
    [ 1137.897067] emac_mdio_read:EMAC in suspended state
    [ 1138.004415] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x133]=0x0
    [ 1138.009235] emac_mdio_write:EMAC in suspended state
    [ 1138.014305] emac_mdio_write:EMAC in suspended state
    [ 1138.019122] emac_mdio_write:EMAC in suspended state
    [ 1138.023829] phy_read_mmd_indirect:prtad=363, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1138.032373] emac_mdio_read:addr=0x0,regnum=14
    [ 1138.036737] emac_mdio_read:EMAC in suspended state
    [ 1138.144439] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x16b]=0x0
    [ 1138.149261] emac_mdio_write:EMAC in suspended state
    [ 1138.159934] emac_mdio_write:EMAC in suspended state
    [ 1138.163798] emac_mdio_write:EMAC in suspended state
    [ 1138.169110] phy_read_mmd_indirect:prtad=384, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1138.177687] emac_mdio_read:addr=0x0,regnum=14
    [ 1138.181631] emac_mdio_read:EMAC in suspended state
    [ 1138.295195] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x180]=0x0
    [ 1138.300016] emac_mdio_write:EMAC in suspended state
    [ 1138.304922] emac_mdio_write:EMAC in suspended state
    [ 1138.310318] emac_mdio_write:EMAC in suspended state
    [ 1138.314700] phy_read_mmd_indirect:prtad=385, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1138.323286] emac_mdio_read:addr=0x0,regnum=14
    [ 1138.327500] emac_mdio_read:EMAC in suspended state
    [ 1138.435288] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x181]=0x0
    [ 1138.440108] emac_mdio_write:EMAC in suspended state
    [ 1138.445137] emac_mdio_write:EMAC in suspended state
    [ 1138.449824] emac_mdio_write:EMAC in suspended state
    [ 1138.454877] phy_read_mmd_indirect:prtad=394, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1138.463781] emac_mdio_read:addr=0x0,regnum=14
    [ 1138.467589] emac_mdio_read:EMAC in suspended state
    [ 1138.575193] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x18a]=0x0
    [ 1138.580141] emac_mdio_write:EMAC in suspended state
    [ 1138.584918] emac_mdio_write:EMAC in suspended state
    [ 1138.589731] emac_mdio_write:EMAC in suspended state
    [ 1138.594691] phy_read_mmd_indirect:prtad=395, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1138.603099] emac_mdio_read:addr=0x0,regnum=14
    [ 1138.607589] emac_mdio_read:EMAC in suspended state
    [ 1138.715196] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x18b]=0x0
    [ 1138.720606] emac_mdio_write:EMAC in suspended state
    [ 1138.724923] emac_mdio_write:EMAC in suspended state
    [ 1138.729860] emac_mdio_write:EMAC in suspended state
    [ 1138.734763] phy_read_mmd_indirect:prtad=396, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1138.743099] emac_mdio_read:addr=0x0,regnum=14
    [ 1138.747496] emac_mdio_read:EMAC in suspended state
    [ 1138.854229] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x18c]=0x0
    [ 1138.859052] emac_mdio_write:EMAC in suspended state
    [ 1138.863901] emac_mdio_write:EMAC in suspended state
    [ 1138.899135] emac_mdio_write:EMAC in suspended state
    [ 1138.903003] phy_read_mmd_indirect:prtad=407, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1138.922290] emac_mdio_read:addr=0x0,regnum=14
    [ 1138.926222] emac_mdio_read:EMAC in suspended state
    [ 1139.034189] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x197]=0x0
    [ 1139.042204] emac_mdio_write:EMAC in suspended state
    [ 1139.064262] emac_mdio_write:EMAC in suspended state
    [ 1139.068112] emac_mdio_write:EMAC in suspended state
    [ 1139.076471] phy_read_mmd_indirect:prtad=408, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1139.092858] emac_mdio_read:addr=0x0,regnum=14
    [ 1139.114179] emac_mdio_read:EMAC in suspended state
    [ 1139.224101] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x198]=0x0
    [ 1139.229575] emac_mdio_write:EMAC in suspended state
    [ 1139.235682] emac_mdio_write:EMAC in suspended state
    [ 1139.239929] emac_mdio_write:EMAC in suspended state
    [ 1139.254196] phy_read_mmd_indirect:prtad=1024, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1139.261778] emac_mdio_read:addr=0x0,regnum=14
    [ 1139.275841] emac_mdio_read:EMAC in suspended state
    [ 1139.384414] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x400]=0x0
    [ 1139.389698] emac_mdio_write:EMAC in suspended state
    [ 1139.394197] emac_mdio_write:EMAC in suspended state
    [ 1139.399035] emac_mdio_write:EMAC in suspended state
    [ 1139.403831] phy_read_mmd_indirect:prtad=1025, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1139.412461] emac_mdio_read:addr=0x0,regnum=14
    [ 1139.416823] emac_mdio_read:EMAC in suspended state
    [ 1139.524417] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x401]=0x0
    [ 1139.529431] emac_mdio_write:EMAC in suspended state
    [ 1139.534306] emac_mdio_write:EMAC in suspended state
    [ 1139.539083] emac_mdio_write:EMAC in suspended state
    [ 1139.544691] phy_read_mmd_indirect:prtad=1026, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1139.552608] emac_mdio_read:addr=0x0,regnum=14
    [ 1139.557090] emac_mdio_read:EMAC in suspended state
    [ 1139.665261] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x402]=0x0
    [ 1139.670080] emac_mdio_write:EMAC in suspended state
    [ 1139.675037] emac_mdio_write:EMAC in suspended state
    [ 1139.679795] emac_mdio_write:EMAC in suspended state
    [ 1139.684819] phy_read_mmd_indirect:prtad=1074, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1139.693384] emac_mdio_read:addr=0x0,regnum=14
    [ 1139.698069] emac_mdio_read:EMAC in suspended state
    [ 1139.804707] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x432]=0x0
    [ 1139.809657] emac_mdio_write:EMAC in suspended state
    [ 1139.814488] emac_mdio_write:EMAC in suspended state
    [ 1139.819238] emac_mdio_write:EMAC in suspended state
    [ 1139.824174] phy_read_mmd_indirect:prtad=1094, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1139.832694] emac_mdio_read:addr=0x0,regnum=14
    [ 1139.837181] emac_mdio_read:EMAC in suspended state
    [ 1139.944463] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x446]=0x0
    [ 1139.949458] emac_mdio_write:EMAC in suspended state
    [ 1139.954633] emac_mdio_write:EMAC in suspended state
    [ 1139.958997] emac_mdio_write:EMAC in suspended state
    [ 1139.963962] phy_read_mmd_indirect:prtad=1096, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1139.972589] emac_mdio_read:addr=0x0,regnum=14
    [ 1139.976873] emac_mdio_read:EMAC in suspended state
    [ 1140.085127] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x448]=0x0
    [ 1140.090073] emac_mdio_write:EMAC in suspended state
    [ 1140.094914] emac_mdio_write:EMAC in suspended state
    [ 1140.099663] emac_mdio_write:EMAC in suspended state
    [ 1140.104697] phy_read_mmd_indirect:prtad=1110, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1140.113531] emac_mdio_read:addr=0x0,regnum=14
    [ 1140.117613] emac_mdio_read:EMAC in suspended state
    [ 1140.224764] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x456]=0x0
    [ 1140.229584] emac_mdio_write:EMAC in suspended state
    [ 1140.234542] emac_mdio_write:EMAC in suspended state
    [ 1140.239301] emac_mdio_write:EMAC in suspended state
    [ 1140.244418] phy_read_mmd_indirect:prtad=1113, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1140.252759] emac_mdio_read:addr=0x0,regnum=14
    [ 1140.257292] emac_mdio_read:EMAC in suspended state
    [ 1140.364881] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x459]=0x0
    [ 1140.370486] emac_mdio_write:EMAC in suspended state
    [ 1140.375518] emac_mdio_write:EMAC in suspended state
    [ 1140.379414] emac_mdio_write:EMAC in suspended state
    [ 1140.384434] phy_read_mmd_indirect:prtad=1120, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1140.392875] emac_mdio_read:addr=0x0,regnum=14
    [ 1140.397404] emac_mdio_read:EMAC in suspended state
    [ 1140.504772] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x460]=0x0
    [ 1140.509594] emac_mdio_write:EMAC in suspended state
    [ 1140.514702] emac_mdio_write:EMAC in suspended state
    [ 1140.519308] emac_mdio_write:EMAC in suspended state
    [ 1140.525086] phy_read_mmd_indirect:prtad=1121, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1140.532860] emac_mdio_read:addr=0x0,regnum=14
    [ 1140.537251] emac_mdio_read:EMAC in suspended state
    [ 1140.644827] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x461]=0x0
    [ 1140.649863] emac_mdio_write:EMAC in suspended state
    [ 1140.654613] emac_mdio_write:EMAC in suspended state
    [ 1140.659364] emac_mdio_write:EMAC in suspended state
    [ 1140.664350] phy_read_mmd_indirect:prtad=1122, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1140.672954] emac_mdio_read:addr=0x0,regnum=14
    [ 1140.677626] emac_mdio_read:EMAC in suspended state
    [ 1140.784767] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x462]=0x0
    [ 1140.789720] emac_mdio_write:EMAC in suspended state
    [ 1140.794550] emac_mdio_write:EMAC in suspended state
    [ 1140.799299] emac_mdio_write:EMAC in suspended state
    [ 1140.804292] phy_read_mmd_indirect:prtad=1123, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1140.812943] emac_mdio_read:addr=0x0,regnum=14
    [ 1140.817186] emac_mdio_read:EMAC in suspended state
    [ 1140.925149] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x463]=0x0
    [ 1140.930510] emac_mdio_write:EMAC in suspended state
    [ 1140.934936] emac_mdio_write:EMAC in suspended state
    [ 1140.939686] emac_mdio_write:EMAC in suspended state
    [ 1140.944675] phy_read_mmd_indirect:prtad=1127, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1140.953272] emac_mdio_read:addr=0x0,regnum=14
    [ 1140.957634] emac_mdio_read:EMAC in suspended state
    [ 1141.064804] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x467]=0x0
    [ 1141.069623] emac_mdio_write:EMAC in suspended state
    [ 1141.074581] emac_mdio_write:EMAC in suspended state
    [ 1141.079340] emac_mdio_write:EMAC in suspended state
    [ 1141.084779] phy_read_mmd_indirect:prtad=1129, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1141.092793] emac_mdio_read:addr=0x0,regnum=14
    [ 1141.097296] emac_mdio_read:EMAC in suspended state
    [ 1141.204727] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x469]=0x0
    [ 1141.209545] emac_mdio_write:EMAC in suspended state
    [ 1141.214606] emac_mdio_write:EMAC in suspended state
    [ 1141.219363] emac_mdio_write:EMAC in suspended state
    [ 1141.224193] phy_read_mmd_indirect:prtad=1152, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1141.232723] emac_mdio_read:addr=0x0,regnum=14
    [ 1141.237622] emac_mdio_read:EMAC in suspended state
    [ 1141.344478] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x480]=0x0
    [ 1141.350160] emac_mdio_write:EMAC in suspended state
    [ 1141.354595] emac_mdio_write:EMAC in suspended state
    [ 1141.359284] emac_mdio_write:EMAC in suspended state
    [ 1141.364300] phy_read_mmd_indirect:prtad=1153, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1141.372561] emac_mdio_read:addr=0x0,regnum=14
    [ 1141.376951] emac_mdio_read:EMAC in suspended state
    [ 1141.485157] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x481]=0x0
    [ 1141.493122] emac_mdio_write:EMAC in suspended state
    [ 1141.497232] emac_mdio_write:EMAC in suspended state
    [ 1141.501841] emac_mdio_write:EMAC in suspended state
    [ 1141.506888] phy_read_mmd_indirect:prtad=1154, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1141.515440] emac_mdio_read:addr=0x0,regnum=14
    [ 1141.519641] emac_mdio_read:EMAC in suspended state
    [ 1141.635211] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x482]=0x0
    [ 1141.640033] emac_mdio_write:EMAC in suspended state
    [ 1141.645548] emac_mdio_write:EMAC in suspended state
    [ 1141.649746] emac_mdio_write:EMAC in suspended state
    [ 1141.654714] phy_read_mmd_indirect:prtad=1155, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1141.663383] emac_mdio_read:addr=0x0,regnum=14
    [ 1141.667720] emac_mdio_read:EMAC in suspended state
    [ 1141.775215] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x483]=0x0
    [ 1141.780161] emac_mdio_write:EMAC in suspended state
    [ 1141.784945] emac_mdio_write:EMAC in suspended state
    [ 1141.789749] emac_mdio_write:EMAC in suspended state
    [ 1141.794710] phy_read_mmd_indirect:prtad=1156, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1141.803708] emac_mdio_read:addr=0x0,regnum=14
    [ 1141.807599] emac_mdio_read:EMAC in suspended state
    [ 1141.914731] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x484]=0x0
    [ 1141.919661] emac_mdio_write:EMAC in suspended state
    [ 1141.924457] emac_mdio_write:EMAC in suspended state
    [ 1141.929270] emac_mdio_write:EMAC in suspended state
    [ 1141.934288] phy_read_mmd_indirect:prtad=1157, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1141.942719] emac_mdio_read:addr=0x0,regnum=14
    [ 1141.947115] emac_mdio_read:EMAC in suspended state
    [ 1142.055213] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x485]=0x0
    [ 1142.060581] emac_mdio_write:EMAC in suspended state
    [ 1142.065023] emac_mdio_write:EMAC in suspended state
    [ 1142.069877] emac_mdio_write:EMAC in suspended state
    [ 1142.074784] phy_read_mmd_indirect:prtad=1158, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1142.083207] emac_mdio_read:addr=0x0,regnum=14
    [ 1142.087660] emac_mdio_read:EMAC in suspended state
    [ 1142.194173] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x486]=0x0
    [ 1142.198994] emac_mdio_write:EMAC in suspended state
    [ 1142.203851] emac_mdio_write:EMAC in suspended state
    [ 1142.208764] emac_mdio_write:EMAC in suspended state
    [ 1142.214191] phy_read_mmd_indirect:prtad=1159, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1142.222269] emac_mdio_read:addr=0x0,regnum=14
    [ 1142.226624] emac_mdio_read:EMAC in suspended state
    [ 1142.335207] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x487]=0x0
    [ 1142.340027] emac_mdio_write:EMAC in suspended state
    [ 1142.345233] emac_mdio_write:EMAC in suspended state
    [ 1142.349829] emac_mdio_write:EMAC in suspended state
    [ 1142.354766] phy_read_mmd_indirect:prtad=1161, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1142.363199] emac_mdio_read:addr=0x0,regnum=14
    [ 1142.368479] emac_mdio_read:EMAC in suspended state
    [ 1142.474260] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x489]=0x0
    [ 1142.480363] emac_mdio_write:EMAC in suspended state
    [ 1142.494397] emac_mdio_write:EMAC in suspended state
    [ 1142.498261] emac_mdio_write:EMAC in suspended state
    [ 1142.506785] phy_read_mmd_indirect:prtad=1171, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1142.524693] emac_mdio_read:addr=0x0,regnum=14
    [ 1142.528335] emac_mdio_read:EMAC in suspended state
    [ 1142.634987] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x493]=0x0
    [ 1142.639808] emac_mdio_write:EMAC in suspended state
    [ 1142.644711] emac_mdio_write:EMAC in suspended state
    [ 1142.649603] emac_mdio_write:EMAC in suspended state
    [ 1142.654484] phy_read_mmd_indirect:prtad=1174, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1142.663066] emac_mdio_read:addr=0x0,regnum=14
    [ 1142.667448] emac_mdio_read:EMAC in suspended state
    [ 1142.775718] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x496]=0x0
    [ 1142.780539] emac_mdio_write:EMAC in suspended state
    [ 1142.785646] emac_mdio_write:EMAC in suspended state
    [ 1142.790255] emac_mdio_write:EMAC in suspended state
    [ 1142.795264] phy_read_mmd_indirect:prtad=1175, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1142.803704] emac_mdio_read:addr=0x0,regnum=14
    [ 1142.808139] emac_mdio_read:EMAC in suspended state
    [ 1142.915335] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x497]=0x0
    [ 1142.920262] emac_mdio_write:EMAC in suspended state
    [ 1142.925069] emac_mdio_write:EMAC in suspended state
    [ 1142.930329] emac_mdio_write:EMAC in suspended state
    [ 1142.934847] phy_read_mmd_indirect:prtad=1184, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1142.943462] emac_mdio_read:addr=0x0,regnum=14
    [ 1142.947717] emac_mdio_read:EMAC in suspended state
    [ 1143.055196] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4a0]=0x0
    [ 1143.060016] emac_mdio_write:EMAC in suspended state
    [ 1143.065001] emac_mdio_write:EMAC in suspended state
    [ 1143.069732] emac_mdio_write:EMAC in suspended state
    [ 1143.074784] phy_read_mmd_indirect:prtad=1185, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1143.083737] emac_mdio_read:addr=0x0,regnum=14
    [ 1143.087585] emac_mdio_read:EMAC in suspended state
    [ 1143.195194] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4a1]=0x0
    [ 1143.200192] emac_mdio_write:EMAC in suspended state
    [ 1143.204925] emac_mdio_write:EMAC in suspended state
    [ 1143.209730] emac_mdio_write:EMAC in suspended state
    [ 1143.214693] phy_read_mmd_indirect:prtad=1186, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1143.223187] emac_mdio_read:addr=0x0,regnum=14
    [ 1143.227694] emac_mdio_read:EMAC in suspended state
    [ 1143.334803] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4a2]=0x0
    [ 1143.340122] emac_mdio_write:EMAC in suspended state
    [ 1143.344533] emac_mdio_write:EMAC in suspended state
    [ 1143.349628] emac_mdio_write:EMAC in suspended state
    [ 1143.354469] phy_read_mmd_indirect:prtad=1187, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1143.362794] emac_mdio_read:addr=0x0,regnum=14
    [ 1143.367296] emac_mdio_read:EMAC in suspended state
    [ 1143.475315] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4a3]=0x0
    [ 1143.480256] emac_mdio_write:EMAC in suspended state
    [ 1143.485043] emac_mdio_write:EMAC in suspended state
    [ 1143.489976] emac_mdio_write:EMAC in suspended state
    [ 1143.495248] phy_read_mmd_indirect:prtad=1188, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1143.503308] emac_mdio_read:addr=0x0,regnum=14
    [ 1143.507812] emac_mdio_read:EMAC in suspended state
    [ 1143.614770] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4a4]=0x0
    [ 1143.619591] emac_mdio_write:EMAC in suspended state
    [ 1143.624495] emac_mdio_write:EMAC in suspended state
    [ 1143.629307] emac_mdio_write:EMAC in suspended state
    [ 1143.634361] phy_read_mmd_indirect:prtad=1189, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1143.642763] emac_mdio_read:addr=0x0,regnum=14
    [ 1143.647355] emac_mdio_read:EMAC in suspended state
    [ 1143.754184] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4a5]=0x0
    [ 1143.759003] emac_mdio_write:EMAC in suspended state
    [ 1143.764135] emac_mdio_write:EMAC in suspended state
    [ 1143.768723] emac_mdio_write:EMAC in suspended state
    [ 1143.773600] phy_read_mmd_indirect:prtad=1190, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1143.782264] emac_mdio_read:addr=0x0,regnum=14
    [ 1143.786628] emac_mdio_read:EMAC in suspended state
    [ 1143.894471] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4a6]=0x0
    [ 1143.899293] emac_mdio_write:EMAC in suspended state
    [ 1143.904437] emac_mdio_write:EMAC in suspended state
    [ 1143.909282] emac_mdio_write:EMAC in suspended state
    [ 1143.913891] phy_read_mmd_indirect:prtad=1191, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1143.922751] emac_mdio_read:addr=0x0,regnum=14
    [ 1143.926850] emac_mdio_read:EMAC in suspended state
    [ 1144.034468] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4a7]=0x0
    [ 1144.039416] emac_mdio_write:EMAC in suspended state
    [ 1144.044192] emac_mdio_write:EMAC in suspended state
    [ 1144.049006] emac_mdio_write:EMAC in suspended state
    [ 1144.053883] phy_read_mmd_indirect:prtad=1192, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1144.062975] emac_mdio_read:addr=0x0,regnum=14
    [ 1144.066921] emac_mdio_read:EMAC in suspended state
    [ 1144.175232] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4a8]=0x0
    [ 1144.180320] emac_mdio_write:EMAC in suspended state
    [ 1144.184963] emac_mdio_write:EMAC in suspended state
    [ 1144.189768] emac_mdio_write:EMAC in suspended state
    [ 1144.194880] phy_read_mmd_indirect:prtad=1193, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1144.203682] emac_mdio_read:addr=0x0,regnum=14
    [ 1144.207666] emac_mdio_read:EMAC in suspended state
    [ 1144.315219] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4a9]=0x0
    [ 1144.320539] emac_mdio_write:EMAC in suspended state
    [ 1144.324947] emac_mdio_write:EMAC in suspended state
    [ 1144.329751] emac_mdio_write:EMAC in suspended state
    [ 1144.334832] phy_read_mmd_indirect:prtad=1194, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1144.343209] emac_mdio_read:addr=0x0,regnum=14
    [ 1144.347667] emac_mdio_read:EMAC in suspended state
    [ 1144.454794] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4aa]=0x0
    [ 1144.459615] emac_mdio_write:EMAC in suspended state
    [ 1144.464600] emac_mdio_write:EMAC in suspended state
    [ 1144.469332] emac_mdio_write:EMAC in suspended state
    [ 1144.474826] phy_read_mmd_indirect:prtad=1195, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1144.482787] emac_mdio_read:addr=0x0,regnum=14
    [ 1144.487293] emac_mdio_read:EMAC in suspended state
    [ 1144.594842] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4ab]=0x0
    [ 1144.599804] emac_mdio_write:EMAC in suspended state
    [ 1144.604685] emac_mdio_write:EMAC in suspended state
    [ 1144.609505] emac_mdio_write:EMAC in suspended state
    [ 1144.614346] phy_read_mmd_indirect:prtad=1196, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1144.622830] emac_mdio_read:addr=0x0,regnum=14
    [ 1144.627528] emac_mdio_read:EMAC in suspended state
    [ 1144.734182] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4ac]=0x0
    [ 1144.739002] emac_mdio_write:EMAC in suspended state
    [ 1144.744052] emac_mdio_write:EMAC in suspended state
    [ 1144.748721] emac_mdio_write:EMAC in suspended state
    [ 1144.753599] phy_read_mmd_indirect:prtad=1197, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1144.762320] emac_mdio_read:addr=0x0,regnum=14
    [ 1144.766636] emac_mdio_read:EMAC in suspended state
    [ 1144.875209] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4ad]=0x0
    [ 1144.880411] emac_mdio_write:EMAC in suspended state
    [ 1144.885121] emac_mdio_write:EMAC in suspended state
    [ 1144.889744] emac_mdio_write:EMAC in suspended state
    [ 1144.894718] phy_read_mmd_indirect:prtad=1198, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1144.903434] emac_mdio_read:addr=0x0,regnum=14
    [ 1144.907605] emac_mdio_read:EMAC in suspended state
    [ 1145.015223] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4ae]=0x0
    [ 1145.020170] emac_mdio_write:EMAC in suspended state
    [ 1145.024956] emac_mdio_write:EMAC in suspended state
    [ 1145.029761] emac_mdio_write:EMAC in suspended state
    [ 1145.035063] phy_read_mmd_indirect:prtad=1199, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1145.043393] emac_mdio_read:addr=0x0,regnum=14
    [ 1145.047607] emac_mdio_read:EMAC in suspended state
    [ 1145.154831] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4af]=0x0
    [ 1145.159865] emac_mdio_write:EMAC in suspended state
    [ 1145.164768] emac_mdio_write:EMAC in suspended state
    [ 1145.169365] emac_mdio_write:EMAC in suspended state
    [ 1145.174487] phy_read_mmd_indirect:prtad=1200, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1145.182818] emac_mdio_read:addr=0x0,regnum=14
    [ 1145.187469] emac_mdio_read:EMAC in suspended state
    [ 1145.294817] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4b0]=0x0
    [ 1145.299935] emac_mdio_write:EMAC in suspended state
    [ 1145.304586] emac_mdio_write:EMAC in suspended state
    [ 1145.309520] emac_mdio_write:EMAC in suspended state
    [ 1145.314469] phy_read_mmd_indirect:prtad=1201, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1145.322846] emac_mdio_read:addr=0x0,regnum=14
    [ 1145.327306] emac_mdio_read:EMAC in suspended state
    [ 1145.434831] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4b1]=0x0
    [ 1145.439652] emac_mdio_write:EMAC in suspended state
    [ 1145.444848] emac_mdio_write:EMAC in suspended state
    [ 1145.449362] emac_mdio_write:EMAC in suspended state
    [ 1145.454535] phy_read_mmd_indirect:prtad=1202, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1145.462823] emac_mdio_read:addr=0x0,regnum=14
    [ 1145.467396] emac_mdio_read:EMAC in suspended state
    [ 1145.575162] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4b2]=0x0
    [ 1145.580282] emac_mdio_write:EMAC in suspended state
    [ 1145.585028] emac_mdio_write:EMAC in suspended state
    [ 1145.589838] emac_mdio_write:EMAC in suspended state
    [ 1145.594808] phy_read_mmd_indirect:prtad=1203, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1145.603576] emac_mdio_read:addr=0x0,regnum=14
    [ 1145.610555] emac_mdio_read:EMAC in suspended state
    [ 1145.724414] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4b3]=0x0
    [ 1145.729234] emac_mdio_write:EMAC in suspended state
    [ 1145.734291] emac_mdio_write:EMAC in suspended state
    [ 1145.738950] emac_mdio_write:EMAC in suspended state
    [ 1145.743826] phy_read_mmd_indirect:prtad=1204, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1145.752453] emac_mdio_read:addr=0x0,regnum=14
    [ 1145.757070] emac_mdio_read:EMAC in suspended state
    [ 1145.864496] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4b4]=0x0
    [ 1145.869317] emac_mdio_write:EMAC in suspended state
    [ 1145.874422] emac_mdio_write:EMAC in suspended state
    [ 1145.879027] emac_mdio_write:EMAC in suspended state
    [ 1145.883913] phy_read_mmd_indirect:prtad=1205, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1145.892599] emac_mdio_read:addr=0x0,regnum=14
    [ 1145.896909] emac_mdio_read:EMAC in suspended state
    [ 1146.005136] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4b5]=0x0
    [ 1146.010273] emac_mdio_write:EMAC in suspended state
    [ 1146.015182] emac_mdio_write:EMAC in suspended state
    [ 1146.019799] emac_mdio_write:EMAC in suspended state
    [ 1146.024615] phy_read_mmd_indirect:prtad=1206, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1146.033270] emac_mdio_read:addr=0x0,regnum=14
    [ 1146.037614] emac_mdio_read:EMAC in suspended state
    [ 1146.144632] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4b6]=0x0
    [ 1146.154299] emac_mdio_write:EMAC in suspended state
    [ 1146.158160] emac_mdio_write:EMAC in suspended state
    [ 1146.163946] emac_mdio_write:EMAC in suspended state
    [ 1146.168477] phy_read_mmd_indirect:prtad=1207, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1146.177076] emac_mdio_read:addr=0x0,regnum=14
    [ 1146.180939] emac_mdio_read:EMAC in suspended state
    [ 1146.295223] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4b7]=0x0
    [ 1146.300170] emac_mdio_write:EMAC in suspended state
    [ 1146.305140] emac_mdio_write:EMAC in suspended state
    [ 1146.309881] emac_mdio_write:EMAC in suspended state
    [ 1146.314853] phy_read_mmd_indirect:prtad=1208, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1146.323894] emac_mdio_read:addr=0x0,regnum=14
    [ 1146.327736] emac_mdio_read:EMAC in suspended state
    [ 1146.435230] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4b8]=0x0
    [ 1146.440179] emac_mdio_write:EMAC in suspended state
    [ 1146.444954] emac_mdio_write:EMAC in suspended state
    [ 1146.449851] emac_mdio_write:EMAC in suspended state
    [ 1146.454730] phy_read_mmd_indirect:prtad=1209, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1146.463308] emac_mdio_read:addr=0x0,regnum=14
    [ 1146.467689] emac_mdio_read:EMAC in suspended state
    [ 1146.575579] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4b9]=0x0
    [ 1146.581093] emac_mdio_write:EMAC in suspended state
    [ 1146.585465] emac_mdio_write:EMAC in suspended state
    [ 1146.590258] emac_mdio_write:EMAC in suspended state
    [ 1146.595314] phy_read_mmd_indirect:prtad=1210, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1146.603799] emac_mdio_read:addr=0x0,regnum=14
    [ 1146.608098] emac_mdio_read:EMAC in suspended state
    [ 1146.715223] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4ba]=0x0
    [ 1146.720173] emac_mdio_write:EMAC in suspended state
    [ 1146.724950] emac_mdio_write:EMAC in suspended state
    [ 1146.729884] emac_mdio_write:EMAC in suspended state
    [ 1146.735191] phy_read_mmd_indirect:prtad=1211, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1146.743213] emac_mdio_read:addr=0x0,regnum=14
    [ 1146.747675] emac_mdio_read:EMAC in suspended state
    [ 1146.854773] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4bb]=0x0
    [ 1146.859722] emac_mdio_write:EMAC in suspended state
    [ 1146.864574] emac_mdio_write:EMAC in suspended state
    [ 1146.869306] emac_mdio_write:EMAC in suspended state
    [ 1146.874336] phy_read_mmd_indirect:prtad=1212, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1146.882767] emac_mdio_read:addr=0x0,regnum=14
    [ 1146.887596] emac_mdio_read:EMAC in suspended state
    [ 1146.994173] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4bc]=0x0
    [ 1146.998983] emac_mdio_write:EMAC in suspended state
    [ 1147.011595] emac_mdio_write:EMAC in suspended state
    [ 1147.024094] emac_mdio_write:EMAC in suspended state
    [ 1147.028052] phy_read_mmd_indirect:prtad=1213, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1147.054182] emac_mdio_read:addr=0x0,regnum=14
    [ 1147.057505] emac_mdio_read:EMAC in suspended state
    [ 1147.164110] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4bd]=0x0
    [ 1147.168917] emac_mdio_write:EMAC in suspended state
    [ 1147.173776] emac_mdio_write:EMAC in suspended state
    [ 1147.193294] emac_mdio_write:EMAC in suspended state
    [ 1147.201224] phy_read_mmd_indirect:prtad=1214, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1147.224232] emac_mdio_read:addr=0x0,regnum=14
    [ 1147.227558] emac_mdio_read:EMAC in suspended state
    [ 1147.334853] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4be]=0x0
    [ 1147.339885] emac_mdio_write:EMAC in suspended state
    [ 1147.345075] emac_mdio_write:EMAC in suspended state
    [ 1147.349392] emac_mdio_write:EMAC in suspended state
    [ 1147.354365] phy_read_mmd_indirect:prtad=1215, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1147.363159] emac_mdio_read:addr=0x0,regnum=14
    [ 1147.367355] emac_mdio_read:EMAC in suspended state
    [ 1147.474933] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4bf]=0x0
    [ 1147.479752] emac_mdio_write:EMAC in suspended state
    [ 1147.484665] emac_mdio_write:EMAC in suspended state
    [ 1147.489468] emac_mdio_write:EMAC in suspended state
    [ 1147.494523] phy_read_mmd_indirect:prtad=1216, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1147.503385] emac_mdio_read:addr=0x0,regnum=14
    [ 1147.507316] emac_mdio_read:EMAC in suspended state
    [ 1147.615182] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4c0]=0x0
    [ 1147.620183] emac_mdio_write:EMAC in suspended state
    [ 1147.624914] emac_mdio_write:EMAC in suspended state
    [ 1147.629719] emac_mdio_write:EMAC in suspended state
    [ 1147.634679] phy_read_mmd_indirect:prtad=1217, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1147.643300] emac_mdio_read:addr=0x0,regnum=14
    [ 1147.647623] emac_mdio_read:EMAC in suspended state
    [ 1147.754515] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4c1]=0x0
    [ 1147.759912] emac_mdio_write:EMAC in suspended state
    [ 1147.764282] emac_mdio_write:EMAC in suspended state
    [ 1147.769052] emac_mdio_write:EMAC in suspended state
    [ 1147.774207] phy_read_mmd_indirect:prtad=1218, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1147.782504] emac_mdio_read:addr=0x0,regnum=14
    [ 1147.786901] emac_mdio_read:EMAC in suspended state
    [ 1147.895218] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4c2]=0x0
    [ 1147.900040] emac_mdio_write:EMAC in suspended state
    [ 1147.905044] emac_mdio_write:EMAC in suspended state
    [ 1147.909757] emac_mdio_write:EMAC in suspended state
    [ 1147.915202] phy_read_mmd_indirect:prtad=1219, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1147.923209] emac_mdio_read:addr=0x0,regnum=14
    [ 1147.927749] emac_mdio_read:EMAC in suspended state
    [ 1148.034795] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4c3]=0x0
    [ 1148.039616] emac_mdio_write:EMAC in suspended state
    [ 1148.044593] emac_mdio_write:EMAC in suspended state
    [ 1148.049468] emac_mdio_write:EMAC in suspended state
    [ 1148.054295] phy_read_mmd_indirect:prtad=1220, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1148.062888] emac_mdio_read:addr=0x0,regnum=14
    [ 1148.067664] emac_mdio_read:EMAC in suspended state
    [ 1148.174851] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4c4]=0x0
    [ 1148.179671] emac_mdio_write:EMAC in suspended state
    [ 1148.184808] emac_mdio_write:EMAC in suspended state
    [ 1148.189384] emac_mdio_write:EMAC in suspended state
    [ 1148.194354] phy_read_mmd_indirect:prtad=1221, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1148.202839] emac_mdio_read:addr=0x0,regnum=14
    [ 1148.207234] emac_mdio_read:EMAC in suspended state
    [ 1148.315219] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4c5]=0x0
    [ 1148.320633] emac_mdio_write:EMAC in suspended state
    [ 1148.324952] emac_mdio_write:EMAC in suspended state
    [ 1148.329756] emac_mdio_write:EMAC in suspended state
    [ 1148.334715] phy_read_mmd_indirect:prtad=1222, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1148.343297] emac_mdio_read:addr=0x0,regnum=14
    [ 1148.347602] emac_mdio_read:EMAC in suspended state
    [ 1148.454180] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4c6]=0x0
    [ 1148.458999] emac_mdio_write:EMAC in suspended state
    [ 1148.463857] emac_mdio_write:EMAC in suspended state
    [ 1148.468770] emac_mdio_write:EMAC in suspended state
    [ 1148.474350] phy_read_mmd_indirect:prtad=1223, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1148.482176] emac_mdio_read:addr=0x0,regnum=14
    [ 1148.486633] emac_mdio_read:EMAC in suspended state
    [ 1148.595212] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4c7]=0x0
    [ 1148.600162] emac_mdio_write:EMAC in suspended state
    [ 1148.604939] emac_mdio_write:EMAC in suspended state
    [ 1148.609744] emac_mdio_write:EMAC in suspended state
    [ 1148.614823] phy_read_mmd_indirect:prtad=1224, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1148.623201] emac_mdio_read:addr=0x0,regnum=14
    [ 1148.628126] emac_mdio_read:EMAC in suspended state
    [ 1148.734469] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4c8]=0x0
    [ 1148.739290] emac_mdio_write:EMAC in suspended state
    [ 1148.744194] emac_mdio_write:EMAC in suspended state
    [ 1148.749007] emac_mdio_write:EMAC in suspended state
    [ 1148.754094] phy_read_mmd_indirect:prtad=1225, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1148.762590] emac_mdio_read:addr=0x0,regnum=14
    [ 1148.766853] emac_mdio_read:EMAC in suspended state
    [ 1148.875213] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4c9]=0x0
    [ 1148.880034] emac_mdio_write:EMAC in suspended state
    [ 1148.885579] emac_mdio_write:EMAC in suspended state
    [ 1148.889750] emac_mdio_write:EMAC in suspended state
    [ 1148.894719] phy_read_mmd_indirect:prtad=1226, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1148.903204] emac_mdio_read:addr=0x0,regnum=14
    [ 1148.907664] emac_mdio_read:EMAC in suspended state
    [ 1149.014823] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4ca]=0x0
    [ 1149.019646] emac_mdio_write:EMAC in suspended state
    [ 1149.024556] emac_mdio_write:EMAC in suspended state
    [ 1149.029360] emac_mdio_write:EMAC in suspended state
    [ 1149.034322] phy_read_mmd_indirect:prtad=1227, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1149.043404] emac_mdio_read:addr=0x0,regnum=14
    [ 1149.047270] emac_mdio_read:EMAC in suspended state
    [ 1149.154829] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4cb]=0x0
    [ 1149.159649] emac_mdio_write:EMAC in suspended state
    [ 1149.164695] emac_mdio_write:EMAC in suspended state
    [ 1149.169493] emac_mdio_write:EMAC in suspended state
    [ 1149.174534] phy_read_mmd_indirect:prtad=1228, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1149.182820] emac_mdio_read:addr=0x0,regnum=14
    [ 1149.187306] emac_mdio_read:EMAC in suspended state
    [ 1149.295212] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4cc]=0x0
    [ 1149.300623] emac_mdio_write:EMAC in suspended state
    [ 1149.304942] emac_mdio_write:EMAC in suspended state
    [ 1149.309747] emac_mdio_write:EMAC in suspended state
    [ 1149.314710] phy_read_mmd_indirect:prtad=1248, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1149.323301] emac_mdio_read:addr=0x0,regnum=14
    [ 1149.327598] emac_mdio_read:EMAC in suspended state
    [ 1149.435225] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4e0]=0x0
    [ 1149.440045] emac_mdio_write:EMAC in suspended state
    [ 1149.444952] emac_mdio_write:EMAC in suspended state
    [ 1149.449755] emac_mdio_write:EMAC in suspended state
    [ 1149.455283] phy_read_mmd_indirect:prtad=1249, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1149.463217] emac_mdio_read:addr=0x0,regnum=14
    [ 1149.467610] emac_mdio_read:EMAC in suspended state
    [ 1149.574547] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4e1]=0x0
    [ 1149.579657] emac_mdio_write:EMAC in suspended state
    [ 1149.584509] emac_mdio_write:EMAC in suspended state
    [ 1149.589224] emac_mdio_write:EMAC in suspended state
    [ 1149.594222] phy_read_mmd_indirect:prtad=1251, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1149.602690] emac_mdio_read:addr=0x0,regnum=14
    [ 1149.607609] emac_mdio_read:EMAC in suspended state
    [ 1149.714524] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4e3]=0x0
    [ 1149.719347] emac_mdio_write:EMAC in suspended state
    [ 1149.724287] emac_mdio_write:EMAC in suspended state
    [ 1149.729055] emac_mdio_write:EMAC in suspended state
    [ 1149.734188] phy_read_mmd_indirect:prtad=1253, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1149.742518] emac_mdio_read:addr=0x0,regnum=14
    [ 1149.746904] emac_mdio_read:EMAC in suspended state
    [ 1149.855184] dp83tc811_get_reg_val: dp83811-reg[0x1f-0x4e5]=0x0
    [ 1149.860432] emac_mdio_write:EMAC in suspended state
    [ 1149.865113] emac_mdio_write:EMAC in suspended state
    [ 1149.869722] emac_mdio_write:EMAC in suspended state
    [ 1149.874687] phy_read_mmd_indirect:prtad=7, devad=1, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1149.882962] emac_mdio_read:addr=0x0,regnum=14
    [ 1149.887355] emac_mdio_read:EMAC in suspended state
    [ 1149.994782] dp83tc811_get_reg_val: dp83811-reg[0x1-0x7]=0x0
    [ 1149.999338] emac_mdio_write:EMAC in suspended state
    [ 1150.004251] emac_mdio_write:EMAC in suspended state
    [ 1150.009054] emac_mdio_write:EMAC in suspended state
    [ 1150.014425] phy_read_mmd_indirect:prtad=11, devad=1, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1150.022481] emac_mdio_read:addr=0x0,regnum=14
    [ 1150.026646] emac_mdio_read:EMAC in suspended state
    [ 1150.144229] dp83tc811_get_reg_val: dp83811-reg[0x1-0xb]=0x0
    [ 1150.148787] emac_mdio_write:EMAC in suspended state
    [ 1150.153645] emac_mdio_write:EMAC in suspended state
    [ 1150.163275] emac_mdio_write:EMAC in suspended state
    [ 1150.167879] phy_read_mmd_indirect:prtad=18, devad=1, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1150.176219] emac_mdio_read:addr=0x0,regnum=14
    [ 1150.179936] emac_mdio_read:EMAC in suspended state
    [ 1150.294469] dp83tc811_get_reg_val: dp83811-reg[0x1-0x12]=0x0
    [ 1150.299118] emac_mdio_write:EMAC in suspended state
    [ 1150.303967] emac_mdio_write:EMAC in suspended state
    [ 1150.308833] emac_mdio_write:EMAC in suspended state
    [ 1150.313711] phy_read_mmd_indirect:prtad=2100, devad=1, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1150.322866] emac_mdio_read:addr=0x0,regnum=14
    [ 1150.326821] emac_mdio_read:EMAC in suspended state
    [ 1150.434474] dp83tc811_get_reg_val: dp83811-reg[0x1-0x834]=0x0
    [ 1150.439209] emac_mdio_write:EMAC in suspended state
    [ 1150.444114] emac_mdio_write:EMAC in suspended state
    [ 1150.449044] emac_mdio_write:EMAC in suspended state
    [ 1150.453803] phy_read_mmd_indirect:prtad=2102, devad=1, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1150.462375] emac_mdio_read:addr=0x0,regnum=14
    [ 1150.466676] emac_mdio_read:EMAC in suspended state
    [ 1150.576285] dp83tc811_get_reg_val: dp83811-reg[0x1-0x836]=0x0
    root@localhost:~# 
    config_mac.txt
    root@localhost:~# ifconfig eth0 hw ether 00:11:22:33:44:55
    [ 1278.574366] emac_set_mac_address:
    [ 1278.576773] emac_pm_resume:
    [ 1278.579850] msm_emac_request_pinctrl_on:
    [ 1278.587496] emac_mdio_read:addr=0x0,regnum=0
    [ 1278.590844] emac_mdio_read reading phy addr 0 phy regnum 0x00 
    [ 1278.596881] emac_mdio_read:11 reading phy addr 0 phy regnum 0x00 
    [ 1278.603076] EMAC PHY ADDR 0 PHY RD 0x00 -> 0x2900
    [ 1278.607366] emac_mdio_write writing phy addr 0 phy regnum 0x00 val=0x2100
    [ 1278.614387] emac_mdio_write:11 writing phy addr 0 phy regnum 0x00 val=0x2100
    [ 1278.621365] EMAC PHY ADDR 0 PHY WR 0x00 -> 0x0000
    [ 1278.625852] dp83811_resume :
    [ 1278.628740] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 1278.636094] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 1278.642634] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 1278.647211] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 1278.654130] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 1278.661121] EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 1278.665692] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 1278.672429] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 1278.679821] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 1278.684246] phy_read_mmd_indirect:prtad=1184, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1278.693073] emac_mdio_read:addr=0x0,regnum=14
    [ 1278.697200] emac_mdio_read reading phy addr 0 phy regnum 0x0e 
    [ 1278.703054] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e 
    [ 1278.709212] EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000
    [ 1278.713656] phy_set_bits_mmd(): set bits mmd...
    [ 1278.718233] phy_modify_mmd:regnum=1184, devad=31, phydev->addr=0 mask=0,set=2048
    [ 1278.725617] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 1278.732538] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 1278.739617] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 1278.744375] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 1278.750813] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 1278.758065] EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 1278.762585] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 1278.769754] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 1278.776756] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 1278.781118] phy_read_mmd_indirect:prtad=1184, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1278.789842] emac_mdio_read:addr=0x0,regnum=14
    [ 1278.794146] emac_mdio_read reading phy addr 0 phy regnum 0x0e 
    [ 1278.800357] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e 
    [ 1278.806049] EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000
    [ 1278.810529] phy_modify_mmd(): Old[0x1000], New[0x1800].
    [ 1278.815847] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 1278.822514] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 1278.829733] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 1278.834291] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 1278.841103] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 1278.848234] EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 1278.853039] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 1278.859723] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 1278.866753] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 1278.871212] phy_write_mmd_indirect:prtad=1184, devad=31, addr=0 func=[emac_mdio_write+0x0/0x228]
    [ 1278.880043] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x1800
    [ 1278.886828] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x1800
    [ 1278.894042] EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 1278.898466] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 1278.905574] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 1278.912427] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 1278.917064] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 1278.923730] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 1278.930949] EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 1278.935506] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 1278.942287] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 1278.949476] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 1278.953934] phy_read_mmd_indirect:prtad=1184, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1278.962895] emac_mdio_read:addr=0x0,regnum=14
    [ 1278.966907] emac_mdio_read reading phy addr 0 phy regnum 0x0e 
    [ 1278.972746] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e 
    [ 1278.978983] EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000
    [ 1278.983442] phy_modify_mmd():  New[0x1800].write_after[0x1000],
    [ 1278.989426] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 1278.996196] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 1279.003364] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 1279.007878] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 1279.015183] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 1279.021800] EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 1279.026410] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 1279.033261] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 1279.040355] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 1279.044903] phy_read_mmd_indirect:prtad=1184, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1279.053474] emac_mdio_read:addr=0x0,regnum=14
    [ 1279.057817] emac_mdio_read reading phy addr 0 phy regnum 0x0e 
    [ 1279.063568] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e 
    [ 1279.070146] EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000
    [ 1279.074398] dp83811_resume: val1[0x1000], val2[0x1000]...
    root@localhost:~# 
    root@localhost:~# 
    root@localhost:~# 
    root@localhost:~# [ 1283.074106] emac_pm_suspend:
    [ 1283.075977] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 1283.082748] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 1283.090155] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 1283.094753] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 1283.101694] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 1283.113685] EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 1283.126469] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 1283.132234] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 1283.156994] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 1283.160951] phy_read_mmd_indirect:prtad=1184, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1283.169843] emac_mdio_read:addr=0x0,regnum=14
    [ 1283.173601] emac_mdio_read reading phy addr 0 phy regnum 0x0e 
    [ 1283.179922] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e 
    [ 1283.185826] EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000
    [ 1283.190181] dp83811_get_wol(): come in.WOL_CFG.value=[4096]
    [ 1283.196169] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 1283.202675] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 1283.209768] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 1283.214338] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 1283.221092] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 1283.228227] EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 1283.232713] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 1283.239555] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 1283.246991] EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 1283.251217] phy_read_mmd_indirect:prtad=1184, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1283.259929] emac_mdio_read:addr=0x0,regnum=14
    [ 1283.264176] emac_mdio_read reading phy addr 0 phy regnum 0x0e 
    [ 1283.270019] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e 
    [ 1283.276326] EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000
    [ 1283.280716] dp83811_suspend value=4096
    [ 1283.284535] emac_mdio_read:addr=0x0,regnum=0
    [ 1283.288703] emac_mdio_read reading phy addr 0 phy regnum 0x00 
    [ 1283.294589] emac_mdio_read:11 reading phy addr 0 phy regnum 0x00 
    [ 1283.301057] EMAC PHY ADDR 0 PHY RD 0x00 -> 0x2100
    [ 1283.305375] emac_mdio_write writing phy addr 0 phy regnum 0x00 val=0x2900
    [ 1283.312063] emac_mdio_write:11 writing phy addr 0 phy regnum 0x00 val=0x2900
    [ 1283.319310] EMAC PHY ADDR 0 PHY WR 0x00 -> 0x0000
    [ 1283.323839] msm_emac_request_pinctrl_off:
    eth1_debug11.log

  • dear  nikhil:

    After we modify and after the device up, no error is reported, but the device cannot be pinged.

    please help to check.

    eth0 Link encap:Ethernet HWaddr 00:11:22:33:44:55
    UP BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
    Interrupt:47

    thanks

  • Hello,

    To summarize, the new Kernel is now working, you are able to read/write registers, device powers up, but cannot ping. Is this correct?

    Does the device link up?

    Can you provide a register read for registers 0, 1, and extended register 467?

    Thank you,

    Nikhil

  • dear  nikhil:

    yes,the DP83TC811 driver(new kernel) of read/write interfaces  had working  in  the 3.18.120 Kernel after we modify : 

    change phy_write_mmd to phy_write_mmd_indirect

    and change phy_read_mmd to phy_read_mmd_indirect.

    My test steps:
    ifconfig eth0 hw ether 00:11:22:33:44:55
    cat /sys/module/dp83tc811/parameters/reg_val //Print register
    ifconfig eth0 up
    cat /sys/module/dp83tc811/parameters/reg_val //Print register
    brctl addif br0 eth0
     in the log uploaded yesterday, there is no error, but the device cannot be pinged through ping the PC.

    so  i don't know  read/write interfaces (after changed) is  correct.

    Does the device link up?

    i think thedevice is link up.

    root@localhost:~# ifconfig
    br0 Link encap:Ethernet HWaddr 00:23:B1:00:79:2F
    inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
    inet6 addr: fe80::2804:48ff:fe1d:fcd0/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:760 (760.0 B)

    dummy0 Link encap:Ethernet HWaddr 00:23:B1:00:79:2F
    inet6 addr: fe80::223:b1ff:fe00:792f/64 Scope:Link
    UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 B) TX bytes:1250 (1.2 KiB)

    eth0 Link encap:Ethernet HWaddr 00:11:22:33:44:55
    UP BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
    Interrupt:47

    read reg 00 ,the value is   0x2100

    read  reg 01 ,the value is   0x0061

    [ 1404.393170] emac_mdio_read:addr=0x0,regnum=0
    [ 1404.412481] emac_mdio_read reading phy addr 0 phy regnum 0x00
    [ 1404.417402] emac_mdio_read:11 reading phy addr 0 phy regnum 0x00
    [ 1404.426732] EMAC PHY ADDR 0 PHY RD 0x00 -> 0x2100
    [ 1404.430411] emac_mdio_write writing phy addr 0 phy regnum 0x00 val=0x3300
    [ 1404.440191] emac_mdio_write:11 writing phy addr 0 phy regnum 0x00 val=0x3300
    [ 1404.446619] EMAC PHY ADDR 0 PHY WR 0x00 -> 0x0000
    [ 1405.445236] phy_state_machine:phydev->state=5
    [ 1405.448873] emac_mdio_read:addr=0x0,regnum=1
    [ 1405.452898] emac_mdio_read reading phy addr 0 phy regnum 0x01
    [ 1405.458896] emac_mdio_read:11 reading phy addr 0 phy regnum 0x01
    [ 1405.464955] EMAC PHY ADDR 0 PHY RD 0x01 -> 0x0061

    [ 1401.660619] phy_read_mmd_indirect:prtad=1184, devad=31, addr=0 func=[emac_mdio_read+0x0/0x230]
    [ 1401.669471] emac_mdio_read:addr=0x0,regnum=14
    [ 1401.673546] emac_mdio_read reading phy addr 0 phy regnum 0x0e
    [ 1401.679596] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e

    [ 1401.685673] EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000

     

     

     

  • dear  nikhil:

    The following is the process of reading register 0x467. I check that it is consistent with datasheet

    1、write 0x1f   to  reg0xd

    2、write  0x467  to reg0x0e

    3、write  0x401f  to  reg0xd

    4、read 0x0e reg to get  result

    reg=0x467  value is  0x000

    [ 455.784546] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 455.790767] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 455.798025] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000

    [ 455.803870] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x0467
    [ 455.811119] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x0467
    [ 455.817997] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 455.823747] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 455.830806] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 455.838141] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 455.843638] phy_read_mmd_indirect:prtad=0x467, devad=0x1f, addr=0x0 func=[emac_mdio_read+0x0/0x230]
    [ 455.853069] emac_mdio_read:addr=0x0,regnum=0xe
    [ 455.857553] emac_mdio_read reading phy addr 0 phy regnum 0x0e
    [ 455.863647] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e
    [ 455.869272] emac_mdio_read:EMAC PHY ADDR 0 PHY RD 0x0e -> 0x0000
    [ 455.875030] dp83811_read_loopback():line=421: read reg:0x467 value=[0x0]

  • Hello,

    Based on the register values, it looks like there is no link, and the device is set for 100M speed in SGMII mode. Is this the desired mode of operation?

    Could you also provide me a schematic?

    Thank you,

    Nikhil

  • dear  Nikhil 

    sorry for late repaly because we have a holiday.

     our device is sure working  in 100M speed and in SGMII mode,this is correct and the desired mode of operation.

    Why the device has no link, which register configuration problem or process problem?

    We need to provide a schematic diagram about  what?

    I don‘t  understand.

    thanks

  • dear Nikhil

    we  found  the write function write not suscess.

    as fllow:

    [ 650.855595] phy_set_bits_mmd(): set bits mmd...
    [ 650.860051] phy_modify_mmd:regnum=0x4a0, devad=0x1f, phydev->addr=0x0 mask=0,set=0x800
    [ 650.868016] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 650.874801] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 650.881906] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 650.887902] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 650.894788] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 650.901786] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 650.907778] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 650.914524] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 650.921663] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 650.927686] phy_read_mmd_indirect:prtad=0x4a0, devad=0x1f, addr=0x0 func=[emac_mdio_read+0x0/0x230]// read function
    [ 650.936664] emac_mdio_read:addr=0x0,regnum=0xe
    [ 650.941038] emac_mdio_read reading phy addr 0 phy regnum 0x0e
    [ 650.947087] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e
    [ 650.953126] emac_mdio_read:EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000// the 0x4a0 reg value is 0x1000 write before
    [ 650.958978] phy_modify_mmd(): Old[0x1000], New[0x1800].
    [ 650.964197] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 650.970911] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 650.978134] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 650.984096] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 650.990953] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 650.998049] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 651.003933] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 651.010732] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 651.017905] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 651.023804] phy_write_mmd_indirect:prtad=0x4a0, devad=0x1f, addr=0x0 func=[emac_mdio_write+0x0/0x230]
    [ 651.033037] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x1800
    [ 651.039793] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x1800
    [ 651.047005] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 651.052880] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 651.059663] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 651.066867] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 651.072753] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 651.079686] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 651.086712] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 651.092606] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 651.099450] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 651.106629] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000  // write 0x1800 to reg 0x4a0  return 0 sucess
    [ 651.112487] phy_read_mmd_indirect:prtad=0x4a0, devad=0x1f, addr=0x0 func=[emac_mdio_read+0x0/0x230]
    [ 651.121571] emac_mdio_read:addr=0x0,regnum=0xe
    [ 651.126002] emac_mdio_read reading phy addr 0 phy regnum 0x0e
    [ 651.131870] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e
    [ 651.138031] emac_mdio_read:EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000//read reg 0x4a0  again ,found the value is  0x1000

  • Hello,

    Are you able to share a schematic for a review?

    Thank you,

    Nikhil

  • dear Nikhil

    any update?

    Please help analyze it as soon as possible.

    thanks

  • dear  Nikhil:

    any update ?

    this is QUALCOMM FAE replay:

    We are not getting what is the issue you are facing in EMAC driver.
    It seems it is stuck at PHY layer while writing to PHY registers,

  • dear Nikhil

    We found that the general register 0x00~0xf register has no problem in reading and writing, only the extension register has a problem in writing

    Please help analyze it as soon as possible, this problem has seriously affected the progress of the project.

    thanks

  • Hello,

    Thank you for your patience. Section 8.4.20 highlights the 4 step process of reading an extended register. I see duplicate lines of code, what is the distinction between the lines [650.887902] and [650.894788] ? I also see that register 0xD is being set to 0x0, is this what line [ 650.881906] is doing?

    I have copied from the datasheet the steps to read/write the extended register set. Can you clarify the above questions and confirm the steps below are being followed?

    To read a register in the extended register set:

    1. Write the value 0x1F (address function field = 00, DEVAD = '11111') to register REGCR.

    2. Write the desired register address to register ADDAR.

    3. Write the value 0x401F (data, no post increment function field = 01, DEVAD = '11111') to register REGCR.

    4. Read the content of the desired extended register set in register ADDAR.

     

    To write a register in the extended register set:

    1. Write the value 0x1F (address function field = 00, DEVAD = '11111') to register REGCR.

    2. Write the desired register address to register ADDAR.

    3. Write the value 0x401F (data, no post increment function field = 01, DEVAD = '11111') to register REGCR.

    4. Write the content of the desired extended register set to register ADDAR.

    These steps must be done every time an individual register must be accessed. 

    Thank you,

    Nikhil

  • dear Nikhil

    I  think  our read/write  steps  is right.

    [ 650.855595] phy_set_bits_mmd(): set bits mmd...
    [ 650.860051] phy_modify_mmd:regnum=0x4a0, devad=0x1f, phydev->addr=0x0 mask=0,set=0x800
    [ 650.868016] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f----------//0x0d  write 0x001f
    [ 650.874801] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 650.881906] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000---------//write 0xd   return 0,ithis return value print ,without effect
    [ 650.887902] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0--------///0x0e  write 0x04a0
    [ 650.894788] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 650.901786] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000-----------//write 0x0e  return 0,ithis return value print ,without effect
    [ 650.907778] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f---------------//0x0d  write 0x401f
    [ 650.914524] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 650.921663] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000-------------//write 0xd   return 0,ithis return value print ,without effect

    [ 650.927686] phy_read_mmd_indirect:prtad=0x4a0, devad=0x1f, addr=0x0 func=[emac_mdio_read+0x0/0x230]// read function
    [ 650.936664] emac_mdio_read:addr=0x0,regnum=0xe
    [ 650.941038] emac_mdio_read reading phy addr 0 phy regnum 0x0e-------//read 0x0e  register  return value is 0x1000
    [ 650.947087] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e
    [ 650.953126] emac_mdio_read:EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000// the 0x4a0 reg value is 0x1000 write before

     

    write:

    [ 650.958978] phy_modify_mmd(): Old[0x1000], New[0x1800].---------//we need  0x1800 to  reg 0x4a0
    [ 650.964197] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f----------//0x0d  write 0x001f
    [ 650.970911] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 650.978134] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000-------------//-//write 0xd   return 0,ithis return value print ,without effect
    [ 650.984096] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0---------///0x0e  write 0x04a0
    [ 650.990953] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 650.998049] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 651.003933] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f---------//0x0d  write 0x401f
    [ 651.010732] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 651.017905] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 651.023804] phy_write_mmd_indirect:prtad=0x4a0, devad=0x1f, addr=0x0 func=[emac_mdio_write+0x0/0x230]
    [ 651.033037] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x1800--------//write 0x1800  to  0x0e
    [ 651.039793] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x1800
    [ 651.047005] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000

    ---------------read back 0x4a0
    [ 651.052880] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 651.059663] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x001f
    [ 651.066867] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000
    [ 651.072753] emac_mdio_write writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 651.079686] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0e val=0x04a0
    [ 651.086712] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x0000
    [ 651.092606] emac_mdio_write writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 651.099450] emac_mdio_write:11 writing phy addr 0 phy regnum 0x0d val=0x401f
    [ 651.106629] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000  // write 0x1800 to reg 0x4a0  return 0 sucess
    [ 651.112487] phy_read_mmd_indirect:prtad=0x4a0, devad=0x1f, addr=0x0 func=[emac_mdio_read+0x0/0x230]
    [ 651.121571] emac_mdio_read:addr=0x0,regnum=0xe
    [ 651.126002] emac_mdio_read reading phy addr 0 phy regnum 0x0e
    [ 651.131870] emac_mdio_read:11 reading phy addr 0 phy regnum 0x0e
    [ 651.138031] emac_mdio_read:EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000//read reg 0x4a0  back ,found the value is  0x1000

    weather  schematic  is  correct  or not after you check?

  • Hello,

    The schematic looks ok. Could you clarify  the distinction between the lines [ 651.003933] and [ 651.010732] in the above reply? It looks like the same write function is duplicated? Line [ 650.978134] suggests that register 0xD is being written to 0x0? It looks like register 0xE is also being written to 0x0.

    If this is the case please remove the duplicate statements and do not set registers 0xD and 0xE to 0x0 between read and write statements. Please follow the 4-step process described in the datasheet. 

    Please let me know if this does not solve the issue.

    Thank you,

    Nikhil

  • dear  Nikhil

    between the lines [ 651.003933] and [ 651.010732] is  the same function print,U need to  ignore the line [ 651.010732] print.

    Line [ 650.978134],WR 0x0d -> 0x0000       this is not write 0x0000 to 0xd ,this is write operation return print, U need to  ignore it。

    [ 650.978134] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x0000

    thank you

  • dear  Nikhil

    I have modified the log print,as fllow:

    root@localhost:~# ifconfig eth0 hw ether 00:11:22:33:44:55
    [ 44.963645] emac_set_mac_address:
    [ 44.966431] emac_pm_resume:
    [ 44.968727] msm_emac_request_pinctrl_on:
    [ 44.976291] emac_mdio_read:EMAC PHY ADDR 0 PHY RD 0x00 -> 0x2900
    [ 44.981897] emac_mdio_read:end retval=10496
    [ 44.986240] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x00 -> 0x2100,ret=0
    [ 44.992224] emac_mdio_write:end retval=0
    [ 44.996001] dp83811_resume :
    [ 44.998982] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x001f,ret=0
    [ 45.005484] emac_mdio_write:end retval=0
    [ 45.009630] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x04a0,ret=0
    [ 45.015948] emac_mdio_write:end retval=0
    [ 45.020069] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x401f,ret=0
    [ 45.026795] emac_mdio_write:end retval=0
    [ 45.030845] emac_mdio_read:EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000   -----read 0x4a0 is 0x1000  before  write
    [ 45.036350] emac_mdio_read:end retval=4096
    [ 45.040395] phy_read_mmd_indirect:prtad=0x4a0, devad=0x1f, addr=0x0 value=0x1000 func=[emac_mdio_read+0x0/0x22c]
    [ 45.050933] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x001f,ret=0
    [ 45.057180] emac_mdio_write:end retval=0
    [ 45.061208] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x04a0,ret=0
    [ 45.068055] emac_mdio_write:end retval=0
    [ 45.072239] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x401f,ret=0
    [ 45.078298] emac_mdio_write:end retval=0
    [ 45.082554] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x1800,ret=0-------write 0x1800 to 0x4a0
    [ 45.088762] emac_mdio_write:end retval=0

    [ 45.102482] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x001f,ret=0
    [ 45.108941] emac_mdio_write:end retval=0
    [ 45.113099] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x04a0,ret=0
    [ 45.119411] emac_mdio_write:end retval=0
    [ 45.123659] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x401f,ret=0
    [ 45.129942] emac_mdio_write:end retval=0
    [ 45.134189] emac_mdio_read:EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000  //read back  value from 0x4a0,the value still is 0x1000. 
    [ 45.139772] emac_mdio_read:end retval=4096

    root@localhost:~# [ 49.155175] emac_pm_suspend:
    [ 49.157450] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x001f,ret=0
    [ 49.163634] emac_mdio_write:end retval=0
    [ 49.167851] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x04a0,ret=0
    [ 49.174214] emac_mdio_write:end retval=0
    [ 49.178214] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x401f,ret=0
    [ 49.184738] emac_mdio_write:end retval=0
    [ 49.188726] emac_mdio_read:EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000
    [ 49.194614] emac_mdio_read:end retval=4096
    [ 49.198634] phy_read_mmd_indirect:prtad=0x4a0, devad=0x1f, addr=0x0 value=0x1000 func=[emac_mdio_read+0x0/0x22c]
    [ 49.208995] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x001f,ret=0
    [ 49.215778] emac_mdio_write:end retval=0
    [ 49.219757] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0e -> 0x04a0,ret=0
    [ 49.225916] emac_mdio_write:end retval=0
    [ 49.229945] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x0d -> 0x401f,ret=0
    [ 49.236448] emac_mdio_write:end retval=0
    [ 49.240599] emac_mdio_read:EMAC PHY ADDR 0 PHY RD 0x0e -> 0x1000
    [ 49.246312] emac_mdio_read:end retval=4096
    [ 49.250357] phy_read_mmd_indirect:prtad=0x4a0, devad=0x1f, addr=0x0 value=0x1000 func=[emac_mdio_read+0x0/0x22c]
    [ 49.260729] dp83811_suspend value=4096
    [ 49.264608] emac_mdio_read:EMAC PHY ADDR 0 PHY RD 0x00 -> 0x2100
    [ 49.270293] emac_mdio_read:end retval=8448
    [ 49.274698] emac_mdio_write:EMAC PHY ADDR 0 PHY WR 0x00 -> 0x2900,ret=0
    [ 49.280909] emac_mdio_write:end retval=0
    [ 49.284894] msm_emac_request_pinctrl_off:

  • Hello,

    It looks like Bit[11] of register 0x04A0 is a self-clearing bit. This means, that though you may write to it, it will self clear back to 0, which is why you see the subsequent read is back to 0x1000. To test the functionality of the WoL in this manner, you may enable WoL, set the output to level mode (this will create an interrupt that is constantly pulled high rather than a single pulse), then create a WoL event. Observe that the signal is high, write 0x04A0 = 0x1800 and observe the signal clear and the bit clear. Please let me know if this solves the issue.

    Thank you,

    Nikhil

  • dear Nikhil

    we should how to test the loopback??

    I have try to configure the  loopback register,but I dont know how to test  the loopback is well down?

    thanks

  • Hello,

    There are different types of loopback tests, which one is the desired loopback test? What function are you trying to test?

    Has the extended register access issue been resolved?

    Thank you,

    Nikhil