Rockbox

  • Status Closed
  • Percent Complete
    100%
  • Task Type Bugs
  • Category Operating System/Drivers
  • Assigned To
    Buschel
  • Operating System iPod Nano
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by Soap - 2010-12-23
Last edited by Buschel - 2011-02-06

FS#11830 - Playback glitching still seen in some Ipod Nano 1Gs. Appears exacerbated by heat.

This is a task to organize the finding so far regarding what appears to be flash storage problems with some Ipod Nano 1Gs and DMA.

Closed by  Buschel
2011-02-06 07:41
Reason for closing:  Fixed
Additional comments about closing:  

Fixed with r29106.

Soap commented on 2010-12-23 23:10

Ever since r14004 my iPod Nano has been unstable. I’ve gone long spells w/o using it in the past, so my historical record is weak.



Issues for others regarding similar issues were in FS #7510.

My findings so far:

Using an unmodified current build (r28800) my iPod Nano will audibly glitch (playback becomes a scrambled combination of multiple tracks) after the first rebuffering once the Nano is warm. Having the Nano in a pants pocket or arm band while exercising is sufficient to generate the temperatures needed to reproduce. Shortly after reaching this state all flash memory access appears to fail and a hard (unresponsive) freeze of the player is eventual. A forced (Menu + Select) reset will result in the bootloader failing to find rockbox.ipod.

I have been unable to reproduce this problem with my iPod chilled on an air conditioner vent.

This issue can be reproduced even when frequency scaling is disabled by artificially raising the boost count in the debug menu.

This issue can NOT be reproduced when the maximum clock speed is reduced to 76Mhz via the attached patch. Artificially heating the iPod to the point it was too hot to hold would not cause an issue.

r15705 introduced a special handling of the IDE0_CFG register for nano 1G. This special handling was needed in the ATA and clock scaling section of rockbox. With introduction of PP502x ATA DMA this register is changed again (ata_dma_set_mode() in ata-pp5020.c).

Soap commented on 2010-12-24 00:04

Buschel asked for the dump of IDE0_CF:

With DMA:
  Unboosted:  20150020
  Boosted:  30150020
Without DMA:
  Unboosted:  00158020
  Boosted:  10158020
Soap commented on 2010-12-24 00:29

Commenting out line 124 ( IDE0_CFG |= 0×20000000; /* >= 50 Mhz */ ) of ata-pp5020.c did not appear to fix the problem.

No audio glitches, but straight-up *PANIC*s
*PANIC*
Dir entry 6 in sector 4 is not free! A4 A2 ED 4C

was the first one.

Will try changing 0×20000000 to 0×10000000 tomorrow.

soap, v02 equals your test from your last post (resulted in *PANIC*)

Soap commented on 2010-12-28 01:21

Testing procedure:
0 - boot
1 - Rolo build to be tested
2 - Chill player on automobile vent until cool to the touch
3 - Listen to track 1 (MP3) of a playlist for 90 seconds while blowing as-hot-as-possible air from car heater vent on Nano.
4 - Skip to track 21 (MP3) of playlist to force a rebuffer.
5 - Listen for glitches.
6 - After 60 seconds of listening for glitches rolo testing build again, and then attempt to rolo stock (r28914) build.

Results:
Stock (r28914): Glitching (garbled audio) glitches after a rebuffer. Failed rolo (”Incomplete Install” error)
v01: Audio fine, v01 rolos fine, stock won’t rolo when hot, will when cools off
v03: Audio fine, v03 rolos fine, stock won’t rolo when hot, will when cools off
v04: Audio fine, v04 rolos fine, stock won’t rolo when hot, will when cools off
v05: Audio glitches as above after a rebuffer, v01 rolos fine, v03 rolos fine, stock won’t rolo.

Sounds like a tour-de-force not only for the nano but also for the air conditioning and the driver ;-)

Seems as if it is important to leave the function with 0×10000000 set und 0×20000000 not set.

Stock fails (0×10000000 bic’ed, 0×200000000 set)
v01 ok (0×10000000 set, 0×200000000 not set)
v02 nok (0×10000000 bic’ed, 0×200000000 not set)
v03 ok (0×10000000 not set, 0×200000000 not set) → seems to work as 0×10000000 is set due to boosting/ata_device_init during startup when this is called.
v04 ok (0×10000000 set, 0×200000000 not set)
v05 nok (0×10000000 set and bic’ed at function end)

The attached v06 is a commented and #if’ed version of v03. I wonder, if this fiddling with IDE0_CFG is not needed for the other targets as well.

v07 seems to work fine on iPod Video 5.5G (30 GB) after some short tests. Tests on other PP502x target with HAVE_ATA_DMA are needed as well to ensure proper function.

Soap commented on 2010-12-29 00:56

Following an identical test regimen as prior, v06 and v07 both pass.
The caveat is that they were not long term tests, simply a quick way to force my one known problem.

I’ll continue to run v07 if you think that would be of help.

Soap commented on 2010-12-29 00:58

I really should retest the 76Mhz trick.
The audio glitching can be subtle at times, a failure to rolo appears to be a much more definitive test.

Seems to work fine on an iPod color as well (short testing, of course).

My iPod Video has severe issues with v07. Audio PCM hissing and frozen playback.

Soap commented on 2011-01-04 18:20

Two playback problems today.
1 - Playback stopped after a couple of hours. White screen “Data about”. Device reboots fine but won’t play any music. Upon music selection from the file browser WPS loads, displays metadata, but track never progresses.

2 - Playback stopped, no data abort, menus work, no files will load. Device reboots fine, upon selection of tracks WPS loads, displays metadata, plays two seconds and then stops. Device remains responsive. test_fps plugin loads and executes just fine. Bubbles game launches just fine. Music still will not load playback and now not even metadata loads.

Soap commented on 2011-01-04 18:21

PS, rolo unsuccessful.

Soap, your issues sound the same than mine. Interestingly I had the same without the patch this morning… Weird… Could anything else be the cause?
Patch was built against r28940 and 28915.

Edit: Same issue with unpatched r28960 happened when creating the database during playback of a file.

I created a new bug report ( FS#11863 ) which collects all the informations from above. I am convinced that the majority (if not all) of these issues are not connected to this patch as I experience those without the patch applied. Nevertheless it is hard to identify and judge any problems with this patch as long as the trunk is not fixed.

After some research in flyspray bug reports I am even more convinced that the issues I have seen are not connected to this patch. These issues were reported at least since beginning of November 2010.

My question: Shall we still wait before submitting this patch?

Submitted with r29106 for nano 1g only.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing