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.

AM335x setup eth1 in SDK version 3.0

Hello,

I am trying to set up eth0 and eth1 on my BeagleBone Black with TI SDK version 3.0. I have been trying to use this (http://processors.wiki.ti.com/index.php/AM335x_CPSW_(Ethernet)_Driver's_Guide) as well as the TI Sitara Boot Camp series (https://docs.google.com/open?id=0BzESOSf028mLTjlPYmVJTUlTODA) as reference. A few of the things that I found confusing as I looked through these:

- I don't see an option for "Dual EMAC" mode when I run make menuconfig on the kernel
- Some of the code that is being asked for the user to add onto the board.c files (i.e. the CONFIG_CMD variables) have already been declared in the source files.

I'm not sure of what I need to change in the SDK source code to set up eth1...

  • Hi Diana,

    Can you confirm the following are there in your code base inside kernel:
    1. drivers/net/cpsw.c file is present
    2. You have the following CONFIG_TI_CPSW enabled in your defconfig
    3. Try adding CONFIG_TI_CPSW_DUAL_EMAC to your defconfig
  • Hi Diana,

    Make sure
    <*> TI CPSW Switch Support

    is selected to see the Dual EMAC option.

    Type the key '\' (backslash) in blue menuconfig screen and search for CONFIG_TI_CPSW. It will suggest how to navigate.
  • Dwarakesh,

    Dwarakesh R said:

    1. drivers/net/cpsw.c file is present

    In my kernel directory, I have drivers/net/ethernet/ti/cpsw.c file

    Dwarakesh R said:

    2. You have the following CONFIG_TI_CPSW enabled in your defconfig

    I have CONFIG_TI_CPSW enabled in my tisdk_am335x_defconfig file

    Dwarakesh R said:

    3. Try adding CONFIG_TI_CPSW_DUAL_EMAC to your defconfig

    I added CONFIG_TI_CPSW_DUAL_EMAC to my defconfig, but my menuconfig only shows

    [ * ] Texas Instruments (TI) devices
    <M> TI CPSW ALE Support
    <M> TI ThunderLAN Support

    I do not see an option to select TI CPSW Switch Support in my menuconfig.

  • "In my kernel directory, I have drivers/net/ethernet/ti/cpsw.c file"

    Ah we are having a different codebase. Mine is not specific to am335x. Ok, can you check in drivers/net/ethernet/ti/Kconfig to check if there is an entry for "EMAC DUAL". Check what all is its depedency.

    In my codebase I have:

    config TI_CPSW_DUAL_EMAC
    bool "TI CPSW Switch as Dual EMAC"
    depends on ARM && (ARCH_DAVINCI || ARCH_TI814X) && TI_CPSW
    help
    This driver makes TI's CPSW Ethernet Switch as Dual EMAC.

  • Hi Diana,

    DUAL EMAC in TRM says:
    "When operating in dual mac mode the intention is to transfer packets between ports 0 and 1 and ports 0
    and 2, but not between ports 1 and 2. Each CPGMAC_SL appears as a single MAC with no bridging
    between MAC's. Each CPGMAC_SL has at least one unique (not the same) mac address"

    Does your BeagleBone Black have two ethernet ports ? What exactly is the purpose of enabling eth0 eth1 ?
  • Sorry for delayed response, but I was able to get both eth0 and eth1 by adding dual_emac=<1> in the mac: ethernet@4a100000 node in my am33xx.dtsi file. The text file found in /Documentation/devicetree/bindings/net/cpsw.txt was most helpful in changing my device tree configurations. Hope this helps anyone else who ran into the same issue!

  • Hi Diana,

    Good to know you fixed it. Also appreciate for sharing your fix for future response.