Rockbox mail archiveSubject: Re: 5.5G iPod shutdown confusing the boot code?
Re: 5.5G iPod shutdown confusing the boot code?
From: Boris Gjenero <boris.gjenero_at_gmail.com>
Date: Wed, 04 Mar 2009 14:29:40 -0500
Dave Woyciesjes wrote:
> Well, my iPod wouldn't start up this morning. I've been using it in
> iPod/iTunes mode for the past week+, without issue. This morning, had to
> give it the 2finger to get it going. When it finally started up, there
> was a quick flash before the Apple logo, but I couldn't catch of it was
> a low battery symbol. When it came all the way up, I did notice the
> battery was only at 50% charge. Which is very odd, since I didn't use it
> off charger for any length of time yesterday. It should've been at least
> Looking at the Last Played timestamp in iTunes shows what I
> expected. Nothing was played between 5:38 pm yesterday & 8:04 am today...
> Seems like it didn't properly go to sleep last night.
Thanks a lot for this report! I was always sceptical about this
happening with the Apple firmware and you just proved that it does.
When you turn "off" the iPod in the original firmware, it goes to sleep
which means memory contents are retained and code which has been loaded
from disk retains control. After sleeping for a while, the iPod
transitions to deep sleep or hibernation mode. Memory is saved to the
hibe part of the firmware partition and the iPod actually turns off.
When you turn on the iPod, the first part is just like when you turn it
on to run Rockbox. The code in flash runs, and it needs to read from
disk to see that it needs to restore from hibe data instead of loading
osos. Since this problem happens before the disk has a chance to spin
up, whether you're resuming from hibernation or starting Rockbox is
According to several online sources, iPods go into deep sleep after 14
hours of inactivity, and yours has been off for 14 over hours.
The only easy solution I can think of is patching the code in flash to
remove or alter low battery checks. They're done via the BVMC register
and ADC of the PCF chip. Of course you have to watch out for flash
checksum checks; I'm not sure if there are any.
I wonder if this only happens with older batteries. Internal resistance
rises as batteries age. There might be a significant inrush current
right after the iPod is turned on, and if battery internal resistance is
high, that would lower voltage.
I don't think this can happen because of the iPod not going to sleep
properly. That could actually drain the battery, but I don't see how it
could mess up the PCF ADC or BVMC register.
-- BorisReceived on 2009-03-04