1. fix for ich parts using secondary flash area. many thanks to Mathieu Lonjaret and Fazlul Shahriar for their help. 2. remove impossible check for rd->errors == 0. this can't happen since we've configured the chipset not to report errors. if we got a packet with rd->errors != 0 the old behavior was wrong anyway. 3. there is a bug in hardware autonegotiation that can stick interfaces at 100Mbps. recognize this state and kick autonegotiation off by hand. (i82563ctl was move to the end to facilitate kicking autonegotiation by hand. i removed this hack in the submitted version.)