Contents |
SIMpad has various boot loaders:
Under normal circumstances the boot loader that comes with SIMpad will do. Changing the bootloader is necessary if you want to download new images with a NE2000 ethernet card, or run a JFFS2 image. The JFFS2 can get confused if parts from an older image are not erased. This limitation goes away with correct padded JFFS2 images.
Flashing a boot loader is a delicate task. If it fails the SIMpad is dead and can only be brought to life with a JTAG adapter! See JTAG HOWTO.
It initializes the CPU and the RAM an then loads either the OS or burns it to flash. It also handles the wakeup after SIMpad has been suspended.
It is called alternative bootloader because it runs in an alternative memory space and the normal bootloader can be downloaded, which would otherwise overlap and fail.
Look at the occupied memory addresses to see which one is running. Normal bootloader starts at 0x8014 and alternative bootloader starts at 0x1f00014.
In the early days of SIMpad Linux the kernel was running at the same address as the boot loader, so the alternative boot loader was necessary to run Linux. Now we use a trick to avoid the overlap. The kernel is gzipped and the unzip code for ARM Linux is position independent. This allows the kernel to be loaded to a different address and the unzip code the puts the kernel to its normal address.
http://www.handhelds.org/handhelds-faq/bootldr.html