---
name: "xp"
section: "4"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["openbsd"]
url: "https://new.carta.tech/xp"
---

# xp(4)

HD647180X I/O processor

## NAME

**xp** – HD647180X I/O processor

## SYNOPSIS

**xp0 at mainbus0**

## DESCRIPTION

The file */dev/xp* is an [mmap(2)](/mmap/2.md) capable interface to the memory area of the HD647180X I/O processor (so-called "XP") on LUNA-88K and LUNA-88K2. Byte offsets in this file are interpreted as relative memory addresses of the I/O processor. The range should be between 0x0 and 0xffff.

The following [ioctl(2)](/ioctl/2.md) call applies to */dev/xp*:

- XPIOCDOWNLD *struct xp\_download*

  Load binary and reset I/O processor.

  ```
  struct xp_download {
          u_int   size;
  	u_char  *data;
  };
  ```

  The *size* member specifies the loading binary size, in bytes. The *data* member points to the binary image.

## FILES

- */dev/xp*

  ## ERRORS

- \[EINVAL\]

  The specified size is 0 or more than the I/O processor's memory size.

- \[ENOMEM\]

  Memory could not be allocated for loading.

## SEE ALSO

[ioctl(2)](/ioctl/2.md)

## HISTORY

The */dev/xp* file first appeared in OpenBSD 6.1.
