Altera_Forum
Honored Contributor
14 years agoTSE, Verilog. MAC/PHY not sending (ARP) packets but PHY's TX led blinks?? SOS!!!
Sirs,
I was slowly "smoking" the TSE user manual, a book on Verilog, some examples... and was writing some silly stuff to wrap my head around all of that. So I have managed to hookup TSE MAC with Marvel PHY (Arria II GX 6G), assign (some) timing constraints, implement double-data buffer to drive RGMII TX CLK and MAC's tx clock, perform a minimal TSE initialization sequence, get and process incoming ethernet packets. All looked good. So my next step was to actually at least reply to ARP requests (who has IP?). I have hard-coded my MAC address, IP address etc. Wrote the code to send ARP reply, and do a lot of checks meanwhile. Everything looks OK from code perspective, all "debug" checks pass.. PHY's TX LED is blinking. But I get no data on the host - my PC connected directly to the board. I have tried a lot of things but cannot get it working. I have a feeling that either PHY is sending some crap over the cable and my host (Linux) driver simply drops the signal or I don't know.. I am raging. Unfortunately (for all of us) I am no good (yet) with debugging things (using Signal Trap etc)... Here is my code: network.v (https://github.com/posedge/sandbox/blob/master/src/network.v) - a guy that handles incoming data from TSE and partially parses things. network_arp.v (https://github.com/posedge/sandbox/blob/master/src/network_arp.v) - a guy that is trying to reply to ARP packets to the point when PHY TX blinks, but no data appears on the other end. To trace data, I use tcpdump and wireshark. I thought that maybe box is dropping things (eth is in promiscuous mode), but I don't know if there is a way in Linux to trace ethernet signals (probably no?). Of course, you can also navigate through other sources, from here - https://github.com/posedge/sandbox (https://github.com/posedge/sandbox) I must be doing something wrong but I cannot figure out what.. Any hints, help is greatly appreciated. Thanks!