Initialize the Controller

Zynq UltraScale+ Device Technical Reference Manual (UG1085)

Document ID
Release Date
2.4 English

1.Clear the network control register. Write 0x0 to the gem.network_control register.

2.Clear the statistics registers. Write a 1 to the gem.network_control [clear_all_stats_regs].

3.Clear the status registers. Write a 1 to the status registers. gem.receive_status = 0x0F and gem.transmit_status = 0xFF.

4.Disable all interrupts. Write 0x7FF_FEFF to the gem. int_disable register.

5.Clear the buffer queues. Write 0x0 to the gem.receive_q{ , 1}_ptr and
gem.transmit_q{ , 1}_ptr registers.

Note:   The GEM controller has two receive-buffer queue pointer registers (GEM{0:3}.receive_q_ptr, GEM{0:3}.receive_q1_ptr) and two transmit-buffer queue pointer registers (GEM{0:3}.transmit_q_ptr, GEM{0:3}.transmit_q1_ptr). Any combination of transmit-buffer and receive-buffer queues can be used, but it is important to ensure that the unused queues are tied off properly with a dummy or terminate descriptor, otherwise it does not work.