Difference between revisions of "Developer Manual/Super IO"

From coreboot
Jump to navigation Jump to search
m
(Added a first draft of the configuration structure)
Line 14: Line 14:


Each of these functions, inside a Super I/O, is split into its own logical device and everyone of these devices is identified by an hex number (starting from 0x0) called logical device number (LDN).  
Each of these functions, inside a Super I/O, is split into its own logical device and everyone of these devices is identified by an hex number (starting from 0x0) called logical device number (LDN).  
I.e. 0x05 and 0x06 are the LDN respectively for the keyboard and the mouse.
I.e. addr 0x05 and 0x06 are the LDN respectively for the keyboard and the mouse.


Check your chip's datasheet to find the complete list.
Check your chip's datasheet to find the complete list.
== Super I/O configuration ==
A Super I/O chip can be configured through the use of its configuration registers.
These registers can be divided into two classes:
* Super I/O control and configuration
* Logical Device control and configuration
The first class contains all the registers that have the same value no matter which LDN has been selected, a sort of "global" register.
An example of this class can be found in the LDN register (addr 0x7) which is used to select an LDN, the Super I/O ID register (addr 0x20) and the Revision ID register (addr 0x27) which contain respectively the ID and the revision number of your chip.
The second class includes all the registers that are relative to the LDN that has been previously selected.
Among these ones there is the Logical Device Control register (addr 0x30) which is used to enable or disable the functionality of that Logical Device, the I/O Address register (addr 0x60-0x61) which are used to access runtime registers, and others.


== Virtual Logical Devices (vLDN) ==
== Virtual Logical Devices (vLDN) ==

Revision as of 22:08, 2 March 2016