03-08-2010 07:35 AM
I have an Ethernet port on my board using Marvell 88E1111 PHY. I have wired the PHY to the FPGA MGT just as is done in the ML50x boards. I have MDC and MDIO going into the FPGA also and connected to the hard TEMAC. Here's my MHS file for xps_ll_temac:
PARAMETER INSTANCE = temac
PARAMETER HW_VER = 1.01.b
PARAMETER C_TEMAC_TYPE = 0
PARAMETER C_PHY_TYPE = 4
PARAMETER C_SPLB_CLK_PERIOD_PS = 8000
PARAMETER C_BUS2CORE_CLK_RATIO = 1
PARAMETER C_TEMAC0_PHYADDR = 0b00000
PARAMETER C_TEMAC0_TXCSUM = 1
PARAMETER C_TEMAC0_RXCSUM = 1
PARAMETER C_TEMAC0_TXFIFO = 2048
PARAMETER C_TEMAC0_RXFIFO = 2048
PARAMETER C_BASEADDR = 0x81c00000
PARAMETER C_HIGHADDR = 0x81c0ffff
BUS_INTERFACE SPLB = mb_plb
BUS_INTERFACE LLINK0 = temac_LLINK0
PORT RXN_0 = temac_RXN_0
PORT RXP_0 = temac_RXP_0
PORT TXN_0 = temac_TXN_0
PORT TXP_0 = temac_TXP_0
PORT MDC_0 = temac_MDC_0
PORT MDIO_0 = temac_MDIO_0
PORT TemacIntc0_Irpt = temac_TemacIntc0_Irpt
PORT TemacPhy_RST_n = temac_TemacPhy_RST_n
PORT MGTCLK_N = temac_MGTCLK_0_N
PORT MGTCLK_P = temac_MGTCLK_0_P
My issue is that using the sample applications in XAPP1026, I receive the following message when I run the app in microblaze:
Server Port Connect With..
-------------------- ------ --------------------
echo server 7 $ telnet <board_ip> 7
XLlTemac detect_phy: No PHY detected. Assuming a PHY at address 0
auto-negotiated link speed: 100
network is up...
Launching echo server...
In echo server...
Solved! Go to Solution.
03-09-2010 07:23 PM
I discovered a footnote in the MAC documentation that indicated that I cannot use a PHY address of b00000 because:
The value "00000" is a broadcast PHY address and should not be used to avoid contention between the internal
HARD_TEMAC PHYs and the external PHY(s).
I blue-wired this on my PHY to give it the address b00001 and then updated my settings in the MHS file and I no longer get the PHY not detected error. I still cannot, however, get an ARP response or anything else out of the Ethernet port. I've turned on the debug in LwIP, but there is no obvious error. ARP appears to be running because a timer times out periodically and then a message is shown on the console from the debug statements.
03-21-2010 10:25 AM
OK I found my problem. In setting up the MHS file, I had neglected to connect the Local Link clock on the TEMAC. So without that, there was no data being moved around. The drivers found the PHY because that connection is through the MDC/MDIO lines. Anyway, adding this to my MHS file in the xps_ll_temac peripheral and it solved the problem (the mb_clk is my 200MHz clock for the Microblaze):
PORT LlinkTemac0_CLK = mb_clk