Low Pin Count

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Low Pin Count interface IT8705F Super I/O chip. Data sheet available from ITE Tech. Inc.
Trusted Platform Module installed on a motherboard, and using the LPC bus

The Low Pin Count bus, or LPC bus, is used on IBM-compatible personal computers to connect low-bandwidth devices to the CPU, such as the boot ROM and the "legacy" I/O devices (behind a super I/O chip). The "legacy" I/O devices usually include serial and parallel ports, PS/2 keyboard, PS/2 mouse, floppy disk controller and — more recently — the Trusted Platform Module (TPM).[1] The physical wires of the LPC bus usually connect to the southbridge chip on a PC motherboard, which contains the circuit equivalents of the "legacy" onboard peripherals of the IBM PC/AT architecture, such as the two programmable interrupt controllers, the programmable interval timer, and the two ISA DMA controllers.

The LPC bus was introduced by Intel in 1998 as a substitute for the Industry Standard Architecture (ISA) bus. It resembles ISA to software, although physically it is quite different, replacing the 16-bit-wide, 8.33 MHz ISA bus with a 4-bit-wide bus operating at 4 times the clock speed (33.3 MHz).

LPC's main advantage is that it requires only seven signals, and is therefore easy to route on modern motherboards, which are often quite crowded. An integrated circuit using LPC will need 30 to 72 fewer pins than its ISA equivalent. The clock rate was chosen to match that of PCI in order to further ease integration. Also, LPC is intended to be a motherboard-only bus. No connector is defined, and no LPC peripheral daughterboards are available, except motherboard-specific Trusted Platform Modules (TPMs).[1] There is no configuration in terms of device discovery. Since only motherboard devices are connected, or specific TPMs, the host firmware (BIOS, UEFI) "knows" how to set them up and deal with them.

The LPC specification defines seven mandatory signals required for bidirectional data transfer. Four of these signals carry the multiplexed address and data. The other three — frame, reset, and clock — are control signals, the latter two of which can be shared with the PCIRST# and PCICLK signals.

Six optional signals defined in the specification can be used for interrupt support, direct memory access, waking the system from a low power ("sleeping") state and notifying the LPC peripherals that power will soon be removed.

LPC data transfer rates depend on the type of bus access (I/O, Memory, DMA, firmware) performed. DMA cycles can transfer up to 6.67 MB/s.[2]

A CPLD or FPGA can implement a LPC host or a LPC peripheral.[3]

The original Xbox game console has an LPC debug port that can be used to force the Xbox to boot new code.[4][5]

Intel designed the LPC bus so that the System BIOS could be stored in a single flash memory chip directly connected to the LPC bus. Intel also made it possible to put operating system images and software applications on a single flash memory chip directly connected to the LPC bus, as an alternative to a Parallel ATA port.[6]

See also[edit]


  1. ^ a b Johannes Winter (2011). "A Hijacker's Guide to the LPC bus". tugraz.at. Retrieved 2013-12-19. 
  2. ^ Intel LPC Interface Specification 1.1 - 32 bit DMA write (device to host)
  3. ^ "LPC Bus Controller". Lattice Reference Design RD1049. 2011.
  4. ^ Andrew Huang. "Hacking the Xbox: An Introduction to Reverse Engineering". 2003. p. 48 and p. 151.
  5. ^ O. Theis. "Modding the XBox". section "Details of the LPC".
  6. ^ Sharon Dagan. "Flash Storage Alternatives for the Low-Pin-Count (LPC) Bus". EE Times. 2002.

External links[edit]