Quote:
Originally Posted by geekmaster
From what I read, the mmc first 1KB maps directly into CPU address space on power up, and that is one of the places the SoC looks for bootloader code, so that is the first user-configurable code that runs on the kindle at boot. No EEPROM on the kindle, AFAIK.
|
Yep, I think you're right there. Reading the "MCIMX31 and MCIMX31L Applications Processor Reference Manual" from Freescale, the SoC has a boot mode that maps the first 2kByte (!) to 0x0. It's not even a special feature of the eMMC, the SoC can do this for any SD/MMC (i.e. "boot floppy" capabilities :-) ).
Toggling the state of GPIO BOOT[0], it will boot from USB. So that's what triggers the USB bootloader mode.
The SoC hast both internal RAM (16kByte) and internal ROM (32kByte), which provides the bootcode and its scratch space. Section 2.1 of aforementioned manual is very instructive there.