FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6359 Discussions

TSE mdc/mdio wirte/read problem.

Altera_Forum
Honored Contributor II
1,020 Views

i am using 88e111 mac phy. 

 

First this is what tb in Modelsim does:  

mido wirte to addr 128 (200h) with 0x0000aaaa.  

read of addr 128(200h) is 0x0000aaaa.  

 

 

But I actually read 0x00002000 out of 128(200h) after wirten 0x0000aaaa to it.  

and I've tried to read addr 128 without writing anything ahead, the read out result is still 0x00002000. According to the 88e111 datasheet. 0x00002000 means reg0.15 reset is always high, and never gets self cleared.  

 

I thought it was the problem of my mdc/mdio/mdio_oen/mdio_in/mdio_out signals. but as I tried to read out addr 129(204h) , the result 00007949h (0111100101001001) seems to be correct, except reg (1.14:11 hwcfg_mode[3:0]) which I was expecting it would be 1011 instead of 1111 ( because that's the value i think i've configed hwcfg to be.).  

 

I'm confused, i don't know where the problem is. I don't know if the PHY is correctly initialized.
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
245 Views

I say the best way to get things up and running with the TSE MAC is to use a NIOS with the simple socket server example. There is debug code in there to inform you if your MAC was found or not. 

 

However, did you enable the MDIO interface when you configured the TSE MAC? Also, did you properly set the clock divisor for the MDIO clock? 

 

Jake
0 Kudos
Altera_Forum
Honored Contributor II
245 Views

thanks, I am kind of familiar with arm9 and arm-linux, i know i can easily get the debug info via uart, which kind of like NIOS. But I am really not planning to try NIOS right now.  

 

I am currently using pure verilog to do all the things. And I think I've got that register(200h) right today. the read out result is 1140h now.  

 

Next I am going to try tx/rx.
0 Kudos
Reply