I've posted this in the other similar threads but I thought I'd show it here where more will see it.
FYI that 2.0 verison that everyone is linking to is NOT the correct 2.0 firmware. That firmware is 5A347 and the correct firmware is 5A345. Here is the info i've found:
"iPhone 3G is shipping with build 5A345. 5A347 is a build that was never intended for a production environment, and certainly not for installation on the original iPhone! As I mentioned earlier, it was built to be installed on iPhone 3G development test units only (note, I did not say production units), and has not been tested or designed for the original iPhone.
Build 5A347 contains a significant amount of debug code and that is, in part, the reason for the slowdowns iPhone classic users are seeing. As also mentioned previously, when 32k of debug data is collected, the build is designed to dump the data to a location which no production iPhone supports, and hence you're seeing timeouts while the write process attempts to do its job."
I did install the 5A347 firmware on my v1 and it seems to work fine, but as soon as the correct version is released I'm going to switch to that.
see comment #1037
http://forums.macrumors.com/showthread.php?p=5767877#post5767877