If both ends set to autonegotiate it will usually negotiate to the fastest speed and full duplex. If you have auto on one end and the other end is hardcoded then the auto end will come in at half duplex and thus you have a speed/duplex mismatch . Both ends must match setting wise.