"Or perhaps I'm being naive and there's something else that's holding up updates other than technical issues with drivers/hardware compatibility."
In the United States at least, mobile firmware updates are subject to the approval of mobile carriers. Most phones that are released in both the United States and Europe are updated in the latter region before the former. American carriers are also a primary reason why most phones do not run stock Android [1].
Since some revenue sharing is already in place [2], and carriers make money regardless of what Android version their customers are on, I do not think it is the answer. Unless Google can find a way to reduce the control that carriers have (by weaning Americans off of subsidized phones, or by restricting Android software customization similar to iOS or Windows Phone), I am not sure things will change for the better.
I can't find a reference for what firmware covers. Could it be as small as something like the BIOS on a PC that doesn't have to change between OS updates?
I am using firmware to reference the entire mobile operating system, from the kernel and radio interface libraries all the way to the crapware applications installed by mobile carriers.
On Android devices, the best analog to the BIOS would be the bootloader. Since most Android bootloaders are locked to prevent unsigned kernels from running, they are updated during OS updates. See http://www.extremetech.com/computing/120771-what-is-a-bootlo... .
I was thinking that "subject to the approval of the carriers" was a legal requirement, along the lines of anything that could alter the operation of the radio would have to be approved. The hope being that a thin layer that deals directly with the hardware could be subject to approval, but the rest of the stack could be updated without approval.
On further reflection, I suspect it's more of a contractual obligation, and that neither party is all that interested in keeping 6 month old phones up to date. It's a shame, because Android developers can't reasonably expect ICS to be widespread for at least a year or longer.
In the United States at least, mobile firmware updates are subject to the approval of mobile carriers. Most phones that are released in both the United States and Europe are updated in the latter region before the former. American carriers are also a primary reason why most phones do not run stock Android [1].
Since some revenue sharing is already in place [2], and carriers make money regardless of what Android version their customers are on, I do not think it is the answer. Unless Google can find a way to reduce the control that carriers have (by weaning Americans off of subsidized phones, or by restricting Android software customization similar to iOS or Windows Phone), I am not sure things will change for the better.
[1]: http://www.theverge.com/2012/1/10/2697939/motorolas-sanjay-j...
[2]: http://articles.businessinsider.com/2010-03-25/tech/30041935...