Rockbox mail archiveSubject: Re: Red Led Dead test II
Re: Red Led Dead test II
From: Björn Stenberg <bjorn_at_haxx.se>
Date: Wed, 17 Dec 2003 23:56:04 +0100
Daniel Gudlat wrote:
> From my experience and what I read here it seems to me like your test
> build may cure spontaneous RLOD, but does nothing for movement induced
> RLOD. So, if we can confirm this to be true, I'd vote for getting the
> change into the daily builds to help those with spontaneous RLOD, and
> then see about what if anything can be done about movement induced
The only kind I have seen in my archos is the "spontaneous" kind, and that seems to be fixed by my latest ata change.
I agree that the movement induced RLOD appears to be a different beast. I have updated the test firmware to include a new debug menu entry: ATA History.
What I'd like you to do is that when you get a RLOD, go to Debug->ATA History and look at the numbers. The screen will look something like this:
The values are the ata command/event history. 13 is the most recent event, 0 is the oldest. The hex value is the event or command:
#define CMD_DEVICE_RESET 0x08
#define CMD_READ_SECTORS 0x20
#define CMD_WRITE_SECTORS 0x30
#define CMD_READ_MULTIPLE 0xC4
#define CMD_WRITE_MULTIPLE 0xC5
#define CMD_SET_MULTIPLE_MODE 0xC6
#define CMD_STANDBY_IMMEDIATE 0xE0
#define CMD_STANDBY 0xE2
#define CMD_IDENTIFY 0xEC
#define CMD_SLEEP 0xE6
#define CMD_SECURITY_FREEZE_LOCK 0xF5
/* fake commands, for the history */
#define CMD_POWERDOWN 0xf00
#define CMD_POWERUP 0xf01
#define CMD_HARD_RESET 0xf02
#define CMD_SOFT_RESET 0xf03
#define CMD_RDY_TIMEOUT 0xf04
#define CMD_BSY_TIMEOUT 0xf05
The "Status:" line shows the current content of the ATA status register.
Obviously, what I need to know is what this screen says when a "movement RLOD" occurs. If you can write down all the numbers, great. If you are pressed for time, start with event 13 and work your way backwards. Naturally the latest events are the most interesting ones.
Misc info: The history screen is redrawn every second. Multiple commands are only stored once (i.e. 21 consecutive READs are only shown as a single one). SOFT_RESET (0xF03) is used to wake up the disk from SLEEP. HARD_RESET (0xF02) is used to wake up from POWERDOWN.
Happy hunting! :-)
-- BjörnReceived on 2003-12-17