I have a 14 month old SL-C700 with hardware problems. Tonight I\'m going over to my Japanese teacher\'s house, and together we\'re going to call Sharp Japan tech support and try to get help. She warned me that Japanese are typically very regimented, so I may have problems getting detailed technical information from line-level support staff. I\'d like to pose my question to the group here also:
First: I\'ve flashed replacement OS images and erased and reloaded dozens of times. This is not a simple newbie issue. :)
I know I have bad \"NAND\" flash in my C700. I may or may not have other hardware problems. I\'m trying to determine whether it would be a waste of time to hire an experienced electronics technician to replace the flash chips in my C700, or if I should instead just send the C700 to Japan.
I\'ll first describe what my C700 is doing now, and then will describe the symptoms I saw before the C700 failed completely.
Currently the C700 can get into the D+M menu, but only intermittently. (I\'ve been in this menu dozens of times, so this is not a user training issue.) Usually if I press and hold D+M and toggle the battery lock, the flashing email light stops its flashing temporarily, and then starts again. I\'ve been unable to get into the D+M menu for the past two days -- except for today, when I tried and it worked.
I have a SYSTC700.DBK file on a write-protected SD card. When I use the D+M menu\'s \"NAND Flash Restore\" option, the restore process runs for a few seconds (maybe 10 to 15 lines worth of green bar) and then says:
NAND Restore from SD
file:SYSTC700.DBK
Execute restore?
Delete all flash data?
Restore...failed
format error
If I go into EXTRA MENU, then Zaurus Test, then NAND Flash (Full), this test runs a destructive write-read test of my flash and tells me I have 2001 bad flash blocks:
NAND Flash (Full)
checking ecc... OK.
writing all 1...
adr = 4000000
Bad Block Num = 2001
verifying 1...
adr = 4000000
Bad Block Num = 2001
writing all 2...
adr = 4000000
Bad Block Num = 2001
verifying 2...
adr = 4000000
Bad Block Num = 2001
checking number...OK.
success.
Also, interestingly, as it tests flash it counts forward in 2^20 increments, starting from 100000 and counting upward toward 4000000. Between ranges c00000 and 2900000 it counts very quickly, as if each block is failing completely and the test is being aborted on each block in that range.
So that\'s where I\'m at right now. The problem seemed to start Tuesday before last (March 30). Here\'s what I observed back then: (quoted from my April 2 post at externe.net\'s older C700 forum)
I think I have a specific kind of hardware failure, but I\'m not sure what\'s wrong. I probably can\'t fix it on my own, but I\'d like to understand the problem. This isn\'t really flashing-related: I\'ve been running the same Sukoshi rom for several weeks. I\'m noticing three kinds of failures:
first failure type: the machine will occasionally lock up, hard. The clock stops, the battery meter stops playing its \'plugged into power\' animation, and no key presses, card inserts and removals, or other inputs will make it react. I can toggle the battery lock switch and it\'ll restart.
second failure type: sometimes after toggling the battery lock switch, the email light will flash, as if to say it can\'t boot. Sometimes if I just toggle the switch again it\'ll boot normally; sometimes I have to toggle the switch several times; or sometimes I have to take the battery completely out and leave it without power for several minutes before trying again. It\'s running again right now though.
third failure type: occasionally I\'ll have programs refuse to start, or crash in the middle of running. Qtopia will restart sometimes. I\'ve had some odd filesystem corruption also, and the system has been unable to find important executables (like cardctl).
After I started seeing that third type of failure, I backed everything up and flashed the latest Cacko QT ROM. This ROM has one important difference: when Qtopia starts I get a \"wait 5, 4, 3, 2, 1\" screen that gives me a chance to bail out of Qtopia and get a console-only command prompt. When I do that after Qtopia crashes and restarts, I see the following in my system log (dmesg command):
sharp_sl_nand_read_ecc: Failed ECC read, page 0x00003a5b
sharp_sl_nand_read_ecc: Failed ECC read, page 0x00003a5b
mtd->read(0x44 bytes from 0x4b7a4) returned ECC error
Node CRC 1c614139 != calculated CRC 51a10890 for node at 0004b7a4
These four lines are repeated dozens of times, filling the entire buffer printed by dmesg.
While in console-only mode, sometimes my shell will crash and I\'ll be back at a login screen again. After several crashes I would be able to log in, but when I tried to execute a single command I\'d be back at a login prompt again. After several repeats of *that*, the login manager is unable to start correctly and starts spawning repeatedly, causing init to shut it down for 5 minutes.
For a while I was able to run Qtopia, and I ran the \'badblocks\' program to look for bad Flash blocks. Strangely enough, I didn\'t find any:
OK, now this is weird:
Right now I\'m sitting here running:
badblocks -p 1000 /dev/mtdblock0 &
badblocks -p 1000 /dev/mtdblock1 &
badblocks -p 1000 /dev/mtdblock2 &
badblocks -p 1000 /dev/mtdblock3 &
and it\'s just sitting there making the whole system unusably slow, but thrashing NAND like crazy. It\'s not finding *any* bad blocks. (Hopefully I\'ll get a chance to see the error messages when it finally finds problems.)
But it\'s been running this for over 30 minutes now, and hasn\'t found any bad blocks.
So might this mean I have some kind of intermittent problem that makes the whole flash memory subsystem flaky? Maybe it\'ll sit here and run fine for a while, and then suddenly be unable to read *anything*. I\'m not sure.
The C700 is an amazing device -- I never realized how much I used it every day until I was without it. I\'d love to get it back up and running soon, and hopefully without sending it back to Japan.
Thanks again for your help, guys! I\'ll post back here if I find out anything new from my call to Sharp Japan.
--Michael Spencer