Handhelds.org splash banner Handhelds.org logo by Chrysovalandes Sophocleous
Linux on HP iPAQ H5400

The H54xx is based on the same PXA250 processor as the H3900 and H1900, but many of the onboard peripherals are different.

The H55xx is the same as the H54xx, except that it uses the PXA255 processor and in some configurations contains 128MB of DRAM instead of 64MB of DRAM.

See H5xxx ASIC Spec for details on the operation of the companion ASIC used in the H54xx and H55xx. The spec for the AK4535 audio codec is also present there. (Added May 21, 2004 by Jamey>

Things that work

  • Bootldr works on H5400, except for LCD and PCMCIA/CF, as of 2.19.70.
  • Kernel boots to commandline prompt
  • PCMCIA/CF works.
        modprobe hci_uart
        hciattach /dev/tts/1 any 921600
    
  • 802.11 wi-fi works.
  • Touchscreen works.
  • LCD works though some further tweaking may be required.
  • Front panel buttons work.
  • Suspend and resume partly work.
  • Battery management and charger work.
  • Audio playback and record works. 2003-07-03.

Installing

The H54xx and H55xx are supported by Familiar 0.7.2.

Bootldr does not support the h5000 LCD. When you reset after flashing the bootldr, the machine will vibrate for about a second and then go quiet, but nothing will appear on the display. This is no cause for alarm; connect a serial terminal and proceed with the installation as normal.

Developer Info

Jtag

On the main board, the h5400 Jtag connector pinouts are as follows: (fleshed out and renumbered 05-apr-2004 by Jamey )

  • pin 1 - Vadaptor
  • pin 2 - Vadapter
  • pin 3 - Vadapter
  • pin 4 - Vadapter
  • pin 5 - button3
  • pin 6 - button1
  • pin 7 - audio mic
  • pin 8 - joystick A
  • pin 9 - audio gnd
  • pin 10 - joystick B
  • pin 11 - RS232 DCD
  • pin 12 - joystick C
  • pin 13 - RS232 RXD
  • pin 14 - joystick D
  • pin 15 - RS232 TXD
  • pin 16 - joystick E
  • pin 17 - RS232 DTR
  • pin 18 - fingerprint tpe
  • pin 19 - RS232 DSR
  • pin 20 - fingerprint reset
  • pin 21 - RS232 RTS
  • pin 22 - fingerprint pclk
  • pin 23 - RS232 CTS
  • pin 24 - fingerprint d0
  • pin 25 - RS232 RING
  • pin 26 - fingerprint d4
  • pin 27 - USB detect
  • pin 28 - fingerprint d1
  • pin 29 - USB+
  • pin 30 - fingerprint d5
  • pin 31 - USB-
  • pin 32 - fingerprint d2
  • pin 33 - button2
  • pin 34 - fingerprint d6
  • pin 35 - button4
  • pin 36 - fingerprint d3
  • pin 37 - ps#
  • pin 38 - fingerprint d7
  • pin 39 - button_led
  • pin 40 - fingerprint on#
  • pin 41 - TDI
  • pin 42 - TCK
  • pin 43 - TMS
  • pin 44 - TDO
  • pin 45 - VCC 3.3V
  • pin 46 - motor on#
  • pin 47 - Gnd
  • pin 48 - Gnd
  • pin 49 - Gnd
  • pin 50 - Gnd
Odd pins are on one edge of the connector, even on the other. If you have the main board opened out, pins 49 and 50 are on the right end of the connector. Odd pins are towards the bottom.

for the 5400 put:

int is_h3900=0;
in Jflash.cpp from the jflash_pxa_linux tree.

JTAG adapter board that Jamey has

  • pin 1 - Vcc
  • pin 5 - TDI
  • pin 7 - TMS
  • pin 9 - TCK
  • pin 13 - TDO
  • pin 20 - Ground

Battery

The 5400 battery connector pinouts are as follows, from left to right:

  • pin 1 - GND
  • pin 2 - BATT_IN# (pulled low by the battery pack)
  • pin 3 - Onewire (to the DS2760 in the battery pack)
  • pin 4 - PS# (??)
  • pin 5 - V_BATT
Pin 2 (BATT_IN#) must be pulled low for the CPU to operate, including via JTAG.

Fingerprint Scanner Atmel FCD4B14 Fingerchip interfaced via the FSI section of the ASIC. The FVS project is working on fingerprint verification software.

Things left to do (in no particular order)

BootBlaster

Jamey has started to work on this. 1/24/2003
  • Get BootBlaster running on H5400. BootBlaster3900 works on h5400 now.
  • Detect H5400 machine type
  • Read firmware from H5400 (and pass to bootldr team to disassemble)
  • Read all of flash for backup
  • Update code to enable VPPEN so flash can be erased and written.
  • Write new bootldr to flash.

Bootldr

  • Allocate H5400 machine type for Linux. done
  • Update PocketPC signature to match PocketPC image on H5400. done
  • First pass conditionalizing on h5400. done
  • Fix memory region addresses in bootconfig.h.done
  • Initialize GPSR, GPDR, GAFRdone
  • Reach boot prompt Reached boot> prompt 2/5/2003
  • Add pcmcia support
  • Add LCD support

JTAG

JTAG tasks

  • Add code to enable VPPEN on H5400. VPEN is always asserted on the H5400.done

Linux Kernel

  • Allocate H5400 machine type for Linux. done: machine type is 220
  • Add support to arch/arm/mach-pxa/ipaq.c. started, as ipaq3, moved to h5400.c
  • Check all machine_is_h3xxx() and machine_is_h3800() calls
  • Implement GPIO support for h5400. gpio connections in h5400-gpio.h
  • USB Eth working 4/21/2003
  • Display: MQ1100, Keith Packard has volunteered to do X server support for this. done
  • LCD: turn on power to LCD. done
  • control frontlight done
  • Sound: AKM AK4535 codec.working
  • MMC same as s3c2410?
  • Bluetooth working 5/1/2003
  • USB OHCI controller loads, detects peripheral device 5/8/2003
  • atmelwlandriver for built-in mostly working 27-Oct-2003
  • buttons done
  • touchscreen driver mostly working 27-Oct-2003
  • frontlight done
  • fingerprint scanner

Known Problems

Bluetooth is not working properly on h5500 for most people. Symptoms include "connection timed out" and H4 errors in the system log.

Other notes

Piotti Piero reports that he got the internal wlan working using these steps:

  • modprobe usb-ohci-h5400
  • modprobe at76c503-rfmd
  • iwconfig wlan0 (your settings)
  • ifconfig wlan0 (your settings)


$Id: h5400.html,v 1.31 2004/12/28 18:49:59 jamey Exp $