Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Readers > Amazon Kindle > Kindle Developer's Corner

Notices

Reply
 
Thread Tools Search this Thread
Old 11-20-2007, 02:16 AM   #1
TadW
Uebermensch
TadW ought to be getting tired of karma fortunes by now.TadW ought to be getting tired of karma fortunes by now.TadW ought to be getting tired of karma fortunes by now.TadW ought to be getting tired of karma fortunes by now.TadW ought to be getting tired of karma fortunes by now.TadW ought to be getting tired of karma fortunes by now.TadW ought to be getting tired of karma fortunes by now.TadW ought to be getting tired of karma fortunes by now.TadW ought to be getting tired of karma fortunes by now.TadW ought to be getting tired of karma fortunes by now.TadW ought to be getting tired of karma fortunes by now.
 
TadW's Avatar
 
Posts: 2,583
Karma: 1094606
Join Date: Jul 2003
Location: Italy
Device: Kindle
Some Kindle source code digging

So I poked around the sources a little bit, and here is what I've discovered so far (pardon the disorder, my mind sometimes works in mysterious ways):
  • Lab126 is the developer (software, hardware?) of the Kindle (notice, it's now assimilated by the Amazon Borg) - hint: they are hiring
  • Of particular interest: u-boot-1.1.2.tar.bz2 (contains boot loader code) and linux-2.6.10-lab126.tar.bz2 (obvious)
  • The Kindle is referred to as the Fiona computer platform
  • The u-boot code contains customized code for the Kindle; for example, it allows you to go into maintenance mode during booting (more about this later)
  • Some packages not only contain source and header files, but also precompiled libraries: /u-boot-1.1.2/bml/xsr.a, /u-boot-1.1.2/common/cmd_util.a
  • The Kindle is based on the older E Ink Apollo controller architecture (rather than the newer Metronome)
  • /u-boot-1.1.2/board/fiona/recovery.S contains the code to step into recovery/diagnostics mode
  • /u-boot-1.1.2/board/fiona/images contains images of various booting options (including recovery) in binary hex (gzipped content)
  • /u-boot-1.1.2/common/main.c describes the booting sequence. Notice the important keys for initiating maintenance/diagnostic mode.
  • Various board revisions of the Kindle exist. At one point, the power switch was a slide-switch as opposed to a toggle (see /linux-2.6.10/arch/arm/mach-pxa/fiona.c)
  • AnyData DTEV dual modem module used for Sprint's wireless EVDO network
  • Misc snippets:
    Code:
    #ifdef CONFIG_ARCH_FIONA
    #define BOARD_SERIALNUM_SIZE  32
    Code:
    //#define USER_DIAGNOSTIC_RAM_BASE    (0xA2000000-USER_DIAGNOSTIC_SIGNATURE_SIZE)
    #define USER_DIAGNOSTIC_RAM_BASE    0xA2000000
    #define USER_DIAGNOSTIC_CODE_ENTRY_PT   (USER_DIAGNOSTIC_RAM_BASE+USER_DIAGNOSTIC_SIGNATURE_OFFSET+USER_DIAGNOSTIC_SIGNATURE_SIZE)
    #define USER_DIAGNOSTIC_VECTOR_TABLE_ADDR (USER_DIAGNOSTIC_RAM_BASE+USER_DIAGNOSTIC_VECTOR_TABLE_OFFSET)
    
    #define CONFIG_RECOVER_CONSOLE_KEY    'R' // Force recovery bootloader into console.
    
    #define CONFIG_DIAGS_KEY      'D' // Go into diagnostics mode (if CONFIG_BOOT_DIAGS defined).
    #define CONFIG_DIAGS_IOC_KEY      0x23  // Key code for 'd'.
    
    #define CONFIG_FW_RESET_KEY     '?' // Force recovery bootloader to do a firmware reset.
    #define CONFIG_FW_RESET_IOC_KEY     0x27  // Key code for '/'
    
    #define CONFIG_SW_UPDATE_KEY      'U' // Force recovery bootloader to do a firmware update.
    #define CONFIG_SW_UPDATE_IOC_KEY    0x22  // Key code for 'u'.
    
    #define CONFIG_FACTORY_UPDATE_KEY   '%' // Force recovery bootloader to do a factory update.
    #define CONFIG_FACTORY_UPDATE_IOC_KEY   0x20  // Key code for '5'.
    
    #define CONFIG_MENU_SCROLL_IOC_KEY    0x07  // Force recovery bootloader into service menu.
    #define CONFIG_MENU_HOME_IOC_KEY    0x2F  // Force recovery bootloader into service menu.
    #define CONFIG_MENU_KEY       0x1B  // Force recovery bootloader into service menu (ESC, ^[).
    
    #define CONFIG_MENU_DIAG_BOOT_KEY   '0' // Service menu's diag selection key.
    #define CONFIG_MENU_DIAG_BOOT_IOC_KEY   0x19  // Key code for '0'.
    
    #define CONFIG_MENU_UPDATE_BOOT_KEY   '1' // Service menu's firware update selection key.
    #define CONFIG_MENU_UPDATE_BOOT_IOC_KEY   0x00  // Key code for '1'
    
    #define CONFIG_MENU_RESET_BOOT_KEY    '2' // Service menu's firmware reset selection key.
    #define CONFIG_MENU_RESET_BOOT_IOC_KEY    0x08  // Key code for '2'
    
    #define CONFIG_MENU_STANDARD_BOOT_KEY   '3' // Service menu's normal boot (exit) selection key.
    #define CONFIG_MENU_STANDARD_BOOT_IOC_KEY 0x10  // Key code for '3'
    Code:
    static bool fiona_preserve_boot_key(void)
    {
        // Check to see whether the user has hit a key on either the
        // device or the console, and then decide what to do, depending
        // on the keys they've hit.
        //
        bool boot_key_preserved = true, console = false;
        int boot_key = get_boot_ioc_key();
    
        // The boot key is either an IOC key or it's coming from the
        // console.
        //
        if ( 0 == boot_key )
        {
            boot_key = get_boot_key();
            console = true;
        }
        else
        {
            // For device keys, we need to ensure that the key is still down
            // to prevent stray key presses on boot from snagging.
            //
            if ( !ioc_key_still_down(boot_key) )
                boot_key = 0;
        }
TadW is offline   Reply With Quote
Old 11-22-2007, 04:01 AM   #2
agnimidhun
Junior Member
agnimidhun began at the beginning.
 
Posts: 3
Karma: 10
Join Date: Oct 2007
Device: Nokia 6630
Hardware Specs??

Its good to see the software specs.. Has anybody tried to find out whats the hardware? That should be interesting stuff..
agnimidhun is offline   Reply With Quote
Advert
Old 11-22-2007, 05:18 AM   #3
igorsk
Wizard
igorsk ought to be getting tired of karma fortunes by now.igorsk ought to be getting tired of karma fortunes by now.igorsk ought to be getting tired of karma fortunes by now.igorsk ought to be getting tired of karma fortunes by now.igorsk ought to be getting tired of karma fortunes by now.igorsk ought to be getting tired of karma fortunes by now.igorsk ought to be getting tired of karma fortunes by now.igorsk ought to be getting tired of karma fortunes by now.igorsk ought to be getting tired of karma fortunes by now.igorsk ought to be getting tired of karma fortunes by now.igorsk ought to be getting tired of karma fortunes by now.
 
Posts: 3,442
Karma: 300001
Join Date: Sep 2006
Location: Belgium
Device: PRS-500/505/700, Kindle, Cybook Gen3, Words Gear
As far as I can guess from the sources:
The base system is based on a Gumstix board.
The CPU is XScale PXA250.
The I/O chip to talk to the PN-LCD, keyboard, scrollwheel and battery is from Foxconn.
Flash chip is OneNAND from Samsung.
The CDMA modem is AnyData DTG.
USB controller is Philips ISP1761 (it has On-The-Go!).
Eink controller is Apollo (the older one used in PRS-500 etc, I think).
Audio is WM8971.
igorsk is offline   Reply With Quote
Old 04-06-2008, 12:19 PM   #4
jimad
Connoisseur
jimad is on a distinguished road
 
Posts: 53
Karma: 52
Join Date: Apr 2008
Device: Kindle
Kindle USB Controller

Here's a blurb on the [presumed] USB controller

http://www.nxp.com/acrobat_download/...7/75011327.pdf
jimad is offline   Reply With Quote
Old 03-08-2009, 02:23 PM   #5
KeithSloan
Junior Member
KeithSloan began at the beginning.
 
Posts: 1
Karma: 10
Join Date: Mar 2009
Device: none
Quote:
Originally Posted by igorsk View Post
As far as I can guess from the sources:
The CPU is XScale PXA250.
Do you think it would be possible to emulate the kindle on a PC?
There are PC emulators for RiscOS which natively runs an ARM processor,
see http://www.riscos.info/index.php/RPCEmu
KeithSloan is offline   Reply With Quote
Advert
Old 03-08-2009, 08:22 PM   #6
jesse
Connoisseur
jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.
 
Posts: 65
Karma: 30418
Join Date: Jan 2009
Device: Kindle 2
Keith,

qemu + the kindle's linux userland and a kernel built with a few additional drivers _should_ mostly "just work"
jesse is offline   Reply With Quote
Old 03-08-2009, 09:15 PM   #7
xobs
Junior Member
xobs began at the beginning.
 
Posts: 2
Karma: 10
Join Date: Mar 2009
Device: Kindle 2
You could probably run it in Scratchbox without too much trouble.
xobs is offline   Reply With Quote
Old 03-09-2009, 05:27 AM   #8
jesse
Connoisseur
jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.jesse can even cheer up an android equipped with a defective Genuine Personality Prototype.
 
Posts: 65
Karma: 30418
Join Date: Jan 2009
Device: Kindle 2
Quote:
Originally Posted by xobs View Post
You could probably run it in Scratchbox without too much trouble.
So far, I've found scratchbox's quasivirtualization (which uses qemu) to be not quite enough.
jesse is offline   Reply With Quote
Old 09-23-2009, 09:41 PM   #9
jyavenard
Zealot
jyavenard has a complete set of Star Wars action figures.jyavenard has a complete set of Star Wars action figures.jyavenard has a complete set of Star Wars action figures.jyavenard has a complete set of Star Wars action figures.
 
Posts: 141
Karma: 383
Join Date: Sep 2009
Device: Kindle 2
Compile Kindle 2 firmware

Hi there.

Has anyone managed to compile and build a Kindle 2 firmware?

I downloaded the source code, but there's a fair amount of stuff missing before you can start compiling...

I made the mistake of upgrading to 2.0.3 and then realised I couldn't do USB tethering anymore ...
I'd like to downgrade, or better compile my own firmware. I'm quite familiar with the ARM architecture

Any hints would be appreciated.
Cheers
Jean-Yves

Last edited by jyavenard; 09-23-2009 at 09:52 PM.
jyavenard is offline   Reply With Quote
Old 10-04-2009, 01:34 AM   #10
Blog Kindle
Addict
Blog Kindle knows what's going on.Blog Kindle knows what's going on.Blog Kindle knows what's going on.Blog Kindle knows what's going on.Blog Kindle knows what's going on.Blog Kindle knows what's going on.Blog Kindle knows what's going on.Blog Kindle knows what's going on.Blog Kindle knows what's going on.Blog Kindle knows what's going on.Blog Kindle knows what's going on.
 
Blog Kindle's Avatar
 
Posts: 224
Karma: 25122
Join Date: Mar 2009
Device: Kindle 1/2/3/4/Touch/DX/Fire|PRS-600/350|Nook(color)|iPad|iPad2|EVO 4G
You can't compile it since Amazon publishes only part of the source code (the portion of linux sources that they've used or modded). Source code of actual client application is not included.
Blog Kindle is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Kindle Source Code (Links) TadW Kindle Developer's Corner 79 10-31-2017 09:47 AM
Kindle Source code online?!? Gwen Morse Amazon Kindle 3 09-08-2010 12:27 PM
Let's create a source code repository for DR 800 related code? jraf iRex 3 03-11-2010 12:26 PM
Reading source code on Kindle DX? steffi Amazon Kindle 1 06-20-2009 09:00 PM
Kindle Source code released outofbreath News 5 06-17-2009 02:57 PM


All times are GMT -4. The time now is 02:47 AM.


MobileRead.com is a privately owned, operated and funded community.