I have pretty complex board which has few media-converters on it (fiber to copper), also some high-speed links like 1000BASE-TX, SGMII etc. (a lot of different ICs), and some times I've problems debugging it (links just doesn't seem to work and I am having troubles to find the root cause). I have a pretty simple oscilloscope (only 100 MHz, 1 Gsps). I wonder if it'd be worth buying more sophisticated oscilloscope or other equipment to debug some complex cases? What functionality can be of use to debug such links? I know there are some oscilloscopes that can read Ethernet frames, build eye-diagrams etc. Is it useful while debugging new designs? What other functionality can be of use? Thanks! Also is it possible to distinguish real data from idle in 100BASE-TX, it seems like scrambler mix all data...
It's not easy. You don't get that far with a scope because the encoding on the line is so hard to observe. However you can scan for basic activity. Note that on 1000BaseT (from my experience) you often see continuous carrier activity, while on lower speeds you only see activity when you send some data. This at least lets you know if there is actually something getting out.
The best technique I found in the past (on small embedded boards) was to make up a loopback cable (just cut and trip a standard cable and twist the appropriate pairs together), and then send out short UDP packets (i.e. test strings) and look to see the data coming back. First try to get it going at low speeds, then see how you go at higher speeds. I did this recently and discovered that the hardware designer made a board that would only work at 10 and 100T, not 1000, due to some poor signal routing. (Luckily that didn't matter much in this case.)
If you can't get this going, next step is most likely to put some sort of logic analyser on the pins between the uC and the PHY, typically MDIO, and look at low level transfers to see if configuration is OK.
No doubt others may have other and better ways, but this worked for me.