Stratix® 10 Hard Processor System Technical Reference Manual

ID 683222
Date 8/15/2024
Public
Document Table of Contents

16.5.9.3.2. Register Settings for ATA Payload Transfer

You must set the cmdarg, cmd, blksiz, and bytcnt registers according to the following tables.
Table 160.  cmdarg Register Settings for ATA Payload Transfer
Bits Value Comment

31

1 or 0

Set to 0 for read operation or set to 1 for write operation

30:24

0

Reserved (bits set to 0 by host processor)

23:16

0

Reserved (bits set to 0 by host processor)

15:8

Data count

Data Count Unit [15:8]

7:0

Data count

Data Count Unit [7:0]

Table 161.  cmd Register Settings for ATA Payload Transfer
Bits Value Comment
start_cmd

1

-
ccs_expected

1

CCS is expected. Set to 1 for the RW_BLK command if interrupts are enabled in CE‑ATA card device (the nIEN bit is set to 0 in the ATA control register)

read_ceata_device

0 or 1

Set to 1 for a RW_BLK or RW_REG read command

update_clk_regs_only

0

No clock parameters update command

card_num

0

-
send_initialization

0

No initialization sequence

stop_abort_cmd

0

-
send_auto_stop

0

-
transfer_mode

0

Block transfer mode. Byte count must be integer multiple of 4kB. Block size can be 512, 1k or 4k bytes

read_write

1 or 0

1 for write and 0 for read

data_expected

1

Data is expected

response_length

0

-
response_expect

1

-
cmd_index

Command index

Set this parameter to the command number. For example, set to 24 for SD/SDIO WRITE_BLOCK (CMD24) or 25 for WRITE_MULTIPLE_BLOCK (CMD25).

wait_prvdata_complete

1

  • 0 for send command immediately
  • 1 for send command after previous DTO interrupt
check_response_crc

1

  • 0 for not checking response CRC
  • 1 for checking response CRC
Table 162.  blksiz Register Settings for ATA Payload Transfer
Bits Value Comment

31:16

0

Reserved bits set to 0

15:0 (block_size)

512, 1024 or 4096

MMC block size can be 512, 1024 or 4096 bytes as negotiated by host

Table 163.  bytcnt Register Settings for ATA Payload Transfer
Bits Value Comment

31:0

<n>*block_size

Byte count must be an integer multiple of the block size. For ATA media access commands, byte count must be a multiple of 4 KB.

(<n>*block_size = <x>*4 KB, where <n> and <x> are integers)