Handhelds.org - Open source for handheld devices

UserPreferences

HpIpaqHx4700OriginalBootloader


Home | Status | News | Kernel | Hardware | Drivers | Serial Cable | Bootloader | Installing Linux

HP iPAQ hx4700 original bootloader

As in most similar devices made by HTC, the hx4700's bootloader is made by HTC and features similar commands.

Caution

Only run bootloader commands if you really know what you're doing. There's a very high risk of turning your device into a brick and lose your HP warranty.

Usefulness of the original bootloader

The HTC bootloader is used by HP for ROM upgrades. Similarly, we can use it to mass reflash devices using a master storage card. This will be particularly useful when the porting project is over and organizations need hundreds of Linux hx4700 devices!

Of course, this bootloader can also be used to recover a damaged ROM when we start our first flash writing experiments.

Accessing the bootloader console

Serial console

Plug your serial cable (see HpIpaqSerialCable)

From your GNU/Linux computer, run "minicom -s" to configure minicom if needed. Here are the settings that I used without any issue:

Serial Device      : /dev/tty<your_serial_port>
Bps/Par/Bits       : 115200 8N1
Hardware Flow Control : No
Software Flow Control : No

Then run "minicom".

Inside minicom, you should turn on line wrapping (Ctrl A W), otherwise you will miss the end of long lines.

Similarly, on a Windoze PC, run a terminal emulator (such as MultiTTY).

USB console

Connect your device to your USB cradle. The bootloader should now display "USB".

On a GNU/Linux PC, you are going to need the usbserial module and perhaps extra ones, to get a /dev/ttyUSBxx port. See [WWW]the synce site for more details.

Once you have such a port, you can connect to your device through it by using minicom (see the above section).

On a Windoze PC, I haven't tried either. You should kill ActiveSync, try to run a terminal emulator (such as MultiTTY), and try to configure it to talk to a USB port.

Starting the bootloader

Caution: doing this does a hard reset. You will lose your PocketPC settings (including date and time) and data (contacts, tasks, etc)!

Hold the "Contacts" button (upper left) and the "iTask" button (lower right) simultaneously and then press the "Reset" button for at least 2 seconds.

With the serial cable, you should now see a screen with "Serial" at the top and get a "SER>" prompt on your terminal emulator.

With the USB cable, you should now see a screen with "USB" and get a "USB>" prompt

Interacting with the bootloader

Now that you've got a console with the bootloader, you can send commands.

The problem is HTC seems to have removed command help in the most recent devices, even if the command line still instructs you to use the "h" command.

We may have to figure out what command are from earlier devices:

Identified commands

SER> password BOOTLOADER

Inputs the bootloader passwords, to make critical commands available. In our case, the password is BOOTLOADER.

SER> d2s

"Device to Storage" dumps the flash contents to a storage card. Caution: all existing formats and files in the card are lost!

Images may be restored by inserting SD card with your WinCE image, then pressing bootloader reset sequence (above). Follow the instruction on the screen (dim - not backlit). The SDG Systems' bootloader for the hx470x may also be loaded in this manner. Starting the HTC bootloader may be tricky. Try removing your battery for a while, if you run into difficulty.

Note: it turns out that only SD cards can be used, and must be at least 256MB.

SER> checksum

Returns a checksum of the ROM contents.

SER> shmsg [Row [Col ["String"]]]
Show texts on display.
Row(hex) : 0 - 17(11).
Col(hex) : 0 - 12(C).
Text String : The string which will be show on display.

Shows a string on the display.

SER> set [type [value]]
Set control flags. When no flag is given, all the flags content are displayed. Use following set command if your device stuck in the bootloader mode (i.e. by accidentally executing EnterBL.exe):
SER> set 14 0

More commands are certainly available, but haven't been tried yet.

Exiting the bootloader

Just press the "Reset" button. The device will do a hard reset and return to factury defaults.