View Single Post
Old 07-09-2012, 07:39 AM   #84
hawhill
Wizard
hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.
 
hawhill's Avatar
 
Posts: 1,379
Karma: 2155307
Join Date: Nov 2010
Location: Goettingen, Germany
Device: Kindle Paperwhite, Kobo Mini
In theory, yes. But then that error wouldn't pop up, I think. I'm currently in the course of hacking a libusbx-based (or libusb-1.0) approach to flashing/dumping. As it is not working correctly yet, I'm hesitating to publish since people might brick their devices with it. But expect it in the course of the following 2-3 days.

Funny thing is, I remember having exactly the same errors over and over again with ATK and my Kindle. However, suddenly it worked. I attributed that to me failing to entering the correct settings for ATK (which were iMX35_TO2, mDDR and selecting SD/MMC in flash util). Maybe it is so very timing critical, that the specific setup here makes it work (VirtualBox, BTW, I need to explicitly re-attach the USB device to the VM after starting the flashing/dumping, since it "ejects" on its own after the RAM kernel is uploaded by ATK).

As for understanding what is going on with ATK and USB downloader mode:
- having Vol- pressed upon reboot/boot-up will trigger the built-in ROM kernel mode (you can recognized it because the Kindle identifies as "SE Ringo" USB device in that mode)
- when using ATK, the first page settings (mDDR, iMX35_TO2) will be used to write first initialization values to certain SoC registers in order to initialize the RAM and I think a few timing settings (didn't check yet). That uses features of the ROM kernel.
- in the flash util, when you start the very first operation there, ATK will upload the "RAM kernel" and make the ROM kernel branch into it. In that moment, the USB device is reset (which makes it eject from my VirtualBox container and I need to re-enable the device or it would time-out)
- the RAM kernel is specific to the selected Flash type (SD/MMC in our case). It is used for the dumping/programming of the flash.

In my own libusb-based try, I successfully uploaded a RAM kernel and started it, I could read status codes etc., but there is still a bug when flashing. I'll implement dumping before trying anything else.

Edit: all the mentioned "kernel"s don't have anything to do with the Linux kernel on the Kindle or Linux kernels in general. It's a small embedded kernel in both the RAM and the ROM kernel case.

Last edited by hawhill; 07-09-2012 at 07:42 AM.
hawhill is offline   Reply With Quote