PRBLEM w/ MDIO Port definition on sc_ethernet

Technical discussions around xCORE processors (e.g. xcore-200 & xcore.ai).
User avatar
atena
Member
Posts: 12
Joined: Fri Apr 25, 2014 3:35 pm

PRBLEM w/ MDIO Port definition on sc_ethernet

Post by atena »

Hi there,

as I can see the sc_ethernet port definitions for the different slicekits is kept on the module_ethernet_board_ethernet_board_conf.h file. Here I see different definitions, like using a single-bit port...

#define PORT_ETH_MDIO on tile[0]: XS1_PORT_1M

Or also for the XC-2 board, the port is an 8-bit port and the bit used por this signal is the bit 7. The definitions for these board are...

#define ETHERNET_DEFAULT_PHY_ADDRESS 0x1f
#define SMI_MDIO_BIT 7
#define SMI_MDIO_REST (~(1<<7))
#define SMI_MDIO_RESET_MUX 1

Well, in my design, I am using a 4-bit port for the MDIO signal and I want to use the bit 3. I define in my board_conf the following...

#define PORT_ETH_MDIO on tile[0]: XS1_PORT_4D
#define SMI_MDIO_BIT 3
#define SMI_MDIO_REST (~(1<<3))
#define SMI_MDIO_RESET_MUX 0

Rest of ports on my design match the Slicekit-L16 ones but on tile 0, but this port definitions are not working for me. The application does not get any IP from the router. What I am doing wrong? Any idea?

Thanks a lot on advance!
:)

ps. In fact, if I hack my design and move MDIO signal to a single-bit port, with the correspondent definition PORT_ETH_MDIO on tile[0]: XS1_PORT_1M, everything works fine. So on the MDIO signal is the problem.


User avatar
TSC
Experienced Member
Posts: 111
Joined: Sun Mar 06, 2011 11:39 pm

Post by TSC »

I would have thought that module_ethernet_board_support which is supplied inside sc_ethernet would have taken care of selecting the proper port definitions. That module just looks for the "TARGET =" board type in your main makefile and sets ports using #define accordingly.

Are you sure you want to be using the MDIO interface? It's a serial interface which is a lot slower than the MII interface which uses separate 4-bit ports for RX and TX data.
User avatar
Bianco
XCore Expert
Posts: 754
Joined: Thu Dec 10, 2009 6:56 pm

Post by Bianco »

TSC wrote:I would have thought that module_ethernet_board_support which is supplied inside sc_ethernet would have taken care of selecting the proper port definitions. That module just looks for the "TARGET =" board type in your main makefile and sets ports using #define accordingly.

Are you sure you want to be using the MDIO interface? It's a serial interface which is a lot slower than the MII interface which uses separate 4-bit ports for RX and TX data.
MDIO is mandatory as management interface
User avatar
atena
Member
Posts: 12
Joined: Fri Apr 25, 2014 3:35 pm

Post by atena »

First of all, thanks for your replies guys.

Second, the solution was provided by a collegue of me and it was really easy. Basically, at the definitions of my MDIO port configuration I just needed to change one of them, SMI_MDIO_BIT, remaining definitions stay the same.

So the definitions are like this.

#define PORT_ETH_MDIO on tile[0]: XS1_PORT_4D
#define SMI_MDIO_BIT 3

The application runs just fine this way.
Best,
:)