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.

Linux Ethernet Support with No PHY connection (MAC to MAC) on OMAP-L138

Other Parts Discussed in Thread: OMAP-L138

I am tying to sort out if there is support on the OMAP-L138 ARM running Linux for an Ethernet connection that does not use the MDI (No PHY), ie, a MAC to MAC connection.

I see that the OMAP-L138 has separate controls for the MDI and EMAC. From the Reference Manual (SPRUH77):
"Application software uses the MDIO module to configure the auto negotiation parameters of the PHY
attached to the EMAC, retrieve the negotiation results, and then configure required parameters in the EMAC for correct operation."
So it appears HW-wise I can disassociate the MDI from the EMAC and configure the EMAC with pre-defined PHY settings and do the "No PHY, MAC to MAC" connection that I need.

What I cannot find is any reference in the TI Linux PSP Support docs that states that this type of connection is supported: either as a driver configuration or a build setting. Can anyone point me to documentation that would help or has anyone done this?

  • Hi, Terry Lane!

    May be this information will be useful for you. In linux/include/linux/davincy_emac.h you can see    

         /*
          * phy_id can be one of the following:
          *   - NULL        : use the first phy on the bus,
          *   - ""        : force to 100/full, no mdio control
          *   - "<bus>:<addr>"    : use the specified bus and phy
          */

    Try to set your phy_id in ""

  • This looks like the answer. Thank you very much! I'll give it a try.

  • On further investigation it's not obvious how the phy_id is set to "".  I would expect it to be set with some sort of configuration, device option or compiler option but don't see anything. Any more clues? 

  • On my board (based on DM816x EVM) I use only one EMAC. In that file: linux/arch/arm/mach-omap2/devices.c declared structure ti816x_emac1_pdata type of struct emac_platform_data

    static struct emac_platform_data ti816x_emac1_pdata = {
        .rmii_en       =    0,
        .phy_id        =    "", // here set PHY_ID !!!!
        .gigabit_en   =    0,
    };

    For your board you must have similar file, correct struct emac_platform_data::phy_id entry.

  • Hello Terry,

    Did you get any success on your MAC-to-MAC interface experiment? Could you please let me know which kernel changes and HW changes you done to do successful mac-to-mac communication?

  • It would be very helpful if someone could read through this chain and add their opinion, or actual results if they tried to do this. We are trying to run our OMAP processor as Terry described above, with no PHY transceiver, connecting the MDIO lines directly from the processor to a Broadcom ehternet switch chip. I realize we will have to make our own device driver for the phy layer. Is there a reason why this will not work? What will we lose by not having a PHY device?