View Single Post
Old 09-30-2017, 11:39 AM   #1
varu
Member
varu knows the difference between 'who' and 'whom'varu knows the difference between 'who' and 'whom'varu knows the difference between 'who' and 'whom'varu knows the difference between 'who' and 'whom'varu knows the difference between 'who' and 'whom'varu knows the difference between 'who' and 'whom'varu knows the difference between 'who' and 'whom'varu knows the difference between 'who' and 'whom'varu knows the difference between 'who' and 'whom'varu knows the difference between 'who' and 'whom'varu knows the difference between 'who' and 'whom'
 
Posts: 12
Karma: 10000
Join Date: Sep 2017
Device: Kindle PW2
PW2 Repair Code 0 after a few reboots

Sure enough, after the warranty on my PW2 expired, it started experiencing more and more frequent Repair Code 0s. Holding down the button & rebooting it usually solved it, until it didn't. Thanks to geekmaster's excellent diagram I built myself a 1.8v TTL shifter and consoled in. The boot log looked something like this:

Code:
U-Boot 2009.08-lab126 (Dec 30 2013 - 10:54:52)


CPU: Freescale i.MX6 family TO0.0 at 996 MHz

Temperature:   29 C, calibration data 0x5654e35f

mx6sl pll1: 996MHz

mx6sl pll2: 528MHz

mx6sl pll3: 480MHz

mx6sl pll8: 50MHz

ipg clock     : 66000000Hz

ipg per clock : 66000000Hz

uart clock    : 80000000Hz

cspi clock    : 60000000Hz

ahb clock     : 132000000Hz

axi clock   : 198000000Hz

emi_slow clock: 22000000Hz

ddr clock     : 396000000Hz

usdhc1 clock  : 198000000Hz

usdhc2 clock  : 198000000Hz

usdhc3 clock  : 198000000Hz

usdhc4 clock  : 198000000Hz

MMC:  FSL_ESDHC: 0,FSL_ESDHC: 1,FSL_ESDHC: 2

Board: Pinot WFO 2GB

Boot Reason: [ POR ]

Boot Device: NAND

Board Id: 02E22011XXXXXHIO

S/N: B0DXXXXXXXXXXC3T

I2C:   ready

DRAM:  256 MB

Using default environment


In:    serial

Out:   serial

Err:   serial

Quick Memory Test 0x80000000, 0xfff0000

POST done in 59 ms

Battery voltage: 4065 mV


Hit any key to stop autoboot:  1  0 

## Booting kernel from Legacy Image at 80800000 ...

   Image Name:   Linux-3.0.35-lab126

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    2426044 Bytes =  2.3 MB

   Load Address: 80008000

   Entry Point:  80008000

   Verifying Checksum ... OK

   Loading Kernel Image ... OK

OK


Starting kernel ...


[    0.095368] No Legacy reboot reason code to print
[    0.271361] LPDDR2 MfgId: 0x1 [Samsung]
[    0.275222] 
[    0.275225] just text: vaddr 0xc011e9bc, va 0xc011e200 pa 0x801000c3 attr 0x6
[    0.283710] 
[    0.283714] nmx6sl_wfi_iram: vaddr 0xd081a000, va 0xd081a200 pa 0x902043 attr 0x2
[    0.292696] 
[    0.292699] mx6sl_ddr: vaddr 0xd0852000, va 0xd0852200 pa 0x903043 attr 0x2
[    0.301157] 
[    0.301160] mx6sl_iomux: vaddr 0xf40e0000, va 0xf40e0200 pa 0x20110c3 attr 0x149
[    0.310045] 
[    0.310047] ANATOP: vaddr 0xf40c8000, va 0xf40c8200 pa 0x20110c3 attr 0x149
[    0.318506] 
[    0.318509] CCM: vaddr 0xf40c4000, va 0xf40c4200 pa 0x20110c3 attr 0x149
[    0.326706] 
[    0.326708] MMDC_P0: vaddr 0xf41b0000, va 0xf41b0200 pa 0x21110c3 attr 0x149
[    0.335253] 
[    0.335256] L2: vaddr 0xf2a02000, va 0xf2a02200 pa 0xa02043 attr 0x149
[    0.343279] 
[    0.343282] arm perif: vaddr 0xf2a00000, va 0xf2a00200 pa 0xa00043 attr 0x149
[    0.370543] max77696-adc max77696-adc.0: adc conversion timed out
3.0.35-lab126 #1 Wed Apr 23 01:26:01 PDT 2014 armv7l
Press [ENTER] for recovery menu...       0 //-\|/-\|/-/-\|/-\|/-/-\|/-
The last part is the classic \ | / - character cycle indicating spinning - if left alone, it will sit there indefinitely. Once that point is reached, the Repair Code 0 screen comes up.

