reg_presentstate (SDIO) Register - UG1087

Zynq UltraScale+ Devices Register Reference (UG1087)

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

reg_presentstate (SDIO) Register Description

Register Namereg_presentstate
Offset Address0x0000000024
Absolute Address 0x00FF160024 (SD0)
0x00FF170024 (SD1)
Width32
TyperoRead-only
Reset Value0x00080000
DescriptionSDIO Controller Status, read-only.

reg_presentstate (SDIO) Register Bit-Field Summary

Field NameBitsTypeReset ValueDescription
sdif_dat7in_dsync28roRead-only0x0This status is used to check DAT line level to recover from errors, and for debugging.
sdif_dat6in_dsync27roRead-only0x0This status is used to check DAT line level to recover from errors, and for debugging.
sdif_dat5in_dsync26roRead-only0x0This status is used to check DAT line level to recover from errors, and for debugging.
sdif_dat4in_dsync25roRead-only0x0This status is used to check DAT line level to recover from errors, and for debugging.
sdif_cmdin_dsync24roRead-only0x0This status is used to check DAT line level to recover from errors, and for debugging.
sdif_dat3in_dsync23roRead-only0x0This status is used to check DAT line level to recover from errors, and for debugging. This is
especially useful in detecting the busy signal level from DAT[0].
sdif_dat2in_dsync22roRead-only0x0This status is used to check DAT line level to recover from errors, and for debugging. This is
especially useful in detecting the busy signal level from DAT[0].
sdif_dat1in_dsync21roRead-only0x0This status is used to check DAT line level to recover from errors, and for debugging. This is
especially useful in detecting the busy signal level from DAT[0].
sdif_dat0in_dsync20roRead-only0x0This status is used to check DAT line level to recover from errors, and for debugging. This is
especially useful in detecting the busy signal level from DAT[0].
sdif_wp_dsync19roRead-only0x1The Write Protect Switch is supported for memory and combo cards.This bit reflects the inversion of the SDx_WP pin.
0: Write protected, SDx_WP pin = High.
1:
Write enabled, SDx_WP pin = Low.
sdif_cd_n_dsync18roRead-only0x0This bit reflects the inverse value of the SDCD# pin.
0: No Card present, SDx_CDn pin = High.
1: Card present, SDx_CDn pin = Low.
sdhccarddet_statestable_dsync17roRead-only0x0This bit is used for testing. If it is 0, the Card Detect Pin Level is not stable. If this bit is set to 1,it means the Card Detect Pin Level is stable. The Software Reset For All in the Software Reset Register shall not affect this bit.
0 Reset of Debouncing
1 No Card or Inserted
sdhccarddet_inserted_dsync16roRead-only0x0Card insertion status flag. Read-only.
Changing from 0 to 1 generates a Card Insertion interrupt in the Normal Interrupt Status register.
Changing from 1 to 0 generates a Card Removal interrupt in the Normal Interrupt Status register.
The Software Reset For All in the Software Reset register does not affect this bit.
If a Card is removed while its power is on and its clock is oscillating, the controller clears SD Bus Power in the Power Control register and SD Clock Enable in the Clock control register. In addition the Host Driver should clear the controller using the Software Reset For All in Software register. The card detect is active regardless of the SD Bus Power.
0: Reset or Debouncing or No Card.
1: Card Inserted.
sdhcdmactrl_piobufrdena11roRead-only0x0This status is used for non-DMA read transfers.This read only flag indicates that valid data exists in the host side buffer status. If this bit is 1, readable data exists in the buffer. A change of this bit from 1 to 0 occurs when all the block data is read from the buffer. A change of this bit from 0 to 1 occurs when all the block data is ready in the buffer and generates the Buffer Read Ready Interrupt.
0 Read Disable
1 Read Enable
sdhcdmactrl_piobufwrena10roRead-only0x0This status flag is used with write transfers via register writes (not DMA). Read-only.
This flag indicates if space is available for writing data.
0: do not write to the register port.
1: data can be written to the buffer via the register port.
A change from 1 to 0 indicates the buffer is full.
A change from 0 to 1 occurs when top of block data can be written to the buffer and generates the Buffer Write Ready Interrupt.
sdhcdmactrl_rdxferactive 9roRead-only0x0Completion of a read transfer flag. Read-only.
This bit is set to 1 for either of the following conditions:
*
After the end bit of the read command, or
*
When writing a 1 to continue Request in the Block Gap Control register to restart a read transfer.
This bit is cleared to 0 for either of the following conditions:
*
When the last data block as specified by block length is transferred to the system, or
*
When all valid data blocks have been transferred to the system and no current block transfers are being sent as a result of the Stop At Block Gap Request set to 1. A transfer complete interrupt is generated when this bit changes to 0.
0: No valid data
1: Transferring data
sdhcdmactrl_wrxferactive 8roRead-only0x0This status indicates a write transfer is active. If this bit is 0, it means no valid write data exists in the HC.
This bit is set in either of the following cases:
* After the end bit of the write command.
* When writing a 1 to Continue Request in the Block Gap Control register to restart a write transfer.
This bit is cleared in either of the following cases:
* After getting the CRC status of the last data block as specified by the transfer count (Single
or Multiple)
* After getting a CRC status of any block where data transmission is about to be stopped by a Stop At Block Gap Request.
During a write transaction, a Block Gap Event interrupt is generated when this bit is changed to 0, as a result of the Stop At Block Gap Request being set. This status is useful for the HD in determining when to issue commands during write busy.
0 No valid data
1 Transferring data
sdhcsdctrl_retuningreq_dsync 3roRead-only0x0Controller may request that the Host Driver executes the re-tuning sequence using this bit.
Re-tune the I/O timing when the data window is shifted by temperature changes or to improve timing margins to receive correct data.
0: Sampling clock is okay (its fixed timing or well tuned).
1: Re-tune the sampling clock.
This bit is set = 0 when a command is issued by setting the Execute Tuning bit in the Host Control 2 register.
When software writes this bit from a 0 to 1 and [Sampling Clock Select] = 1 (not fixed sampling), the controller triggers the re-tune event.
Refer to Normal Interrupt registers for more detail.
sdhcdmactrl_datalineactive 2roRead-only0x0SD_DAT signal I/O activity:
0: inactive.
1: active.
presentstate_inhibitdat 1roRead-only0x0Dual purpose status indicator:
* SD_DAT I/O is active, or
* Read transfer Active is set to 1. [ ]
0: controller can issue the next SD command.
Commands with busy signal belong to Command Inhibit (DAT) (ex. R1b, R5b type).
When the status indicator changes from a 0 to 1, the Transfer Complete interrupt asserts.
Note: The SD Host Driver can save registers in the range of 000-00Dh; for a suspend transaction this bit changes from 1 to 0.
0 Can issue command which uses the DAT line
1 Cannot issue command which uses the DATline
presentstate_inhibitcmd 0roRead-only0x0Controller State.
0: The CMD line is not in use and the controller can issue a SD command using the CMD line.
This bit is set immediately after the Command register (00Fh) is written. This bit is cleared when the command response is received.
Even if the Command Inhibit (DAT) is set to 1, Commands using only the CMD line can be issued if this bit is 0.
Changing from 1 to 0 generates a Command complete interrupt in the Normal Interrupt Status register. If the controller cannot issue the command because of a command conflict error or because of Command Not Issued By Auto CMD12 Error, this bit remains a 1 and the Command Complete interrupt is not set.
Status issuing Auto CMD12 is not read from this bit. Auto CMD12 and Auto CMD23 consist of two responses. In this case, this bit is not cleared by the response of CMD12 or CMD23 but cleared by the response of a read/write command. Status issuing Auto CMD12 is not read from this bit. So if a command is issued during Auto CMD12 operation, controller issues two commands: CMD12 and a command set by Command register.