EM_CTL (SATA_AHCI_HBA) Register Description
Register Name | EM_CTL |
---|---|
Offset Address | 0x0000000020 |
Absolute Address | 0x00FD0C0020 (SATA_AHCI_HBA) |
Width | 32 |
Type | mixedMixed types. See bit-field details. |
Reset Value | 0x00000000 |
Description | Enclosure Management Control. |
Used to control and obtain status for the enclosure management interface. The register includes information on the attributes of the implementation, enclosure management messages supported, the status of the interface, whether any messages are pending, and is used to initiate sending messages.
EM_CTL (SATA_AHCI_HBA) Register Bit-Field Summary
Field Name | Bits | Type | Reset Value | Description |
---|---|---|---|---|
Reserved | 31:28 | roRead-only | 0x0 | Reserved |
ATTR_PM | 27 | roRead-only | 0x0 | Port Multiplier Support (ATTR.PM): If set to 1, the HBA supports enclosure management messages for devices attached via a Port Multiplier. If cleared to 0, the HBA does not support enclosure management messages for devices attached via a Port Multiplier. When cleared to 0, software should use the Serial ATA enclosure management bridge that is built into many Port Multipliers for enclosure services with these devices. For more information on Serial ATA enclosure management bridges, refer to the Serial ATA Revision 2.5 specification. |
ATTR_ALHD | 26 | roRead-only | 0x0 | Activity LED Hardware Driven (ATTR.ALHD): If set to 1, the HBA drives the activity LED for the LED message type in hardware and does not utilize software settings for this LED. The HBA does not begin transmitting the hardware based activity signal until after software has written CTL.TM=1 after a reset condition. |
ATTR_XMT | 25 | roRead-only | 0x0 | Transmit Only (ATTR.XMT): If set to 1, the HBA only supports transmitting messages and does not support receiving messages. If cleared to 0, the HBA supports transmitting and receiving messages. |
ATTR_SMB | 24 | roRead-only | 0x0 | Single Message Buffer (ATTR.SMB): If set to 1, the HBA has one message buffer that is shared for messages to transmit and messages received. In this case, unsolicited receive messages are not supported and it is softwares responsibility to manage access to this buffer. If cleared to 0, there are separate receive and transmit buffers such that unsolicited messages could be supported. |
Reserved | 23:20 | roRead-only | 0x0 | Reserved |
SUPP_SGPIO | 19 | roRead-only | 0x0 | SGPIO Enclosure Management Messages (SUPP.SGPIO): If set to 1, the HBA supports the SGPIO register interface message type. |
SUPP_SES2 | 18 | roRead-only | 0x0 | SES-2 Enclosure Management Messages (SUPP.SES2): If set to 1, the HBA supports the SES-2 message type. |
SUPP_SAFTE | 17 | roRead-only | 0x0 | SAF-TE Enclosure Management Messages (SUPP.SAFTE): If set to 1, the HBA supports the SAF-TE message type. |
SUPP_LED | 16 | roRead-only | 0x0 | LED Message Types (SUPP.LED): If set to 1, the HBA supports the LED message type defined in section 12.2.1. |
Reserved | 15:10 | roRead-only | 0x0 | Reserved |
CTL_RST | 9 | rwNormal read/write | 0x0 | Reset (CTL.RST): When set to 1 by software, the HBA shall reset all enclosure management message logic and the attached enclosure processor (if applicable) and take all appropriate reset actions to ensure messages can be transmitted/received after the reset. After the HBA completes the reset operation, the HBA shall set the value to 0. A write of 0 by software to this field shall have no effect. |
CTL_TM | 8 | rwNormal read/write | 0x0 | Transmit Message (CTL.TM): When set to 1 by software, the HBA shall transmit the message contained in the message buffer. When the message is completely sent, the HBA shall clear this bit to 0. A write of 0 to this bit by software shall have no effect. Software shall not change the contents of the message buffer while CTL.TM is set to 1. |
Reserved | 7:1 | roRead-only | 0x0 | Reserved |
STS_MR | 0 | wtcReadable, write a 1 to clear | 0x0 | Message Received (STS.MR): The HBA sets this bit to a 1 when a message is completely received into the message buffer. When software detects this bit is a 1, software should read the message and perform any actions necessary. When software is finished reading the message in the buffer, software writes a 1 to this bit in order to clear it. A write of 0 to this bit by software shall have no effect. |