Not sure how in depth of a response you will need. However, here is basically how it works. Both sides of a connection will try to auto-negotiate to the highest speed that they support. They step down until an agreed upon speed can be found at the highest common denominator. IF one side doesn't support autonegotiation, it will not work with the other side in the negotiation process, and normally this means that the host that IS set to auto-negotiate has no choice but to assume the worst and will normally pick its lowest speed setting. Normally you will end up with a 10Mbps half duplex connection on the auto-negotiated host. If they two don't coincidentally match up, you end up with lots of collisions and errors etc. in the best case, in the worst case - you don't establish a connection at all.
Kevin
I'm building a webserver. where i have to write the autonegataite driver. do anyone know how you do it? cause. if both parts support A/N it's not problem. but then you have the case where one part doesn't. do you then swaw between 10 and 100 till you get a connection? or how does it work. can't find any info on it on the net(i'm a student so can't pay for it)