Register tables
Individual registers are described using register tables. These tables are composed of two sections. The first three colored rows describe the position and size of the different fields in the register. The following rows describe the fields in more detail.
Fields and values
The ID row specifies the bits that belong to the different fields in the register. If a field has enumerated values, then every value will be identified with a unique value ID in the Value ID column.
A blank space means that the field is reserved and read as undefined. These fields must be written as 0 to secure forward compatibility. If a register is divided into more than one field, a unique field name is specified for each field in the Field column. The Value ID may be omitted in the single-bit bit fields when values can be substituted with a Boolean type enumerator range, such as true/false, disable(d)/enable(d), on/off, and so on.
Values are usually provided as decimal or hexadecimal. Hexadecimal values have a 0x prefix; decimal values have no prefix.
The Value column can be populated in the following ways:
- Individual enumerated values, for example 1, 3, 9.
- Range of values, for example [0..4], indicating all values from 0 to 4.
- Implicit values. If no values are indicated in the Value column, all bit combinations are supported, or the field's translation and limitations are described in the text instead.
If two or more fields are closely related, the Value ID, Value, and Description may be omitted for all but the first field. Subsequent fields will indicate inheritance with '..'.
A feature marked Deprecated should not be used for new designs.
Permissions
Each register field can have different access permissions enforced by hardware. The access permission for each register field is documented in the Access column in the following ways:
| Access | Description | Hardware behavior |
|---|---|---|
| R | Read only | Field can only be read. A write will be ignored. |
| W | Write only | Field can only be written. A read will return an undefined value. |
| RW | Read/write | Field can be read and written multiple times. |
| W1 | Write once | Field can only be written once per reset. Any subsequent write will be ignored. A read will return an undefined value. |
| RW1 | Read/write once | Field can be read multiple times, but only written once per reset. Any subsequent write will be ignored. |
| W0C | Write 0 to clear | Field can be read multiple times. A zero clears (set to zero) the corresponding bit in the register. Bits set to one are ignored. |
| W1C | Write 1 to clear | Field can be read multiple times. A one clears (set to zero) the corresponding bit in the register. Bits set to zero are ignored. |
| W1S | Write 1 to set | Field can be read multiple times. A one sets the corresponding bit in the register. Bits set to zero are ignored. |
| RME | Read Modify External | When read, a side effect occurs. |