Bootloader

The bootloader on the GP2X is based on a port of Das U-Boot 1.0.0 to the GP2X. See U-Boot for more info.

It performs a role very similar to a classic PC's BIOS chip. It initialises the hardware and determines booting strategies before it passes control to an operating system kernel.

On the GP2X the bootloader occupies the following area of the NAND chip.

0x00000000-0x00080000 : "Bootloader"

The rest of the NAND is partitioned as follows by default with FW2> (From memory, must check, DJWillis).

0x00080000-0x00120000 : "Kernel" 0x001A0000-0x00060000 : "Boot Sound" 0x00200000-0x01E00000 : "YAFFS Filesystem"

The Open2x project has extended the bootloader to provide the following features.

(As of 11 July 2007)


 * SDHC Support (Using RobBrown's SDK2X as a base with SDHC supported added).
 * Support for booting from the SD/SDHC card (kernel.img on the root of a FAT formatted SD/SDHC card).
 * Note: kernel.img is formatted just as if it was for use with the NAND (U-Boot MKIMAGE).
 * Reworked 'flashing' code and functions (Each stage of the flashing is shown on the LCD and bootloader flashing requires extra confirmation, bootloader must be called open2xboot.img).
 * Boot menu (Hold START while booting).
 * Auto SD boot (Hold RIGHT Trigger while booting).
 * Experimental "Quick Boot" (Not in SVN yet, tweaks the CPU speed just before booting kernel).