View Single Post
Old 09-23-2012, 08:41 PM   #54
knc1
Helpdesk Junkie
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 6,675
Karma: 5850002
Join Date: Feb 2012
Device: Too many.
Quote:
Originally Posted by qlob View Post
My speculation is that theuser storage area got corrupted, and that the bootloader (when looking for the ENABLE_DIAGS file) gets somehow confused and boots into USB Downloader mode.

I have no idea if the serial adapter will work, but I doubt it.
Very close. The difference in details probably does not matter.

If the boot/monitor code (U-Boot, RedBoot, whatever) is missing from the specified boot location, the SoC will drop back to the iROM code (USB Downloader) so that it can be downloaded.

You can tell if the machine is entering the USB Downloader code by having the USB cable plugged in and monitor for device discovery messages from your OS (in *nix: tail -f dmesg).

Once the boot/monitor code (U-Boot in the case of the stock Kindle) is found, loaded into ram and executed -
If it can not find the next application to run (Linux kernel in the case of a stock Kindle) - it continues to run.

The boot/monitor code communicates with the outside world over the serial port. If you have a serial port connection, you will see its messages and have a chance to use its command set to fix matters (it can re-program the flash from commands given it).

Once U-Boot finds the next thing that will be executed (the Linux kernel in the case of a stock Kindle) - it will loaded that into memory and run it -

The Linux kernel may have a several stage "bootstrap sequence" of its own -
If any of that fails - it will panic and the machine will go into a "wait for reset" loop.
The Linux kernel uses the same serial port that the boot/monitor code (U-Boot) uses for its messages and commands.

So in answer to the question:
If you are feeling up to learning enough of the above details to "recover" the machine, Yes - you need the serial port adapter.

The system is designed so that a brand-new, completely blank, flash chip can be programmed by the internally available code burned into the SoC.

Each stage of the "boot sequence of programs" is designed so that the next stage in the process can be programmed into the flash chip.

OR Send it back home for exchange.

Note: When ordering a low voltage ttl to USB adapter - order one for operation at 1.8volts NOT 2.2, 3.3 or 5.0 volts.
Ordering one that allows the output level to be selected by the user is alright - if you remember to follow the directions about setting it to 1.8volts.

- - -
For the curious:
Q: How did the programming get into the flash chip to begin with?
A: It was programmed before it was assembled to the board. The code survives the soldering process.

Last edited by knc1; 09-23-2012 at 08:47 PM.
knc1 is offline   Reply With Quote