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.

Cann't find eth1 when using DVRRDK 4.00.00.03

Hello,  Our harware platform is EVM8168 (with daughter card), When we using DVRRDK 3.00.00.00, we can use both eth0 and eth1, but When we using DVRRDK 04.00.00.03, only eth0 can use. 

when configure eth1, we use this command:

    ifconfig eth1   <xx.xx.xx.xx>  netmask <xx.xx.xx.xx> up

When Under DVRRDK 04.00.00.03, it printf  "ifconfig: SIOCSIFADDR: NO such device"

Attached dmesg info.

root@dm816x:~# dmesg |grep phy

davinci_mdio davinci_mdio.0: detected phy mask fffffff9
davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver unknown
davinci_mdio davinci_mdio.0: phy[2]: device 0:02, driver unknown
notify_init : notify drivercreated for remote proc id 2 at physical Address 0xbee00000
net eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:01, id=282f014)

  • In RDK 4.0 eth offload driver is used for enabling eth1 on 8168. Please look at dvr_rdk/bin/ti816x/run_gui.sh You might have to use eth_offload_load.sh to enable eth1 first and then configure eth1

  • If you want to continue with original driver on eth1 you can make following change in your  kernel

    diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
    index 173e2ae..b994d0f 100644
    --- a/arch/arm/mach-omap2/devices.c
    +++ b/arch/arm/mach-omap2/devices.c
    @@ -1310,7 +1310,7 @@ static struct platform_device ti816x_emac1_device = {
     };

     static struct platform_device ti816x_emac2_device = {
    -       .name   =       "eth_offload",
    +       .name   =       "davinci_emac",
            .id     =       1,
            .num_resources  =       ARRAY_SIZE(ti816x_emac2_resources),
            .resource       =       ti816x_emac2_resources,

    after this original driver will be used for both the interfaces as in previous RDK release

     

  • Hi, Yogesh

        Thanks for your reply,  It's really resolve the problem.

  • hi Yogesh,

    I try to find dvr_rdk/bin/ti816x/run_gui.sh in  RDK 4.1, but I can't find that to enable eth1. Is there other way?

  • Hi Jack,

    You can use run_nvr.sh or run_dvr.sh under dvr_rdk/bin/ti816x as per your use case.

     

  • Hi

    I'm using DVR RDK_04.00.00.03. I made the change per Yogesh suggested in file "DVRRDK4.0\DVRRDK_04.00.00.03\ti_tools\linux_lsp\kernel\linux-dvr-rdk\arch\arm\mach-omap2\devices.c"

    static struct platform_device ti816x_emac2_device = {
    // .name = "eth_offload",
            .name   =       "davinci_emac",
     .id = 1,
     .num_resources = ARRAY_SIZE(ti816x_emac2_resources),
     .resource = ti816x_emac2_resources,
    };

    But the built kernel seems not work correctly.

    see the booting msg:

    ......

    mii_bus 0 failed to register
    davinci_mdio: probe of davinci_mdio.0 failed with error -22

    ...

    PHY 0:02 not found
    No state is presnet eth0: could not connect to phy 0:02

    Why this causes ETH0 cannot be used. Can you help me whether I need to do other modification?

    thanks

  • I dont think there is any other change.Others were able to get it working with this change. Have you connected ethenet cable to eth0, i mean do you see both lights on the phy blinking? Is the connection correctly done. Do you have dhcp server running on you network?

  • Hi Yogesh,

    Eth0 on my board works only when using a switch or router between PC and the baord. it's not always convenient for me. Currently I'm still using ETH1 for development. ETH1 PHY chip is marvell 88e1111. I can connect it directly to PC with 1G speed. Till the platform moved to DVR4.0, I found ETH1 gone.

    I tried using DVR Uboot + EVM kernel, ETH1 works. this is to say DVR Uboot is ok. It must be something wrong in kernel.

    For normal booting, I can see logs:

    davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
    davinci_mdio davinci_mdio.0: detected phy mask bffffffa
    davinci_mdio.0: probed
    davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver RTL821x Gigabit Ethernet
    davinci_mdio davinci_mdio.0: phy[2]: device 0:02, driver RTL821x Gigabit Ethernet
    davinci_mdio davinci_mdio.0: phy[30]: device 0:1e, driver Marvell 88E1111

    But booting the new kernel, there is error happens

    mii_bus 0 failed to register
    davinci_mdio: probe of davinci_mdio.0 failed with error -22

      

  • resolved! Thanks Yogesh