ECU replacement is certainly not necessary. P0128 is for low engine coolant temperature reading. A repair shop should plug in a scan tool to the 16 pin diagnostic socket under the dash and read stored freeze frame information to see if the car was in closed loop and what the temperature was when the Check Engine Light first came on. Then run the engine and look at live sensor information and see what the computer sees as the actual running temperature. If the temperature is below 175 degrees, it is most likely the thermostat is stuck open, replace the thermostat drive the car check to see if the temperature gauge now reads toward the middle of the gauge, if it now does or you found the thermostat stuck open you can be pretty confident you have fixed the problem. I have replaced a few coolant temperature switches to correct this problem. The sensor is on the passenger side top of the engine the two wires attached to it are green/black and white/black.