The first thing I would try is switching/replacing the network cable or even switch port, typically there's a reason auto-negotiation chooses what it does. I assume you would know if your switch was manually set to 100M or something (not sure I've ever owned a switch that "smart").
You can typically disable auto-negotation with ethtool. I don't recall if the stock firmware has ethtool in it or not off hand, I think I used it there once but don't remember the circumstance.