EM_CTL (SATA_AHCI_HBA) Register - UG1087

Zynq UltraScale+ Devices Register Reference (UG1087)

Document ID
UG1087
Release Date
2024-03-13
Revision
1.10

EM_CTL (SATA_AHCI_HBA) Register Description

Register NameEM_CTL
Offset Address0x0000000020
Absolute Address 0x00FD0C0020 (SATA_AHCI_HBA)
Width32
TypemixedMixed types. See bit-field details.
Reset Value0x00000000
DescriptionEnclosure 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 NameBitsTypeReset ValueDescription
Reserved31:28roRead-only0x0Reserved
ATTR_PM27roRead-only0x0Port 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_ALHD26roRead-only0x0Activity 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_XMT25roRead-only0x0Transmit 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_SMB24roRead-only0x0Single 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.
Reserved23:20roRead-only0x0Reserved
SUPP_SGPIO19roRead-only0x0SGPIO Enclosure Management Messages (SUPP.SGPIO):
If set to 1, the HBA supports the SGPIO register interface message type.
SUPP_SES218roRead-only0x0SES-2 Enclosure Management Messages (SUPP.SES2):
If set to 1, the HBA supports the SES-2 message type.
SUPP_SAFTE17roRead-only0x0SAF-TE Enclosure Management Messages (SUPP.SAFTE):
If set to 1, the HBA supports the SAF-TE message type.
SUPP_LED16roRead-only0x0LED Message Types (SUPP.LED):
If set to 1, the HBA supports the LED message type defined in section 12.2.1.
Reserved15:10roRead-only0x0Reserved
CTL_RST 9rwNormal read/write0x0Reset (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 8rwNormal read/write0x0Transmit 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:1roRead-only0x0Reserved
STS_MR 0wtcReadable, write a 1 to clear0x0Message 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.