Is there a specification of x86 I/O port assignment?

I found some information on the web as follows, but incomplete.

http://en.wikipedia.org/wiki/Input/output_base_address

http://wiki.osdev.org/I/O_Ports

Where to download the specification?


A good source for current (and not from 1994) I/O port map is chipset documentation, e.g. Intel® 7 Series Chipset Family PCH Datasheet (see section 9.3, I/O Map). For example, here are some ports which are commonly used in modern PCs and are not mentioned in the old lists:

  • 2E-2F,4E-4F: Low Pin Count (LPC) interface, usually connected to Super I/O or EC (Embedded Controller)
  • 0CF8, 0CFC: PCI configuration space access
  • B2: ACPI and SMI port (writing to it usually generates an SMI interrupt)

Note that some I/O ranges are dynamic and can be moved by reprogramming various bits in the corresponding PCI devices configuration.


You may want to check Ralf Brown's interrupt list "RBIL".

Part D contains the information on I/O ports.