RedBoot supports the serial port via cradle or cable, and Compact Flash ethernet cards if fitted for communication and downloads. The LCD touchscreen may also be used for the console, although by default RedBoot will switch exclusively to one channel once input arrives.
The default serial port settings are 38400,8,N,1. RedBoot runs from and supports flash management for the system flash region.
The following RedBoot configurations are supported:
RedBoot ROM and WinCE mode images are needed by the installation process.
The Windows/CE environment originally shipped with the iPAQ contains a hidden mini-loader, sometimes referred to as the "Parrot" loader. This loader can be started by holding down the action button (the joypad) while resetting the unit or when powering on. At this point, a blue bird will appear on the LCD screen. Also at this point, a simple loader can be accessed over the serial port at 115200/8N1. Using this loader, the contents of the iPAQ flash memory can be saved to a Compact Flash memory card.
NOTE: We have only tested this operation with a 32Mbyte CF memory card. Given that the backup will take 16MBytes + 1KByte, something more than a 16MByte card will be required.
Use the "r2c" command to dump Flash contents to the CF memory card. Once this completes, RedBoot can be installed with no fear since the Parrot loader can be used to restore the Flash contents at a later time.
If you expect to completely recover the state of the iPAQ Win/CE environment, then HotSync should be run to backup all "RAM" files as well before installing RedBoot.
The next step in installing RedBoot on the iPAQ actually involves Windows/CE, which is the native environment on the unit. Using WinCE, you need to install an application which will run a RAM based version of RedBoot. Once this is installed and running, RedBoot can be used to update the flash with a native/ROM version of RedBoot.
Using ActiveSync, copy the file OSloader to your iPAQ.
Using ActiveSync, copy the file redboot_WinCE.bin to the iPAQ as bootldr in its root directory. Note: this is not the top level folder displayed by Windows (Mobile Device), but rather the 'My Pocket PC' folder within it.
Execute OSloader. If you didn't create a shortcut, then you will have to poke around for it using the WinCE file explorer.
Choose the Tools->BootLdr->Run after loading from file menu item.
This method of installation is no longer supported. If you have previously installed either the Compaq boot loader or older versions of RedBoot, restore the Win/CE environment and proceed as outlined above.
When RedBoot first comes up, it will want to initialize its LCD touch screen parameters. It does this by displaying a keyboard graphic and asks you to press certain keys. Using the stylus, press and hold until the prompt is withdrawn. When you lift the stylus, RedBoot will continue with the next calibration.
Once the LCD touchscreen has been calibrated, RedBoot will start. The calibration step can be skipped by pressing the return/abort button on the unit (right most button with a curved arrow icon). Additionally, the unit will assume default values if the screen is not touched within about 15 seconds.
Once RedBoot has started, you should get information similar to this on the LCD screen. It will also appear on the serial port at 38400,8,N,1.
RedBoot(tm) bootstrap and debug environment [ROM] Non-certified release, version UNKNOWN - built 06:17:41, Mar 19 2001 Platform: Compaq iPAQ Pocket PC (StrongARM 1110) Copyright (C) 2000, 2001, Free Software Foundation, Inc. RAM: 0x00000000-0x01fc0000, 0x0001f200-0x01f70000 available FLASH: 0x50000000 - 0x51000000, 64 blocks of 0x00040000 bytes each. |
If you have a Compact Flash ethernet card, RedBoot should find it. You'll need to have BOOTP enabled for this unit (see your sysadmin for details). If it does, it will print a message like:
... Waiting for network card: .Ready! Socket Communications Inc: CF+ LPE Revision E 08/04/99 IP: 192.168.1.34, Default server: 192.168.1.101 |
Once you are satisfied with the setup and that RedBoot is operating properly in your environment, you can set up your iPAQ unit to have RedBoot be the bootstrap application.
CAUTION |
This step will destroy your Windows/CE environment. Before you take this step, it is strongly recommended you save your WinCE FLASH contents as outlined above using the "parrot" loader, or by using the Compaq OSloader:
|
RedBoot> lo -r -b 0x100000 redboot_ROM.bin RedBoot> fi loc -f 0x50000000 -l 0x40000 RedBoot> fis init RedBoot> fi unl -f 0x50040000 -l 0x40000 RedBoot> fi cr RedBoot -b 0x100000 RedBoot> fi loc -f 0x50040000 -l 0x40000 RedBoot> reset |
WARNING |
You must type these commands exactly! Failure to do so may render your iPAQ totally useless. Once you've done this, RedBoot should come up every time you reset. |
To restore Windows/CE from the backup taken in the Section called Installing RedBoot permanently, visit http://www.handhelds.org/projects/wincerestoration.html for directions.
The exec command which allows the loading and execution of Linux kernels, is supported for this board (see the Section called Executing Programs from RedBoot in Chapter 2). The exec parameters used for the iPAQ are:
Location Linux kernel was loaded to
Length of kernel
Parameters passed to kernel
'initrd' ramdisk location
Length of initrd ramdisk
Linux kernels may be run on the iPAQ using the sources from the anonymous CVS repository at the Handhelds project (http://www.handhelds.org/) with the elinux.patch patch file applied. This file can be found in the misc/ subdirectory of the iPAQ platform HAL in the RedBoot sources, normally hal/arm/sa11x0/ipaq/VERSION/misc/
On the iPAQ (and indeed all SA11x0 platforms), Linux expects to be loaded at address 0xC0008000 and the entry point is also at 0xC0008000.
RedBoot sets up the following memory map on the iPAQ: The first level page table is located at physical address 0xC0004000. No second level tables are used.
NOTE: The virtual memory maps in this section use a C and B column to indicate whether or not the region is cached (C) or buffered (B).
Physical Address Range Description ----------------------- ---------------------------------- 0x00000000 - 0x01ffffff 16Mb to 32Mb FLASH (nCS0) [organized as below] 0x000000 - 0x0003ffff Parrot Loader 0x040000 - 0x0007ffff RedBoot 0xf80000 - 0x00fbffff Fconfig data 0xfc0000 - 0x00ffffff FIS directory 0x30000000 - 0x3fffffff Compact Flash 0x48000000 - 0x4bffffff iPAQ internal registers 0x80000000 - 0xbfffffff SA-1110 Internal Registers 0xc0000000 - 0xc1ffffff DRAM Bank 0 - 32Mb SDRAM 0xe0000000 - 0xe7ffffff Cache Clean Virtual Address Range C B Description ----------------------- - - ---------------------------------- 0x00000000 - 0x01ffffff Y Y DRAM - 32Mb 0x30000000 - 0x3fffffff N N Compact Flash 0x48000000 - 0x4bffffff N N iPAQ internal registers 0x50000000 - 0x51ffffff Y Y Up to 32Mb FLASH (nCS0) 0x80000000 - 0xbfffffff N N SA-1110 Internal Registers 0xc0000000 - 0xc1ffffff N Y DRAM Bank 0: 32Mb 0xe0000000 - 0xe7ffffff Y Y Cache Clean |
These shell variables provide the platform-specific information needed for building RedBoot according to the procedure described in Chapter 3:
export TARGET=ipaq export ARCH_DIR=arm export PLATFORM_DIR=sa11x0/ipaq |
The names of configuration files are listed above with the description of the associated modes.