Read Page

Zynq UltraScale+ Device Technical Reference Manual (UG1085)

Document ID
UG1085
Release Date
2023-12-21
Revision
2.4 English
Table 25-12:      Read Page

Task

Register

Register Field

Register Offset

Bits

Value (Binary)

Program command for read page (0x3000) with ECC, DMA enabled.

Command_Register

All

0x0C

31:0

Program the command with required address cycles.

If DMA is enabled, enable DMA boundary interrupt.

Interrupt_Status_Enable_Register

dma_int_sts_en | trans_comp_sts_en

0x014

6 and 2

0x44 (hex)

Else enable buffer read ready interrupt.

Interrupt_Status_Enable_Register

buff_rd_rdy_sts_en

0x014

1

1b'1

Enable single bit error and multi-bit error if hardware ECC is enabled.

Interrupt_Status_Enable_Register

err_intrpt_sts_en | mul_bit_err_sts_en

0x014

4:3

2b'3

Set page size.

Command_Register

page_size

0x0C

25:23

3'd0 - 512B

3'd1 - 2 KB

3'd2 - 4 KB

3'd3 - 8 KB

3'd4 - 16 KB

3'd5 - 1 KB 0x16 bit flash support

6-7 - RES

Program column, page, and block address (next two steps).

Program memory address register 1.

Memory_Address_Register1

All

0x04

31:0

Program block address in bits 31:25.

Program page address in bits 22:16.

Program column address in bits 12:0.

Program memory address register 2.

Memory_Address_Register2

All

0x008

31:0

Write required values for memory address.

Select packet size and count.

Packet_Register

Packet_count | packet_size

0x00

23:0

Required packet size and count.

If DMA enabled, program DMA system address and buffer boundary (following three steps).

Invalidate the data cache.

For 64-bit architecture, program higher address word.

DMA_system_address1_register

DMA_system_address1
_register

0x024

31:0

Program higher address word.

Program lower address word.

DMA_system_address0_register

DMA_system_address0
_register

0x50

31:0

Program lower address word.

Select the device.

Memory_Address_Register2

Chip_Select

0x08

31:30

Targets chip select value.

Set ECC spare command (0X85) if hardware ECC enabled.

ECC_Spare_Command_Register

Number_of_ECC_and_
Spare_Address_cycles | ECC_Spare_cmd

0x3c

30:0

0X85 for spare command and required address cycles.

Set page program in program register.

Program_Register

Read

0x10

0

1b'1

For non-DMA Mode, perform following steps until all packets received (next six steps).

Poll for buffer read ready event.

Interrupt_Status_Register

buff_rd_rdy_reg

0x1C

1

Wait until bit is set or wait time is over.

If buffer read ready events are equal to packet count, then enable the transmit complete interrupt after transfer completed.

Interrupt_Status_Enable_Register

trans_comp_sts_en

0x014

2

1b'1

Else, clear buffer read ready interrupt in status enable register.

Interrupt_Status_Register

buff_rd_rdy_sts_en

0x14

1

1b'0

Clear buffer read ready interrupt.

Interrupt_Status_Register

buff_rd_rdy_reg

0x1C

1

1b'1

Read packet data.

Buffer_Data_Port_Register

Data_Port_Register

0x030

31:0

Read until all data received.

If buffer read ready events are less than packet count, then enable buffer read ready interrupt and start next iteration else break the loop here.

Interrupt_Status_Enable_Register

buff_rd_rdy_sts_en

0x014

1

1b'1

Poll for transfer complete event.

Interrupt_Status_Register

trans_comp_reg

0x1C

2

Wait until transfer is completed or wait time is over.

Clear the transmit complete interrupt after transfer completed.

Interrupt_Status_Enable_Register

trans_comp_sts_en

0x014

2

1b'0

Clear the transmit complete flag after transfer completed.

Interrupt_Status_Register

trans_comp_reg

0x1C

2

1b'1

If hardware ECC mode is enabled, check for ECC errors.

Hamming multi-bit errors

Read interrupt status.

Interrupt_Status_Register

mul_bit_err_reg

0x1C

3

Read

If multi-bit error bit set, clear the status.

Interrupt_Status_Register

mul_bit_err_reg

0x1C

3

1b'1

Read ECC error count.

ECC_Error_Count_Register

Page_bound_Err_count

0x38

16:8

Read

Hamming single-bit or BCH errors

Read interrupt status.

Interrupt_Status_Register

err_intrpt_reg

0x1C

4

Read

If multi-bit error bit set, clear the status.

Interrupt_Status_Register

err_intrpt_reg

0x1C

4

1b'1

Read ECC error count.

ECC_Error_Count_Register

Page_bound_Err_count

0x38

16:8

Read