To resolve this, I entered diag mode, dropped to shell, formatted mmcblk0p1 with mkfs, loaded the 5.4.3.2 firmware bin onto the FAT partition, and did U to launch an update. (Note: 5.4.3.2 was the previous firmware as well, I never updated it beyond that revision). This worked, and I was able to boot up successfully. I installed the jailbreak, KUAL, and a few extensions (KOReader, USBNet, kterm, gawk, BatteryStatus, and leafpad). Reboots proceeded as normal throughout this time. I thought all was well, so I removed the serial hookup.

Big mistake.

Upon the next reboot, Repair Code 0 once more. I held down the button and had a successful reboot. The next one once more resulted in Repair Code 0, as did all subsequent reboots. Now I'm back where I started.

Back to the serial hookup! The above log is identical to what I'm seeing now. What am I doing wrong?

SEVERAL EDITS: This message keeps popping up in the log, any relevance?

Code:
[ 3249.149939] max77696-adc max77696-adc.0: adc conversion timed out
[ 3249.169930] max77696-adc max77696-adc.0: adc conversion timed out
It also occured to me that this started happening after:
1) It was charged on a fastcharger, pumping over 1A into it (I didn't put an ammeter in line with it but it's a 2A charger and I noticed it charged very rapidly).
2) Once charged, the charger would cut out and the Kindle would drain to zero over the course of about a week (left alone with no usage). Upon recharge, it would boot up fresh. This happened multiple times before the issue started cropping up.

Seeing the above errors makes me wonder if this could be related to the power management IC, however I'm not sure how to proceed further on the diag side. It seems to charge the battery well, and reports its charge level appropriately both in fastboot and (while it was running) in the OS. I have also tried a different battery as I suspected the charging ordeals it went through could've damaged it, with identical outcomes.

It's worth noting that these messages disappear when the Kindle OS is actually running. No idea in diag mode, will test now.

Sure enough, diag mode:

Code:
[   62.032521] max77696-adc max77696-adc.0: adc conversion timed out
[   62.038790]
[   62.038793] ADC value out of thermistor range! setting display temp to 43 deg C
[  122.172461] max77696-adc max77696-adc.0: adc conversion timed out
[  122.192473] max77696-adc max77696-adc.0: adc conversion timed out
[  122.198745]
[  122.198748] ADC value out of thermistor range! setting display temp to 43 deg C
I'm not sure how critical of an error this is, however.

Hmm.. based on knc1's comment it's hanging on a user storage reformat. I have no issue leaving it on a charger for a few days, if that'll actually resolve the issue.

Going into the recovery menu in diags (trying to get into it in main doesn't register, goes straight into the "spinning" character sequence), I ran an erase mmc0, partition initialize, and firmware reflash. I also formatted mmcblk0p3. Upon reboot, back to "Your Kindle Needs Repair", but this time without any error codes, nor the DSN - yet back to the "spinning" sequence. I've placed it on a USB ammeter and am leaving it for a few days. Right now battery's at 80%/about 4V and it's not drawing any current from USB. Serial output's of course being logged. Fingers crossed.

Last edited by varu; 09-30-2017 at 02:04 PM.
varu is offline   Reply With Quote